diff --git a/fire/fire.dsk b/fire/fire.dsk index 524cee5d..983663a0 100644 Binary files a/fire/fire.dsk and b/fire/fire.dsk differ diff --git a/fire/fire_tiny.s b/fire/fire_tiny.s index baedf5aa..995a0993 100644 --- a/fire/fire_tiny.s +++ b/fire/fire_tiny.s @@ -30,11 +30,17 @@ ; 113 bytes -- make get_row a subroutine ; 112 bytes -- regrettable change to the low-byte code ; 109 bytes -- replace BIT/OR in low calc with an ADC +; 107 bytes -- replace self-modifying load/store absolute with Y-indirect +; 106 bytes -- assume bit 8 is as random as bit 0 ; Zero Page SEEDL = $4E TEMP = $00 TEMPY = $01 +OUTL = $02 +OUTH = $03 +INL = $04 +INH = $05 ; 100 = $64 @@ -73,26 +79,21 @@ fire_loop: yloop: stx TEMPY ; txa/pha not any better ; 2 - ; Self-modify the inner loop so it loads/stores from proper - ; low-res address. Generate the proper row memory address + ; setup the load/store addresses + ; using Y-indirect is smaller than self-modifying code jsr get_row ; 3 - sty 0 ; 1000 0101 - .byte $bb ; 9->11 ; 1001 0001 + .byte $00 ; 8->0 ; 1000 0000 + .byte $bb ; 9->11 ; 1001 1011 .byte $00 ; 10->0 ; 1010 0000 - .byte $aa ; 11->10 ; 1011 0000 + .byte $aa ; 11->10 ; 1011 1010 .byte $00 ; 12->0 ; 1100 0000 .byte $99 ; 13->9 ; 1101 1001 .byte $00 ; 14->0 ; 1110 0000 diff --git a/fire/monitor_command b/fire/monitor_command new file mode 100644 index 00000000..43f9a25e --- /dev/null +++ b/fire/monitor_command @@ -0,0 +1,3 @@ +70: 20 90 F3 2C 52 C0 A9 FF A0 27 99 D0 07 88 10 FA A2 16 86 01 20 C2 00 84 02 85 03 E8 20 C2 00 84 04 85 05 A0 27 A5 4E F0 05 0A F0 04 90 02 49 1D 85 4E 30 08 B1 04 29 07 AA B5 BA 2C B1 04 91 02 +B0: 88 10 E2 A6 01 CA 10 CA 30 C6 00 BB 00 AA 00 99 00 DD 8A 29 19 4A 69 01 4A 4A A8 B9 D7 00 6A A8 8A 29 07 4A 09 04 60 00 50 A0 +70G