+ .xlist\r
\r
FALSE equ 0\r
TRUE equ NOT FALSE\r
\r
\r
-DEBUG equ true\r
-\r
banked equ true\r
\r
;-----------------------------------------------------\r
AVRINT6 equ 5Fh\r
;PMSG equ 80h\r
\r
+IDEBASE equ 60h\r
+\r
;-----------------------------------------------------\r
; Definition of (logical) top 2 memory pages\r
\r
o.in_idx equ -2\r
o.out_idx equ -1\r
\r
- .lall\r
+ ;.lall\r
\r
mkbuf macro id,name,size\r
if ((size AND (size-1)) NE 0) OR (size GT 256)\r
call _b0call\r
dw address\r
endm\r
+\r
+;-----------------------------------------------------\r
+; shift accu right logical n bits\r
+\r
+srlan macro n\r
+ if n > 7 or n < 0\r
+ xor a\r
+ exitm\r
+ endif\r
+\r
+ if n > 4\r
+ rept 8-n\r
+ rlca\r
+ endm\r
+ and (1 << (8-n)) - 1\r
+ exitm\r
+ endif\r
+\r
+ if n > 2\r
+ rept n\r
+ rrca\r
+ endm\r
+ and (1 << (8-n)) - 1\r
+ exitm\r
+ endif\r
+\r
+ rept n\r
+ srl a\r
+ endm\r
+ endm\r
+\r
+;-----------------------------------------------------\r
+; convert bit mask to bit number\r
+\r
+m2b macro name,mask\r
+ local n\r
+ n defl mask\r
+ name defl 0\r
+ rept 8\r
+ n defl n/2\r
+ if n = 0\r
+ exitm\r
+ endif\r
+ name defl name+1\r
+ endm\r
+ endm\r
+\r
+ .list\r