LIST
;{
;FILE F1 = D:\Projects\BASICE~1\HPWM-D~1\HPWM-D~1.BAS
;}
;[Variable Listing]
;[End Listing]
NOLIST
LIST
LIST P = 16F877,f = INHX8M ,w = 2, x = on, r = DEC, mm = ON, n = 0, c = 255
#include E:\PBCPRO~1\CROWNH~1\INC\P16F877.lpb
XTAL = 4
_CORE = 14
_MAXRAM = 368
_RAM_END = 0
_MAXMEM = 8192
_ADC = 8
_ADC_RES = 10
_EEPROM = 256
_PAGES = 4
_BANKS = 3
RAM_BANKS = 4
_USART = 1
_USB = 0
_FLASH = 1
BANK0_START = 32
BANK0_END = 127
BANK1_START = 160
BANK1_END = 239
BANK2_START = 272
BANK2_END = 367
BANK3_START = 400
BANK3_END = 495
_SYSTEM_VARIABLE_COUNT = 11
ram_bank = 0
f@call macro dest
if (dest < 1)
if ((dest & 2048) == 0)
bcf 10,3
else
bsf 10,3
endif
if ((dest & 4096) == 0)
bcf 10,4
else
bsf 10,4
endif
else
if (dest > $)
if ((dest & 2048) == 0)
bcf 10,3
else
bsf 10,3
endif
if ((dest & 4096) == 0)
bcf 10,4
else
bsf 10,4
endif
else
if ((dest & 6144) == 0)
clrf 10
else
if ((dest & 2048) == 0)
bcf 10,3
else
bsf 10,3
endif
if ((dest & 4096) == 0)
bcf 10,4
else
bsf 10,4
endif
endif
endif
endif
call dest
endm
f@jump macro dest
if (dest < 1)
if ((dest & 2048) == 0)
bcf 10,3
else
bsf 10,3
endif
if ((dest & 4096) == 0)
bcf 10,4
else
bsf 10,4
endif
else
if (dest > $)
if ((dest & 2048) == 0)
bcf 10,3
else
bsf 10,3
endif
if ((dest & 4096) == 0)
bcf 10,4
else
bsf 10,4
endif
else
if ((dest & 6144) == 0)
clrf 10
else
if ((dest & 2048) == 0)
bcf 10,3
else
bsf 10,3
endif
if ((dest & 4096) == 0)
bcf 10,4
else
bsf 10,4
endif
endif
endif
endif
goto dest
endm
set@page macro dest
if ((dest & 2048) == 0)
bcf 10,3
else
bsf 10,3
endif
if ((dest & 4096) == 0)
bcf 10,4
else
bsf 10,4
endif
endm
s@b macro varin
if((varin & 384) == 0)
if(ram_bank == 1)
bcf 3,5
endif
if(ram_bank == 2)
bcf 3,6
endif
if(ram_bank == 3)
bcf 3,5
bcf 3,6
endif
ram_bank = 0
endif
if((varin & 384) == 128)
if(ram_bank == 0)
bsf 3,5
endif
if(ram_bank == 2)
bsf 3,5
bcf 3,6
endif
if(ram_bank == 3)
bcf 3,6
endif
ram_bank = 1
endif
if((varin & 384) == 256)
if(ram_bank == 0)
bsf 3,6
endif
if(ram_bank == 1)
bcf 3,5
bsf 3,6
endif
if(ram_bank == 3)
bcf 3,5
endif
ram_bank = 2
endif
if((varin & 384) == 384)
if(ram_bank == 0)
bsf 3,5
bsf 3,6
endif
if(ram_bank == 1)
bsf 3,6
endif
if(ram_bank == 2)
bsf 3,5
endif
ram_bank = 3
endif
endm
r@b macro
if((ram_bank & 1) != 0)
bcf 3,5
endif
if((ram_bank & 2) != 0)
bcf 3,6
endif
ram_bank = 0
endm
#include E:\PBCPRO~1\CROWNH~1\INC\REG_LD14.INC
GEN = 32
PP0 = 33
PP0H = 34
PP1 = 35
PP1H = 36
PP2 = 37
PP2H = 38
PP3 = 39
PP3H = 40
PP4H = 41
PP6H = 42
org 0
nop
movlw high Start@
movwf 10
goto Start@
org 4
rsout@
h@pwm movwf 41
movlw 66
movwf 33
movlw 15
movwf 34
call d@vd
skpnz
bcf 18,T2CKPS0
skpz
bsf 18,T2CKPS0
addlw 252
skpc
bcf 18,T2CKPS1
skpnc
bsf 18,T2CKPS1
movlw 64
movwf 33
movlw 66
movwf 34
movlw 15
movwf 37
clrf 38
btfsc 18,T2CKPS0
call hpw@2s
btfsc 18,T2CKPS1
call hpw@2s
call d@vd2
decf 33,w
bsf 3,5
movwf 146
bcf 3,5
movfw 33
movwf 35
movfw 34
movwf 36
movfw 32
movwf 39
movwf 40
incfsz 32,w
clrf 40
call m@py
movfw 38
decfsz 41,f
goto $ + 13
movwf 21
movlw 12
movwf 23
btfsc 37,7
bsf 23,5
btfsc 37,6
bsf 23,4
bsf 3,5
bcf PORTC,2
bcf 3,5
bsf 18,TMR2ON
goto i@nt
movwf 27
movlw 12
movwf 29
btfsc 37,7
bsf 29,5
btfsc 37,6
bsf 29,4
bsf 3,5
bcf PORTC,1
goto $ - 12
hpw@2s call hpw@2l
hpw@2l clrc
rrf 37,f
rrf 34,f
rrf 33,f
return
d@vd clrf 38
clrf 37
d@vd2 movlw 16
movwf 39
rlf 34,w
rlf 37,f
rlf 38,f
movfw 35
subwf 37,f
movfw 36
skpc
incfsz 36,w
subwf 38,f
skpnc
goto $ + 8
movfw 35
addwf 37,f
movfw 36
skpnc
incfsz 36,w
addwf 38,f
clrc
rlf 33,f
rlf 34,f
decfsz 39,f
goto $ - 21
movfw 33
goto i@nt
m@py movlw 16
movwf 42
clrf 34
clrf 33
rrf 40,f
rrf 39,f
skpc
goto $ + 7
movfw 35
addwf 33,f
movfw 36
skpnc
incfsz 36,w
addwf 34,f
rrf 34,f
rrf 33,f
rrf 38,f
rrf 37,f
decfsz 42,f
goto $ - 15
movfw 37
goto i@nt
i@nt bcf 3,7
i@nt2 bcf 3,5
bcf 3,6
nop
return
Start@