ShoKre
- 27th December 2012, 00:03
..I'm paste same line xxxxxxxxxxxxx n time, 3 time (until this argument is smaller than 1024) works, and after wont
any line i tried lcdout "test test test" or any other.... same result after this 6xxx bytes
Free_cycle: ' when idle
if !cntupflag and !cntdownflag then
if !IdleCnt then
ReadCODE (PreAddrTable + Idleoffset),Idlefrom
ReadCODE (PreAddrTable + Idleoffset + 1),Idleto
lcdout com,l1
for a=Idlefrom to Idlefrom + 3
ReadCODE (PressetTable + a),IdleParams[a]
b=IdleParams[a]
lcdout # a,"_",# b,"," ' copy of this line cause agument out of range error126 but same line on another place works, or if i erase something else (to make space) this works too
next a
endif
offset = Idlefrom + 4 + (IdleCnt*6) 'my coments
ReadCODE (PressetTable + Offset),bd
ReadCODE (PressetTable + Offset+1),bc
ReadCODE (PressetTable + Offset+2),bb
ReadCODE (PressetTable + Offset+3),ba
ReadCODE (PressetTable + Offset+4),ch[32]
ReadCODE (PressetTable + Offset+5),ch[33]
'hserout ["idle_from=",dec idlefrom," to=",dec idleto," offs=",dec offset,"|cnt=",dec idlecnt,13,10]
'high led3
pause 4*IdleParams[3]
'low led3
IF idleParams[0] > 50 THEN
RISE = 5
SWITCH = 1
ELSE
RISE = idleParams[0]
SWITCH = 0
ENDIF
mac file at 560 line (blued) is it normal that this piece of macro is in asm, aqua color ?
6784
whole macro code if means anithing
NOLIST
; PICBASIC PRO(TM) Compiler 2.60C, (c) 1998, 2011 microEngineering Labs, Inc. All Rights Reserved.
LABEL?L macro Label
RST?RP
ifdef PM_USED
LALL
Label
XALL
else
Label
endif
endm
AIN?BBB macro Bin, Bout, Bndx
MOVE?BA Bndx
addlw low (Bout)
movwf FSR0L
movlw (Bout) >> 8
clrf FSR0H
addwfc FSR0H, F
MOVE?BB Bin, INDF0
endm
AIN?BBW macro Bin, Bout, Wndx
MOVE?WA Wndx
addlw low (Bout)
movwf FSR0L
movlw (Bout) >> 8
addwfc (Wndx) + 1, W
movwf FSR0H
MOVE?BB Bin, INDF0
endm
AIN?CBB macro Cin, Bout, Bndx
MOVE?BA Bndx
addlw low (Bout)
movwf FSR0L
movlw (Bout) >> 8
clrf FSR0H
addwfc FSR0H, F
MOVE?CB Cin, INDF0
endm
AIN?WBB macro Win, Bout, Bndx
MOVE?BA Bndx
addlw low (Bout)
movwf FSR0L
movlw (Bout) >> 8
clrf FSR0H
addwfc FSR0H, F
MOVE?WB Win, INDF0
endm
AOUT?BBB macro Bin, Bndx, Bout
MOVE?BA Bndx
addlw low (Bin)
movwf FSR0L
movlw (Bin) >> 8
clrf FSR0H
addwfc FSR0H, F
MOVE?BB INDF0, Bout
endm
ADD?BBB macro Bin1, Bin2, Bout
if ((Bout) == (Bin1))
MOVE?BA Bin2
CHK?RP Bin1
addwf Bin1, F
else
if ((Bout) == (Bin2))
MOVE?BA Bin1
CHK?RP Bin2
addwf Bin2, F
else
MOVE?BA Bin1
CHK?RP Bin2
addwf Bin2, W
MOVE?AB Bout
endif
endif
endm
ADD?BBW macro Bin1, Bin2, Wout
MOVE?BA Bin1
CHK?RP Bin2
addwf Bin2, W
MOVE?AW Wout
rlcf (Wout) + 1, F
endm
ADD?BCB macro Bin, Cin, Bout
if ((Bout) == (Bin))
if ((Cin) == 1)
CHK?RP Bout
incf Bout, F
else
movlw Cin
CHK?RP Bin
addwf Bin, F
endif
else
if ((Cin) == 1)
CHK?RP Bin
incf Bin, W
MOVE?AB Bout
else
movlw Cin
CHK?RP Bin
addwf Bin, W
MOVE?AB Bout
endif
endif
endm
ADD?BCW macro Bin, Cin, Wout
if ((Cin) == 1)
CHK?RP Bin
incf Bin, W
else
movlw low (Cin)
CHK?RP Bin
addwf Bin, W
endif
MOVE?AW Wout
if (((Cin) >> 8) == 0)
rlcf (Wout) + 1, F
else
movlw (Cin) >> 8
addwfc (Wout) + 1, F
endif
endm
ADD?CBW macro Cin, Bin, Wout
if ((Cin) == 1)
CHK?RP Bin
incf Bin, W
else
movlw low (Cin)
CHK?RP Bin
addwf Bin, W
endif
MOVE?AW Wout
if (((Cin) >> 8) == 0)
rlcf (Wout) + 1, F
else
movlw (Cin) >> 8
addwfc (Wout) + 1, F
endif
endm
ADD?CWW macro Cin, Win, Wout
if ((Wout) == (Win))
CHK?RP Wout
if ((Cin) == 1)
incf Wout, F
else
movlw low (Cin)
addwf Wout, F
endif
movlw (Cin) >> 8
addwfc (Wout) + 1, F
else
CHK?RP Win
if ((Cin) == 1)
incf Win, W
else
movlw low (Cin)
addwf Win, W
endif
MOVE?AB Wout
movlw (Cin) >> 8
CHK?RP Win
addwfc (Win) + 1, W
MOVE?AB (Wout) + 1
endif
endm
ADD?WCW macro Win, Cin, Wout
if ((Wout) == (Win))
CHK?RP Wout
if ((Cin) == 1)
incf Wout, F
else
movlw low (Cin)
addwf Wout, F
endif
movlw (Cin) >> 8
addwfc (Wout) + 1, F
else
CHK?RP Win
if ((Cin) == 1)
incf Win, W
else
movlw low (Cin)
addwf Win, W
endif
MOVE?AB Wout
movlw (Cin) >> 8
CHK?RP Win
addwfc (Win) + 1, W
MOVE?AB (Wout) + 1
endif
endm
ADD?WWW macro Win1, Win2, Wout
if ((Wout) == (Win1))
MOVE?BA Win2
CHK?RP Wout
addwf Wout, F
MOVE?BA (Win2) + 1
CHK?RP Wout
addwfc (Wout) + 1, F
else
if ((Wout) == (Win2))
MOVE?BA Win1
CHK?RP Wout
addwf Wout, F
MOVE?BA (Win1) + 1
CHK?RP Wout
addwfc (Wout) + 1, F
else
MOVE?BA Win1
CHK?RP Win2
addwf Win2, W
MOVE?AB Wout
MOVE?BA (Win1) + 1
CHK?RP Win2
addwfc (Win2) + 1, W
MOVE?AB (Wout) + 1
endif
endif
endm
DIV?WCB macro Win, Cin, Bout
if ((Cin) == 2)
CHK?RP Win
rrcf (Win) + 1, W
rrcf Win, W
MOVE?AB Bout
else
MOVE?WW Win, R0
MOVE?CW Cin, R1
L?CALL DIV
MOVE?AB Bout
endif
endm
DIV_USED = 1
MUL?BCW macro Bin, Cin, Wout
MOVE?BW Bin, R3
MOVE?CW Cin, R1
L?CALL MUL
MOVE?AWW R2, Wout
endm
MUL_USED = 1
MUL?CBW macro Cin, Bin, Wout
MOVE?CW Cin, R3
MOVE?BW Bin, R1
L?CALL MUL
MOVE?AWW R2, Wout
endm
MUL_USED = 1
SUB?BBW macro Bin1, Bin2, Wout
MOVE?BA Bin2
CHK?RP Bin1
subwf Bin1, W
MOVE?AW Wout
btfss STATUS, C
decf (Wout) + 1, F
endm
SUB?BCB macro Bin, Cin, Bout
if ((Bout) == (Bin))
if ((Cin) == 1)
CHK?RP Bout
decf Bout, F
else
movlw Cin
CHK?RP Bout
subwf Bout, F
endif
else
if ((Cin) == 1)
CHK?RP Bin
decf Bin, W
else
movlw Cin
CHK?RP Bin
subwf Bin, W
endif
MOVE?AB Bout
endif
endm
AND?BCB macro Bin, Cin, Bout
if (Bout == Bin)
movlw Cin
CHK?RP Bin
andwf Bin, F
else
movlw Cin
CHK?RP Bin
andwf Bin, W
MOVE?AB Bout
endif
endm
AND?BWW macro Bin, Win, Wout
if (Wout == Win)
MOVE?BA Bin
CHK?RP Wout
andwf Wout, F
clrf Wout + 1
else
MOVE?BA Bin
CHK?RP Win
andwf Win, W
MOVE?AW Wout
endif
endm
LAND?BBW macro Bin1, Bin2, Wout
MOVE?BB Bin1, R0
MOVE?BA Bin2
L?CALL LAND
MOVE?AB Wout
movwf Wout + 1
endm
LAND_USED = 1
LAND?TBW macro Regin, Bitin, Bin, Wout
MOVE?TB Regin, Bitin, R0
MOVE?BA Bin
L?CALL LAND
MOVE?AB Wout
movwf Wout + 1
endm
LAND_USED = 1
LNOT?TB macro Regin, Bitin, Bout
CHK?RP Regin
clrf WREG
btfss Regin, Bitin
movlw -1
MOVE?AB Bout
endm
CMPT?BL macro Bin, Label
CLRWDT?
MOVE?BA Bin
BIT?GOTO 0, STATUS, Z, Label
endm
CMPT?TL macro Regin, Bitin, Label
CLRWDT?
BIT?GOTO 1, Regin, Bitin, Label
endm
CMPF?TL macro Regin, Bitin, Label
CLRWDT?
BIT?GOTO 0, Regin, Bitin, Label
endm
CMPF?WL macro Win, Label
CLRWDT?
MOVE?BA Win
iorwf (Win) + 1, W
BIT?GOTO 1, STATUS, Z, Label
endm
CMPGE?BBL macro Bin1, Bin2, Label
CLRWDT?
MOVE?BA Bin2
CHK?RP Bin1
subwf Bin1, W
BIT?GOTO 1, STATUS, C, Label
endm
CMPGT?BCL macro Bin, Cin, Label
if ((Cin) < 0)
L?GOTO Label
else
if ((Cin) < 0ffh)
CLRWDT?
MOVE?CA (Cin) + 1
CHK?RP Bin
subwf Bin, W
BIT?GOTO 1, STATUS, C, Label
endif
endif
endm
CMPGT?BWL macro Bin, Win, Label
MOVE?BW Bin, R0
MOVE?WWA Win, R1
L?CALL CMPGT
BIT?GOTO 0, STATUS, Z, Label
endm
CMPGT_USED = 1
CMPLE?BBL macro Bin1, Bin2, Label
CLRWDT?
MOVE?BA Bin1
CHK?RP Bin2
subwf Bin2, W
BIT?GOTO 1, STATUS, C, Label
endm
CMPLE?BCL macro Bin, Cin, Label
if ((Cin) >= 0ffh)
L?GOTO Label
else
if ((Cin) >= 0)
CLRWDT?
MOVE?CA (Cin) + 1
CHK?RP Bin
subwf Bin, W
BIT?GOTO 0, STATUS, C, Label
endif
endif
endm
CMPLT?BBL macro Bin1, Bin2, Label
CLRWDT?
MOVE?BA Bin2
CHK?RP Bin1
subwf Bin1, W
BIT?GOTO 0, STATUS, C, Label
endm
CMPLT?BCL macro Bin, Cin, Label
if ((Cin) >= 100h)
L?GOTO Label
else
if ((Cin) > 0)
CLRWDT?
MOVE?CA Cin
CHK?RP Bin
subwf Bin, W
BIT?GOTO 0, STATUS, C, Label
endif
endif
endm
CMPNE?BCL macro Bin, Cin, Label
if (((Cin) > -100h) & ((Cin) < 100h))
CLRWDT?
MOVE?BA Bin
sublw Cin
BIT?GOTO 0, STATUS, Z, Label
else
L?GOTO Label
endif
endm
CMPNE?TCL macro Regin, Bitin, Cin, Label
if ((Cin) == 0)
CLRWDT?
BIT?GOTO 1, Regin, Bitin, Label
else
if ((Cin) == 1)
CLRWDT?
BIT?GOTO 0, Regin, Bitin, Label
else
L?GOTO Label
endif
endif
endm
SHIFTL?BCB macro Bin, Cin, Bout
if ((Cin) == 1)
bcf STATUS, C
if ((Bout) == (Bin))
CHK?RP Bout
rlcf Bout, F
else
CHK?RP Bin
rlcf Bin, W
MOVE?AB Bout
endif
else
MOVE?BB Bin, R0
movlw Cin
L?CALL SHIFTL
MOVE?AB Bout
endif
endm
SHIFTL_USED = 1
SHIFTL?CBW macro Cin, Bin, Wout
MOVE?CW Cin, R0
MOVE?BA Bin
L?CALL SHIFTL
MOVE?AWW R0, Wout
endm
SHIFTL_USED = 1
SHIFTL?WCW macro Win, Cin, Wout
if ((Cin) == 1)
bcf STATUS, C
if ((Wout) == (Win))
CHK?RP Wout
rlcf Wout, F
rlcf Wout + 1, F
else
CHK?RP Win
rlcf Win, W
MOVE?AB Wout
CHK?RP Win
rlcf Win + 1, W
MOVE?AB Wout + 1
endif
else
MOVE?WW Win, R0
movlw Cin
L?CALL SHIFTL
MOVE?AWW R0, Wout
endif
endm
SHIFTL_USED = 1
SHIFTR?CBW macro Cin, Bin, Wout
MOVE?CW Cin, R0
MOVE?BA Bin
L?CALL SHIFTR
MOVE?AWW R0, Wout
endm
SHIFTR_USED = 1
ASM? macro
RST?RP
endm
BRANCH?BCL macro Bin, Cin, Label
local jmptbl
MOVE?BA Bin
movwf R0
sublw (Cin) - 1
BIT?GOTO 0, STATUS, C, Label
clrf PCLATH
clrf PCLATU
rlcf R0, F
rlcf PCLATH, F
movlw low (jmptbl)
addwf R0, F
movlw high (jmptbl)
addwfc PCLATH, F
movlw upper (jmptbl)
addwfc PCLATU, F
movf R0, W
movwf PCL
jmptbl
endm
BRGOTO?L macro Label
bra Label
endm
CLEAR? macro
local loop
ifdef USE_LFSR
lfsr 0, RAM_END
else
MOVE?CW RAM_END, FSR0L
endif
loop clrf POSTDEC0
movf FSR0L, W
iorwf FSR0H, W
bnz loop
clrf INDF0
endm
CLEAR_USED = 1
DDISABLE? macro
endm
DENABLE? macro
endm
END? macro
local loop
loop sleep
L?GOTO loop
endm
ENDASM? macro
endm
GOSUB?L macro Label
local dlabel
ifdef DEBUG_STACK
CHK?RP DEBUG_STACK
ifdef DEBUG_STACK_ADDR
bcf STATUS, C
rlcf DEBUG_STACK, W
addlw DEBUG_STACK_ADDR
movwf FSR0L
clrf FSR0H
movlw low (dlabel)
movwf POSTINC0
movlw high (dlabel)
movwf INDF0
endif
incf DEBUG_STACK, F
endif
L?CALL Label
dlabel
endm
GOTO?L macro Label
L?GOTO Label
endm
HIGH?T macro Regin, Bitin
MOVE?CT 1, Regin, Bitin
MOVE?CT 0, ((Regin) + 12h), Bitin
endm
LCDOUT?C macro Cin
movlw Cin
L?CALL LCDOUT
endm
LCDOUT_USED = 1
LCDOUTD?B macro Bin
MOVE?BA Bin
L?CALL LCDOUTDEC
endm
LCDOUTDEC_USED = 1
LCDOUTCOUNT?C macro Cin
MOVE?CB Cin, R4 + 1
endm
LCDOUTNUM?B macro Bin
MOVE?BW Bin, R2
endm
LCDOUTBIN? macro
MOVE?CW LCDOUTJ, R8
L?CALL SEROUT2BIN
endm
LCDOUTJ_USED = 1
SEROUT2BIN_USED = 1
LCDOUTDEC? macro
MOVE?CW LCDOUTJ, R8
L?CALL SEROUT2DEC
endm
LCDOUTJ_USED = 1
SEROUT2DEC_USED = 1
LOW?T macro Regin, Bitin
MOVE?CT 0, Regin, Bitin
MOVE?CT 0, ((Regin) + 12h), Bitin
endm
NEXT?BCL macro Bin, Cin, Label
if ((Cin) == 1)
CHK?RP Bin
incf Bin, F
else
movlw Cin
CHK?RP Bin
addwf Bin, F
endif
if ((Cin) <= 255)
BIT?GOTO 0, STATUS, C, Label
endif
endm
PAUSE?C macro Cin
if (((Cin) >> 8) == 0)
MOVE?CA Cin
L?CALL PAUSE
else
MOVE?CB (Cin) >> 8, R1 + 1
MOVE?CA low (Cin)
L?CALL PAUSEL
endif
endm
PAUSE_USED = 1
PAUSE?W macro Win
MOVE?WWA Win, R1
L?CALL PAUSEL
endm
PAUSE_USED = 1
PAUSEUS?C macro Cin
if (((Cin) >> 8) == 0)
movlw Cin
L?CALL PAUSEUS
else
MOVE?CB (Cin) >> 8, R0 + 1
MOVE?CA low (Cin)
L?CALL PAUSEUSL
endif
endm
PAUSEUS_USED = 1
READCODE?WB macro Win, Bout
MOVE?WW Win, TBLPTRL
L?CALL READCODE
MOVE?AB Bout
endm
READCODE_USED = 1
READCODE?WW macro Win, Wout
MOVE?WW Win, TBLPTRL
L?CALL READCODE
MOVE?AB Wout
MOVE?BB TABLAT, Wout + 1
endm
READCODEW_USED = 1
RETURN? macro
ifdef DEBUG_STACK
CHK?RP DEBUG_STACK
decf DEBUG_STACK, F
endif
RST?RP
return
endm
TOGGLE?T macro Regin, Bitin
BIT?FLIP Regin, Bitin
MOVE?CT 0, ((Regin) + 12h), Bitin
endm
LIST
Powered by vBulletin® Version 4.1.7 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.