;;; -*- Mode: asm; indent-tabs-mode: t; tab-width: 8 -*- PROGSTART = $080D ; just after BASIC header ;; Misc CINV = $0314 ; Hardware IRQ vector ;; CIA registers PRA = $DC00 PRB = $DC01 DDRA = $DC02 DDRB = $DC03 CIA_ICR = $DC0D PRA2 = $DD00 ;; VIC-II registers VICBASE = $D000 SPRITE_0X = VICBASE+0 SPRITE_0Y = VICBASE+1 SPRITE_1X = VICBASE+2 SPRITE_1Y = VICBASE+3 SPRITE_2X = VICBASE+4 SPRITE_2Y = VICBASE+5 SPRITE_3X = VICBASE+6 SPRITE_3Y = VICBASE+7 SPRITE_4X = VICBASE+8 SPRITE_4Y = VICBASE+9 SPRITE_5X = VICBASE+10 SPRITE_5Y = VICBASE+11 SPRITE_6X = VICBASE+12 SPRITE_6Y = VICBASE+13 SPRITE_7X = VICBASE+14 SPRITE_7Y = VICBASE+15 SPRITE_X_MSB = VICBASE+16 YSCROLL_MODE = VICBASE+17 RASTER = VICBASE+18 ;; ... SPRITE_ENABLE = VICBASE+21 XSCROLL_MODE = VICBASE+22 SPRITE_XPAND_Y = VICBASE+23 ;; ... MEMPTR = VICBASE+24 VICINT = VICBASE+25 VICINTMASK = VICBASE+26 SPRITE_BG_PRIO = VICBASE+27 ;; ... SPRITE_XPAND_X = VICBASE+29 SSCOL = VICBASE+30 ;; ... BORDER = VICBASE+32 BGCOL0 = VICBASE+33 BGCOL1 = VICBASE+34 BGCOL2 = VICBASE+35 BGCOL3 = VICBASE+36 ;; ... SPRITE_0C = VICBASE+39 SPRITE_1C = VICBASE+40 SPRITE_2C = VICBASE+41 SPRITE_3C = VICBASE+42 SPRITE_4C = VICBASE+43 SPRITE_5C = VICBASE+44 SPRITE_6C = VICBASE+45 SPRITE_7C = VICBASE+46 COLORMEM = $D800 ;; SID registers SIDBASE = $D400 SIDF1H = SIDBASE+1 SIDF1L = SIDBASE+2 SIDCR1 = SIDBASE+4 SIDAD1 = SIDBASE+5 SIDSR1 = SIDBASE+6 SIDFMV = SIDBASE+24 ;; Macros .macro padto addr .repeat (addr - *) .byte 0 .endrep .endmacro