From a337813409a8f1818ffe220d90c864a68606c789 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Tue, 8 Oct 2019 23:04:26 -0400 Subject: [PATCH] ds: add escape sequence --- demosplash/Makefile | 3 +- demosplash/asteroid.inc | 24 + demosplash/demosplash.s | 11 +- demosplash/earth.inc | 38 + demosplash/escape.s | 1420 +++++++++++ demosplash/gr_putsprite_fast.s | 75 + demosplash/random.data | Bin 0 -> 256 bytes demosplash/sprites_screen.s | 4031 ++++++++++++++++++++++++++++++++ demosplash/sprites_table.s | 34 + demosplash/text_print.s | 59 + demosplash/zp.inc | 35 +- 11 files changed, 5718 insertions(+), 12 deletions(-) create mode 100644 demosplash/asteroid.inc create mode 100644 demosplash/earth.inc create mode 100644 demosplash/escape.s create mode 100644 demosplash/gr_putsprite_fast.s create mode 100644 demosplash/random.data create mode 100644 demosplash/sprites_screen.s create mode 100644 demosplash/sprites_table.s create mode 100644 demosplash/text_print.s diff --git a/demosplash/Makefile b/demosplash/Makefile index c59d7197..315a887e 100644 --- a/demosplash/Makefile +++ b/demosplash/Makefile @@ -37,7 +37,8 @@ demosplash.o: demosplash.s \ graphics/sprites/alien.inc graphics/sprites/astronaut.inc \ dya_space_demo.pt3 appleII_40_96.inc \ book.s book_40_48d.inc \ - missing.s + missing.s \ + escape.s ca65 -o demosplash.o demosplash.s -l demosplash.lst ##### diff --git a/demosplash/asteroid.inc b/demosplash/asteroid.inc new file mode 100644 index 00000000..1d690061 --- /dev/null +++ b/demosplash/asteroid.inc @@ -0,0 +1,24 @@ +; all hard-coded 3x2 + +asteroid_lookup: + .word asteroid_p1,explode0_p1,explode1_p1,explode2_p1,void_p1 + +asteroid_p1: +.byte $50,$85,$80 +.byte $05,$88,$08 + +explode0_p1: +.byte $d0,$95,$d0 +.byte $0d,$59,$0d + +explode1_p1: +.byte $0d,$90,$0d +.byte $d0,$09,$d0 + +explode2_p1: +.byte $05,$80,$05 +.byte $50,$08,$50 + +void_p1: +.byte $00,$00,$00 +.byte $00,$00,$00 diff --git a/demosplash/demosplash.s b/demosplash/demosplash.s index f944348a..d0a72b80 100644 --- a/demosplash/demosplash.s +++ b/demosplash/demosplash.s @@ -60,7 +60,7 @@ demosplash2019: ; missing scene ;=========================== - jsr missing_intro +; jsr missing_intro ;=========================== ; starbase scene @@ -68,6 +68,12 @@ demosplash2019: ; jsr starbase + ;=========================== + ; escape scene + ;=========================== + + jsr escape + ;=========================== ; book scene ;=========================== @@ -113,6 +119,9 @@ wait_until_keypressed: ; Starbase .include "starbase.s" +; escape +.include "escape.s" + ; book .include "book.s" diff --git a/demosplash/earth.inc b/demosplash/earth.inc new file mode 100644 index 00000000..b016fe8c --- /dev/null +++ b/demosplash/earth.inc @@ -0,0 +1,38 @@ +earth_low: .byte $28 ; ysize=48 + .byte $A0,$FF,$00, $A0,$FF,$00, $A0,$FF,$00, $A0,$27,$00, $50, $00, $30 + .byte $08, $A3,$00, $15, $00,$00, $01, $A4,$11, $10 + .byte $18, $D5, $50, $05, $00, $01, $05 + .byte $18, $00, $8A, $08, $50,$50, $A7,$00, $70 + .byte $50, $58, $75, $27,$27, $75, $22, $A3,$00 + .byte $55, $50, $00, $15, $89, $81, $11 + .byte $51, $05, $51, $91, $01, $00, $55 + .byte $11, $40, $01, $05, $11, $00, $55 + .byte $05, $55, $50, $55, $A4,$00, $27, $07 + .byte $72,$72, $77, $07, $00, $20, $00,$00, $50 + .byte $15, $10, $00, $01, $11, $00, $51 + .byte $15, $05,$05, $11,$11, $05, $11, $08, $10 + .byte $55,$55, $08, $85, $55,$55, $05, $55, $50 + .byte $A4,$00, $07, $22, $72, $70, $22,$22, $A4,$00 + .byte $44, $11,$11, $00,$00, $11, $91, $11, $88 + .byte $15, $11, $19, $50, $15, $11,$11, $01 + .byte $80, $55, $08, $00, $A5,$55, $50, $55,$55, $05 + .byte $A1 +earth_high: .byte $28 ; ysize=48 + .byte $A0,$FF,$00, $A0,$FF,$00, $A0,$FF,$00, $A0,$26,$00, $50,$50, $70, $C5 + .byte $7A, $22,$22, $88, $48, $88, $55, $0E + .byte $A4,$44, $45, $4A, $F5, $84, $88, $55 + .byte $54, $58, $4A, $88, $5A,$5A, $85, $80 + .byte $50, $80, $A5,$00, $D0, $F5, $FF, $8F + .byte $F8,$F8, $8F, $88, $22,$22, $55, $88,$88, $85 + .byte $48, $5E, $54, $44, $8E, $58, $84 + .byte $EE, $54, $88,$88, $44, $95, $54, $88 + .byte $EE, $05, $A6,$88, $80,$80, $00, $88, $78 + .byte $8F,$8F, $8A, $78, $77, $87, $22,$22, $88 + .byte $48,$48, $58, $54, $44, $5A, $84, $48 + .byte $58, $D8, $44,$44, $88, $44, $5A, $45 + .byte $88,$88, $5A, $58, $88,$88, $58, $A6,$88, $78 + .byte $88, $85, $87, $58, $88, $A4,$22, $77 + .byte $44,$44, $88, $55, $44, $E4, $44, $5A + .byte $48, $44, $4E, $80, $48, $D4,$D4, $84 + .byte $55, $88, $5A, $58, $A9,$88 + .byte $A1 diff --git a/demosplash/escape.s b/demosplash/escape.s new file mode 100644 index 00000000..1777e522 --- /dev/null +++ b/demosplash/escape.s @@ -0,0 +1,1420 @@ +; Uses the 40x48d page1/page2 every-1-scanline pageflip mode + +; self modifying code to get some extra colors (pseudo 40x192 mode) + +; by deater (Vince Weaver) + + +; TODO: +; end level after a certain number of points +; track score properly + + +escape: + + ;=================== + ; init screen + jsr TEXT + jsr HOME + bit KEYRESET + + ;=================== + ; init vars + + lda #0 + sta DRAW_PAGE + sta ZERO + sta YADD + sta LEVEL_DONE + sta FIRE_X + sta ASTEROID_SUBX + sta ASTEROID_EXPLODE + sta GAME_OVER + sta FIRE + sta BLAST1 + sta BLAST2 + sta SPRITE_XPOS + sta SPRITE_YPOS + sta FIRE_Y + + lda #$44 + sta GREEN0 + sta GREEN4 + lda #$cc + sta GREEN1 + sta GREEN3 + lda #$ff + sta GREEN2 + + lda #36 + sta ASTEROID_X + + lda #12 + sta ASTEROID_Y + + lda #64 + sta YPOS + + lda #1 + sta ASTEROID_SPEED + sta XPOS + + ;============================= + ; Load graphic page0 + + lda #earth_low + sta GBASH + + lda #$c ; load to $c00 + jsr load_rle_gr + + + lda #4 + sta DRAW_PAGE + + jsr gr_copy_to_current ; copy to page1 + + ; GR part + bit PAGE1 + bit LORES ; 4 + bit SET_GR ; 4 + bit FULLGR ; 4 + + ;============================= + ; Load graphic page1 + + lda #earth_high + sta GBASH + lda #$c ; load to $c00 + jsr load_rle_gr + + lda #0 + sta DRAW_PAGE + + jsr gr_copy_to_current + + lda #8 + sta DRAW_PAGE + + lda #score_text2 + sta OUTH + + jsr move_and_print + + +; ; GR part + bit PAGE0 + + ;============================== + ; setup graphics for vapor lock + ;============================== + + jsr vapor_lock + + ; vapor lock returns with us at beginning of hsync in line + ; 114 (7410 cycles), so with 5070 lines to go + + ; GR part + bit LORES ; 4 + bit SET_GR ; 4 + bit FULLGR ; 4 + + jsr gr_copy_to_current ; 6+ 9292 + + ; 5070 + 4550 = 9620 + ; 9292 + ; 12 + ; 6 + ; ==== + ; 310 + + ; - 3 for jmp + ; 307 + + ; Try X=9 Y=6 cycles=307 + + ldy #6 ; 2 +loopQQ: ldx #9 ; 2 +loopRR: dex ; 2 + bne loopRR ; 2nt/3 + dey ; 2 + bne loopQQ ; 2nt/3 + + jmp sprites_display_loop ; 3 + +.align $100 + + ;================================================ + ; Display Loop + ;================================================ + ; each scan line 65 cycles + ; 1 cycle each byte (40cycles) + 25 for horizontal + ; Total of 12480 cycles to draw screen + ; Vertical blank = 4550 cycles (70 scan lines) + ; Total of 17030 cycles to get back to where was + + ; We want to alternate between page1 and page2 every 65 cycles + ; vblank = 4550 cycles to do scrolling + + +sprites_display_loop: + +.include "sprites_screen.s" + + ;====================================================== + ; We have 4550 cycles in the vblank, use them wisely + ;====================================================== + + ; 4550 -- VBLANK + ;-1835 -- draw ship (131*14)+1 + ; -829 -- erase ship (100*8)+(14*2)+1 + ; -167 -- erase fire + ; -348 -- erase asteroid + ; -31 -- move ship + ; -17 -- move fire + ; -56 -- collide asteroid/fire + ; -40 -- collide ship + ; -35 -- move asteroid + ; -436 -- draw fire + ; -337 -- draw asteroid + ; -61 -- keypress + ; -33 -- handle fire press + ; -51 -- exploding asteroid + ; -47 -- sparkle + ; -36 -- blast (18+18) + ; -25 -- loop + ; -3 -- alignment + ;======= + ; 163 + ; -40 nop sled + + + ;================ + ; erase old ship + + ldy YPOS ; 3 ; 0 + jsr erase_line ; 6+94 + + iny ; 2 ; 1 + jsr erase_line ; 6+94 + + iny ; 2 ; 2 + jsr erase_line ; 6+94 + + iny ; 2 ; 3 + jsr erase_line ; 6+94 + + ; note, to be complete should erase all these + ; only an issue if moving up/down really fast + + iny ; 2 ; 4 +; jsr erase_line ; 6+94 + iny ; 2 ; 5 +; jsr erase_line ; 6+94 + iny ; 2 ; 6 +; jsr erase_line ; 6+94 + iny ; 2 ; 7 +; jsr erase_line ; 6+94 + iny ; 2 ; 8 +; jsr erase_line ; 6+94 + iny ; 2 ; 9 +; jsr erase_line ; 6+94 + iny ; 2 ; 10 + jsr erase_line ; 6+94 + iny ; 2 ; 11 + jsr erase_line ; 6+94 + iny ; 2 ; 12 + jsr erase_line ; 6+94 + iny ; 2 ; 13 + jsr erase_line ; 6+94 + + ;========================== + ; erase the fire + ;========================== + + ldy FIRE_Y ; 3 + iny ; 2 + jsr erase_fire ; 6+71 + iny ; 2 + iny ; 2 + iny ; 2 + iny ; 2 + jsr erase_fire ; 6+71 + ;======== + ; 167 + +; jsr erase_fire ; 6+71 +; jsr erase_fire ; 6+71 +; jsr erase_fire ; 6+71 + ;==== + ; 388 + + + + + ;===================== + ; erase the asteroid + + lda #$0 ; 2 + sta DRAW_PAGE ; 3 + + lda #void_p1 ; 2 + sta INH ; 3 + lda ASTEROID_X ; 3 + sta SPRITE_XPOS ; 3 + lda ASTEROID_Y ; 3 + sta SPRITE_YPOS ; 3 + jsr put_sprite_fast ; 6+304 + ;====== + ; 337 + + + ;========================== + ; move the asteroid + ;========================== + ; move none: 16 [12+7] = 35 + ; move ok: 16+12 [7] = 35 + ; move off screen: 16+12+7 = 35 + ; game over: who cares +move_asteroid: + clc ; 2 + lda ASTEROID_SUBX ; 3 + adc ASTEROID_SPEED ; 3 + sta ASTEROID_SUBX ; 3 + cmp #$12 ; 2 + bcc no_new_asteroid2; 3 blt + ;======== + ; 16 + + ; -1 + lda #0 ; 2 + sta ASTEROID_SUBX ; 3 + dec ASTEROID_X ; 5 + bne no_new_asteroid ; 3 + ;===== + ; 12 +new_asteroid: + ; -1 + lda #7 ; 2 + sta ASTEROID_EXPLODE ; 3 + jmp done_move_asteroid ; 3 + ;=========== + ; 7 + +no_new_asteroid2: + inc TEMP ; 5 + inc TEMP ; 5 + nop ; 2 + +no_new_asteroid: + nop ; 2 + nop ; 2 + lda TEMP ; 3 + ;==== + ; 7 + +done_move_asteroid: + + + + ;========================== + ; move the fire + ;========================== + ; no-fire: 6+7 = 13 [4] + ; too-far: 6+4+7 = 17 + ; moving: 6+4+7 = 17 + + + lda FIRE_X ; 3 + beq no_fire ; 3 + ; -1 + cmp #39 ; 2 + bcs kill_fire ; bge 3 + ; -1 + inc FIRE_X ; 5 + jmp done_move_fire ; 3 +no_fire: + nop + nop +kill_fire: + nop ; 2 + lda #0 ; 2 + sta FIRE_X ; 3 +done_move_fire: + + + ;========================== + ; move the ship + ; in bounds: 14+5 = 19 [12] + ; too small: 14+10 = 24 [7] + ; too big: 14+5+12 = 31 + + clc ; 2 + lda YPOS ; 3 + adc YADD ; 3 + sta YPOS ; 3 + bpl not_minus ; 3 + +minus: + ; -1 + lda #$0 ; 2 + sta YPOS ; 3 + sta YADD ; 3 + jmp done_move_delay_7 ; 3 +not_minus: + cmp #104 ; 2 + bcc done_move_delay_12 ; blt ; 3 + ; -1 + lda #$0 ; 2 + sta YADD ; 3 + lda #103 ; 2 + sta YPOS ; 3 + jmp done_move ; 3 +done_move_delay_12: + lda TEMP ; 3 + nop ; 2 +done_move_delay_7: + lda TEMP ; 3 + nop ; 2 + nop ; 2 + +done_move: + + +nop_sled: + nop + nop + nop + nop + nop + + nop + nop + nop + nop + nop + + nop + nop + nop + nop + nop + + nop + nop + nop + nop + nop + + + + ;========================== + ; collision (fire/asteroid) + ;========================== + ; none: 13 [20+23] + ; xmatch not y: 13+20 [23] + ; explosion: 13+20+23 = 56 + + sec ; 2 + lda ASTEROID_X ; 3 + sbc FIRE_X ; 3 + cmp #252 ; 2 + bcc no_collide_x ; 3 ; blt + ;=== + ; 13 + + ; -1 + lda FIRE_Y ; 3 + lsr ; 2 + lsr ; 2 + clc ; 2 + adc #$9 ; 2 + sec ; 2 + sbc ASTEROID_Y ; 3 + cmp #4 ; 2 + bcs no_collide_y ; 3 ; bge + ;=== + ; 20 + + ; -1 + lda #1 ; 2 + sta ASTEROID_EXPLODE ; 3 + + inc ASTEROID_SPEED ; 5 + + lda #0 ; 2 + sta FIRE_X ; 3 + + inc $41D ; 6 + + jmp collision_done ; 3 + ;==== + ; 23 +no_collide_x: + inc TEMP ; 5 + inc TEMP ; 5 + inc TEMP ; 5 + inc TEMP ; 5 + +no_collide_y: + inc TEMP ; 5 + inc TEMP ; 5 + inc TEMP ; 5 + inc TEMP ; 5 + lda TEMP ; 3 + +collision_done: + + + ;========================== + ; collision (ship/asteroid) + ;========================== + ; none: 8 [20+12] + ; xmatch not y: 8+20 [12] + ; explosion: 8+20+12 = 40 +ship_collision: + + lda ASTEROID_X ; 3 + cmp #$8 ; 2 + bcs no_ship_collide_x ; 3 ; blt + ;=== + ; 8 + + ; -1 + lda YPOS ; 3 + lsr ; 2 + lsr ; 2 + clc ; 2 + adc #10 ; 2 + sec ; 2 + sbc ASTEROID_Y ; 3 + cmp #6 ; 2 + bcs no_ship_collide_y ; 3 ; bge + ;=== + ; 20 + + ; -1 + lda #1 ; 2 + sta ASTEROID_EXPLODE ; 3 + + lda #1 ; 2 + sta LEVEL_DONE ; 3 + + lda #1 + sta GAME_OVER + + jmp ship_collision_done ; 3 + ;==== + ; 12 +no_ship_collide_x: + inc TEMP ; 5 + inc TEMP ; 5 + inc TEMP ; 5 + inc TEMP ; 5 + +no_ship_collide_y: + lda TEMP ; 3 + lda TEMP ; 3 + lda TEMP ; 3 + lda TEMP ; 3 + +ship_collision_done: + + + + + ;========================== + ; draw the ship + + ldy YPOS ; 3 + + ; line 0 + ldx #0 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 129 + + ; line 1 + iny ; 2 + ldx #7 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + ; line 2 + iny ; 2 + ldx #14 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + ; line 3 + iny ; 2 + ldx #21 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + ; line 4 + iny ; 2 + ldx #28 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + ; line 5 + iny ; 2 + ldx #35 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + ; line 6 + iny ; 2 + ldx #42 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + ; line 7 + iny ; 2 + ldx #49 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + ; line 8 + iny ; 2 + ldx #56 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + ; line 9 + iny ; 2 + ldx #63 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + ; line 10 + iny ; 2 + ldx #70 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + ; line 11 + iny ; 2 + ldx #77 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + ; line 12 + iny ; 2 + ldx #84 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + ; line 13 + iny ; 2 + ldx #91 ; 2 + jsr sprite_line ; 6+121 + ;==== + ; 131 + + + + + ;========================== + ; draw the fire + ;========================== + ; 6+(61*7)+3 = 436 + + lda FIRE_X ; 3 + beq no_draw_fire ; 3 + ; -1 + ldy FIRE_Y ; 3 + + ; line 0 + ldx #0 ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + + ; line 1 + iny ; 2 + ldx #1 ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + + ; line 2 + iny ; 2 + ldx #2 ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + + ; line 3 + iny ; 2 + ldx #3 ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + + ; line 4 + iny ; 2 + ldx #4 ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + + ; line 5 + iny ; 2 + ldx #5 ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + + ; line 6 + iny ; 2 + ldx #5 ; zero again ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + + jmp done_draw_fire ; 3 + +no_draw_fire: + + ; want 436, have 6+1+(61*7)=434 + + nop ; 2 + + ldy FIRE_Y ; 3 + + ; line 0 + ldx #5 ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61+1 + + ; line 1 + iny ; 2 + ldx #5 ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + + ; line 2 + iny ; 2 + ldx #5 ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + + ; line 3 + iny ; 2 + ldx #5 ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + + ; line 4 + iny ; 2 + ldx #5 ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + + ; line 5 + iny ; 2 + ldx #5 ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + + ; line 6 + iny ; 2 + ldx #5 ; zero again ; 2 + jsr fire_line ; 6+51 + ;==== + ; 61 + +done_draw_fire: + + + ;===================== + ; draw the asteroid +draw_asteroid: + lda #$0 ; 2 + sta DRAW_PAGE ; 3 + + lda ASTEROID_EXPLODE ; 3 + and #$fe ; 2 + tax ; 2 + lda asteroid_lookup,X ; 4 + sta INL ; 3 + lda asteroid_lookup+1,X ; 4 + sta INH ; 3 + lda ASTEROID_X ; 3 + sta SPRITE_XPOS ; 3 + lda ASTEROID_Y ; 3 + sta SPRITE_YPOS ; 3 + jsr put_sprite_fast ; 6+304 + ;====== + ; 348 + + + ;================= + ; BLAST1 + ;================= + ; blast1: 6+7+5 = 18 + ; noblast1: 6+5+[7] + + lda BLAST1 ; 3 + beq no_blast1d ; 3 +blast1: + ; -1 + inc ZERO ; 5 + jmp no_blast1 ; 3 +no_blast1d: + lda TEMP ; 3 + nop ; 2 + nop ; 2 + +no_blast1: + lda #0 ; 2 + sta BLAST1 ; 3 + + + ;================= + ; BLAST2 + ;================= + ; blast2: 6+7+5 = 18 + ; noblast1: 6+5+[7] + + lda BLAST2 ; 3 + beq no_blast2d ; 3 +blast2: + ; -1 + lda #0 ; 2 + sta ZERO ; 3 + jmp no_blast2 ; 3 +no_blast2d: + lda TEMP + nop + nop +no_blast2: + lda #0 ; 2 + sta BLAST2 ; 3 + + + + + ;================== + ; sparkle flame + ;================== + ; 14+20+13 = 47 + +sparkle_flame: + inc FRAME ; 5 + lda FRAME ; 3 + and #$7 ; 2 + asl ; 2 + tay ; 2 + + ; Set up jump table that runs same speed on 6502 and 65c02 + lda jump_table+1,y ; 4 + pha ; 3 + lda jump_table,y ; 4 + pha ; 3 + rts ; 6 + ;============= + ; 20 +jump_table: + .word (sparkle1-1),(sparkle_motion-1),(sparkle2-1),(sparkle_motion-1) + .word (sparkle3-1),(sparkle_motion-1),(sparkle4-1),(sparkle_motion-1) + +sparkle1: + lda ship_sprite_l9+0 ; 4 + eor #$88 ; 2 + sta ship_sprite_l9+0 ; 4 + jmp done_sparkle ; 3 + +sparkle2: + lda ship_sprite_l9+1 ; 4 + eor #$88 ; 2 + sta ship_sprite_l9+1 ; 4 + jmp done_sparkle ; 3 + +sparkle3: + lda ship_sprite_l8+0 ; 4 + eor #$44 ; 2 + sta ship_sprite_l8+0 ; 4 + jmp done_sparkle ; 3 + +sparkle4: + lda ship_sprite_l10+0 ; 4 + eor #$44 ; 2 + sta ship_sprite_l10+0 ; 4 + jmp done_sparkle ; 3 + +sparkle_motion: + lda TEMP ; 3 + lda TEMP ; 3 + nop + nop + jmp done_sparkle ; 3 + +done_sparkle: + + + + +pad_time: + + + ;============================ + ; WAIT for VBLANK to finish + ;============================ + +escape_wait_loop: + + ; Try X=11 Y=2 cycles=123 + + ldy #2 ; 2 +loopY: ldx #11 ; 2 +loopZ: dex ; 2 + bne loopZ ; 2nt/3 + dey ; 2 + bne loopY ; 2nt/3 +escape_wait_loop_end: + + ;=============== + ; check keypress + + jsr escape_handle_keypress ; 6+55 + + ;================================= + ; handle fire + ;================================= + ; FIRE: 6+5+17+5 = 33 + ; FIRE but OUT: 6+5+5 = 16 [17] + ; no FIRE: 6+5 = 11 [22] + ; urgh pain to make this invariant + + lda FIRE ; 3 + beq no_firing2 ; 3 + ; -1 + + lda FIRE_X ; 3 + bne no_firing ; 3 + ; -1 + + clc ; 2 + lda YPOS ; 3 + adc #10 ; 2 + sta FIRE_Y ; 3 + + lda #7 ; 2 + sta FIRE_X ; 3 + + jmp really_no_firing ; 3 + +no_firing2: + inc TEMP ; 5 +no_firing: + inc TEMP ; 5 + inc TEMP ; 5 + inc TEMP ; 5 + nop ; 2 + +really_no_firing: + lda #0 ; 2 + sta FIRE ; 3 + + +alignment: + jmp blah ; 3 +.align $100 + +blah: + ;================================= + ; handle exploding asteroid + ;================================= + ; none: 6 [12+33] + ; exploding: 6+12 [33] + ; done: 6+12+33 = 51 + + lda ASTEROID_EXPLODE ; 3 + beq asteroid_no_explode ; 3 + ;== + ; 6 + + ; -1 + inc ASTEROID_EXPLODE ; 5 + lda ASTEROID_EXPLODE ; 3 + cmp #9 ; 2 + bne asteroid_not_done ; 3 + ;=== + ; 12 +asteroid_done: + ; -1 + lda #0 ; 2 + sta ASTEROID_EXPLODE ; 3 + inc RANDOM_PTR ; 5 + ldy RANDOM_PTR ; 3 + lda random_values,Y ; 4 + and #$1e ; 2 + clc ; 2 + adc #$4 ; 2 + sta ASTEROID_Y ; 3 + lda #36 ; 2 + sta ASTEROID_X ; 3 + jmp asteroid_done_done ; 3 + ;==== + ;33 +asteroid_no_explode: + inc TEMP ; 5 + inc TEMP ; 5 + nop ; 2 +asteroid_not_done: + inc TEMP ; 5 + inc TEMP ; 5 + inc TEMP ; 5 + inc TEMP ; 5 + inc TEMP ; 5 + inc TEMP ; 5 + lda TEMP ; 3 +asteroid_done_done: + + + ;========================= + ; check for end + ;========================= + ; not done = 6+3 = 9 + [16] = 25 + ; done = who cares + ; dying = 6+4+12+3 = 25 + + lda LEVEL_DONE ; 3 + beq final_loop_short ; 3 + + ;-1 + cmp #1 ;2 + beq done_level ;3 + + ;-1 + dec LEVEL_DONE ; 5 + inc XPOS ; 5 + jmp final_loop ; 3 + ;===== + ; 12 + +final_loop_short: + inc TEMP + inc TEMP + lda TEMP + lda TEMP +final_loop: + + jmp sprites_display_loop ; 3 + +done_level: + rts + + + + + + +.align $100 + ;======================= + ; handle keypress + ;======================= + ; separate function so we an align to avoid branches + ; crossing page boundaries + ; + ; NONE = 6+7 = 13 [42] + ; ESC = doesn't matter + ; ' ' = 6+6+9+5+7 = 33 [22] [[20]] + ; '.' = 6+6+9+5+5+7 = 48 [17] [[5]] + ; ',' = 6+6+9+5+5+5+7 = 43 [12] [[5]] + ; 'A' = 6+6+9+5+5+5+7+7 = 50 [5] [[7]] + ; 'Z' = 6+6+9+5+5+5+7+5+7 = 55 [0] [[5]] + ; unkno= 6+6+9+5+5+5+7+5+3+[4] = 55 [0] +escape_handle_keypress: + lda KEYPRESS ; 4 + bpl key_delay_42 ; 3 + ; -1 + + bit KEYRESET ; clear strobe ; 4 + + cmp #27+$80 ; 2 + bne key_not_escape ; 3 + + lda #32 + sta LEVEL_DONE + + rts + +key_not_escape: + + cmp #' '+$80 ; 2 + bne key_not_space ; 3 + ; -1 + lda #$ff ; 2 + sta FIRE ; 3 + jmp key_delay_22 ; 3 + +key_not_space: + cmp #'.'+$80 ; 2 + bne key_not_period ; 3 + ; -1 + lda #1 ; 2 + sta BLAST1 ; 3 + jmp key_delay_17 ; 3 + +key_not_period: + cmp #','+$80 ; 2 + bne key_not_comma ; 3 + ; -1 + lda #1 ; 2 + sta BLAST2 ; 3 + jmp key_delay_12 ; 3 + +key_not_comma: + and #$5f ; make uppercase ; 2 + + cmp #'A' ; 2 + bne key_not_a ; 3 + ; -1 + dec YADD ; 5 + jmp key_delay_5 ; 3 + +key_not_a: + cmp #'Z' ; 2 + bne key_not_z ; 3 + ; -1 + inc YADD ; 5 + jmp keypress_done ; 3 + +key_not_z: + nop ; 2 + nop ; 2 + jmp keypress_done ; 3 + +key_delay_42: + inc TEMP ; 5 + dec TEMP ; 5 + inc TEMP ; 5 + dec TEMP ; 5 + +key_delay_22: + nop ; 2 + lda TEMP ; 3 +key_delay_17: + nop ; 2 + lda TEMP ; 3 +key_delay_12: + nop ; 2 + nop ; 2 + lda TEMP ; 3 + +key_delay_5: + nop ; 2 + lda TEMP ; 3 + +keypress_done: + rts ; 6 + + + + ;======================== + ; Draw a line of a sprite + ;======================== + ; Y = y value + ; x = location in sprite + ; 17+11+(7*12)+3+6 = 121 +sprite_line: + sty TEMPY ; 3 + + lda y_lookup_l,Y ; 4 + sta OUTL ; 3 + lda y_lookup_h,Y ; 4 + sta OUTH ; 3 + ;======= + ; 17 + + ; XPOS + lda XPOS ; 3 + ldy #0 ; 2 + sta (OUTL),Y ; 6 + ;======= + ; 11 + ; COL0 + ldy #2 ; 2 + lda ship_sprite+0,X ; 4 + sta (OUTL),Y ; 6 + ;======= + ; 12 + + ; COL1 + ldy #7 ; 2 + lda ship_sprite+1,X ; 4 + sta (OUTL),Y ; 6 + ;======= + ; 12 + + ; COL2 + ldy #12 ; 2 + lda ship_sprite+2,X ; 4 + sta (OUTL),Y ; 6 + ;======= + ; 12 + + ; COL3 + ldy #17 ; 2 + lda ship_sprite+3,X ; 4 + sta (OUTL),Y ; 6 + ;======= + ; 12 + + ; COL4 + ldy #22 ; 2 + lda ship_sprite+4,X ; 4 + sta (OUTL),Y ; 6 + ;======= + ; 12 + + ; COL5 + ldy #27 ; 2 + lda ship_sprite+5,X ; 4 + sta (OUTL),Y ; 6 + ;======= + ; 12 + + ; COL6 + ldy #32 ; 2 + lda ship_sprite+6,X ; 4 + sta (OUTL),Y ; 6 + ;======= + ; 12 + + ldy TEMPY ; 3 + rts ; 6 + + + ;======================== + ; Erase a line of a sprite + ;======================== + ; Y = y value + ; 17+10+2+(7*8)+3+6 = 94 +erase_line: + sty TEMPY ; 3 + + lda y_lookup_l,Y ; 4 + sta OUTL ; 3 + lda y_lookup_h,Y ; 4 + sta OUTH ; 3 + ;======= + ; 17 + + ; XPOS + lda #1 ; xpos=1 ; 2 + ldy #0 ; 2 + sta (OUTL),Y ; 6 + ;======= + ; 10 + + lda #0 ; 2 + + ; COL0 + ldy #2 ; 2 + sta (OUTL),Y ; 6 + ; COL1 + ldy #7 ; 2 + sta (OUTL),Y ; 6 + ; COL2 + ldy #12 ; 2 + sta (OUTL),Y ; 6 + ; COL3 + ldy #17 ; 2 + sta (OUTL),Y ; 6 + ; COL4 + ldy #22 ; 2 + sta (OUTL),Y ; 6 + ; COL5 + ldy #27 ; 2 + sta (OUTL),Y ; 6 + ; COL6 + ldy #32 ; 2 + sta (OUTL),Y ; 6 + + ldy TEMPY ; 3 + rts ; 6 + + ;======================== + ; Draw a line of a fire + ;======================== + ; Y = y value + ; x = location in sprite + ; 17+11+14+9 = 51 +fire_line: + sty TEMPY ; 3 + + lda y_lookup_l,Y ; 4 + sta OUTL ; 3 + lda y_lookup_h,Y ; 4 + sta OUTH ; 3 + ;======= + ; 17 + + ; 38/40 + ; XPOS + lda FIRE_X ; 3 + ldy #37 ; 2 + sta (OUTL),Y ; 6 + ;======= + ; 11 + ; COL0 + ldy #39 ; 2 + txa ; 2 + ora #$80 ; 2 + tax ; 2 + sta (OUTL),Y ; 6 + ;======= + ; 14 + + ldy TEMPY ; 3 + rts ; 6 + ;======= + ; 9 + + + ;======================== + ; Erase a line of a fire + ;======================== + ; Y = y value + ; 31+29+11 = 71 +erase_fire: + sty TEMPY ; 3 + + tya ; 2 + lsr ; 2 + lsr ; 2 + and #$fe ; 2 + clc ; 2 + adc #$8 ; 2 + + tay ; 2 + + lda gr_offsets,Y ; 4 + sta OUTL ; 3 + lda gr_offsets+1,Y ; 4 + sta OUTH ; 3 + ;======= + ; 31 + + ldy FIRE_X ; 3 + lda #0 ; 2 + sta (OUTL),Y ; 6 + lda #$4 ; 2 + clc ; 2 + adc OUTH ; 3 + sta OUTH ; 3 + lda #0 ; 2 + sta (OUTL),Y ; 6 + ;====== + ; 29 + + ; ldx in smc should already be + ; set to value from last draw? + + ; COL0 +; ldy #6 ; 2 +; lda (OUTL),Y ; 5+ +; sta fz_smc+1 ; 5 +; iny ; 2 +; lda (OUTL),Y ; 5+ +; sta fz_smc+2 ; 5 +; lda #0 ; 2 +;fz_smc: +; sta $c00,Y ; 5 + ;======= + ; 31 + + ldy TEMPY ; 3 + iny ; 2 + rts ; 6 + ;======= + ; 11 + + +.align $100 +random_values: +.incbin "random.data" +.include "sprites_table.s" +.include "text_print.s" +.align $100 +.include "gr_putsprite_fast.s" + +;.assert >gr_offsets = >gr_offsets_done, error, "gr_offsets crosses page" +.assert >escape_wait_loop = >(escape_wait_loop_end-1), error, "escape_wait_loop crosses page" + +.include "earth.inc" + +.align $100 + +ship_sprite: + ; l0: 0 1 2 3 4 5 6 + .byte $00,$00,$00,$ff,$00,$00,$00 + ; l1: + .byte $00,$00,$00,$ff,$00,$00,$00 + ; l2: + .byte $00,$00,$00,$ff,$00,$00,$00 + ; l3: + .byte $00,$00,$00,$ff,$00,$00,$00 + ; l4: + .byte $00,$00,$00,$77,$00,$00,$00 + ; l5: + .byte $00,$00,$00,$ff,$ff,$22,$00 + ; l6: + .byte $00,$00,$22,$ff,$ff,$22,$00 + ; l7: + .byte $00,$dd,$66,$11,$22,$22,$00 + ; l8: +ship_sprite_l8: + .byte $dd,$99,$22,$44,$44,$22,$22 + ; l9: +ship_sprite_l9: + .byte $99,$11,$66,$ff,$ff,$22,$22 + ; l10: +ship_sprite_l10: + .byte $dd,$99,$22,$ff,$ff,$22,$22 + ; l11: + .byte $00,$dd,$66,$77,$77,$77,$ff + ; l12: + .byte $00,$00,$22,$ff,$ff,$77,$ff + ; l13: + .byte $00,$00,$00,$ff,$ff,$77,$ff + + +.include "asteroid.inc" + + +score_text2: +.byte 0,0 +.asciiz "LEVEL:3 LIVES:1 SCORE:000000 HI:001978" + diff --git a/demosplash/gr_putsprite_fast.s b/demosplash/gr_putsprite_fast.s new file mode 100644 index 00000000..2e3878bc --- /dev/null +++ b/demosplash/gr_putsprite_fast.s @@ -0,0 +1,75 @@ + ;============================================= + ; put_sprite_fast + ;============================================= + ; Sprite to display in INH,INL + ; Assumes sprite size is 3x2 + ; Location is SPRITE_XPOS,SPRITE_YPOS + ; Note, only works if SPRITE_YPOS is multiple of two + + ; NO TRANSPARENCY + + ; 13+ Y*(33+17+X*(18+13) + 5 + ; 18 + Y*(50+31*X) + + ; so if 3*2 = 304 cycles?? + +put_sprite_fast: + ldy #0 ; 2 + lda #2 ; ysize is 2 ; 2 + sta CV ; ysize is in CV ; 3 + + lda SPRITE_YPOS ; make a copy of ypos ; 3 + sta TEMPY ; as we modify it ; 3 + ;=========== + ; 13 +put_sprite_loop_fast: + sty TEMP ; save sprite pointer ; 3 + ldy TEMPY ; 3 + lda gr_offsets,Y ; lookup low-res memory address ; 4 + clc ; 2 + adc SPRITE_XPOS ; add in xpos ; 3 + sta OUTL ; store out low byte of addy ; 3 + lda gr_offsets+1,Y ; look up high byte ; 4 + adc DRAW_PAGE ; ; 3 + sta OUTH ; and store it out ; 3 + ldy TEMP ; restore sprite pointer ; 3 + + ; OUTH:OUTL now points at right place + + ldx #3 ; load xsize into x ; 2 + ;=========== + ; 33 +put_sprite_pixel_fast: + lda (INL),Y ; get sprite colors ; 5 + iny ; increment sprite pointer ; 2 + + sty TEMP ; save sprite pointer ; 3 + ldy #$0 ; 2 + sta (OUTL),Y ; and write it out ; 6 + ;============ + ; 18 + +put_sprite_done_draw_fast: + + ldy TEMP ; restore sprite pointer ; 3 + + inc OUTL ; increment output pointer ; 5 + dex ; decrement x counter ; 2 + bne put_sprite_pixel_fast ; if not done, keep looping ; 3 + ;============== + ; 13 + + ; -1 + inc TEMPY ; each line has two y vars ; 5 + inc TEMPY ; 5 + dec CV ; decemenet total y count ; 5 + bne put_sprite_loop_fast ; loop if not done ; 3 + ;============== + ; 17 + + ; -1 + rts ; return ; 6 + + + + diff --git a/demosplash/random.data b/demosplash/random.data new file mode 100644 index 0000000000000000000000000000000000000000..d2e3622b8b78f9585b02e3b991a42ad757da6f94 GIT binary patch literal 256 zcmV+b0ssE*PP)LBfe=%u12}Y!Kp;Y4t>Vr&;7?(BhotuH6guSsAuGZ%PkctLC@gQ& zSq`d{sus*7Wm-`mD^Cj8Hg5_fCzar~4yp{T{j*r8j&MCUQ@`|!9YS9jJV1iW={-H1 zEtv2f9qoTEWAci*j10&_?8MUu0|kKkZxah0t1lVMl{EoLc_K5D(E}wE2zol?m8Cxl zGHD2q`l2i-r%ujcds&2jxV(B3qd_@%mJv8viS$2zP4pA*an(}Av1`v~l|k)12rR%H zMf#LPUDBw|yOK1poQ5G6n*haZ$E0TvK#0i5h&%E7FngRMWUw*`|DQor2ca4s4~U9Y GyI18%hH;Vr literal 0 HcmV?d00001 diff --git a/demosplash/sprites_screen.s b/demosplash/sprites_screen.s new file mode 100644 index 00000000..b6c2577f --- /dev/null +++ b/demosplash/sprites_screen.s @@ -0,0 +1,4031 @@ +; 0 + bit PAGE0 ; 4 +smc000: bit SET_TEXT ; 4 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 1 + bit PAGE0 ; 4 +smc001: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 2 + bit PAGE0 ; 4 +smc002: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 3 + bit PAGE0 ; 4 +smc003: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 4 + bit PAGE0 ; 4 +smc004: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 5 + bit PAGE0 ; 4 +smc005: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 6 + bit PAGE0 ; 4 +smc006: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 7 + bit PAGE0 ; 4 +smc007: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 8 + bit PAGE0 ; 4 +smc008: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 9 + bit PAGE0 ; 4 +smc009: bit SET_GR ; 4 + + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 10 + bit PAGE0 ; 4 +smc010: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 11 + bit PAGE1 ; 4 +smc011: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 12 + bit PAGE0 ; 4 +smc012: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 13 + bit PAGE1 ; 4 +smc013: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 14 + bit PAGE0 ; 4 +smc014: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 15 + bit PAGE1 ; 4 +smc015: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 16 + bit PAGE0 ; 4 +smc016: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 17 + bit PAGE1 ; 4 +smc017: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 18 + bit PAGE0 ; 4 +smc018: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 19 + bit PAGE1 ; 4 +smc019: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 20 + bit PAGE0 ; 4 +smc020: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 21 + bit PAGE1 ; 4 +smc021: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 22 + bit PAGE0 ; 4 +smc022: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 23 + bit PAGE1 ; 4 +smc023: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 24 + bit PAGE0 ; 4 +smc024: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 25 + bit PAGE1 ; 4 +smc025: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 26 + bit PAGE0 ; 4 +smc026: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 27 + bit PAGE1 ; 4 +smc027: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 28 + bit PAGE0 ; 4 +smc028: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 29 + bit PAGE1 ; 4 +smc029: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 30 + bit PAGE0 ; 4 +smc030: ldx #$01 ; 2 + lda #$00 ; 2 + sta $980,X ; 5 + lda #$00 ; 2 + sta $981,X ; 5 + lda #$00 ; 2 + sta $982,X ; 5 + lda #$00 ; 2 + sta $983,X ; 5 + lda #$00 ; 2 + sta $984,X ; 5 + lda #$00 ; 2 + sta $985,X ; 5 + lda #$00 ; 2 + sta $986,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $980,X ; 5 + +; 31 + bit PAGE1 ; 4 +smc031: ldx #$01 ; 2 + lda #$00 ; 2 + sta $600,X ; 5 + lda #$00 ; 2 + sta $601,X ; 5 + lda #$00 ; 2 + sta $602,X ; 5 + lda #$00 ; 2 + sta $603,X ; 5 + lda #$00 ; 2 + sta $604,X ; 5 + lda #$00 ; 2 + sta $605,X ; 5 + lda #$00 ; 2 + sta $606,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $600,X ; 5 + +; 32 + bit PAGE0 ; 4 +smc032: ldx #$01 ; 2 + lda #$00 ; 2 + sta $a00,X ; 5 + lda #$00 ; 2 + sta $a01,X ; 5 + lda #$00 ; 2 + sta $a02,X ; 5 + lda #$00 ; 2 + sta $a03,X ; 5 + lda #$00 ; 2 + sta $a04,X ; 5 + lda #$00 ; 2 + sta $a05,X ; 5 + lda #$00 ; 2 + sta $a06,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $a00,X ; 5 + +; 33 + bit PAGE1 ; 4 +smc033: ldx #$01 ; 2 + lda #$00 ; 2 + sta $600,X ; 5 + lda #$00 ; 2 + sta $601,X ; 5 + lda #$00 ; 2 + sta $602,X ; 5 + lda #$00 ; 2 + sta $603,X ; 5 + lda #$00 ; 2 + sta $604,X ; 5 + lda #$00 ; 2 + sta $605,X ; 5 + lda #$00 ; 2 + sta $606,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $600,X ; 5 + +; 34 + bit PAGE0 ; 4 +smc034: ldx #$01 ; 2 + lda #$00 ; 2 + sta $a00,X ; 5 + lda #$00 ; 2 + sta $a01,X ; 5 + lda #$00 ; 2 + sta $a02,X ; 5 + lda #$00 ; 2 + sta $a03,X ; 5 + lda #$00 ; 2 + sta $a04,X ; 5 + lda #$00 ; 2 + sta $a05,X ; 5 + lda #$00 ; 2 + sta $a06,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $a00,X ; 5 + +; 35 + bit PAGE1 ; 4 +smc035: ldx #$01 ; 2 + lda #$00 ; 2 + sta $600,X ; 5 + lda #$00 ; 2 + sta $601,X ; 5 + lda #$00 ; 2 + sta $602,X ; 5 + lda #$00 ; 2 + sta $603,X ; 5 + lda #$00 ; 2 + sta $604,X ; 5 + lda #$00 ; 2 + sta $605,X ; 5 + lda #$00 ; 2 + sta $606,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $600,X ; 5 + +; 36 + bit PAGE0 ; 4 +smc036: ldx #$01 ; 2 + lda #$00 ; 2 + sta $a00,X ; 5 + lda #$00 ; 2 + sta $a01,X ; 5 + lda #$00 ; 2 + sta $a02,X ; 5 + lda #$00 ; 2 + sta $a03,X ; 5 + lda #$00 ; 2 + sta $a04,X ; 5 + lda #$00 ; 2 + sta $a05,X ; 5 + lda #$00 ; 2 + sta $a06,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $a00,X ; 5 + +; 37 + bit PAGE1 ; 4 +smc037: ldx #$01 ; 2 + lda #$00 ; 2 + sta $600,X ; 5 + lda #$00 ; 2 + sta $601,X ; 5 + lda #$00 ; 2 + sta $602,X ; 5 + lda #$00 ; 2 + sta $603,X ; 5 + lda #$00 ; 2 + sta $604,X ; 5 + lda #$00 ; 2 + sta $605,X ; 5 + lda #$00 ; 2 + sta $606,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $600,X ; 5 + +; 38 + bit PAGE0 ; 4 +smc038: ldx #$01 ; 2 + lda #$00 ; 2 + sta $a00,X ; 5 + lda #$00 ; 2 + sta $a01,X ; 5 + lda #$00 ; 2 + sta $a02,X ; 5 + lda #$00 ; 2 + sta $a03,X ; 5 + lda #$00 ; 2 + sta $a04,X ; 5 + lda #$00 ; 2 + sta $a05,X ; 5 + lda #$00 ; 2 + sta $a06,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $a00,X ; 5 + +; 39 + bit PAGE1 ; 4 +smc039: ldx #$01 ; 2 + lda #$00 ; 2 + sta $680,X ; 5 + lda #$00 ; 2 + sta $681,X ; 5 + lda #$00 ; 2 + sta $682,X ; 5 + lda #$00 ; 2 + sta $683,X ; 5 + lda #$00 ; 2 + sta $684,X ; 5 + lda #$00 ; 2 + sta $685,X ; 5 + lda #$00 ; 2 + sta $686,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $680,X ; 5 + +; 40 + bit PAGE0 ; 4 +smc040: ldx #$01 ; 2 + lda #$00 ; 2 + sta $a80,X ; 5 + lda #$00 ; 2 + sta $a81,X ; 5 + lda #$00 ; 2 + sta $a82,X ; 5 + lda #$00 ; 2 + sta $a83,X ; 5 + lda #$00 ; 2 + sta $a84,X ; 5 + lda #$00 ; 2 + sta $a85,X ; 5 + lda #$00 ; 2 + sta $a86,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $a80,X ; 5 + +; 41 + bit PAGE1 ; 4 +smc041: ldx #$01 ; 2 + lda #$00 ; 2 + sta $680,X ; 5 + lda #$00 ; 2 + sta $681,X ; 5 + lda #$00 ; 2 + sta $682,X ; 5 + lda #$00 ; 2 + sta $683,X ; 5 + lda #$00 ; 2 + sta $684,X ; 5 + lda #$00 ; 2 + sta $685,X ; 5 + lda #$00 ; 2 + sta $686,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $680,X ; 5 + +; 42 + bit PAGE0 ; 4 +smc042: ldx #$01 ; 2 + lda #$00 ; 2 + sta $a80,X ; 5 + lda #$00 ; 2 + sta $a81,X ; 5 + lda #$00 ; 2 + sta $a82,X ; 5 + lda #$00 ; 2 + sta $a83,X ; 5 + lda #$00 ; 2 + sta $a84,X ; 5 + lda #$00 ; 2 + sta $a85,X ; 5 + lda #$00 ; 2 + sta $a86,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $a80,X ; 5 + +; 43 + bit PAGE1 ; 4 +smc043: ldx #$01 ; 2 + lda #$00 ; 2 + sta $680,X ; 5 + lda #$00 ; 2 + sta $681,X ; 5 + lda #$00 ; 2 + sta $682,X ; 5 + lda #$00 ; 2 + sta $683,X ; 5 + lda #$00 ; 2 + sta $684,X ; 5 + lda #$00 ; 2 + sta $685,X ; 5 + lda #$00 ; 2 + sta $686,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $680,X ; 5 + +; 44 + bit PAGE0 ; 4 +smc044: ldx #$01 ; 2 + lda #$00 ; 2 + sta $a80,X ; 5 + lda #$00 ; 2 + sta $a81,X ; 5 + lda #$00 ; 2 + sta $a82,X ; 5 + lda #$00 ; 2 + sta $a83,X ; 5 + lda #$00 ; 2 + sta $a84,X ; 5 + lda #$00 ; 2 + sta $a85,X ; 5 + lda #$00 ; 2 + sta $a86,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $a80,X ; 5 + +; 45 + bit PAGE1 ; 4 +smc045: ldx #$01 ; 2 + lda #$00 ; 2 + sta $680,X ; 5 + lda #$00 ; 2 + sta $681,X ; 5 + lda #$00 ; 2 + sta $682,X ; 5 + lda #$00 ; 2 + sta $683,X ; 5 + lda #$00 ; 2 + sta $684,X ; 5 + lda #$00 ; 2 + sta $685,X ; 5 + lda #$00 ; 2 + sta $686,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $680,X ; 5 + +; 46 + bit PAGE0 ; 4 +smc046: ldx #$01 ; 2 + lda #$00 ; 2 + sta $a80,X ; 5 + lda #$00 ; 2 + sta $a81,X ; 5 + lda #$00 ; 2 + sta $a82,X ; 5 + lda #$00 ; 2 + sta $a83,X ; 5 + lda #$00 ; 2 + sta $a84,X ; 5 + lda #$00 ; 2 + sta $a85,X ; 5 + lda #$00 ; 2 + sta $a86,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $a80,X ; 5 + +; 47 + bit PAGE1 ; 4 +smc047: ldx #$01 ; 2 + lda #$00 ; 2 + sta $700,X ; 5 + lda #$00 ; 2 + sta $701,X ; 5 + lda #$00 ; 2 + sta $702,X ; 5 + lda #$00 ; 2 + sta $703,X ; 5 + lda #$00 ; 2 + sta $704,X ; 5 + lda #$00 ; 2 + sta $705,X ; 5 + lda #$00 ; 2 + sta $706,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $700,X ; 5 + +; 48 + bit PAGE0 ; 4 +smc048: ldx #$01 ; 2 + lda #$00 ; 2 + sta $b00,X ; 5 + lda #$00 ; 2 + sta $b01,X ; 5 + lda #$00 ; 2 + sta $b02,X ; 5 + lda #$00 ; 2 + sta $b03,X ; 5 + lda #$00 ; 2 + sta $b04,X ; 5 + lda #$00 ; 2 + sta $b05,X ; 5 + lda #$00 ; 2 + sta $b06,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $b00,X ; 5 + +; 49 + bit PAGE1 ; 4 +smc049: ldx #$01 ; 2 + lda #$00 ; 2 + sta $700,X ; 5 + lda #$00 ; 2 + sta $701,X ; 5 + lda #$00 ; 2 + sta $702,X ; 5 + lda #$00 ; 2 + sta $703,X ; 5 + lda #$00 ; 2 + sta $704,X ; 5 + lda #$00 ; 2 + sta $705,X ; 5 + lda #$00 ; 2 + sta $706,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $700,X ; 5 + +; 50 + bit PAGE0 ; 4 +smc050: ldx #$01 ; 2 + lda #$00 ; 2 + sta $b00,X ; 5 + lda #$00 ; 2 + sta $b01,X ; 5 + lda #$00 ; 2 + sta $b02,X ; 5 + lda #$00 ; 2 + sta $b03,X ; 5 + lda #$00 ; 2 + sta $b04,X ; 5 + lda #$00 ; 2 + sta $b05,X ; 5 + lda #$00 ; 2 + sta $b06,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $b00,X ; 5 + +; 51 + bit PAGE1 ; 4 +smc051: ldx #$01 ; 2 + lda #$00 ; 2 + sta $700,X ; 5 + lda #$00 ; 2 + sta $701,X ; 5 + lda #$00 ; 2 + sta $702,X ; 5 + lda #$00 ; 2 + sta $703,X ; 5 + lda #$00 ; 2 + sta $704,X ; 5 + lda #$00 ; 2 + sta $705,X ; 5 + lda #$00 ; 2 + sta $706,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $700,X ; 5 + +; 52 + bit PAGE0 ; 4 +smc052: ldx #$01 ; 2 + lda #$00 ; 2 + sta $b00,X ; 5 + lda #$00 ; 2 + sta $b01,X ; 5 + lda #$00 ; 2 + sta $b02,X ; 5 + lda #$00 ; 2 + sta $b03,X ; 5 + lda #$00 ; 2 + sta $b04,X ; 5 + lda #$00 ; 2 + sta $b05,X ; 5 + lda #$00 ; 2 + sta $b06,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $b00,X ; 5 + +; 53 + bit PAGE1 ; 4 +smc053: ldx #$01 ; 2 + lda #$00 ; 2 + sta $700,X ; 5 + lda #$00 ; 2 + sta $701,X ; 5 + lda #$00 ; 2 + sta $702,X ; 5 + lda #$00 ; 2 + sta $703,X ; 5 + lda #$00 ; 2 + sta $704,X ; 5 + lda #$00 ; 2 + sta $705,X ; 5 + lda #$00 ; 2 + sta $706,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $700,X ; 5 + +; 54 + bit PAGE0 ; 4 +smc054: ldx #$01 ; 2 + lda #$00 ; 2 + sta $b00,X ; 5 + lda #$00 ; 2 + sta $b01,X ; 5 + lda #$00 ; 2 + sta $b02,X ; 5 + lda #$00 ; 2 + sta $b03,X ; 5 + lda #$00 ; 2 + sta $b04,X ; 5 + lda #$00 ; 2 + sta $b05,X ; 5 + lda #$00 ; 2 + sta $b06,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $b00,X ; 5 + +; 55 + bit PAGE1 ; 4 +smc055: ldx #$01 ; 2 + lda #$00 ; 2 + sta $780,X ; 5 + lda #$00 ; 2 + sta $781,X ; 5 + lda #$00 ; 2 + sta $782,X ; 5 + lda #$00 ; 2 + sta $783,X ; 5 + lda #$00 ; 2 + sta $784,X ; 5 + lda #$00 ; 2 + sta $785,X ; 5 + lda #$00 ; 2 + sta $786,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $780,X ; 5 + +; 56 + bit PAGE0 ; 4 +smc056: ldx #$01 ; 2 + lda #$00 ; 2 + sta $b80,X ; 5 + lda #$00 ; 2 + sta $b81,X ; 5 + lda #$00 ; 2 + sta $b82,X ; 5 + lda #$00 ; 2 + sta $b83,X ; 5 + lda #$00 ; 2 + sta $b84,X ; 5 + lda #$00 ; 2 + sta $b85,X ; 5 + lda #$00 ; 2 + sta $b86,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $b80,X ; 5 + +; 57 + bit PAGE1 ; 4 +smc057: ldx #$01 ; 2 + lda #$00 ; 2 + sta $780,X ; 5 + lda #$00 ; 2 + sta $781,X ; 5 + lda #$00 ; 2 + sta $782,X ; 5 + lda #$00 ; 2 + sta $783,X ; 5 + lda #$00 ; 2 + sta $784,X ; 5 + lda #$00 ; 2 + sta $785,X ; 5 + lda #$00 ; 2 + sta $786,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $780,X ; 5 + +; 58 + bit PAGE0 ; 4 +smc058: ldx #$01 ; 2 + lda #$00 ; 2 + sta $b80,X ; 5 + lda #$00 ; 2 + sta $b81,X ; 5 + lda #$00 ; 2 + sta $b82,X ; 5 + lda #$00 ; 2 + sta $b83,X ; 5 + lda #$00 ; 2 + sta $b84,X ; 5 + lda #$00 ; 2 + sta $b85,X ; 5 + lda #$00 ; 2 + sta $b86,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $b80,X ; 5 + +; 59 + bit PAGE1 ; 4 +smc059: ldx #$01 ; 2 + lda #$00 ; 2 + sta $780,X ; 5 + lda #$00 ; 2 + sta $781,X ; 5 + lda #$00 ; 2 + sta $782,X ; 5 + lda #$00 ; 2 + sta $783,X ; 5 + lda #$00 ; 2 + sta $784,X ; 5 + lda #$00 ; 2 + sta $785,X ; 5 + lda #$00 ; 2 + sta $786,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $780,X ; 5 + +; 60 + bit PAGE0 ; 4 +smc060: ldx #$01 ; 2 + lda #$00 ; 2 + sta $b80,X ; 5 + lda #$00 ; 2 + sta $b81,X ; 5 + lda #$00 ; 2 + sta $b82,X ; 5 + lda #$00 ; 2 + sta $b83,X ; 5 + lda #$00 ; 2 + sta $b84,X ; 5 + lda #$00 ; 2 + sta $b85,X ; 5 + lda #$00 ; 2 + sta $b86,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $b80,X ; 5 + +; 61 + bit PAGE1 ; 4 +smc061: ldx #$01 ; 2 + lda #$00 ; 2 + sta $780,X ; 5 + lda #$00 ; 2 + sta $781,X ; 5 + lda #$00 ; 2 + sta $782,X ; 5 + lda #$00 ; 2 + sta $783,X ; 5 + lda #$00 ; 2 + sta $784,X ; 5 + lda #$00 ; 2 + sta $785,X ; 5 + lda #$00 ; 2 + sta $786,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $780,X ; 5 + +; 62 + bit PAGE0 ; 4 +smc062: ldx #$01 ; 2 + lda #$00 ; 2 + sta $b80,X ; 5 + lda #$00 ; 2 + sta $b81,X ; 5 + lda #$00 ; 2 + sta $b82,X ; 5 + lda #$00 ; 2 + sta $b83,X ; 5 + lda #$00 ; 2 + sta $b84,X ; 5 + lda #$00 ; 2 + sta $b85,X ; 5 + lda #$00 ; 2 + sta $b86,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $b80,X ; 5 + +; 63 + bit PAGE1 ; 4 +smc063: ldx #$01 ; 2 + lda #$00 ; 2 + sta $428,X ; 5 + lda #$00 ; 2 + sta $429,X ; 5 + lda #$00 ; 2 + sta $42a,X ; 5 + lda #$00 ; 2 + sta $42b,X ; 5 + lda #$00 ; 2 + sta $42c,X ; 5 + lda #$00 ; 2 + sta $42d,X ; 5 + lda #$00 ; 2 + sta $42e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $428,X ; 5 + +; 64 + bit PAGE0 ; 4 +smc064: ldx #$01 ; 2 + lda #$00 ; 2 + sta $828,X ; 5 + lda #$00 ; 2 + sta $829,X ; 5 + lda #$00 ; 2 + sta $82a,X ; 5 + lda #$00 ; 2 + sta $82b,X ; 5 + lda #$00 ; 2 + sta $82c,X ; 5 + lda #$00 ; 2 + sta $82d,X ; 5 + lda #$00 ; 2 + sta $82e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $828,X ; 5 + +; 65 + bit PAGE1 ; 4 +smc065: ldx #$01 ; 2 + lda #$00 ; 2 + sta $428,X ; 5 + lda #$00 ; 2 + sta $429,X ; 5 + lda #$00 ; 2 + sta $42a,X ; 5 + lda #$00 ; 2 + sta $42b,X ; 5 + lda #$00 ; 2 + sta $42c,X ; 5 + lda #$00 ; 2 + sta $42d,X ; 5 + lda #$00 ; 2 + sta $42e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $428,X ; 5 + +; 66 + bit PAGE0 ; 4 +smc066: ldx #$01 ; 2 + lda #$00 ; 2 + sta $828,X ; 5 + lda #$00 ; 2 + sta $829,X ; 5 + lda #$00 ; 2 + sta $82a,X ; 5 + lda #$00 ; 2 + sta $82b,X ; 5 + lda #$00 ; 2 + sta $82c,X ; 5 + lda #$00 ; 2 + sta $82d,X ; 5 + lda #$00 ; 2 + sta $82e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $828,X ; 5 + +; 67 + bit PAGE1 ; 4 +smc067: ldx #$01 ; 2 + lda #$00 ; 2 + sta $428,X ; 5 + lda #$00 ; 2 + sta $429,X ; 5 + lda #$00 ; 2 + sta $42a,X ; 5 + lda #$00 ; 2 + sta $42b,X ; 5 + lda #$00 ; 2 + sta $42c,X ; 5 + lda #$00 ; 2 + sta $42d,X ; 5 + lda #$00 ; 2 + sta $42e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $428,X ; 5 + +; 68 + bit PAGE0 ; 4 +smc068: ldx #$01 ; 2 + lda #$00 ; 2 + sta $828,X ; 5 + lda #$00 ; 2 + sta $829,X ; 5 + lda #$00 ; 2 + sta $82a,X ; 5 + lda #$00 ; 2 + sta $82b,X ; 5 + lda #$00 ; 2 + sta $82c,X ; 5 + lda #$00 ; 2 + sta $82d,X ; 5 + lda #$00 ; 2 + sta $82e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $828,X ; 5 + +; 69 + bit PAGE1 ; 4 +smc069: ldx #$01 ; 2 + lda #$00 ; 2 + sta $428,X ; 5 + lda #$00 ; 2 + sta $429,X ; 5 + lda #$00 ; 2 + sta $42a,X ; 5 + lda #$00 ; 2 + sta $42b,X ; 5 + lda #$00 ; 2 + sta $42c,X ; 5 + lda #$00 ; 2 + sta $42d,X ; 5 + lda #$00 ; 2 + sta $42e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $428,X ; 5 + +; 70 + bit PAGE0 ; 4 +smc070: ldx #$01 ; 2 + lda #$00 ; 2 + sta $828,X ; 5 + lda #$00 ; 2 + sta $829,X ; 5 + lda #$00 ; 2 + sta $82a,X ; 5 + lda #$00 ; 2 + sta $82b,X ; 5 + lda #$00 ; 2 + sta $82c,X ; 5 + lda #$00 ; 2 + sta $82d,X ; 5 + lda #$00 ; 2 + sta $82e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $828,X ; 5 + +; 71 + bit PAGE1 ; 4 +smc071: ldx #$01 ; 2 + lda #$00 ; 2 + sta $4a8,X ; 5 + lda #$00 ; 2 + sta $4a9,X ; 5 + lda #$00 ; 2 + sta $4aa,X ; 5 + lda #$00 ; 2 + sta $4ab,X ; 5 + lda #$00 ; 2 + sta $4ac,X ; 5 + lda #$00 ; 2 + sta $4ad,X ; 5 + lda #$00 ; 2 + sta $4ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $4a8,X ; 5 + +; 72 + bit PAGE0 ; 4 +smc072: ldx #$01 ; 2 + lda #$00 ; 2 + sta $8a8,X ; 5 + lda #$00 ; 2 + sta $8a9,X ; 5 + lda #$00 ; 2 + sta $8aa,X ; 5 + lda #$00 ; 2 + sta $8ab,X ; 5 + lda #$00 ; 2 + sta $8ac,X ; 5 + lda #$00 ; 2 + sta $8ad,X ; 5 + lda #$00 ; 2 + sta $8ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $8a8,X ; 5 + +; 73 + bit PAGE1 ; 4 +smc073: ldx #$01 ; 2 + lda #$00 ; 2 + sta $4a8,X ; 5 + lda #$00 ; 2 + sta $4a9,X ; 5 + lda #$00 ; 2 + sta $4aa,X ; 5 + lda #$00 ; 2 + sta $4ab,X ; 5 + lda #$00 ; 2 + sta $4ac,X ; 5 + lda #$00 ; 2 + sta $4ad,X ; 5 + lda #$00 ; 2 + sta $4ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $4a8,X ; 5 + +; 74 + bit PAGE0 ; 4 +smc074: ldx #$01 ; 2 + lda #$00 ; 2 + sta $8a8,X ; 5 + lda #$00 ; 2 + sta $8a9,X ; 5 + lda #$00 ; 2 + sta $8aa,X ; 5 + lda #$00 ; 2 + sta $8ab,X ; 5 + lda #$00 ; 2 + sta $8ac,X ; 5 + lda #$00 ; 2 + sta $8ad,X ; 5 + lda #$00 ; 2 + sta $8ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $8a8,X ; 5 + +; 75 + bit PAGE1 ; 4 +smc075: ldx #$01 ; 2 + lda #$00 ; 2 + sta $4a8,X ; 5 + lda #$00 ; 2 + sta $4a9,X ; 5 + lda #$00 ; 2 + sta $4aa,X ; 5 + lda #$00 ; 2 + sta $4ab,X ; 5 + lda #$00 ; 2 + sta $4ac,X ; 5 + lda #$00 ; 2 + sta $4ad,X ; 5 + lda #$00 ; 2 + sta $4ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $4a8,X ; 5 + +; 76 + bit PAGE0 ; 4 +smc076: ldx #$01 ; 2 + lda #$00 ; 2 + sta $8a8,X ; 5 + lda #$00 ; 2 + sta $8a9,X ; 5 + lda #$00 ; 2 + sta $8aa,X ; 5 + lda #$00 ; 2 + sta $8ab,X ; 5 + lda #$00 ; 2 + sta $8ac,X ; 5 + lda #$00 ; 2 + sta $8ad,X ; 5 + lda #$00 ; 2 + sta $8ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $8a8,X ; 5 + +; 77 + bit PAGE1 ; 4 +smc077: ldx #$01 ; 2 + lda #$00 ; 2 + sta $4a8,X ; 5 + lda #$00 ; 2 + sta $4a9,X ; 5 + lda #$00 ; 2 + sta $4aa,X ; 5 + lda #$00 ; 2 + sta $4ab,X ; 5 + lda #$00 ; 2 + sta $4ac,X ; 5 + lda #$00 ; 2 + sta $4ad,X ; 5 + lda #$00 ; 2 + sta $4ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $4a8,X ; 5 + +; 78 + bit PAGE0 ; 4 +smc078: ldx #$01 ; 2 + lda #$00 ; 2 + sta $8a8,X ; 5 + lda #$00 ; 2 + sta $8a9,X ; 5 + lda #$00 ; 2 + sta $8aa,X ; 5 + lda #$00 ; 2 + sta $8ab,X ; 5 + lda #$00 ; 2 + sta $8ac,X ; 5 + lda #$00 ; 2 + sta $8ad,X ; 5 + lda #$00 ; 2 + sta $8ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $8a8,X ; 5 + +; 79 + bit PAGE1 ; 4 +smc079: ldx #$01 ; 2 + lda #$00 ; 2 + sta $528,X ; 5 + lda #$00 ; 2 + sta $529,X ; 5 + lda #$00 ; 2 + sta $52a,X ; 5 + lda #$00 ; 2 + sta $52b,X ; 5 + lda #$00 ; 2 + sta $52c,X ; 5 + lda #$00 ; 2 + sta $52d,X ; 5 + lda #$00 ; 2 + sta $52e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $528,X ; 5 + +; 80 + bit PAGE0 ; 4 +smc080: ldx #$01 ; 2 + lda #$00 ; 2 + sta $928,X ; 5 + lda #$00 ; 2 + sta $929,X ; 5 + lda #$00 ; 2 + sta $92a,X ; 5 + lda #$00 ; 2 + sta $92b,X ; 5 + lda #$00 ; 2 + sta $92c,X ; 5 + lda #$00 ; 2 + sta $92d,X ; 5 + lda #$00 ; 2 + sta $92e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $928,X ; 5 + +; 81 + bit PAGE1 ; 4 +smc081: ldx #$01 ; 2 + lda #$00 ; 2 + sta $528,X ; 5 + lda #$00 ; 2 + sta $529,X ; 5 + lda #$00 ; 2 + sta $52a,X ; 5 + lda #$00 ; 2 + sta $52b,X ; 5 + lda #$00 ; 2 + sta $52c,X ; 5 + lda #$00 ; 2 + sta $52d,X ; 5 + lda #$00 ; 2 + sta $52e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $528,X ; 5 + +; 82 + bit PAGE0 ; 4 +smc082: ldx #$01 ; 2 + lda #$00 ; 2 + sta $928,X ; 5 + lda #$00 ; 2 + sta $929,X ; 5 + lda #$00 ; 2 + sta $92a,X ; 5 + lda #$00 ; 2 + sta $92b,X ; 5 + lda #$00 ; 2 + sta $92c,X ; 5 + lda #$00 ; 2 + sta $92d,X ; 5 + lda #$00 ; 2 + sta $92e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $928,X ; 5 + +; 83 + bit PAGE1 ; 4 +smc083: ldx #$01 ; 2 + lda #$00 ; 2 + sta $528,X ; 5 + lda #$00 ; 2 + sta $529,X ; 5 + lda #$00 ; 2 + sta $52a,X ; 5 + lda #$00 ; 2 + sta $52b,X ; 5 + lda #$00 ; 2 + sta $52c,X ; 5 + lda #$00 ; 2 + sta $52d,X ; 5 + lda #$00 ; 2 + sta $52e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $528,X ; 5 + +; 84 + bit PAGE0 ; 4 +smc084: ldx #$01 ; 2 + lda #$00 ; 2 + sta $928,X ; 5 + lda #$00 ; 2 + sta $929,X ; 5 + lda #$00 ; 2 + sta $92a,X ; 5 + lda #$00 ; 2 + sta $92b,X ; 5 + lda #$00 ; 2 + sta $92c,X ; 5 + lda #$00 ; 2 + sta $92d,X ; 5 + lda #$00 ; 2 + sta $92e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $928,X ; 5 + +; 85 + bit PAGE1 ; 4 +smc085: ldx #$01 ; 2 + lda #$00 ; 2 + sta $528,X ; 5 + lda #$00 ; 2 + sta $529,X ; 5 + lda #$00 ; 2 + sta $52a,X ; 5 + lda #$00 ; 2 + sta $52b,X ; 5 + lda #$00 ; 2 + sta $52c,X ; 5 + lda #$00 ; 2 + sta $52d,X ; 5 + lda #$00 ; 2 + sta $52e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $528,X ; 5 + +; 86 + bit PAGE0 ; 4 +smc086: ldx #$01 ; 2 + lda #$00 ; 2 + sta $928,X ; 5 + lda #$00 ; 2 + sta $929,X ; 5 + lda #$00 ; 2 + sta $92a,X ; 5 + lda #$00 ; 2 + sta $92b,X ; 5 + lda #$00 ; 2 + sta $92c,X ; 5 + lda #$00 ; 2 + sta $92d,X ; 5 + lda #$00 ; 2 + sta $92e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $928,X ; 5 + +; 87 + bit PAGE1 ; 4 +smc087: ldx #$01 ; 2 + lda #$00 ; 2 + sta $5a8,X ; 5 + lda #$00 ; 2 + sta $5a9,X ; 5 + lda #$00 ; 2 + sta $5aa,X ; 5 + lda #$00 ; 2 + sta $5ab,X ; 5 + lda #$00 ; 2 + sta $5ac,X ; 5 + lda #$00 ; 2 + sta $5ad,X ; 5 + lda #$00 ; 2 + sta $5ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $5a8,X ; 5 + +; 88 + bit PAGE0 ; 4 +smc088: ldx #$01 ; 2 + lda #$00 ; 2 + sta $9a8,X ; 5 + lda #$00 ; 2 + sta $9a9,X ; 5 + lda #$00 ; 2 + sta $9aa,X ; 5 + lda #$00 ; 2 + sta $9ab,X ; 5 + lda #$00 ; 2 + sta $9ac,X ; 5 + lda #$00 ; 2 + sta $9ad,X ; 5 + lda #$00 ; 2 + sta $9ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $9a8,X ; 5 + +; 89 + bit PAGE1 ; 4 +smc089: ldx #$01 ; 2 + lda #$00 ; 2 + sta $5a8,X ; 5 + lda #$00 ; 2 + sta $5a9,X ; 5 + lda #$00 ; 2 + sta $5aa,X ; 5 + lda #$00 ; 2 + sta $5ab,X ; 5 + lda #$00 ; 2 + sta $5ac,X ; 5 + lda #$00 ; 2 + sta $5ad,X ; 5 + lda #$00 ; 2 + sta $5ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $5a8,X ; 5 + +; 90 + bit PAGE0 ; 4 +smc090: ldx #$01 ; 2 + lda #$00 ; 2 + sta $9a8,X ; 5 + lda #$00 ; 2 + sta $9a9,X ; 5 + lda #$00 ; 2 + sta $9aa,X ; 5 + lda #$00 ; 2 + sta $9ab,X ; 5 + lda #$00 ; 2 + sta $9ac,X ; 5 + lda #$00 ; 2 + sta $9ad,X ; 5 + lda #$00 ; 2 + sta $9ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $9a8,X ; 5 + +; 91 + bit PAGE1 ; 4 +smc091: ldx #$01 ; 2 + lda #$00 ; 2 + sta $5a8,X ; 5 + lda #$00 ; 2 + sta $5a9,X ; 5 + lda #$00 ; 2 + sta $5aa,X ; 5 + lda #$00 ; 2 + sta $5ab,X ; 5 + lda #$00 ; 2 + sta $5ac,X ; 5 + lda #$00 ; 2 + sta $5ad,X ; 5 + lda #$00 ; 2 + sta $5ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $5a8,X ; 5 + +; 92 + bit PAGE0 ; 4 +smc092: ldx #$01 ; 2 + lda #$00 ; 2 + sta $9a8,X ; 5 + lda #$00 ; 2 + sta $9a9,X ; 5 + lda #$00 ; 2 + sta $9aa,X ; 5 + lda #$00 ; 2 + sta $9ab,X ; 5 + lda #$00 ; 2 + sta $9ac,X ; 5 + lda #$00 ; 2 + sta $9ad,X ; 5 + lda #$00 ; 2 + sta $9ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $9a8,X ; 5 + +; 93 + bit PAGE1 ; 4 +smc093: ldx #$01 ; 2 + lda #$00 ; 2 + sta $5a8,X ; 5 + lda #$00 ; 2 + sta $5a9,X ; 5 + lda #$00 ; 2 + sta $5aa,X ; 5 + lda #$00 ; 2 + sta $5ab,X ; 5 + lda #$00 ; 2 + sta $5ac,X ; 5 + lda #$00 ; 2 + sta $5ad,X ; 5 + lda #$00 ; 2 + sta $5ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $5a8,X ; 5 + +; 94 + bit PAGE0 ; 4 +smc094: ldx #$01 ; 2 + lda #$00 ; 2 + sta $9a8,X ; 5 + lda #$00 ; 2 + sta $9a9,X ; 5 + lda #$00 ; 2 + sta $9aa,X ; 5 + lda #$00 ; 2 + sta $9ab,X ; 5 + lda #$00 ; 2 + sta $9ac,X ; 5 + lda #$00 ; 2 + sta $9ad,X ; 5 + lda #$00 ; 2 + sta $9ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $9a8,X ; 5 + +; 95 + bit PAGE1 ; 4 +smc095: ldx #$01 ; 2 + lda #$00 ; 2 + sta $628,X ; 5 + lda #$00 ; 2 + sta $629,X ; 5 + lda #$00 ; 2 + sta $62a,X ; 5 + lda #$00 ; 2 + sta $62b,X ; 5 + lda #$00 ; 2 + sta $62c,X ; 5 + lda #$00 ; 2 + sta $62d,X ; 5 + lda #$00 ; 2 + sta $62e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $628,X ; 5 + +; 96 + bit PAGE0 ; 4 +smc096: ldx #$01 ; 2 + lda #$00 ; 2 + sta $a28,X ; 5 + lda #$00 ; 2 + sta $a29,X ; 5 + lda #$00 ; 2 + sta $a2a,X ; 5 + lda #$00 ; 2 + sta $a2b,X ; 5 + lda #$00 ; 2 + sta $a2c,X ; 5 + lda #$00 ; 2 + sta $a2d,X ; 5 + lda #$00 ; 2 + sta $a2e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $a28,X ; 5 + +; 97 + bit PAGE1 ; 4 +smc097: ldx #$01 ; 2 + lda #$00 ; 2 + sta $628,X ; 5 + lda #$00 ; 2 + sta $629,X ; 5 + lda #$00 ; 2 + sta $62a,X ; 5 + lda #$00 ; 2 + sta $62b,X ; 5 + lda #$00 ; 2 + sta $62c,X ; 5 + lda #$00 ; 2 + sta $62d,X ; 5 + lda #$00 ; 2 + sta $62e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $628,X ; 5 + +; 98 + bit PAGE0 ; 4 +smc098: ldx #$01 ; 2 + lda #$00 ; 2 + sta $a28,X ; 5 + lda #$00 ; 2 + sta $a29,X ; 5 + lda #$00 ; 2 + sta $a2a,X ; 5 + lda #$00 ; 2 + sta $a2b,X ; 5 + lda #$00 ; 2 + sta $a2c,X ; 5 + lda #$00 ; 2 + sta $a2d,X ; 5 + lda #$00 ; 2 + sta $a2e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $a28,X ; 5 + +; 99 + bit PAGE1 ; 4 +smc099: ldx #$01 ; 2 + lda #$00 ; 2 + sta $628,X ; 5 + lda #$00 ; 2 + sta $629,X ; 5 + lda #$00 ; 2 + sta $62a,X ; 5 + lda #$00 ; 2 + sta $62b,X ; 5 + lda #$00 ; 2 + sta $62c,X ; 5 + lda #$00 ; 2 + sta $62d,X ; 5 + lda #$00 ; 2 + sta $62e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $628,X ; 5 + +; 100 + bit PAGE0 ; 4 +smc100: ldx #$01 ; 2 + lda #$00 ; 2 + sta $a28,X ; 5 + lda #$00 ; 2 + sta $a29,X ; 5 + lda #$00 ; 2 + sta $a2a,X ; 5 + lda #$00 ; 2 + sta $a2b,X ; 5 + lda #$00 ; 2 + sta $a2c,X ; 5 + lda #$00 ; 2 + sta $a2d,X ; 5 + lda #$00 ; 2 + sta $a2e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $a28,X ; 5 + +; 101 + bit PAGE1 ; 4 +smc101: ldx #$01 ; 2 + lda #$00 ; 2 + sta $628,X ; 5 + lda #$00 ; 2 + sta $629,X ; 5 + lda #$00 ; 2 + sta $62a,X ; 5 + lda #$00 ; 2 + sta $62b,X ; 5 + lda #$00 ; 2 + sta $62c,X ; 5 + lda #$00 ; 2 + sta $62d,X ; 5 + lda #$00 ; 2 + sta $62e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $628,X ; 5 + +; 102 + bit PAGE0 ; 4 +smc102: ldx #$01 ; 2 + lda #$00 ; 2 + sta $a28,X ; 5 + lda #$00 ; 2 + sta $a29,X ; 5 + lda #$00 ; 2 + sta $a2a,X ; 5 + lda #$00 ; 2 + sta $a2b,X ; 5 + lda #$00 ; 2 + sta $a2c,X ; 5 + lda #$00 ; 2 + sta $a2d,X ; 5 + lda #$00 ; 2 + sta $a2e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $a28,X ; 5 + +; 103 + bit PAGE1 ; 4 +smc103: ldx #$01 ; 2 + lda #$00 ; 2 + sta $6a8,X ; 5 + lda #$00 ; 2 + sta $6a9,X ; 5 + lda #$00 ; 2 + sta $6aa,X ; 5 + lda #$00 ; 2 + sta $6ab,X ; 5 + lda #$00 ; 2 + sta $6ac,X ; 5 + lda #$00 ; 2 + sta $6ad,X ; 5 + lda #$00 ; 2 + sta $6ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $6a8,X ; 5 + +; 104 + bit PAGE0 ; 4 +smc104: ldx #$01 ; 2 + lda #$00 ; 2 + sta $aa8,X ; 5 + lda #$00 ; 2 + sta $aa9,X ; 5 + lda #$00 ; 2 + sta $aaa,X ; 5 + lda #$00 ; 2 + sta $aab,X ; 5 + lda #$00 ; 2 + sta $aac,X ; 5 + lda #$00 ; 2 + sta $aad,X ; 5 + lda #$00 ; 2 + sta $aae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $aa8,X ; 5 + +; 105 + bit PAGE1 ; 4 +smc105: ldx #$01 ; 2 + lda #$00 ; 2 + sta $6a8,X ; 5 + lda #$00 ; 2 + sta $6a9,X ; 5 + lda #$00 ; 2 + sta $6aa,X ; 5 + lda #$00 ; 2 + sta $6ab,X ; 5 + lda #$00 ; 2 + sta $6ac,X ; 5 + lda #$00 ; 2 + sta $6ad,X ; 5 + lda #$00 ; 2 + sta $6ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $6a8,X ; 5 + +; 106 + bit PAGE0 ; 4 +smc106: ldx #$01 ; 2 + lda #$00 ; 2 + sta $aa8,X ; 5 + lda #$00 ; 2 + sta $aa9,X ; 5 + lda #$00 ; 2 + sta $aaa,X ; 5 + lda #$00 ; 2 + sta $aab,X ; 5 + lda #$00 ; 2 + sta $aac,X ; 5 + lda #$00 ; 2 + sta $aad,X ; 5 + lda #$00 ; 2 + sta $aae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $aa8,X ; 5 + +; 107 + bit PAGE1 ; 4 +smc107: ldx #$01 ; 2 + lda #$00 ; 2 + sta $6a8,X ; 5 + lda #$00 ; 2 + sta $6a9,X ; 5 + lda #$00 ; 2 + sta $6aa,X ; 5 + lda #$00 ; 2 + sta $6ab,X ; 5 + lda #$00 ; 2 + sta $6ac,X ; 5 + lda #$00 ; 2 + sta $6ad,X ; 5 + lda #$00 ; 2 + sta $6ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $6a8,X ; 5 + +; 108 + bit PAGE0 ; 4 +smc108: ldx #$01 ; 2 + lda #$00 ; 2 + sta $aa8,X ; 5 + lda #$00 ; 2 + sta $aa9,X ; 5 + lda #$00 ; 2 + sta $aaa,X ; 5 + lda #$00 ; 2 + sta $aab,X ; 5 + lda #$00 ; 2 + sta $aac,X ; 5 + lda #$00 ; 2 + sta $aad,X ; 5 + lda #$00 ; 2 + sta $aae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $aa8,X ; 5 + +; 109 + bit PAGE1 ; 4 +smc109: ldx #$01 ; 2 + lda #$00 ; 2 + sta $6a8,X ; 5 + lda #$00 ; 2 + sta $6a9,X ; 5 + lda #$00 ; 2 + sta $6aa,X ; 5 + lda #$00 ; 2 + sta $6ab,X ; 5 + lda #$00 ; 2 + sta $6ac,X ; 5 + lda #$00 ; 2 + sta $6ad,X ; 5 + lda #$00 ; 2 + sta $6ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $6a8,X ; 5 + +; 110 + bit PAGE0 ; 4 +smc110: ldx #$01 ; 2 + lda #$00 ; 2 + sta $aa8,X ; 5 + lda #$00 ; 2 + sta $aa9,X ; 5 + lda #$00 ; 2 + sta $aaa,X ; 5 + lda #$00 ; 2 + sta $aab,X ; 5 + lda #$00 ; 2 + sta $aac,X ; 5 + lda #$00 ; 2 + sta $aad,X ; 5 + lda #$00 ; 2 + sta $aae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $aa8,X ; 5 + +; 111 + bit PAGE1 ; 4 +smc111: ldx #$01 ; 2 + lda #$00 ; 2 + sta $728,X ; 5 + lda #$00 ; 2 + sta $729,X ; 5 + lda #$00 ; 2 + sta $72a,X ; 5 + lda #$00 ; 2 + sta $72b,X ; 5 + lda #$00 ; 2 + sta $72c,X ; 5 + lda #$00 ; 2 + sta $72d,X ; 5 + lda #$00 ; 2 + sta $72e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $728,X ; 5 + +; 112 + bit PAGE0 ; 4 +smc112: ldx #$01 ; 2 + lda #$00 ; 2 + sta $b28,X ; 5 + lda #$00 ; 2 + sta $b29,X ; 5 + lda #$00 ; 2 + sta $b2a,X ; 5 + lda #$00 ; 2 + sta $b2b,X ; 5 + lda #$00 ; 2 + sta $b2c,X ; 5 + lda #$00 ; 2 + sta $b2d,X ; 5 + lda #$00 ; 2 + sta $b2e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $b28,X ; 5 + +; 113 + bit PAGE1 ; 4 +smc113: ldx #$01 ; 2 + lda #$00 ; 2 + sta $728,X ; 5 + lda #$00 ; 2 + sta $729,X ; 5 + lda #$00 ; 2 + sta $72a,X ; 5 + lda #$00 ; 2 + sta $72b,X ; 5 + lda #$00 ; 2 + sta $72c,X ; 5 + lda #$00 ; 2 + sta $72d,X ; 5 + lda #$00 ; 2 + sta $72e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $728,X ; 5 + +; 114 + bit PAGE0 ; 4 +smc114: ldx #$01 ; 2 + lda #$00 ; 2 + sta $b28,X ; 5 + lda #$00 ; 2 + sta $b29,X ; 5 + lda #$00 ; 2 + sta $b2a,X ; 5 + lda #$00 ; 2 + sta $b2b,X ; 5 + lda #$00 ; 2 + sta $b2c,X ; 5 + lda #$00 ; 2 + sta $b2d,X ; 5 + lda #$00 ; 2 + sta $b2e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $b28,X ; 5 + +; 115 + bit PAGE1 ; 4 +smc115: ldx #$01 ; 2 + lda #$00 ; 2 + sta $728,X ; 5 + lda #$00 ; 2 + sta $729,X ; 5 + lda #$00 ; 2 + sta $72a,X ; 5 + lda #$00 ; 2 + sta $72b,X ; 5 + lda #$00 ; 2 + sta $72c,X ; 5 + lda #$00 ; 2 + sta $72d,X ; 5 + lda #$00 ; 2 + sta $72e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $728,X ; 5 + +; 116 + bit PAGE0 ; 4 +smc116: ldx #$01 ; 2 + lda #$00 ; 2 + sta $b28,X ; 5 + lda #$00 ; 2 + sta $b29,X ; 5 + lda #$00 ; 2 + sta $b2a,X ; 5 + lda #$00 ; 2 + sta $b2b,X ; 5 + lda #$00 ; 2 + sta $b2c,X ; 5 + lda #$00 ; 2 + sta $b2d,X ; 5 + lda #$00 ; 2 + sta $b2e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $b28,X ; 5 + +; 117 + bit PAGE1 ; 4 +smc117: ldx #$01 ; 2 + lda #$00 ; 2 + sta $728,X ; 5 + lda #$00 ; 2 + sta $729,X ; 5 + lda #$00 ; 2 + sta $72a,X ; 5 + lda #$00 ; 2 + sta $72b,X ; 5 + lda #$00 ; 2 + sta $72c,X ; 5 + lda #$00 ; 2 + sta $72d,X ; 5 + lda #$00 ; 2 + sta $72e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $728,X ; 5 + +; 118 + bit PAGE0 ; 4 +smc118: ldx #$01 ; 2 + lda #$00 ; 2 + sta $b28,X ; 5 + lda #$00 ; 2 + sta $b29,X ; 5 + lda #$00 ; 2 + sta $b2a,X ; 5 + lda #$00 ; 2 + sta $b2b,X ; 5 + lda #$00 ; 2 + sta $b2c,X ; 5 + lda #$00 ; 2 + sta $b2d,X ; 5 + lda #$00 ; 2 + sta $b2e,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $b28,X ; 5 + +; 119 + bit PAGE1 ; 4 +smc119: ldx #$01 ; 2 + lda #$00 ; 2 + sta $7a8,X ; 5 + lda #$00 ; 2 + sta $7a9,X ; 5 + lda #$00 ; 2 + sta $7aa,X ; 5 + lda #$00 ; 2 + sta $7ab,X ; 5 + lda #$00 ; 2 + sta $7ac,X ; 5 + lda #$00 ; 2 + sta $7ad,X ; 5 + lda #$00 ; 2 + sta $7ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $7a8,X ; 5 + +; 120 + bit PAGE0 ; 4 +smc120: ldx #$01 ; 2 + lda #$00 ; 2 + sta $ba8,X ; 5 + lda #$00 ; 2 + sta $ba9,X ; 5 + lda #$00 ; 2 + sta $baa,X ; 5 + lda #$00 ; 2 + sta $bab,X ; 5 + lda #$00 ; 2 + sta $bac,X ; 5 + lda #$00 ; 2 + sta $bad,X ; 5 + lda #$00 ; 2 + sta $bae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $ba8,X ; 5 + +; 121 + bit PAGE1 ; 4 +smc121: ldx #$01 ; 2 + lda #$00 ; 2 + sta $7a8,X ; 5 + lda #$00 ; 2 + sta $7a9,X ; 5 + lda #$00 ; 2 + sta $7aa,X ; 5 + lda #$00 ; 2 + sta $7ab,X ; 5 + lda #$00 ; 2 + sta $7ac,X ; 5 + lda #$00 ; 2 + sta $7ad,X ; 5 + lda #$00 ; 2 + sta $7ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $7a8,X ; 5 + +; 122 + bit PAGE0 ; 4 +smc122: ldx #$01 ; 2 + lda #$00 ; 2 + sta $ba8,X ; 5 + lda #$00 ; 2 + sta $ba9,X ; 5 + lda #$00 ; 2 + sta $baa,X ; 5 + lda #$00 ; 2 + sta $bab,X ; 5 + lda #$00 ; 2 + sta $bac,X ; 5 + lda #$00 ; 2 + sta $bad,X ; 5 + lda #$00 ; 2 + sta $bae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $ba8,X ; 5 + +; 123 + bit PAGE1 ; 4 +smc123: ldx #$01 ; 2 + lda #$00 ; 2 + sta $7a8,X ; 5 + lda #$00 ; 2 + sta $7a9,X ; 5 + lda #$00 ; 2 + sta $7aa,X ; 5 + lda #$00 ; 2 + sta $7ab,X ; 5 + lda #$00 ; 2 + sta $7ac,X ; 5 + lda #$00 ; 2 + sta $7ad,X ; 5 + lda #$00 ; 2 + sta $7ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $7a8,X ; 5 + +; 124 + bit PAGE0 ; 4 +smc124: ldx #$01 ; 2 + lda #$00 ; 2 + sta $ba8,X ; 5 + lda #$00 ; 2 + sta $ba9,X ; 5 + lda #$00 ; 2 + sta $baa,X ; 5 + lda #$00 ; 2 + sta $bab,X ; 5 + lda #$00 ; 2 + sta $bac,X ; 5 + lda #$00 ; 2 + sta $bad,X ; 5 + lda #$00 ; 2 + sta $bae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $ba8,X ; 5 + +; 125 + bit PAGE1 ; 4 +smc125: ldx #$01 ; 2 + lda #$00 ; 2 + sta $7a8,X ; 5 + lda #$00 ; 2 + sta $7a9,X ; 5 + lda #$00 ; 2 + sta $7aa,X ; 5 + lda #$00 ; 2 + sta $7ab,X ; 5 + lda #$00 ; 2 + sta $7ac,X ; 5 + lda #$00 ; 2 + sta $7ad,X ; 5 + lda #$00 ; 2 + sta $7ae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $7a8,X ; 5 + +; 126 + bit PAGE0 ; 4 +smc126: ldx #$01 ; 2 + lda #$00 ; 2 + sta $ba8,X ; 5 + lda #$00 ; 2 + sta $ba9,X ; 5 + lda #$00 ; 2 + sta $baa,X ; 5 + lda #$00 ; 2 + sta $bab,X ; 5 + lda #$00 ; 2 + sta $bac,X ; 5 + lda #$00 ; 2 + sta $bad,X ; 5 + lda #$00 ; 2 + sta $bae,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $ba8,X ; 5 + +; 127 + bit PAGE1 ; 4 +smc127: ldx #$01 ; 2 + lda #$00 ; 2 + sta $450,X ; 5 + lda #$00 ; 2 + sta $451,X ; 5 + lda #$00 ; 2 + sta $452,X ; 5 + lda #$00 ; 2 + sta $453,X ; 5 + lda #$00 ; 2 + sta $454,X ; 5 + lda #$00 ; 2 + sta $455,X ; 5 + lda #$00 ; 2 + sta $456,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $450,X ; 5 + +; 128 + bit PAGE0 ; 4 +smc128: ldx #$01 ; 2 + lda #$00 ; 2 + sta $850,X ; 5 + lda #$00 ; 2 + sta $851,X ; 5 + lda #$00 ; 2 + sta $852,X ; 5 + lda #$00 ; 2 + sta $853,X ; 5 + lda #$00 ; 2 + sta $854,X ; 5 + lda #$00 ; 2 + sta $855,X ; 5 + lda #$00 ; 2 + sta $856,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $850,X ; 5 + +; 129 + bit PAGE1 ; 4 +smc129: ldx #$01 ; 2 + lda #$00 ; 2 + sta $450,X ; 5 + lda #$00 ; 2 + sta $451,X ; 5 + lda #$00 ; 2 + sta $452,X ; 5 + lda #$00 ; 2 + sta $453,X ; 5 + lda #$00 ; 2 + sta $454,X ; 5 + lda #$00 ; 2 + sta $455,X ; 5 + lda #$00 ; 2 + sta $456,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $450,X ; 5 + +; 130 + bit PAGE0 ; 4 +smc130: ldx #$01 ; 2 + lda #$00 ; 2 + sta $850,X ; 5 + lda #$00 ; 2 + sta $851,X ; 5 + lda #$00 ; 2 + sta $852,X ; 5 + lda #$00 ; 2 + sta $853,X ; 5 + lda #$00 ; 2 + sta $854,X ; 5 + lda #$00 ; 2 + sta $855,X ; 5 + lda #$00 ; 2 + sta $856,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $850,X ; 5 + +; 131 + bit PAGE1 ; 4 +smc131: ldx #$01 ; 2 + lda #$00 ; 2 + sta $450,X ; 5 + lda #$00 ; 2 + sta $451,X ; 5 + lda #$00 ; 2 + sta $452,X ; 5 + lda #$00 ; 2 + sta $453,X ; 5 + lda #$00 ; 2 + sta $454,X ; 5 + lda #$00 ; 2 + sta $455,X ; 5 + lda #$00 ; 2 + sta $456,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $450,X ; 5 + +; 132 + bit PAGE0 ; 4 +smc132: ldx #$01 ; 2 + lda #$00 ; 2 + sta $850,X ; 5 + lda #$00 ; 2 + sta $851,X ; 5 + lda #$00 ; 2 + sta $852,X ; 5 + lda #$00 ; 2 + sta $853,X ; 5 + lda #$00 ; 2 + sta $854,X ; 5 + lda #$00 ; 2 + sta $855,X ; 5 + lda #$00 ; 2 + sta $856,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $850,X ; 5 + +; 133 + bit PAGE1 ; 4 +smc133: ldx #$01 ; 2 + lda #$00 ; 2 + sta $450,X ; 5 + lda #$00 ; 2 + sta $451,X ; 5 + lda #$00 ; 2 + sta $452,X ; 5 + lda #$00 ; 2 + sta $453,X ; 5 + lda #$00 ; 2 + sta $454,X ; 5 + lda #$00 ; 2 + sta $455,X ; 5 + lda #$00 ; 2 + sta $456,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $450,X ; 5 + +; 134 + bit PAGE0 ; 4 +smc134: ldx #$01 ; 2 + lda #$00 ; 2 + sta $850,X ; 5 + lda #$00 ; 2 + sta $851,X ; 5 + lda #$00 ; 2 + sta $852,X ; 5 + lda #$00 ; 2 + sta $853,X ; 5 + lda #$00 ; 2 + sta $854,X ; 5 + lda #$00 ; 2 + sta $855,X ; 5 + lda #$00 ; 2 + sta $856,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $850,X ; 5 + +; 135 + bit PAGE1 ; 4 +smc135: ldx #$01 ; 2 + lda #$00 ; 2 + sta $4d0,X ; 5 + lda #$00 ; 2 + sta $4d1,X ; 5 + lda #$00 ; 2 + sta $4d2,X ; 5 + lda #$00 ; 2 + sta $4d3,X ; 5 + lda #$00 ; 2 + sta $4d4,X ; 5 + lda #$00 ; 2 + sta $4d5,X ; 5 + lda #$00 ; 2 + sta $4d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $4d0,X ; 5 + +; 136 + bit PAGE0 ; 4 +smc136: ldx #$01 ; 2 + lda #$00 ; 2 + sta $8d0,X ; 5 + lda #$00 ; 2 + sta $8d1,X ; 5 + lda #$00 ; 2 + sta $8d2,X ; 5 + lda #$00 ; 2 + sta $8d3,X ; 5 + lda #$00 ; 2 + sta $8d4,X ; 5 + lda #$00 ; 2 + sta $8d5,X ; 5 + lda #$00 ; 2 + sta $8d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $8d0,X ; 5 + +; 137 + bit PAGE1 ; 4 +smc137: ldx #$01 ; 2 + lda #$00 ; 2 + sta $4d0,X ; 5 + lda #$00 ; 2 + sta $4d1,X ; 5 + lda #$00 ; 2 + sta $4d2,X ; 5 + lda #$00 ; 2 + sta $4d3,X ; 5 + lda #$00 ; 2 + sta $4d4,X ; 5 + lda #$00 ; 2 + sta $4d5,X ; 5 + lda #$00 ; 2 + sta $4d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $4d0,X ; 5 + +; 138 + bit PAGE0 ; 4 +smc138: ldx #$01 ; 2 + lda #$00 ; 2 + sta $8d0,X ; 5 + lda #$00 ; 2 + sta $8d1,X ; 5 + lda #$00 ; 2 + sta $8d2,X ; 5 + lda #$00 ; 2 + sta $8d3,X ; 5 + lda #$00 ; 2 + sta $8d4,X ; 5 + lda #$00 ; 2 + sta $8d5,X ; 5 + lda #$00 ; 2 + sta $8d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $8d0,X ; 5 + +; 139 + bit PAGE1 ; 4 +smc139: ldx #$01 ; 2 + lda #$00 ; 2 + sta $4d0,X ; 5 + lda #$00 ; 2 + sta $4d1,X ; 5 + lda #$00 ; 2 + sta $4d2,X ; 5 + lda #$00 ; 2 + sta $4d3,X ; 5 + lda #$00 ; 2 + sta $4d4,X ; 5 + lda #$00 ; 2 + sta $4d5,X ; 5 + lda #$00 ; 2 + sta $4d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $4d0,X ; 5 + +; 140 + bit PAGE0 ; 4 +smc140: ldx #$01 ; 2 + lda #$00 ; 2 + sta $8d0,X ; 5 + lda #$00 ; 2 + sta $8d1,X ; 5 + lda #$00 ; 2 + sta $8d2,X ; 5 + lda #$00 ; 2 + sta $8d3,X ; 5 + lda #$00 ; 2 + sta $8d4,X ; 5 + lda #$00 ; 2 + sta $8d5,X ; 5 + lda #$00 ; 2 + sta $8d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $8d0,X ; 5 + +; 141 + bit PAGE1 ; 4 +smc141: ldx #$01 ; 2 + lda #$00 ; 2 + sta $4d0,X ; 5 + lda #$00 ; 2 + sta $4d1,X ; 5 + lda #$00 ; 2 + sta $4d2,X ; 5 + lda #$00 ; 2 + sta $4d3,X ; 5 + lda #$00 ; 2 + sta $4d4,X ; 5 + lda #$00 ; 2 + sta $4d5,X ; 5 + lda #$00 ; 2 + sta $4d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $4d0,X ; 5 + +; 142 + bit PAGE0 ; 4 +smc142: ldx #$01 ; 2 + lda #$00 ; 2 + sta $8d0,X ; 5 + lda #$00 ; 2 + sta $8d1,X ; 5 + lda #$00 ; 2 + sta $8d2,X ; 5 + lda #$00 ; 2 + sta $8d3,X ; 5 + lda #$00 ; 2 + sta $8d4,X ; 5 + lda #$00 ; 2 + sta $8d5,X ; 5 + lda #$00 ; 2 + sta $8d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $8d0,X ; 5 + +; 143 + bit PAGE1 ; 4 +smc143: ldx #$01 ; 2 + lda #$00 ; 2 + sta $550,X ; 5 + lda #$00 ; 2 + sta $551,X ; 5 + lda #$00 ; 2 + sta $552,X ; 5 + lda #$00 ; 2 + sta $553,X ; 5 + lda #$00 ; 2 + sta $554,X ; 5 + lda #$00 ; 2 + sta $555,X ; 5 + lda #$00 ; 2 + sta $556,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $550,X ; 5 + +; 144 + bit PAGE0 ; 4 +smc144: ldx #$01 ; 2 + lda #$00 ; 2 + sta $950,X ; 5 + lda #$00 ; 2 + sta $951,X ; 5 + lda #$00 ; 2 + sta $952,X ; 5 + lda #$00 ; 2 + sta $953,X ; 5 + lda #$00 ; 2 + sta $954,X ; 5 + lda #$00 ; 2 + sta $955,X ; 5 + lda #$00 ; 2 + sta $956,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $950,X ; 5 + +; 145 + bit PAGE1 ; 4 +smc145: ldx #$01 ; 2 + lda #$00 ; 2 + sta $550,X ; 5 + lda #$00 ; 2 + sta $551,X ; 5 + lda #$00 ; 2 + sta $552,X ; 5 + lda #$00 ; 2 + sta $553,X ; 5 + lda #$00 ; 2 + sta $554,X ; 5 + lda #$00 ; 2 + sta $555,X ; 5 + lda #$00 ; 2 + sta $556,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $550,X ; 5 + +; 146 + bit PAGE0 ; 4 +smc146: ldx #$01 ; 2 + lda #$00 ; 2 + sta $950,X ; 5 + lda #$00 ; 2 + sta $951,X ; 5 + lda #$00 ; 2 + sta $952,X ; 5 + lda #$00 ; 2 + sta $953,X ; 5 + lda #$00 ; 2 + sta $954,X ; 5 + lda #$00 ; 2 + sta $955,X ; 5 + lda #$00 ; 2 + sta $956,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $950,X ; 5 + +; 147 + bit PAGE1 ; 4 +smc147: ldx #$01 ; 2 + lda #$00 ; 2 + sta $550,X ; 5 + lda #$00 ; 2 + sta $551,X ; 5 + lda #$00 ; 2 + sta $552,X ; 5 + lda #$00 ; 2 + sta $553,X ; 5 + lda #$00 ; 2 + sta $554,X ; 5 + lda #$00 ; 2 + sta $555,X ; 5 + lda #$00 ; 2 + sta $556,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $550,X ; 5 + +; 148 + bit PAGE0 ; 4 +smc148: ldx #$01 ; 2 + lda #$00 ; 2 + sta $950,X ; 5 + lda #$00 ; 2 + sta $951,X ; 5 + lda #$00 ; 2 + sta $952,X ; 5 + lda #$00 ; 2 + sta $953,X ; 5 + lda #$00 ; 2 + sta $954,X ; 5 + lda #$00 ; 2 + sta $955,X ; 5 + lda #$00 ; 2 + sta $956,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $950,X ; 5 + +; 149 + bit PAGE1 ; 4 +smc149: ldx #$01 ; 2 + lda #$00 ; 2 + sta $550,X ; 5 + lda #$00 ; 2 + sta $551,X ; 5 + lda #$00 ; 2 + sta $552,X ; 5 + lda #$00 ; 2 + sta $553,X ; 5 + lda #$00 ; 2 + sta $554,X ; 5 + lda #$00 ; 2 + sta $555,X ; 5 + lda #$00 ; 2 + sta $556,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $550,X ; 5 + +; 150 + bit PAGE0 ; 4 +smc150: ldx #$01 ; 2 + lda #$00 ; 2 + sta $950,X ; 5 + lda #$00 ; 2 + sta $951,X ; 5 + lda #$00 ; 2 + sta $952,X ; 5 + lda #$00 ; 2 + sta $953,X ; 5 + lda #$00 ; 2 + sta $954,X ; 5 + lda #$00 ; 2 + sta $955,X ; 5 + lda #$00 ; 2 + sta $956,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $950,X ; 5 + +; 151 + bit PAGE1 ; 4 +smc151: ldx #$01 ; 2 + lda #$00 ; 2 + sta $5d0,X ; 5 + lda #$00 ; 2 + sta $5d1,X ; 5 + lda #$00 ; 2 + sta $5d2,X ; 5 + lda #$00 ; 2 + sta $5d3,X ; 5 + lda #$00 ; 2 + sta $5d4,X ; 5 + lda #$00 ; 2 + sta $5d5,X ; 5 + lda #$00 ; 2 + sta $5d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $5d0,X ; 5 + +; 152 + bit PAGE0 ; 4 +smc152: ldx #$01 ; 2 + lda #$00 ; 2 + sta $9d0,X ; 5 + lda #$00 ; 2 + sta $9d1,X ; 5 + lda #$00 ; 2 + sta $9d2,X ; 5 + lda #$00 ; 2 + sta $9d3,X ; 5 + lda #$00 ; 2 + sta $9d4,X ; 5 + lda #$00 ; 2 + sta $9d5,X ; 5 + lda #$00 ; 2 + sta $9d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $9d0,X ; 5 + +; 153 + bit PAGE1 ; 4 +smc153: ldx #$01 ; 2 + lda #$00 ; 2 + sta $5d0,X ; 5 + lda #$00 ; 2 + sta $5d1,X ; 5 + lda #$00 ; 2 + sta $5d2,X ; 5 + lda #$00 ; 2 + sta $5d3,X ; 5 + lda #$00 ; 2 + sta $5d4,X ; 5 + lda #$00 ; 2 + sta $5d5,X ; 5 + lda #$00 ; 2 + sta $5d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $5d0,X ; 5 + +; 154 + bit PAGE0 ; 4 +smc154: ldx #$01 ; 2 + lda #$00 ; 2 + sta $9d0,X ; 5 + lda #$00 ; 2 + sta $9d1,X ; 5 + lda #$00 ; 2 + sta $9d2,X ; 5 + lda #$00 ; 2 + sta $9d3,X ; 5 + lda #$00 ; 2 + sta $9d4,X ; 5 + lda #$00 ; 2 + sta $9d5,X ; 5 + lda #$00 ; 2 + sta $9d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $9d0,X ; 5 + +; 155 + bit PAGE1 ; 4 +smc155: ldx #$01 ; 2 + lda #$00 ; 2 + sta $5d0,X ; 5 + lda #$00 ; 2 + sta $5d1,X ; 5 + lda #$00 ; 2 + sta $5d2,X ; 5 + lda #$00 ; 2 + sta $5d3,X ; 5 + lda #$00 ; 2 + sta $5d4,X ; 5 + lda #$00 ; 2 + sta $5d5,X ; 5 + lda #$00 ; 2 + sta $5d6,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $5d0,X ; 5 + +; 156 + bit PAGE0 ; 4 +smc156: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 157 + bit PAGE1 ; 4 +smc157: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 158 + bit PAGE0 ; 4 +smc158: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 159 + bit PAGE1 ; 4 +smc159: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 160 + bit PAGE0 ; 4 +smc160: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 161 + bit PAGE1 ; 4 +smc161: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 162 + bit PAGE0 ; 4 +smc162: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 163 + bit PAGE1 ; 4 +smc163: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 164 + bit PAGE0 ; 4 +smc164: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 165 + bit PAGE1 ; 4 +smc165: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 166 + bit PAGE0 ; 4 +smc166: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 167 + bit PAGE1 ; 4 +smc167: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 168 + bit PAGE0 ; 4 +smc168: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 169 + bit PAGE1 ; 4 +smc169: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 170 + bit PAGE0 ; 4 +smc170: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 171 + bit PAGE1 ; 4 +smc171: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 172 + bit PAGE0 ; 4 +smc172: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 173 + bit PAGE1 ; 4 +smc173: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 174 + bit PAGE0 ; 4 +smc174: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 175 + bit PAGE1 ; 4 +smc175: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 176 + bit PAGE0 ; 4 +smc176: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 177 + bit PAGE1 ; 4 +smc177: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 178 + bit PAGE0 ; 4 +smc178: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 179 + bit PAGE1 ; 4 +smc179: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 180 + bit PAGE0 ; 4 +smc180: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 181 + bit PAGE1 ; 4 +smc181: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 182 + bit PAGE0 ; 4 +smc182: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 183 + bit PAGE1 ; 4 +smc183: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 184 + bit PAGE0 ; 4 +smc184: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 185 + bit PAGE1 ; 4 +smc185: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 186 + bit PAGE0 ; 4 +smc186: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 187 + bit PAGE1 ; 4 +smc187: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 188 + bit PAGE0 ; 4 +smc188: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 189 + bit PAGE1 ; 4 +smc189: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 190 + bit PAGE0 ; 4 +smc190: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + +; 191 + bit PAGE1 ; 4 +smc191: ldx #$01 ; 2 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + lda #$00 ; 2 + sta $c00,X ; 5 + ldx #$00 ; 2 + lda ZERO ; 3 + sta $c00,X ; 5 + diff --git a/demosplash/sprites_table.s b/demosplash/sprites_table.s new file mode 100644 index 00000000..ab68dcd8 --- /dev/null +++ b/demosplash/sprites_table.s @@ -0,0 +1,34 @@ +y_lookup_h: +.byte >(smc032+1),>(smc033+1),>(smc034+1),>(smc035+1),>(smc036+1),>(smc037+1),>(smc038+1),>(smc039+1) +.byte >(smc040+1),>(smc041+1),>(smc042+1),>(smc043+1),>(smc044+1),>(smc045+1),>(smc046+1),>(smc047+1) +.byte >(smc048+1),>(smc049+1),>(smc050+1),>(smc051+1),>(smc052+1),>(smc053+1),>(smc054+1),>(smc055+1) +.byte >(smc056+1),>(smc057+1),>(smc058+1),>(smc059+1),>(smc060+1),>(smc061+1),>(smc062+1),>(smc063+1) +.byte >(smc064+1),>(smc065+1),>(smc066+1),>(smc067+1),>(smc068+1),>(smc069+1),>(smc070+1),>(smc071+1) +.byte >(smc072+1),>(smc073+1),>(smc074+1),>(smc075+1),>(smc076+1),>(smc077+1),>(smc078+1),>(smc079+1) +.byte >(smc080+1),>(smc081+1),>(smc082+1),>(smc083+1),>(smc084+1),>(smc085+1),>(smc086+1),>(smc087+1) +.byte >(smc088+1),>(smc089+1),>(smc090+1),>(smc091+1),>(smc092+1),>(smc093+1),>(smc094+1),>(smc095+1) +.byte >(smc096+1),>(smc097+1),>(smc098+1),>(smc099+1),>(smc100+1),>(smc101+1),>(smc102+1),>(smc103+1) +.byte >(smc104+1),>(smc105+1),>(smc106+1),>(smc107+1),>(smc108+1),>(smc109+1),>(smc110+1),>(smc111+1) +.byte >(smc112+1),>(smc113+1),>(smc114+1),>(smc115+1),>(smc116+1),>(smc117+1),>(smc118+1),>(smc119+1) +.byte >(smc120+1),>(smc121+1),>(smc122+1),>(smc123+1),>(smc124+1),>(smc125+1),>(smc126+1),>(smc127+1) +.byte >(smc128+1),>(smc129+1),>(smc130+1),>(smc131+1),>(smc132+1),>(smc133+1),>(smc134+1),>(smc135+1) +.byte >(smc136+1),>(smc137+1),>(smc138+1),>(smc139+1),>(smc140+1),>(smc141+1),>(smc142+1),>(smc143+1) +.byte >(smc144+1),>(smc145+1),>(smc146+1),>(smc147+1),>(smc148+1),>(smc149+1),>(smc150+1),>(smc151+1) +.byte >(smc152+1),>(smc153+1),>(smc154+1),>(smc155+1),>(smc156+1),>(smc157+1),>(smc158+1),>(smc159+1) +y_lookup_l: +.byte <(smc032+1),<(smc033+1),<(smc034+1),<(smc035+1),<(smc036+1),<(smc037+1),<(smc038+1),<(smc039+1) +.byte <(smc040+1),<(smc041+1),<(smc042+1),<(smc043+1),<(smc044+1),<(smc045+1),<(smc046+1),<(smc047+1) +.byte <(smc048+1),<(smc049+1),<(smc050+1),<(smc051+1),<(smc052+1),<(smc053+1),<(smc054+1),<(smc055+1) +.byte <(smc056+1),<(smc057+1),<(smc058+1),<(smc059+1),<(smc060+1),<(smc061+1),<(smc062+1),<(smc063+1) +.byte <(smc064+1),<(smc065+1),<(smc066+1),<(smc067+1),<(smc068+1),<(smc069+1),<(smc070+1),<(smc071+1) +.byte <(smc072+1),<(smc073+1),<(smc074+1),<(smc075+1),<(smc076+1),<(smc077+1),<(smc078+1),<(smc079+1) +.byte <(smc080+1),<(smc081+1),<(smc082+1),<(smc083+1),<(smc084+1),<(smc085+1),<(smc086+1),<(smc087+1) +.byte <(smc088+1),<(smc089+1),<(smc090+1),<(smc091+1),<(smc092+1),<(smc093+1),<(smc094+1),<(smc095+1) +.byte <(smc096+1),<(smc097+1),<(smc098+1),<(smc099+1),<(smc100+1),<(smc101+1),<(smc102+1),<(smc103+1) +.byte <(smc104+1),<(smc105+1),<(smc106+1),<(smc107+1),<(smc108+1),<(smc109+1),<(smc110+1),<(smc111+1) +.byte <(smc112+1),<(smc113+1),<(smc114+1),<(smc115+1),<(smc116+1),<(smc117+1),<(smc118+1),<(smc119+1) +.byte <(smc120+1),<(smc121+1),<(smc122+1),<(smc123+1),<(smc124+1),<(smc125+1),<(smc126+1),<(smc127+1) +.byte <(smc128+1),<(smc129+1),<(smc130+1),<(smc131+1),<(smc132+1),<(smc133+1),<(smc134+1),<(smc135+1) +.byte <(smc136+1),<(smc137+1),<(smc138+1),<(smc139+1),<(smc140+1),<(smc141+1),<(smc142+1),<(smc143+1) +.byte <(smc144+1),<(smc145+1),<(smc146+1),<(smc147+1),<(smc148+1),<(smc149+1),<(smc150+1),<(smc151+1) +.byte <(smc152+1),<(smc153+1),<(smc154+1),<(smc155+1),<(smc156+1),<(smc157+1),<(smc158+1),<(smc159+1) diff --git a/demosplash/text_print.s b/demosplash/text_print.s new file mode 100644 index 00000000..a0a930ad --- /dev/null +++ b/demosplash/text_print.s @@ -0,0 +1,59 @@ + ;================================ + ; move_and_print + ;================================ + ; get X,Y from OUTL/OUTH + ; then print following string to that address + ; stop at NUL + ; convert to APPLE ASCII (or with 0x80) + ; leave OUTL/OUTH pointing to next string + +move_and_print: + ldy #0 + lda (OUTL),Y + sta CH + iny + lda (OUTL),Y + asl + tay + lda gr_offsets,Y ; lookup low-res memory address + clc + adc CH ; add in xpos + sta BASL ; store out low byte of addy + + lda gr_offsets+1,Y ; look up high byte + adc DRAW_PAGE ; + sta BASH ; and store it out + ; BASH:BASL now points at right place + + clc + lda OUTL + adc #2 + sta OUTL + lda OUTH + adc #0 + sta OUTH + + ;================================ + ; print_string + ;================================ + +print_string: + ldy #0 +print_string_loop: + lda (OUTL),Y + beq done_print_string + ora #$80 + sta (BASL),Y + iny + bne print_string_loop +done_print_string: + iny + clc + tya + adc OUTL + sta OUTL + lda OUTH + adc #0 + sta OUTH + + rts diff --git a/demosplash/zp.inc b/demosplash/zp.inc index 226ad656..e347472b 100644 --- a/demosplash/zp.inc +++ b/demosplash/zp.inc @@ -31,16 +31,31 @@ COLOR = $30 SEEDL = $4e SEEDH = $4f XMAX = $50 -; BEAST_X = $51 ; L1 -; BEAST_Y = $52 ; L1 -; BEAST_GAIT = $53 ; L1 -; BEAST_COUNT = $54 ; L1 -; BEAST_STATE = $55 -; B_STANDING = $00 -; B_RUNNING = $01 -; B_FALLING = $02 -; B_DEAD = $03 -; BEAST_DIRECTION = $56 ; L1 + +; escape +FRAME = $51 +ASTEROID_SPEED = $52 +ASTEROID_X = $53 +ASTEROID_Y = $54 +RANDOM_PTR = $55 +GREEN0 = $56 +GREEN1 = $57 +GREEN2 = $58 +GREEN3 = $59 +GREEN4 = $5A +FIRE_Y = $5B +SPRITE_XPOS = $5C +SPRITE_YPOS = $5D +BLAST1 = $5E +BLAST2 = $5F + +FIRE = $6A +ASTEROID_EXPLODE = $6B +ASTEROID_SUBX = $6C +FIRE_X = $6D +LEVEL_DONE = $6E +YADD = $6F +ZERO = $B0