2018-02-03 03:24:50 +00:00
|
|
|
; Value macros
|
|
|
|
|
|
|
|
percent EQUS "* $ff / 100"
|
|
|
|
|
2017-12-14 05:36:24 +00:00
|
|
|
; Constant data (db, dw, dl) macros
|
|
|
|
|
|
|
|
dwb: MACRO
|
|
|
|
dw \1
|
|
|
|
db \2
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
dbw: MACRO
|
|
|
|
db \1
|
|
|
|
dw \2
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
dbbw: MACRO
|
|
|
|
db \1, \2
|
|
|
|
dw \3
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
dbww: MACRO
|
|
|
|
db \1
|
|
|
|
dw \2, \3
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
dbwww: MACRO
|
|
|
|
db \1
|
|
|
|
dw \2, \3, \4
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
dn: MACRO ; nybbles
|
2018-02-03 03:45:42 +00:00
|
|
|
rept _NARG / 2
|
2017-12-14 05:36:24 +00:00
|
|
|
db ((\1) << 4) | (\2)
|
2020-04-04 18:42:31 +00:00
|
|
|
shift 2
|
2018-02-03 03:45:42 +00:00
|
|
|
endr
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
dc: MACRO ; "crumbs"
|
2018-02-03 03:45:42 +00:00
|
|
|
rept _NARG / 4
|
2017-12-14 05:36:24 +00:00
|
|
|
db ((\1) << 6) | ((\2) << 4) | ((\3) << 2) | (\4)
|
2020-04-04 18:42:31 +00:00
|
|
|
shift 4
|
2018-02-03 03:45:42 +00:00
|
|
|
endr
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
dx: MACRO
|
|
|
|
x = 8 * ((\1) - 1)
|
2018-02-03 03:45:42 +00:00
|
|
|
rept \1
|
2017-12-14 05:36:24 +00:00
|
|
|
db ((\2) >> x) & $ff
|
2020-03-21 18:01:05 +00:00
|
|
|
x = x - 8
|
2018-02-03 03:45:42 +00:00
|
|
|
endr
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
dt: MACRO ; three-byte (big-endian)
|
|
|
|
dx 3, \1
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
dd: MACRO ; four-byte (big-endian)
|
|
|
|
dx 4, \1
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
bigdw: MACRO ; big-endian word
|
2018-09-09 22:25:43 +00:00
|
|
|
dx 2, \1 ; db HIGH(\1), LOW(\1)
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
dba: MACRO ; dbw bank, address
|
2018-02-03 03:45:42 +00:00
|
|
|
rept _NARG
|
2017-12-14 05:36:24 +00:00
|
|
|
dbw BANK(\1), \1
|
|
|
|
shift
|
2018-02-03 03:45:42 +00:00
|
|
|
endr
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
dab: MACRO ; dwb address, bank
|
2018-02-03 03:45:42 +00:00
|
|
|
rept _NARG
|
2017-12-14 05:36:24 +00:00
|
|
|
dwb \1, BANK(\1)
|
|
|
|
shift
|
2018-02-03 03:45:42 +00:00
|
|
|
endr
|
2017-12-28 21:31:16 +00:00
|
|
|
ENDM
|
2017-12-14 05:36:24 +00:00
|
|
|
|
|
|
|
dba_pic: MACRO ; dbw bank, address
|
|
|
|
db BANK(\1) - PICS_FIX
|
|
|
|
dw \1
|
|
|
|
ENDM
|
|
|
|
|
2018-02-04 02:11:55 +00:00
|
|
|
bcd: MACRO
|
|
|
|
rept _NARG
|
|
|
|
dn ((\1) % 100) / 10, (\1) % 10
|
|
|
|
shift
|
|
|
|
endr
|
|
|
|
ENDM
|
|
|
|
|
|
|
|
sine_table: MACRO
|
2018-02-03 18:26:34 +00:00
|
|
|
; \1 samples of sin(x) from x=0 to x<32768 (pi radians)
|
|
|
|
x = 0
|
2018-02-03 03:45:42 +00:00
|
|
|
rept \1
|
|
|
|
dw (sin(x) + (sin(x) & $ff)) >> 8 ; round up
|
2018-02-03 18:26:34 +00:00
|
|
|
x = x + DIV(32768, \1) ; a circle has 65536 "degrees"
|
2018-02-03 03:45:42 +00:00
|
|
|
endr
|
2017-12-14 05:36:24 +00:00
|
|
|
ENDM
|