X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=ROM-2003%2Fvend.asm;h=e0c0428f1992142c9e8d1c162663c261b34114dd;hb=4ea08a808de214d65129b5e3240b6de4a60b8db6;hp=2f759400c3ae8608d9b5e8c82e9c4ef2650e6ed0;hpb=51fae3d3fc1df5a29ebcfb442fb7723f3d7e3e91;p=uccvend-snackrom.git diff --git a/ROM-2003/vend.asm b/ROM-2003/vend.asm index 2f75940..e0c0428 100644 --- a/ROM-2003/vend.asm +++ b/ROM-2003/vend.asm @@ -1,4 +1,4 @@ -;0000 +;0000 set to 1 at the end of a keypad read and turned off at the next rti ;0001 coin mask? (cf 0x001a, 0x3000, 0xc430) ;0003 global only used in jump71 ;0005 number of motors we have @@ -8,7 +8,7 @@ ;0009 ;000a ;000c -;0012 another buffer for 1800 +;0012 another buffer for 1800 - what change to give? ;0013 ;0014 buffer for 3800 register ;0015 @@ -42,9 +42,9 @@ ;0054 0..100 ;0056 last known keypad row 1 state ;005b last known keypad row 0 state -;005d dollars -;005e Y in location XY (row?) cents1 -;005f X in location XY (column?) cents2 +;005a - result of number to string operations (jump55) +; 005f +;0067 working space of 0bc0 ;0073 ;0076-0077 word ;007f @@ -61,7 +61,15 @@ ;0bbd ;0bd8 related to 0017 and 0021 (only lower 3 bits used) ;0bd9 also related -;0bc0 bit 0, 2, 1, 3 +;0bc0 machine capabilities flags +; bit0: have dumb mech +; bit1: +; bit2: have card reader +; bit3: have bill validator +; bit4: link master - price holding enabled +; bit5: link master - price display enabled +; bit6: have $1 changer +; bit7: free vend ;0bc1 error status: (from jump72) ; bit0: changer powerup ; bit1: card powerup @@ -70,14 +78,33 @@ ; bit4: coin jam ; bit5: bad sensor ; bit6: tube error -;0bc2 - 0bce SCI read into these locations -;0bd +; +; SCI read buffer: +; +;0bc2 multiplied by 10^0bc3 and stored into 0baa +;0bc3 10 is raise to the power of this number shr 4, and multiplied by 0baa +;0bc4 index of something +;0bc5 index of something else +;0bc6 index of another thing +;0bc7 word number of something +;0bc8 +;0bc9 word number of something else +;0bca +;0bcb word number of another thing +;0bcc +;0bcd word number of another else +;0bce +; ;0bc4 array index into 0bc7 ;0bc5 ;0bc6 another array index into 0bc7 ;0bc7 word array ; -;0be1 +;0bdd value of coin mech quarters +;0bdf value of coin mech dimes +;0be1 value of coin mech nickels + +; ;0bd7 init'd to 0x01 ;0bd8 init'd to 0x04 ;0bd9 init'd to 0x02 @@ -87,10 +114,22 @@ ; ;0cbc serial number (string) ;0ccc machine ID (string) -;0ce7 audit number (1-bit) +;0ce7 audit number (word) +; ;0cd9 counter of something - reset to 4 on some serial input ;0cda counter of something - reset to 4 on some serial input ;0cdb also counts something - reset to 4 on some serial input + +;0ce9 value or number of $1 coins +;0ceb value or number of 20c coins +;0ced value or number of 10c coins +;0cef value or number of 5c coins + +;0cdc number of value of $1 coins +;0cdb number or value of 20c coin +;0cda number or value of 10c coins +;0cd9 number or value of 5c coins + ;0dff - 0e04 keypad buffer - most recent in 0e04 ;0e05 array index of the array to follow ;0e06 - ?? array of digits*10 @@ -410,7 +449,7 @@ jump72: ; initial menu when door opens? 8100 F6 00 1D ... ldab 001d 8103 C4 10 .. andb #10 -8105 27 3D '= beq 3d +8105 27 3D '= beq 3d ; to 8144 8107 BD D6 52 ..R jsr d652 ;jump5 810A CE 00 1D ... ldx #001d 810D 1D 00 10 ... bclr 00,x, #10 @@ -432,6 +471,7 @@ jump72: 813B 7F 0E 02 ... clr 0e02 813E 7F 0E 03 ... clr 0e03 8141 7F 0E 04 ... clr 0e04 +; 8144 F6 00 42 ..B ldab 0042 8147 C1 0B .. cmpb #0b 8149 26 0F &. bne 0f @@ -917,6 +957,7 @@ jump14: 85BE 39 9 rts jump28: +; drop some change out of the changer? 85BF F6 00 12 ... ldab 0012 85C2 C4 1E .. andb #1e ; 00011110 85C4 4F O clra @@ -935,7 +976,7 @@ jump28: 85EC 7F 00 2C .., clr 002c 85EF F6 0C D9 ... ldab 0cd9 85F2 27 03 '. beq 03 -85F4 7A 0C D9 z.. dec 0cd9 +85F4 7A 0C D9 z.. dec 0cd9 ; decrement number of 5c coins 85F7 BD 97 F6 ... jsr 97f6 ;jump27 85FA CC 01 5E ..^ ldd #015e 85FD BD E5 71 ..q jsr e571 ;msdelay @@ -950,7 +991,7 @@ jump28: 8616 7F 00 2C .., clr 002c 8619 F6 0C DA ... ldab 0cda 861C 27 03 '. beq 03 -861E 7A 0C DA z.. dec 0cda +861E 7A 0C DA z.. dec 0cda ; decrement number of 10c coins 8621 BD 97 F6 ... jsr 97f6 ;jump27 8624 CC 01 5E ..^ ldd #015e 8627 BD E5 71 ..q jsr e571 ;msdelay @@ -965,7 +1006,7 @@ jump28: 8640 7F 00 2C .., clr 002c 8643 F6 0C DB ... ldab 0cdb 8646 27 03 '. beq 03 -8648 7A 0C DB z.. dec 0cdb +8648 7A 0C DB z.. dec 0cdb ; decrement number of 20c coins 864B BD 97 F6 ... jsr 97f6 ;jump27 864E CC 01 5E ..^ ldd #015e 8651 BD E5 71 ..q jsr e571 ;msdelay @@ -980,7 +1021,7 @@ jump28: 8669 7F 00 2C .., clr 002c 866C F6 0C DC ... ldab 0cdc 866F 27 03 '. beq 03 -8671 7A 0C DC z.. dec 0cdc +8671 7A 0C DC z.. dec 0cdc ; decrement number of $1 coins 8674 BD 97 F6 ... jsr 97f6 ;jump27 8677 CC 01 5E ..^ ldd #015e 867A BD E5 71 ..q jsr e571 ;msdelay @@ -3580,58 +3621,59 @@ jump142: 9E88 39 9 rts jump100: +; print out information to display 9E89 BD BE 4B ..K jsr be4b ;displayblank 9E8C F6 00 48 ..H ldab 0048 9E8F 4F O clra 9E90 BD FE 16 ... jsr fe16 ;jump2 -9E93 00 . test -9E94 01 . nop -9E95 00 . test -9E96 2D A1 -. blt a1 -9E98 C4 9E .. andb #9e -9E9A F5 9E FE ... bitb 9efe -9E9D 9F 07 9F ... sts 07 -9EA0 10 . sba -9EA1 9F 19 9F ... sts 19 -9EA4 3B ; rti -9EA5 9F 44 9F .D. sts 44 -9EA8 52 R illegal -9EA9 9F 5B 9F .[. sts 5b -9EAC 69 i rol -9EAD 9F 72 9F .r. sts 72 -9EB0 80 9F .. suba #9f -9EB2 89 9F .. adca #9f -9EB4 97 9F A0 ... staa 9f -9EB7 9F AE 9F ... sts ae -9EBA B7 9F C5 ... staa 9fc5 -9EBD 9F DD 9F ... sts dd -9EC0 EB A0 .. addb a0,x -9EC2 03 . fdiv -9EC3 A0 11 .. suba 11,x -9EC5 A0 29 .) suba 29,x -9EC7 A0 37 .7 suba 37,x -9EC9 A0 54 .T suba 54,x -9ECB A0 62 .b suba 62,x -9ECD A0 7F .. suba 7f,x -9ECF A0 8D .. suba 8d,x -9ED1 A0 96 .. suba 96,x -9ED3 A0 A4 .. suba a4,x -9ED5 A0 AD .. suba ad,x -9ED7 A0 BC .. suba bc,x -9ED9 A0 C5 .. suba c5,x -9EDB A0 D4 .. suba d4,x -9EDD A0 DD .. suba dd,x -9EDF A0 EC .. suba ec,x -9EE1 A0 F5 .. suba f5,x -9EE3 A1 04 .. cmpa 04,x -9EE5 A1 26 .& cmpa 26,x -9EE7 A1 34 .4 cmpa 34,x -9EE9 A1 55 .U cmpa 55,x -9EEB A1 62 .b cmpa 62,x -9EED A1 83 .. cmpa 83,x -9EEF A1 90 .. cmpa 90,x -9EF1 A1 B1 .. cmpa b1,x -9EF3 A1 BE .. cmpa be,x +9E93 00 01 00 2D . ; 45 choices here +9E97 A1 C4 -. ; +9E99 9E F5 .. ; +9E9B 9E FE .. ; +9E9D 9F 07 .. ; +9E9F 9F 10 .. ; +9EA1 9F 19 .. ; +9EA3 9F 3B ;. ; +9EA5 9F 44 .D. ; +9EA7 9F 52 R ; +9EA9 9F 5B .[. ; +9EAB 9F 69 i ; +9EAD 9F 72 .r. ; +9EBF 9F 80 .. ; +9EB1 9F 89 .. ; +9EB3 9F 97 .. ; +9EB5 9F A0 ... ; +9EB7 9F AE .. ; +9EB9 9F B7 ... ; +9EBB 9F C5 ... ; +9EBD 9F DD ... ; +9EBF 9F EB .. ; +9EC1 A0 03 . ; +9EC3 A0 11 .. ; +9EC5 A0 29 .) ; +9EC7 A0 37 .7 ; +9EC9 A0 54 .T ; +9ECB A0 62 .b ; +9ECD A0 7F .. ; +9ECF A0 8D .. ; +9ED1 A0 96 .. ; +9ED3 A0 A4 .. ; +9ED5 A0 AD .. ; +9ED7 A0 BC .. ; +9ED9 A0 C5 .. ; +9EDB A0 D4 .. ; +9EDD A0 DD .. ; +9EDF A0 EC .. ; +9EE1 A0 F5 .. ; +9EE3 A1 04 .. ; +9EE5 A1 26 .& ; +9EE7 A1 34 .4 ; +9EE9 A1 55 .U ; +9EEB A1 62 .b ; +9EED A1 83 .. ; +9EEF A1 90 .. ; +9EF1 A1 B1 .. ; +9EF3 A1 BE .. ; 9EF5 CC B2 90 ... ldd #b290 ; "SERIAL #" 9EF8 BD C0 BA ... jsr c0ba ;display: 9EFB 7E A1 C4 ~.. jmp a1c4 ;goto19 @@ -3644,13 +3686,13 @@ jump100: 9F10 CC 0C CC ... ldd #0ccc ; machine id? 9F13 BD C0 BA ... jsr c0ba ;display: 9F16 7E A1 C4 ~.. jmp a1c4 ;goto19 -9F19 C6 41 .A ldab #41 +9F19 C6 41 .A ldab #41 ; "A" 9F1B F7 0B 99 ... stab 0b99 -9F1E C6 55 .U ldab #55 +9F1E C6 55 .U ldab #55 ; "U" 9F20 F7 0B 98 ... stab 0b98 -9F23 C6 44 .D ldab #44 +9F23 C6 44 .D ldab #44 ; "D" 9F25 F7 0B 97 ... stab 0b97 -9F28 C6 54 .T ldab #54 +9F28 C6 54 .T ldab #54 ; "T" 9F2A F7 0B 96 ... stab 0b96 9F2D CE 00 00 ... ldx #0000 9F30 3C < pshx @@ -3825,7 +3867,7 @@ A0CC 4F O clra A0CD BD A3 1A ... jsr a31a ;jump93 A0D0 38 8 pulx A0D1 7E A1 C4 ~.. jmp a1c4 ;goto19 -A0D4 CC B3 F2 ... ldd #b3f2 +A0D4 CC B3 F2 ... ldd #b3f2 ; "DIMES" A0D7 BD C0 BA ... jsr c0ba ;display: A0DA 7E A1 C4 ~.. jmp a1c4 ;goto19 A0DD FE 0C ED ... ldx 0ced @@ -3835,7 +3877,7 @@ A0E4 4F O clra A0E5 BD A3 1A ... jsr a31a ;jump93 A0E8 38 8 pulx A0E9 7E A1 C4 ~.. jmp a1c4 ;goto19 -A0EC CC B4 04 ... ldd #b404 +A0EC CC B4 04 ... ldd #b404 ; "NICKELS" A0EF BD C0 BA ... jsr c0ba ;display: A0F2 7E A1 C4 ~.. jmp a1c4 ;goto19 A0F5 FE 0C EF ... ldx 0cef @@ -3993,7 +4035,7 @@ A255 CC AF A5 ... ldd #afa5 ; "CLR MIS N" A258 BD C0 BA ... jsr c0ba ;display: A25B 39 9 rts -jump82: +bigmodulus: A25C 37 7 pshb A25D 36 6 psha A25E F6 00 2C .., ldab 002c @@ -4047,6 +4089,7 @@ A2D2 38 8 pulx A2D3 39 9 rts jump79: +; displays a price on screen? A2D4 37 7 pshb A2D5 36 6 psha A2D6 30 0 tsx @@ -4067,19 +4110,20 @@ A2FB E6 05 .. ldab 05,x A2FD 27 14 '. beq 14 A2FF F6 00 17 ... ldab 0017 A302 C4 08 .. andb #08 -A304 26 05 &. bne 05 -A306 C6 24 .$ ldab #24 +A304 26 05 &. bne 05 ; to a30b +A306 C6 24 .$ ldab #24 ; "$" A308 F7 0B 95 ... stab 0b95 A30B CC 00 01 ... ldd #0001 -A30E BD A2 5C ..\ jsr a25c ;jump82 -A311 20 05 . bra 05 +A30E BD A2 5C ..\ jsr a25c ;bigmodulus +A311 20 05 . bra 05 ; return A313 5F _ clrb A314 4F O clra -A315 BD A2 5C ..\ jsr a25c ;jump82 +A315 BD A2 5C ..\ jsr a25c ;bigmodulus A318 38 8 pulx A319 39 9 rts jump93: +; write number to display A31A 37 7 pshb A31B 36 6 psha A31C 30 0 tsx @@ -4111,17 +4155,17 @@ A346 EC 04 .. ldd 04,x A348 37 7 pshb A349 36 6 psha A34A EC 02 .. ldd 02,x -A34C BD E6 21 ..! jsr e621 ;jump56 +A34C BD E6 21 ..! jsr e621 ;jump56 - write to display A34F 38 8 pulx -A350 C6 20 . ldab #20 +A350 C6 20 . ldab #20 ; " " A352 F7 0B 99 ... stab 0b99 A355 F6 00 17 ... ldab 0017 A358 C4 08 .. andb #08 A35A 26 05 &. bne 05 -A35C C6 24 .$ ldab #24 +A35C C6 24 .$ ldab #24 ; "$" A35E F7 0B 98 ... stab 0b98 A361 CC 00 01 ... ldd #0001 -A364 BD A2 5C ..\ jsr a25c ;jump82 +A364 BD A2 5C ..\ jsr a25c ;bigmodulus A367 38 8 pulx A368 31 1 ins A369 31 1 ins @@ -4257,6 +4301,7 @@ A455 BD A3 6C ..l jsr a36c ;jump81 A458 39 9 rts jump110: +; some sort of defaults setting loading? plays with 0067 an awful lot A459 3C < pshx A45A F6 00 67 ..g ldab 0067 A45D C4 02 .. andb #02 @@ -7384,28 +7429,28 @@ B91C 7F 00 2C .., clr 002c B91F BD BE 01 ... jsr be01 ;jump70 write to display B922 C6 0A .. ldab #0a B924 F7 00 2C .., stab 002c -B927 7E BA 81 ~.. jmp ba81 ;goto27 +B927 7E BA 81 ~.. jmp ba81 ;goto27 - return goto25: B92A F6 0E 6D ..m ldab 0e6d B92D C1 01 .. cmpb #01 B92F 27 03 '. beq 03 -B931 7E BA 81 ~.. jmp ba81 ;goto27 +B931 7E BA 81 ~.. jmp ba81 ;goto27 - return B934 F6 0E 00 ... ldab 0e00 B937 C1 05 .. cmpb #05 B939 27 03 '. beq 03 -B93B 7E BA 81 ~.. jmp ba81 ;goto27 +B93B 7E BA 81 ~.. jmp ba81 ;goto27 - return B93E F6 0E 01 ... ldab 0e01 B941 C1 05 .. cmpb #05 B943 27 03 '. beq 03 -B945 7E BA 81 ~.. jmp ba81 ;goto27 +B945 7E BA 81 ~.. jmp ba81 ;goto27 - return B948 F6 0E 02 ... ldab 0e02 B94B C1 05 .. cmpb #05 B94D 27 03 '. beq 03 -B94F 7E BA 81 ~.. jmp ba81 ;goto27 +B94F 7E BA 81 ~.. jmp ba81 ;goto27 - return B952 F6 00 12 ... ldab 0012 B955 C4 20 . andb #20 ; test the door switch B957 26 03 &. bne 03 -B959 7E BA 81 ~.. jmp ba81 ;goto27 +B959 7E BA 81 ~.. jmp ba81 ;goto27 - return B95C F6 0E 04 ... ldab 0e04 B95F C1 05 .. cmpb #05 B961 26 79 &y bne 79 @@ -7463,22 +7508,26 @@ B9CE 7F 00 2C .., clr 002c B9D1 BD BE 01 ... jsr be01 ;jump70 - display B9D4 C6 1E .. ldab #1e B9D6 F7 00 2C .., stab 002c -B9D9 7E BA 81 ~.. jmp ba81 ;goto27 +B9D9 7E BA 81 ~.. jmp ba81 ;goto27 - return +; B9DC F6 0E 04 ... ldab 0e04 B9DF C1 01 .. cmpb #01 B9E1 27 0A '. beq 0a B9E3 F6 0E 04 ... ldab 0e04 B9E6 C1 02 .. cmpb #02 B9E8 27 03 '. beq 03 -B9EA 7E BA 81 ~.. jmp ba81 ;goto27 +B9EA 7E BA 81 ~.. jmp ba81 ;goto27 - return +; B9ED F6 0E 03 ... ldab 0e03 B9F0 C1 00 .. cmpb #00 B9F2 22 03 ". bhi 03 -B9F4 7E BA 81 ~.. jmp ba81 ;goto27 +B9F4 7E BA 81 ~.. jmp ba81 ;goto27 - return +; B9F7 F6 0E 03 ... ldab 0e03 B9FA C1 05 .. cmpb #05 B9FC 26 03 &. bne 03 -B9FE 7E BA 81 ~.. jmp ba81 ;goto27 +B9FE 7E BA 81 ~.. jmp ba81 ;goto27 - return +; BA01 F6 0E 03 ... ldab 0e03 BA04 C1 07 .. cmpb #07 BA06 24 79 $y bcc 79 @@ -8355,7 +8404,7 @@ C0B8 38 8 pulx C0B9 39 9 rts ;Display a string. D points to the string, which is NULL-terminated - +; display: C0BA 37 7 pshb C0BB 36 6 psha @@ -8673,6 +8722,7 @@ C323 01 . nop C324 39 9 rts jump64: +; has a good long chat to the bill validator C325 F6 10 00 ... ldab 1000 C328 C4 01 .. andb #01 C32A 26 13 &. bne 13 @@ -8795,14 +8845,15 @@ C452 F7 30 00 .0. stab 3000 ; changer outputs again C455 39 9 rts jump47: +; coin have something to do with coin counting? C456 FC 00 40 ..@ ldd 0040 C459 26 03 &. bne 03 -C45B 7E C5 C6 ~.. jmp c5c6 ;goto39 +C45B 7E C5 C6 ~.. jmp c5c6 ;goto39 - unset 0x30 in 0021 & return C45E CE 00 1A ... ldx #001a C461 1C 00 01 .. bset 00,x, #01 C464 F6 00 1A ... ldab 001a C467 F7 30 00 .0. stab 3000 ; changer accept off -C46A CC 03 E8 ... ldd #03e8 +C46A CC 03 E8 ... ldd #03e8 ; 1000 C46D BD E5 71 ..q jsr e571 ;msdelay goto42: C470 FC 00 40 ..@ ldd 0040 @@ -8912,7 +8963,7 @@ C577 5F _ clrb C578 4F O clra C579 FD 00 40 ..@ std 0040 goto41: -C57C CC 01 2C .., ldd #012c +C57C CC 01 2C .., ldd #012c ;300 ms C57F BD E5 71 ..q jsr e571 ;msdelay C582 F6 00 1B ... ldab 001b C585 C4 20 . andb #20 @@ -8921,7 +8972,7 @@ C589 CE 00 1A ... ldx #001a C58C 1D 00 01 .. bclr 00,x, #01 C58F F6 00 1A ... ldab 001a C592 F7 30 00 .0. stab 3000 ; changer accept' low -C595 CC 00 0C ... ldd #000c +C595 CC 00 0C ... ldd #000c ; 12 ms C598 BD E5 71 ..q jsr e571 ;msdelay C59B CE 00 1A ... ldx #001a C59E 1C 00 01 .. bset 00,x, #01 @@ -8929,7 +8980,7 @@ C5A1 F6 00 1A ... ldab 001a C5A4 F7 30 00 .0. stab 3000 ; changer accept' high C5A7 CC 00 23 ..# ldd #0023 C5AA BD E5 71 ..q jsr e571 ;msdelay -C5AD 7E C4 70 ~.p jmp c470 ;goto42 +C5AD 7E C4 70 ~.p jmp c470 ;goto42 - loop goto40: C5B0 F6 0B C0 ... ldab 0bc0 C5B3 C4 04 .. andb #04 @@ -8944,8 +8995,8 @@ goto39: C5C6 CE 00 21 ..! ldx #0021 C5C9 1D 00 10 ... bclr 00,x, #10 C5CC CE 00 1B ... ldx #001b -C5CF 1D 00 .. bclr add,x 00,x -C5D1 20 39 9 bra 39 +C5CF 1D 00 .. bclr 00,x, #20 +C5D2 39 . rts jump6: C5D3 F6 00 15 ... ldab 0015 @@ -9350,7 +9401,7 @@ C943 25 12 %. bcs 12 ; to c957 C945 CE 00 17 ... ldx #0017 C948 1D 00 04 ... bclr 00,x, #04 C94B 7F 00 08 ... clr 0008 -C94E BD CE 48 ..H jsr ce48 ;jump48 +C94E BD CE 48 ..H jsr ce48 ;jump48 - update values? C951 7F 00 2C .., clr 002c C954 7E CA 5C ~.\ jmp ca5c ;goto50 - clean exit ; @@ -9425,9 +9476,9 @@ C9DD 20 7A z bra 7a ;goto51 - inc 0008 & clean exit C9DF F6 10 2F ../ ldab 102f ; read SCI data C9E2 F7 0B C4 ... stab 0bc4 C9E5 F6 0B C4 ... ldab 0bc4 -C9E8 C1 80 .. cmpb #80 +C9E8 C1 80 .. cmpb #80 ; if == 128 C9EA 26 05 &. bne 05 -C9EC C6 0F .. ldab #0f +C9EC C6 0F .. ldab #0f ; put 15 => 0bc4 C9EE F7 0B C4 ... stab 0bc4 C9F1 20 66 f bra 66 ;goto51 - inc 0008 & clean exit ; @@ -9531,7 +9582,7 @@ CABA 1C 00 .. bset 00,x, #20 CABD CE 00 1B ... ldx #001b CAC0 1D 00 40 ... bclr 00,x, #40 CAC3 7F 00 25 ..% clr 0025 -CAC6 7E CB 64 ~.d jmp cb64 ;goto53 +CAC6 7E CB 64 ~.d jmp cb64 ;goto53 - cleanup & exit ; CAC9 F6 00 17 ... ldab 0017 CACC C4 08 .. andb #08 @@ -9965,7 +10016,7 @@ CE39 20 0B . bra 0b ; to ce46 (exit) goto54: ; just swallow two bytes? CE3B F6 10 2E ... ldab 102e ; SCI Status CE3E 30 0 tsx -CE3F E7 00 .. stab 00,x +CE3F E7 00 .. stab 00,x ; store into stack variable CE41 F6 10 2F ../ ldab 102f ; read SCI data CE44 E7 00 .. stab 00,x goto47: @@ -10459,18 +10510,18 @@ D213 F6 00 1F ... ldab 001f D216 C4 04 .. andb #04 D218 26 12 &. bne 12 D21A F6 0B C0 ... ldab 0bc0 -D21D C4 10 .. andb #10 +D21D C4 10 .. andb #10 ; am i link master? D21F 26 0B &. bne 0b D221 CE 00 00 ... ldx #0000 D224 3C < pshx D225 FC 00 44 ..D ldd 0044 -D228 BD BE 9E ... jsr be9e ;jump50 +D228 BD BE 9E ... jsr be9e ;jump50 - write slot & price to screen? D22B 38 8 pulx D22C BD D3 11 ... jsr d311 ;jump30 - test position exists D22F 83 00 00 ... subd #0000 D232 27 13 '. beq 13 D234 F6 00 06 ... ldab 0006 -D237 BD D4 68 ..h jsr d468 ;jump51 +D237 BD D4 68 ..h jsr d468 ;jump51 - lookup in 0800 table & and with 8000 D23A 83 00 00 ... subd #0000 D23D 27 05 '. beq 05 D23F 8D BC .. bsr bc ;jump90 @@ -11051,13 +11102,13 @@ D66A 39 9 rts jump107: D66B F6 0B C0 ... ldab 0bc0 -D66E C4 08 .. andb #08 -D670 27 07 '. beq 07 +D66E C4 08 .. andb #08 ; we have a bill validator? +D670 27 07 '. beq 07 ; if not, to d679 D672 F6 00 7D ..} ldab 007d D675 27 02 '. beq 02 -D677 20 F9 . bra f9 +D677 20 F9 . bra f9 ; to d672 - wait for a bill? D679 F6 00 15 ... ldab 0015 -D67C 2D 77 -w blt 77 +D67C 2D 77 -w blt 77 ; return D67E FC 00 40 ..@ ldd 0040 D681 F3 00 3E ..> addd 003e D684 B3 00 0F ... subd 000f @@ -11108,6 +11159,7 @@ D6F5 39 9 rts jump106: ; puts (0cdb+0bdd)+(0cda*0bdf)+(0cd9*0be1) => 0bef +; calculates how much money we have in the coin mech!!!! D6F6 F6 0C DB ... ldab 0cdb D6F9 4F O clra D6FA 37 7 pshb @@ -11871,7 +11923,7 @@ DCC8 37 7 pshb DCC9 36 6 psha DCCA CE E1 00 ... ldx #e100 DCCD 3C < pshx -DCCE CC 05 F5 ... ldd #05f5 +DCCE CC 05 F5 ... ldd #05f5 ; 100000000 DCD1 37 7 pshb DCD2 36 6 psha DCD3 30 0 tsx @@ -12167,12 +12219,12 @@ DF4B 26 20 & bne 20 DF4D F6 00 1B ... ldab 001b DF50 C4 40 .@ andb #40 DF52 27 19 '. beq 19 -DF54 BD D6 52 ..R jsr d652 ;jump5 +DF54 BD D6 52 ..R jsr d652 ;jump5 - pulse bill acceptor DF57 FC 00 40 ..@ ldd 0040 DF5A 26 05 &. bne 05 DF5C FC 00 3E ..> ldd 003e DF5F 27 03 '. beq 03 -DF61 BD DB 44 ..D jsr db44 ;jump104 +DF61 BD DB 44 ..D jsr db44 ;jump104 - say thanks DF64 BD D6 6B ..k jsr d66b ;jump107 DF67 CE 00 1B ... ldx #001b DF6A 1D 00 40 ... bclr 00,x, #40 @@ -12297,7 +12349,7 @@ E074 BD E7 C7 ... jsr e7c7 ;jump114 E077 F6 00 06 ... ldab 0006 E07A C1 59 .Y cmpb #59 ; 89 E07C 26 06 &. bne 06 -E07E BD DE 09 ... jsr de09 ;jump119 +E07E BD DE 09 ... jsr de09 ;jump119 - display machine id E081 7E E5 5E ~.^ jmp e55e ;goto74 E084 F6 00 06 ... ldab 0006 E087 BD D4 68 ..h jsr d468 ;jump51 @@ -12587,7 +12639,7 @@ E2F2 24 15 $. bcc 15 E2F4 F6 00 11 ... ldab 0011 E2F7 C4 10 .. andb #10 E2F9 26 0E &. bne 0e -E2FB BD DB 44 ..D jsr db44 ;jump104 +E2FB BD DB 44 ..D jsr db44 ;jump104 - say thanks E2FE CE 00 1B ... ldx #001b E301 1D 00 40 ... bclr 00,x, #40 E304 7F 00 25 ..% clr 0025 @@ -12922,7 +12974,7 @@ E5C0 FC 00 3B ..; ldd 003b E5C3 27 06 '. beq 06 ; to e5cb E5C5 CC 02 33 ..3 ldd #0233 E5C8 FD 00 3B ..; std 003b -E5CB C6 02 .. ldab #02 +E5CB C6 02 .. ldab #02 ; make a beep E5CD F7 00 33 ..3 stab 0033 E5D0 39 9 rts @@ -12993,6 +13045,7 @@ E61D F7 00 31 ..1 stab 0031 E620 39 9 rts jump56: +; writes a really big number to the display E621 38 8 pulx E622 37 7 pshb E623 36 6 psha @@ -13005,14 +13058,15 @@ E62C 36 6 psha E62D EC 02 .. ldd 02,x E62F 37 7 pshb E630 36 6 psha -E631 CE 96 80 ... ldx #9680 +E631 CE 96 80 ... ldx #9680 ;38528 E634 3C < pshx -E635 CC 00 98 ... ldd #0098 -E638 BD FC 4C ..L jsr fc4c ;jump83 +E635 CC 00 98 ... ldd #0098 ;152 +E638 BD FC 4C ..L jsr fc4c ;bigdivide E63B 31 1 ins E63C 33 3 pulb -E63D CB 30 .0 addb #30 +E63D CB 30 .0 addb #30 ; make it a digit E63F F7 0B 97 ... stab 0b97 +; E642 30 0 tsx E643 EC 04 .. ldd 04,x E645 37 7 pshb @@ -13020,20 +13074,21 @@ E646 36 6 psha E647 EC 02 .. ldd 02,x E649 37 7 pshb E64A 36 6 psha -E64B CE 96 80 ... ldx #9680 +E64B CE 96 80 ... ldx #9680 ;38528 E64E 3C < pshx -E64F CC 00 98 ... ldd #0098 -E652 BD FC 5C ..\ jsr fc5c ;jump82 +E64F CC 00 98 ... ldd #0098 ;152 +E652 BD FC 5C ..\ jsr fc5c ;bigmodulus E655 37 7 pshb E656 36 6 psha -E657 CE 42 40 .B@ ldx #4240 +E657 CE 42 40 .B@ ldx #4240 ;16960 E65A 3C < pshx -E65B CC 00 0F ... ldd #000f -E65E BD FC 4C ..L jsr fc4c ;jump83 +E65B CC 00 0F ... ldd #000f ;15 +E65E BD FC 4C ..L jsr fc4c ;bigdivide E661 31 1 ins E662 33 3 pulb E663 CB 30 .0 addb #30 E665 F7 0B 96 ... stab 0b96 +; E668 30 0 tsx E669 EC 04 .. ldd 04,x E66B 37 7 pshb @@ -13041,20 +13096,21 @@ E66C 36 6 psha E66D EC 02 .. ldd 02,x E66F 37 7 pshb E670 36 6 psha -E671 CE 42 40 .B@ ldx #4240 +E671 CE 42 40 .B@ ldx #4240 ;16960 E674 3C < pshx -E675 CC 00 0F ... ldd #000f -E678 BD FC 5C ..\ jsr fc5c ;jump82 +E675 CC 00 0F ... ldd #000f ;15 +E678 BD FC 5C ..\ jsr fc5c ;bigmodulus E67B 37 7 pshb E67C 36 6 psha -E67D CE 86 A0 ... ldx #86a0 +E67D CE 86 A0 ... ldx #86a0 ;34464 E680 3C < pshx -E681 CC 00 01 ... ldd #0001 -E684 BD FC 4C ..L jsr fc4c ;jump83 +E681 CC 00 01 ... ldd #0001 ;1 +E684 BD FC 4C ..L jsr fc4c ;bigdivide E687 31 1 ins E688 33 3 pulb E689 CB 30 .0 addb #30 E68B F7 0B 95 ... stab 0b95 +; E68E 30 0 tsx E68F EC 04 .. ldd 04,x E691 37 7 pshb @@ -13062,20 +13118,21 @@ E692 36 6 psha E693 EC 02 .. ldd 02,x E695 37 7 pshb E696 36 6 psha -E697 CE 86 A0 ... ldx #86a0 +E697 CE 86 A0 ... ldx #86a0 ;34464 E69A 3C < pshx -E69B CC 00 01 ... ldd #0001 -E69E BD FC 5C ..\ jsr fc5c ;jump82 +E69B CC 00 01 ... ldd #0001 ;1 +E69E BD FC 5C ..\ jsr fc5c ;bigmodulus E6A1 37 7 pshb E6A2 36 6 psha -E6A3 CE 27 10 .'. ldx #2710 +E6A3 CE 27 10 .'. ldx #2710 ;10000 E6A6 3C < pshx E6A7 CC 00 00 ... ldd #0000 -E6AA BD FC 4C ..L jsr fc4c ;jump83 +E6AA BD FC 4C ..L jsr fc4c ;bigdivide E6AD 31 1 ins E6AE 33 3 pulb E6AF CB 30 .0 addb #30 E6B1 F7 0B 94 ... stab 0b94 +; E6B4 30 0 tsx E6B5 EC 04 .. ldd 04,x E6B7 37 7 pshb @@ -13083,20 +13140,22 @@ E6B8 36 6 psha E6B9 EC 02 .. ldd 02,x E6BB 37 7 pshb E6BC 36 6 psha -E6BD CE 27 10 .'. ldx #2710 +E6BD CE 27 10 .'. ldx #2710 ;10000 E6C0 3C < pshx E6C1 CC 00 00 ... ldd #0000 -E6C4 BD FC 5C ..\ jsr fc5c ;jump82 +E6C4 BD FC 5C ..\ jsr fc5c ;bigmodulus E6C7 37 7 pshb E6C8 36 6 psha -E6C9 CE 03 E8 ... ldx #03e8 +E6C9 CE 03 E8 ... ldx #03e8 ;1000 E6CC 3C < pshx E6CD CC 00 00 ... ldd #0000 -E6D0 BD FC 4C ..L jsr fc4c ;jump83 +E6D0 BD FC 4C ..L jsr fc4c ;bigdivide E6D3 31 1 ins E6D4 33 3 pulb E6D5 CB 30 .0 addb #30 E6D7 F7 0B 93 ... stab 0b93 +; +; E6DA 30 0 tsx E6DB EC 04 .. ldd 04,x E6DD 37 7 pshb @@ -13104,20 +13163,21 @@ E6DE 36 6 psha E6DF EC 02 .. ldd 02,x E6E1 37 7 pshb E6E2 36 6 psha -E6E3 CE 03 E8 ... ldx #03e8 +E6E3 CE 03 E8 ... ldx #03e8 ;1000 E6E6 3C < pshx E6E7 CC 00 00 ... ldd #0000 -E6EA BD FC 5C ..\ jsr fc5c ;jump82 +E6EA BD FC 5C ..\ jsr fc5c ;bigmodulus E6ED 37 7 pshb E6EE 36 6 psha -E6EF CE 00 64 ..d ldx #0064 +E6EF CE 00 64 ..d ldx #0064 ;100 E6F2 3C < pshx E6F3 CC 00 00 ... ldd #0000 -E6F6 BD FC 4C ..L jsr fc4c ;jump83 +E6F6 BD FC 4C ..L jsr fc4c ;bigdivide E6F9 31 1 ins E6FA 33 3 pulb E6FB CB 30 .0 addb #30 E6FD F7 0B 92 ... stab 0b92 +; E700 30 0 tsx E701 EC 04 .. ldd 04,x E703 37 7 pshb @@ -13125,20 +13185,21 @@ E704 36 6 psha E705 EC 02 .. ldd 02,x E707 37 7 pshb E708 36 6 psha -E709 CE 00 64 ..d ldx #0064 +E709 CE 00 64 ..d ldx #0064 ;100 E70C 3C < pshx E70D CC 00 00 ... ldd #0000 -E710 BD FC 5C ..\ jsr fc5c ;jump82 +E710 BD FC 5C ..\ jsr fc5c ;bigmodulus E713 37 7 pshb E714 36 6 psha -E715 CE 00 0A ... ldx #000a +E715 CE 00 0A ... ldx #000a ;10 E718 3C < pshx E719 CC 00 00 ... ldd #0000 -E71C BD FC 4C ..L jsr fc4c ;jump83 +E71C BD FC 4C ..L jsr fc4c ;bigdivide E71F 31 1 ins E720 33 3 pulb E721 CB 30 .0 addb #30 E723 F7 0B 91 ... stab 0b91 +; E726 30 0 tsx E727 EC 04 .. ldd 04,x E729 37 7 pshb @@ -13146,14 +13207,15 @@ E72A 36 6 psha E72B EC 02 .. ldd 02,x E72D 37 7 pshb E72E 36 6 psha -E72F CE 00 0A ... ldx #000a +E72F CE 00 0A ... ldx #000a ;10 E732 3C < pshx E733 CC 00 00 ... ldd #0000 -E736 BD FC 5C ..\ jsr fc5c ;jump82 +E736 BD FC 5C ..\ jsr fc5c ;bigmodulus E739 31 1 ins E73A 33 3 pulb E73B CB 30 .0 addb #30 E73D F7 0B 90 ... stab 0b90 +; E740 38 8 pulx E741 31 1 ins E742 31 1 ins @@ -14638,7 +14700,7 @@ F341 EC 04 .. ldd 04,x F343 37 7 pshb F344 36 6 psha F345 EC 02 .. ldd 02,x -F347 BD E6 21 ..! jsr e621 ;jump56 +F347 BD E6 21 ..! jsr e621 ;jump56 - write to display F34A 38 8 pulx F34B C6 07 .. ldab #07 F34D F7 00 18 ... stab 0018 @@ -14737,7 +14799,7 @@ F413 38 8 pulx F414 39 9 rts jump112: -; print a report? +; print a report to printer F415 F6 0B C0 ... ldab 0bc0 F418 C4 02 .. andb #02 F41A 27 15 '. beq 15 @@ -15013,7 +15075,7 @@ F6DF BD F1 5B ..[ jsr f15b ;jump53 F6E2 F6 00 19 ... ldab 0019 F6E5 C4 40 .@ andb #40 F6E7 26 07 &. bne 07 -F6E9 FE 0C E7 ... ldx 0ce7 +F6E9 FE 0C E7 ... ldx 0ce7 ;increment the audit number? F6EC 08 . inx F6ED FF 0C E7 ... stx 0ce7 F6F0 CE 00 1D ... ldx #001d @@ -15034,10 +15096,10 @@ F717 39 9 rts rti: F718 3C < pshx -F719 F6 0B C0 ... ldab 0bc0 +F719 F6 0B C0 ... ldab 0bc0 ; if we have a bill validator F71C C4 08 .. andb #08 F71E 27 03 '. beq 03 -F720 BD C3 25 ..% jsr c325 ;jump64 +F720 BD C3 25 ..% jsr c325 ;jump64 - go query the bill validator F723 7C 00 0C |.. inc 000c F726 F6 00 0C ... ldab 000c F729 C1 02 .. cmpb #02 @@ -15308,9 +15370,12 @@ F94F F7 00 35 ..5 stab 0035 ; ; end of power line test ; +; +; chat to the bill validator if we need to +; F952 F6 0B C0 ... ldab 0bc0 F955 C4 08 .. andb #08 -F957 27 16 '. beq 16 ; to f96f +F957 27 16 '. beq 16 ; to f96f if no bill validator F959 CE 00 02 ... ldx #0002 F95C 3C < pshx F95D CC 10 00 ... ldd #1000 @@ -15344,10 +15409,11 @@ F99C 26 03 &. bne 03 F99E BD D6 F6 ... jsr d6f6 ;jump106 F9A1 F6 00 12 ... ldab 0012 F9A4 C4 20 . andb #20 ; test door switch -F9A6 27 08 '. beq 08 +F9A6 27 08 '. beq 08 ; to f9b0 F9A8 F6 00 35 ..5 ldab 0035 F9AB 26 03 &. bne 03 F9AD 7E FA 79 ~.y jmp fa79 ;goto83 +; F9B0 CE 00 1F ... ldx #001f F9B3 1D 00 04 ... bclr 00,x, #04 F9B6 CE 00 1D ... ldx #001d @@ -15642,6 +15708,7 @@ FC23 31 1 ins FC24 39 9 rts jump85: +; long addition function? FC25 3C < pshx FC26 30 0 tsx FC27 E3 06 .. addd 06,x @@ -15668,7 +15735,16 @@ FC49 31 1 ins FC4A 31 1 ins FC4B 39 9 rts -jump83: + + +; bigdivide: and bigmodulus: are a division function and a remainder function +; for stupidly huge numbers. +; +; +; the number in D is prepended to the number at the top of the stack +; eg, 0x0f in D and 0x4240 on stack => 0x0f4240 = 1000000 +; +bigdivide: FC4C 3C < pshx FC4D 3C < pshx FC4E 37 7 pshb @@ -15682,7 +15758,7 @@ FC56 4F O clra FC57 A7 04 .. staa 04,x FC59 7E FC 6D ~.m jmp fc6d ;goto88 -jump82: +bigmodulus: FC5C 3C < pshx FC5D 3C < pshx FC5E 37 7 pshb @@ -15695,6 +15771,7 @@ FC65 30 0 tsx FC66 86 01 .. ldaa #01 FC68 A7 04 .. staa 04,x FC6A 7E FC 6D ~.m jmp fc6d ;goto88 +; goto88: FC6D 1A EE 0E ... ldy 0e,x FC70 EC 08 .. ldd 08,x @@ -15710,26 +15787,30 @@ FC81 ED 08 .. std 08,x FC83 ED 06 .. std 06,x FC85 EC 0A .. ldd 0a,x FC87 1A A3 0E ... cmpd 0e,x -FC8A 22 23 "# bhi 23 -FC8C 27 15 '. beq 15 +FC8A 22 23 "# bhi 23 ; to fcaf +FC8C 27 15 '. beq 15 ; to fca3 +; FC8E 1E 04 01 08 .... brset 04,x 01 08 FC92 CC 00 00 ... ldd #0000 FC95 ED 14 .. std 14,x -FC97 7E FE 04 ~.. jmp fe04 ;goto89 +FC97 7E FE 04 ~.. jmp fe04 ;goto89 - return FC9A EC 0C .. ldd 0c,x FC9C ED 14 .. std 14,x FC9E EC 0A .. ldd 0a,x FCA0 7E FD E3 ~.. jmp fde3 ;goto90 +; FCA3 83 00 00 ... subd #0000 -FCA6 27 12 '. beq 12 +FCA6 27 12 '. beq 12 ; to fcba FCA8 EC 0C .. ldd 0c,x FCAA 1A A3 10 ... cmpd 10,x -FCAD 25 DF %. bcs df +FCAD 25 DF %. bcs df ; to fc8e +; FCAF 6D 0E m. tst 0e,x -FCB1 26 70 &p bne 70 +FCB1 26 70 &p bne 70 ; to fd23 FCB3 6D 0F m. tst 0f,x -FCB5 27 1A '. beq 1a +FCB5 27 1A '. beq 1a ; to fcd1 FCB7 7E FD A4 ~.. jmp fda4 ;goto91 +; FCBA 3C < pshx FCBB 3C < pshx FCBC 18 38 .8 puly @@ -15743,6 +15824,7 @@ FCCA ED 14 .. std 14,x FCCC 4F O clra FCCD 5F _ clrb FCCE 7E FD E3 ~.. jmp fde3 ;goto90 +; FCD1 3C < pshx FCD2 3C < pshx FCD3 18 38 .8 puly @@ -15757,7 +15839,8 @@ FCE0 03 . fdiv FCE1 CD EF 0E ... stx 02x,y FCE4 38 8 pulx FCE5 18 E3 0C ... addd 0c,y -FCE8 24 1B $. bcc 1b +FCE8 24 1B $. bcc 1b ; to fd05 +; FCEA 18 ED 0C ... std 0c,y FCED 4F O clra FCEE C6 01 .. ldab #01 @@ -15771,8 +15854,9 @@ FCFB 18 ED 0E ... std 0e,y FCFE 8F . xgdx FCFF 38 8 pulx FD00 18 E3 0C ... addd 0c,y -FD03 25 E5 %. bcs e5 +FD03 25 E5 %. bcs e5 ; to fcea FD05 02 . idiv +; FD06 8F . xgdx FD07 18 E3 0E ... addd 0e,y FD0A 24 03 $. bcc 03 @@ -15785,8 +15869,9 @@ FD1B 38 8 pulx FD1C ED 14 .. std 14,x FD1E EC 0A .. ldd 0a,x FD20 7E FD E3 ~.. jmp fde3 ;goto90 -FD23 86 08 .. ldaa #08 -FD25 A7 05 .. staa 05,x +; +FD23 86 08 .. ldaa #08 ; for i = 8 +FD25 A7 05 .. staa 05,x ; do FD27 69 0D i. rol 0d,x FD29 69 0C i. rol 0c,x FD2B 69 0B i. rol 0b,x @@ -15798,26 +15883,29 @@ FD35 ED 14 .. std 14,x FD37 EC 09 .. ldd 09,x FD39 E2 0F .. sbcb 0f,x FD3B A2 0E .. sbca 0e,x -FD3D 25 06 %. bcs 06 +FD3D 25 06 %. bcs 06 ; to fd45 FD3F ED 09 .. std 09,x FD41 EC 14 .. ldd 14,x FD43 ED 0B .. std 0b,x -FD45 6A 05 j. dec 05,x -FD47 26 DE &. bne de +FD45 6A 05 j. dec 05,x ; i-- +FD47 26 DE &. bne de ; to fd27 +; FD49 69 0D i. rol 0d,x -FD4B 1F 04 01 09 .... brclr 04,x 01 09 +FD4B 1F 04 01 09 .... brclr 04,x 01 09 ; to fd58 FD4F EC 0B .. ldd 0b,x FD51 ED 14 .. std 14,x FD53 EC 09 .. ldd 09,x FD55 7E FD E3 ~.. jmp fde3 ;goto90 +; FD58 4F O clra FD59 E6 0D .. ldab 0d,x FD5B 53 S comb FD5C ED 14 .. std 14,x FD5E 5F _ clrb FD5F 7E FD E3 ~.. jmp fde3 ;goto90 -FD62 86 10 .. ldaa #10 -FD64 A7 05 .. staa 05,x +; +FD62 86 10 .. ldaa #10 ; for i = 16 +FD64 A7 05 .. staa 05,x ; do FD66 69 0D i. rol 0d,x FD68 69 0C i. rol 0c,x FD6A 69 0B i. rol 0b,x @@ -15830,30 +15918,31 @@ FD76 ED 14 .. std 14,x FD78 EC 08 .. ldd 08,x FD7A E2 0F .. sbcb 0f,x FD7C 82 00 .. sbca #00 -FD7E 25 06 %. bcs 06 +FD7E 25 06 %. bcs 06 ; continue FD80 ED 08 .. std 08,x FD82 EC 14 .. ldd 14,x FD84 ED 0A .. std 0a,x -FD86 6A 05 j. dec 05,x -FD88 26 DC &. bne dc +FD86 6A 05 j. dec 05,x ; i-- +FD88 26 DC &. bne dc ; to fd66 +; FD8A 69 0D i. rol 0d,x FD8C 69 0C i. rol 0c,x FD8E 1F 04 01 08 .... brclr 04,x 01 08 FD92 EC 0A .. ldd 0a,x FD94 ED 14 .. std 14,x FD96 EC 08 .. ldd 08,x -FD98 20 49 I bra 49 +FD98 20 49 I bra 49 ;goto90 FD9A EC 0C .. ldd 0c,x FD9C 43 C coma FD9D 53 S comb FD9E ED 14 .. std 14,x FDA0 4F O clra FDA1 5F _ clrb -FDA2 20 3F ? bra 3f +FDA2 20 3F ? bra 3f ;goto90 goto91: -FDA4 2B BC +. bmi bc -FDA6 86 10 .. ldaa #10 -FDA8 A7 05 .. staa 05,x +FDA4 2B BC +. bmi bc ; to fd62 if minus +FDA6 86 10 .. ldaa #10 ; for i = 16 +FDA8 A7 05 .. staa 05,x ; do FDAA 69 0D i rol 0d,x FDAC 69 0C i rol 0c,x FDAE 69 0B i rol 08,x @@ -15864,20 +15953,22 @@ FDB6 A3 10 .. subd 10,x FDB8 ED 14 .. std 14,x FDBA A6 07 .. ldaa 07,x FDBC A2 0F .. sbca 0f,x -FDBE 25 06 %. bcs 06 +FDBE 25 06 %. bcs 06 ;continue FDC0 A7 07 .. staa 07,x FDC2 EC 14 .. ldd 14,x FDC4 ED 0A .. std 0a,x FDC6 6A 05 j. dec 05,x -FDC8 26 E0 &. bne e0 +FDC8 26 E0 &. bne e0 ;reloop +; FDCA 69 0D i. rol 0d,x FDCC 69 0C i. rol 0c,x -FDCE 1F 04 01 09 .... brclr 04,x 01 09 +FDCE 1F 04 01 09 .... brclr 04,x 01 09 ;to fddb FDD2 EC 0A .. ldd 0a,x FDD4 ED 14 .. std 14,x FDD6 4F O clra FDD7 E6 07 .. ldab 07,x -FDD9 20 08 . bra 08 +FDD9 20 08 . bra 08 ;goto90 +; FDDB EC 0C .. ldd 0c,x FDDD 43 C coma FDDE 53 S comb