X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=ROM-2003%2Fvend.asm;h=0757d0a36ce3ddf8cdc4075d08f9cf9bdd815f12;hb=8539e40d477eff1c668a9c56ba04d24881d2f796;hp=21a24970ecd77a4310b1e8f9ebe3282a90abdc4f;hpb=7998f2a292d3b8a74893792933d257e9066e3ce3;p=uccvend-snackrom.git diff --git a/ROM-2003/vend.asm b/ROM-2003/vend.asm index 21a2497..0757d0a 100644 --- a/ROM-2003/vend.asm +++ b/ROM-2003/vend.asm @@ -4,7 +4,7 @@ ;0005 number of motors we have ;0006 slot number ;0007 06 stored into it sometimes. -;0008 used exclusively in SCI interrupt +;0008 what byte of the packet we've read up to ;0009 ;000a ;000c @@ -22,15 +22,18 @@ ;001d ;001f display related? bit 2. bit 4 denotes service mode ;0021 lower 3 bits taken from SCI data somewhere +; bit 5 denotes machine out of order ;0023 buffer for 1800 ;0026 used exclusively in SCI interrupt handler ;0029 previous key state (cf 0016) ;002c inhibits display writes? -;0032 to do with the beeper +;0032 to do with the beeper (see jump52) ;0033 ;0035 only ever contains #1e ;003b commonly contains $0233 ;003d +;003e mask for 0040? (see f996) +;003f ;0040 ;0042 current key press ;0048 error status @@ -46,10 +49,14 @@ ;0076-0077 word ;007f ;00c8 +;0800 motor information array - each is a 16-bit value +; ;08c8 array of prices of each slot?? ;0993 custom message? ;0b90 - 0b99 display buffer (backwards) +;0b9a - some sort of id? press 89 on the machine ;0baa +;0bae ;0bb5 win-a-snack odds (is this in NVRAM?) ;0bbd ;0bd8 related to 0017 and 0021 (only lower 3 bits used) @@ -64,8 +71,23 @@ ; bit5: bad sensor ; bit6: tube error ;0bc2 - 0bce SCI read into these locations -;0cbc serial number -;0ccc machine ID +;0bd +;0bc4 array index into 0bc7 +;0bc5 +;0bc6 another array index into 0bc7 +;0bc7 word array +; +;0be1 +;0bd7 init'd to 0x01 +;0bd8 init'd to 0x04 +;0bd9 init'd to 0x02 +;0bda init'd to 0x20 +;0bdb init'd to 0x08 +;0bdc init'd to 0x10 +; +;0cbc serial number (string) +;0ccc machine ID (string) +;0ce7 audit number (1-bit) ;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 @@ -74,13 +96,13 @@ ;0e06 - ?? array of digits*10 ;1000 ;1009 +;1016 - timer output compare 1 register ;1026 ;1028 SPCR (Serial Peripheral Control Register) ;1030 ;103c -;1016 - timer output compare 1 register ;1800 Internal switches ; 7 changer INT' @@ -186,7 +208,7 @@ ; PE6 ; PE5 ; PE4 -; PE3 goes high when 24VUN line is too low +; PE3 goes high when 24VUN line is *really* low (like 20V) ; PE2 remote no-sale switch (active low) ; PE1 motor overvoltage sense (active high) ; PE0 motor overcurrent sense (active low) @@ -1120,11 +1142,11 @@ jump74: 87E9 7F 00 05 ... clr 0005 87EC 7F 00 54 ..T clr 0054 87EF F6 00 54 ..T ldab 0054 -87F2 C1 50 .P cmpb #50 ; 80 +87F2 C1 50 .P cmpb #50 ; 80 entries in lookup table 87F4 24 2E $. bcc 2e ; to 8824 87F6 F6 00 54 ..T ldab 0054 87F9 4F O clra -87FA C3 B0 D3 ... addd #b0d3 +87FA C3 B0 D3 ... addd #b0d3 ; lookup table 87FD 8F . xgdx 87FE E6 00 .. ldab 00,x 8800 F7 00 06 ... stab 0006 @@ -1387,7 +1409,7 @@ jump17: 8A67 4F O clra 8A68 37 7 pshb 8A69 36 6 psha -8A6A CC 00 C7 ... ldd #00c7 +8A6A CC 00 C7 ... ldd #00c7 ; 199 8A6D BD FB BA ... jsr fbba ;jump38 8A70 B3 00 27 ..' subd 0027 8A73 24 05 $. bcc 05 @@ -1434,7 +1456,7 @@ goto8: 8AD2 4F O clra 8AD3 37 7 pshb 8AD4 36 6 psha -8AD5 CC 00 FA ... ldd #00fa +8AD5 CC 00 FA ... ldd #00fa ; 250 8AD8 BD FB BA ... jsr fbba ;jump38 8ADB FD 00 27 ..' std 0027 8ADE 20 38 8 bra 38 @@ -1447,7 +1469,7 @@ goto8: 8AEF 4F O clra 8AF0 37 7 pshb 8AF1 36 6 psha -8AF2 CC 00 C7 ... ldd #00c7 +8AF2 CC 00 C7 ... ldd #00c7 ; 199 8AF5 BD FB BA ... jsr fbba ;jump38 8AF8 FD 00 27 ..' std 0027 8AFB 20 1B . bra 1b @@ -1676,7 +1698,7 @@ jump18: 8D14 4F O clra 8D15 37 7 pshb 8D16 36 6 psha -8D17 CC 00 FA ... ldd #00fa +8D17 CC 00 FA ... ldd #00fa ; 250 8D1A BD FB BA ... jsr fbba ;jump38 8D1D B3 00 0D ... subd 000d 8D20 24 05 $. bcc 05 @@ -1695,7 +1717,7 @@ jump18: 8D3D 4F O clra 8D3E 37 7 pshb 8D3F 36 6 psha -8D40 CC 00 C7 ... ldd #00c7 +8D40 CC 00 C7 ... ldd #00c7 ; 199 8D43 BD FB BA ... jsr fbba ;jump38 8D46 B3 00 0D ... subd 000d 8D49 24 05 $. bcc 05 @@ -1736,7 +1758,7 @@ jump18: 8D9E 4F O clra 8D9F 37 7 pshb 8DA0 36 6 psha -8DA1 CC 00 FA ... ldd #00fa +8DA1 CC 00 FA ... ldd #00fa ; 250 8DA4 BD FB BA ... jsr fbba ;jump38 8DA7 FD 00 0D ... std 000d 8DAA 20 38 8 bra 38 @@ -1749,7 +1771,7 @@ jump18: 8DBB 4F O clra 8DBC 37 7 pshb 8DBD 36 6 psha -8DBE CC 00 C7 ... ldd #00c7 +8DBE CC 00 C7 ... ldd #00c7 ; 199 8DC1 BD FB BA ... jsr fbba ;jump38 8DC4 FD 00 0D ... std 000d 8DC7 20 1B . bra 1b @@ -2304,8 +2326,8 @@ jump22: 92F1 4F O clra 92F2 37 7 pshb 92F3 36 6 psha -92F4 CC 00 64 ..d ldd #0064 -92F7 BD FB BA ... jsr fbba ;jump38 +92F4 CC 00 64 ..d ldd #0064 ; 100 +92F7 BD FB BA ... jsr fbba ;jump38 - multiplication 92FA FD 0C E9 ... std 0ce9 92FD BD D6 F6 ... jsr d6f6 ;jump106 9300 FC 0C E9 ... ldd 0ce9 @@ -2361,7 +2383,7 @@ jump22: 936A F6 00 1F ... ldab 001f 936D C4 02 .. andb #02 936F 27 1F '. beq 1f -9371 BD 97 E9 ... jsr 97e9 ;jump147 +9371 BD 97 E9 ... jsr 97e9 ;jump147 - print the report 9374 CE 00 1F ... ldx #001f 9377 1D 00 02 ... bclr 00,x, #02 937A CE 00 1F ... ldx #001f @@ -2684,7 +2706,7 @@ jump203: 9667 26 0F &. bne 0f 9669 CC 00 64 ..d ldd #0064 966C BD E5 71 ..q jsr e571 ;msdelay -966F BD E5 D1 ... jsr e5d1 ;jump52 +966F BD E5 D1 ... jsr e5d1 ;jump52 - triple beep 9672 CC 03 84 ... ldd #0384 9675 BD E5 71 ..q jsr e571 ;msdelay 9678 7F 00 2E ... clr 002e @@ -2852,7 +2874,7 @@ jump147: 97E9 BD BE 4B ..K jsr be4b ;displayblank 97EC CC AF E7 ... ldd #afe7 ; "-PRINTING-" 97EF BD C0 BA ... jsr c0ba ;display: -97F2 BD F4 15 ... jsr f415 ;jump112 +97F2 BD F4 15 ... jsr f415 ;jump112 - print a report 97F5 39 9 rts jump27: @@ -3562,54 +3584,54 @@ jump100: 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 @@ -3622,13 +3644,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 @@ -4489,19 +4511,16 @@ A667 7E A7 1E ~.. jmp a71e ;goto20 A66A F6 00 54 ..T ldab 0054 A66D 4F O clra A66E BD FE 16 ... jsr fe16 ;jump2 -A671 00 . test -A672 01 . nop -A673 00 . test -A674 07 . tpa -A675 A6 ED .. ldaa ed,x -A677 A6 87 .. ldaa 87,x -A679 A6 95 .. ldaa 95,x -A67B A6 A1 .. ldaa a1,x -A67D A6 AF .. ldaa af,x -A67F A6 BB .. ldaa bb,x -A681 A6 C9 .. ldaa c9,x -A683 A6 D5 .. ldaa d5,x -A685 A6 E3 .. ldaa e3,x +A671 00 01 00 07 . test +A675 A6 ED .. +A677 A6 87 .. +A679 A6 95 .. +A67B A6 A1 .. +A67D A6 AF .. +A67F A6 BB .. +A681 A6 C9 .. +A683 A6 D5 .. +A685 A6 E3 .. A687 F6 00 62 ..b ldab 0062 A68A 54 T lsrb A68B 54 T lsrb @@ -6148,78 +6167,114 @@ B0C1 3F ? swi B0C2 00 . test B0C3 14 00 . ;20 -B0C5 14 C8 . ;20 +B0C5 14 C8 . ;20 200 B0C7 05 00 .. ;05 B0C9 05 00 . ;05 B0CB 02 00 . ;02 B0CD 02 00 . ;02 B0CF 01 00 . ;01 B0D1 01 00 . ;01 -B0D3 01 0C . ;01 -B0D5 17 22 . -B0D7 2E 39 ". - -B0D9 44 D lsra -B0DA 4F O clra -B0DB 0B . sev -B0DC 16 . tab -B0DD 21 2C !, brn 2c -B0DF 38 8 pulx -B0E0 43 C coma -B0E1 4E N illegal -B0E2 59 Y rolb -B0E3 15 . bclr -B0E4 20 2B + bra 2b -B0E6 36 6 psha -B0E7 42 B illegal -B0E8 4D M tsta -B0E9 58 X aslb -B0EA 63 1F c. com 1f,x -B0EC 2A 35 *5 bpl 35 -B0EE 40 @ nega -B0EF 4C L inca -B0F0 57 W asrb -B0F1 62 b illegal -B0F2 09 . dex -B0F3 29 34 )4 bvs 34 -B0F5 3F ? swi -B0F6 4A J deca -B0F7 56 V rorb -B0F8 61 a illegal -B0F9 08 . inx -B0FA 13 . brclr -B0FB 33 3 pulb -B0FC 3E > wai -B0FD 49 I rola -B0FE 54 T lsrb -B0FF 60 07 `. neg 07,x -B101 12 . brset -B102 1D 3D 48 ... bclr 3d,x, #48 -B105 53 S comb -B106 5E ^ illegal -B107 06 . tap -B108 11 . cba -B109 1C 27 47 ... bset 27,x, #47 ; fixed by ./fixbset.pl - verify me -B10C 52 R illegal -B10D 5D ] tstb -B10E 04 . lsrd -B10F 10 . sba -B110 1B . aba -B111 26 31 &1 bne 31 -B113 51 Q illegal -B114 5C \ incb -B115 03 . fdiv -B116 0E . cli -B117 1A . illegal -B118 25 30 %0 bcs 30 -B11A 3B ; rti -B11B 5B [ illegal -B11C 02 . idiv -B11D 0D . sec -B11E 18 . illegal -B11F 24 2F $/ bcc 2f -B121 3A : abx -B122 45 E illegal + + + + + +; +; here's a lookup table of some sort, for finding the slot +; numbers of each motor in turn +; +; 80 entries for 80 motors? +; +B0D3 01 . ;01 +B0D4 0C . ;12 +B0D5 17 . ;23 +B0D6 22 . ;34 +B0D7 2E . ;46 +B0D8 39 . ;57 +B0D9 44 D ;68 +B0DA 4F O ;79 +; +B0DB 0B . ;11 +B0DC 16 . ;22 +B0DD 21 ! ;33 +B0DE 2C . ;44 +B0DF 38 8 ;56 +B0E0 43 C ;67 +B0E1 4E N ;78 +B0E2 59 Y ;89 +; +B0E3 15 . ;21 +B0E4 20 . ;32 +B0E5 2B + ;43 +B0E6 36 6 ;54 +B0E7 42 B ;66 +B0E8 4D M ;77 +B0E9 58 X ;88 +B0EA 63 c ;99 +; +B0EB 1F . ;31 +B0EC 2A *. ;42 +B0ED 35 . ;53 +B0EE 40 @ ;64 +B0EF 4C L ;76 +B0F0 57 W ;87 +B0F1 62 b ;98 +; +B0F2 09 . ;09 +B0F3 29 ) ;41 +B0F4 34 . ;52 +B0F5 3F ? ;63 +B0F6 4A J ;74 +B0F7 56 V ;86 +B0F8 61 a ;97 +; +B0F9 08 . ;08 +B0FA 13 . ;19 +B0FB 33 3 ;51 +B0FC 3E > ;62 +B0FD 49 I ;73 +B0FE 54 T ;84 +B0FF 60 ` ;96 +; +B000 07 . ;07 +B101 12 . ;18 +B102 1D . ;29 +B103 3D . ;61 +B104 48 . ;72 +B105 53 S ;83 +B106 5E ^ ;94 +; +B107 06 . ;06 +B108 11 . ;17 +B109 1C . ;28 +B10A 27 . ;39 +B10B 47 . ;71 +B10C 52 R ;82 +B10D 5D ] ;93 +; +B10E 04 . ;04 +B10F 10 . ;16 +B110 1B . ;27 +B111 26 & ;38 +B111 31 & ;49 +B113 51 Q ;81 +B114 5C \ ;92 +; +B115 03 . ;03 +B116 0E . ;14 +B117 1A . ;26 +B118 25 % ;37 +B119 30 % ;48 +B11A 3B ; ;59 +B11B 5B [ ;91 +; +B11C 02 . ;02 +B11D 0D . ;13 +B11E 18 . ;24 +B11F 24 $ ;36 +B120 2F $ ;47 +B121 3A : ;58 +B122 45 E ;69 table of powers of 2 @@ -9607,7 +9662,7 @@ CBCB F6 10 2F ../ ldab 102f ; read SCI data CBCE C4 EF .. andb #ef ; 11101111 CBD0 C1 27 .' cmpb #27 ; 00100111 CBD2 26 06 &. bne 06 ;goto48 - cleanup & exit - +; CBD4 CE 0B C1 ... ldx #0bc1 CBD7 1C 00 10 ... bset 00,x, #10 goto48: ; cleanup and exit @@ -9869,7 +9924,7 @@ CDE2 F6 00 19 ... ldab 0019 CDE5 C4 08 .. andb #08 CDE7 26 19 &. bne 19 CDE9 CC 00 FE ... ldd #00fe -CDEC BD C7 E7 ... jsr c7e7 ;jump37 - send byte to coin mech +CDEC BD C7 E7 ... jsr c7e7 ;jump37 - send #fe to coin mech CDEF F6 00 1F ... ldab 001f CDF2 C4 08 .. andb #08 CDF4 27 0A '. beq 0a @@ -9918,12 +9973,14 @@ CE46 31 1 ins CE47 3B ; rti jump48: +; CE48 F6 0B C4 ... ldab 0bc4 CE4B F1 0B C5 ... cmpb 0bc5 -CE4E 25 53 %S bcs 53 +CE4E 25 53 %S bcs 53 ; if 0bc4 < 0bc5 to cea3 CE50 F6 0B C5 ... ldab 0bc5 CE53 F1 0B C6 ... cmpb 0bc6 -CE56 25 4B %K bcs 4b +CE56 25 4B %K bcs 4b ; if 0bc5 < 0bc6 to cea3 +; so here we have 0bc6 < 0bc5 < 0bc4 CE58 F6 0B C4 ... ldab 0bc4 CE5B 4F O clra CE5C C3 0B C7 ... addd #0bc7 @@ -9957,13 +10014,15 @@ CE96 C6 08 .. ldab #08 CE98 F7 0B DB ... stab 0bdb CE9B C6 10 .. ldab #10 CE9D F7 0B DC ... stab 0bdc -CEA0 7E D0 66 ~.f jmp d066 ;goto58 +CEA0 7E D0 66 ~.f jmp d066 ;goto58 - multiply & exit +; CEA3 F6 0B C4 ... ldab 0bc4 CEA6 F1 0B C6 ... cmpb 0bc6 -CEA9 25 53 %S bcs 53 +CEA9 25 53 %S bcs 53 ; if 0bc4 < 0bc6 to cefe CEAB F6 0B C6 ... ldab 0bc6 CEAE F1 0B C5 ... cmpb 0bc5 -CEB1 25 4B %K bcs 4b +CEB1 25 4B %K bcs 4b ; if 0bc6 < 0bc5 to cefe +; so here we have 0bc5 < 0bc6 < 0bc4 CEB3 F6 0B C4 ... ldab 0bc4 CEB6 4F O clra CEB7 C3 0B C7 ... addd #0bc7 @@ -9997,13 +10056,15 @@ CEF1 C6 10 .. ldab #10 CEF3 F7 0B DB ... stab 0bdb CEF6 C6 08 .. ldab #08 CEF8 F7 0B DC ... stab 0bdc -CEFB 7E D0 66 ~.f jmp d066 ;goto58 +CEFB 7E D0 66 ~.f jmp d066 ;goto58 - multiply and exit +; CEFE F6 0B C5 ... ldab 0bc5 CF01 F1 0B C4 ... cmpb 0bc4 -CF04 25 53 %S bcs 53 +CF04 25 53 %S bcs 53 ; if 0bc5 < 0bc4 to cf59 CF06 F6 0B C4 ... ldab 0bc4 CF09 F1 0B C6 ... cmpb 0bc6 -CF0C 25 4B %K bcs 4b +CF0C 25 4B %K bcs 4b ; if 0bc4 < 0bc6 to cf59 +; so here we have 0bc6 < 0bc4 < 0bc5 CF0E F6 0B C5 ... ldab 0bc5 CF11 4F O clra CF12 C3 0B C7 ... addd #0bc7 @@ -10037,13 +10098,15 @@ CF4C C6 20 . ldab #20 CF4E F7 0B DB ... stab 0bdb CF51 C6 10 .. ldab #10 CF53 F7 0B DC ... stab 0bdc -CF56 7E D0 66 ~.f jmp d066 ;goto58 +CF56 7E D0 66 ~.f jmp d066 ;goto58 - multiply and exit +; CF59 F6 0B C5 ... ldab 0bc5 CF5C F1 0B C6 ... cmpb 0bc6 -CF5F 25 53 %S bcs 53 +CF5F 25 53 %S bcs 53 ; if 0bc5 < 0bc6 to cfb4 CF61 F6 0B C6 ... ldab 0bc6 CF64 F1 0B C4 ... cmpb 0bc4 -CF67 25 4B %K bcs 4b +CF67 25 4B %K bcs 4b ; if 0bc6 < 0bc4 to cfb4 +; so here we have 0bc4 < 0bc6 < 0bc5 CF69 F6 0B C5 ... ldab 0bc5 CF6C 4F O clra CF6D C3 0B C7 ... addd #0bc7 @@ -10077,13 +10140,15 @@ CFA7 C6 10 .. ldab #10 CFA9 F7 0B DB ... stab 0bdb CFAC C6 20 . ldab #20 CFAE F7 0B DC ... stab 0bdc -CFB1 7E D0 66 ~.f jmp d066 ;goto58 +CFB1 7E D0 66 ~.f jmp d066 ;goto58 - multiply and exit +; CFB4 F6 0B C6 ... ldab 0bc6 CFB7 F1 0B C4 ... cmpb 0bc4 -CFBA 25 52 %R bcs 52 +CFBA 25 52 %R bcs 52 ; if 0bc6 < 0bc4 to d00e CFBC F6 0B C4 ... ldab 0bc4 CFBF F1 0B C5 ... cmpb 0bc5 -CFC2 25 4A %J bcs 4a +CFC2 25 4A %J bcs 4a ; if 0bc4 < 0bc5 to d00e +; so here we have 0bc5 < 0bc4 < 0bc6 CFC4 F6 0B C6 ... ldab 0bc6 CFC7 4F O clra CFC8 C3 0B C7 ... addd #0bc7 @@ -10117,7 +10182,9 @@ D002 C6 20 . ldab #20 D004 F7 0B DB ... stab 0bdb D007 C6 08 .. ldab #08 D009 F7 0B DC ... stab 0bdc -D00C 20 58 X bra 58 +D00C 20 58 X bra 58 ;goto58 - multiply and exit +; +; we know that 0bc4 < 0bc5 < 0bc6 D00E F6 0B C6 ... ldab 0bc6 D011 F1 0B C5 ... cmpb 0bc5 D014 25 50 %P bcs 50 @@ -10156,7 +10223,8 @@ D059 F7 0B DA ... stab 0bda D05C C6 08 .. ldab #08 D05E F7 0B DB ... stab 0bdb D061 C6 20 . ldab #20 -D063 F7 0B DC ... stab 0bdc +D063 F7 0B DC ... stab 0bdc ;goto58 - multiply and exit +; goto58: D066 F6 0B AA ... ldab 0baa D069 4F O clra @@ -10223,11 +10291,11 @@ D0C9 C6 03 .. ldab #03 D0CB F7 0B C5 ... stab 0bc5 D0CE C6 02 .. ldab #02 D0D0 F7 0B C6 ... stab 0bc6 -D0D3 CC 00 19 ... ldd #0019 +D0D3 CC 00 19 ... ldd #0019 ; 25 D0D6 FD 0B DD ... std 0bdd -D0D9 CC 00 0A ... ldd #000a +D0D9 CC 00 0A ... ldd #000a ; 10 D0DC FD 0B DF ... std 0bdf -D0DF CC 00 05 ... ldd #0005 +D0DF CC 00 05 ... ldd #0005 ; 5 D0E2 FD 0B E1 ... std 0be1 D0E5 C6 01 .. ldab #01 D0E7 F7 0B D7 ... stab 0bd7 @@ -10703,9 +10771,10 @@ D478 39 9 rts jump67: D479 7F 00 1C ... clr 001c +; begin loop D47C F6 00 1C ... ldab 001c -D47F C1 64 .d cmpb #64 -D481 24 1A $. bcc 1a +D47F C1 64 .d cmpb #64 ; to 100 +D481 24 1A $. bcc 1a ; to d49d D483 CC FF 7F ... ldd #ff7f D486 37 7 pshb D487 36 6 psha @@ -10719,16 +10788,16 @@ D492 A4 00 .. anda 00,x D494 E4 01 .. andb 01,x D496 ED 00 .. std 00,x D498 7C 00 1C |.. inc 001c -D49B 20 DF . bra df +D49B 20 DF . bra df ; to d47c D49D 7F 00 05 ... clr 0005 -goto65: +goto65: ; begin motor count loop D4A0 F6 00 05 ... ldab 0005 -D4A3 C1 50 .P cmpb #50 +D4A3 C1 50 .P cmpb #50 ; 80 D4A5 25 03 %. bcs 03 -D4A7 7E D5 60 ~.` jmp d560 ;goto63 +D4A7 7E D5 60 ~.` jmp d560 ;goto63 - exit D4AA F6 00 05 ... ldab 0005 D4AD 4F O clra -D4AE C3 B0 D3 ... addd #b0d3 +D4AE C3 B0 D3 ... addd #b0d3 ;motor lookup table D4B1 8F . xgdx D4B2 E6 00 .. ldab 00,x D4B4 F7 00 06 ... stab 0006 @@ -10802,7 +10871,7 @@ D53D AA 00 .. ora 00,x D53F EA 01 .. orb 01,x D541 ED 00 .. std 00,x D543 20 15 . bra 15 -goto64: +goto64: ; mark a motor position as valid? D545 CC 7F FF ... ldd #7fff D548 37 7 pshb D549 36 6 psha @@ -10816,7 +10885,7 @@ D554 A4 00 .. anda 00,x D556 E4 01 .. andb 01,x D558 ED 00 .. std 00,x D55A 7C 00 05 |.. inc 0005 -D55D 7E D4 A0 ~.. jmp d4a0 ;goto65 +D55D 7E D4 A0 ~.. jmp d4a0 ;goto65 - loop again goto63: D560 39 9 rts @@ -11038,31 +11107,32 @@ D6F2 BD C0 E0 ... jsr c0e0 ;jump94 D6F5 39 9 rts jump106: +; puts (0cdb+0bdd)+(0cda*0bdf)+(0cd9*0be1) => 0bef D6F6 F6 0C DB ... ldab 0cdb D6F9 4F O clra D6FA 37 7 pshb D6FB 36 6 psha D6FC FC 0B DD ... ldd 0bdd D6FF BD FB BA ... jsr fbba ;jump38 - multiply? -D702 FD 0C EB ... std 0ceb +D702 FD 0C EB ... std 0ceb ; 0cdb * 0bdd => 0ceb D705 F6 0C DA ... ldab 0cda D708 4F O clra D709 37 7 pshb D70A 36 6 psha D70B FC 0B DF ... ldd 0bdf D70E BD FB BA ... jsr fbba ;jump38 - multiply? -D711 FD 0C ED ... std 0ced +D711 FD 0C ED ... std 0ced ; 0cda * 0bdf => 0ced D714 F6 0C D9 ... ldab 0cd9 D717 4F O clra D718 37 7 pshb D719 36 6 psha D71A FC 0B E1 ... ldd 0be1 D71D BD FB BA ... jsr fbba ;jump38 - multiply? -D720 FD 0C EF ... std 0cef +D720 FD 0C EF ... std 0cef ; 0cd9 * 0be1 => 0cef D723 FC 0C EB ... ldd 0ceb D726 F3 0C ED ... addd 0ced D729 F3 0C EF ... addd 0cef -D72C FD 0B EF ... std 0bef +D72C FD 0B EF ... std 0bef ; 0ceb+0ced+0cef => 0bef D72F 39 9 rts jump202: @@ -11282,7 +11352,7 @@ D8A1 3C < pshx D8A2 FC 0D E7 ... ldd 0de7 D8A5 37 7 pshb D8A6 36 6 psha -D8A7 CE E1 00 ... ldx #e100 +D8A7 CE E1 00 ... ldx #e100 ; 57600 D8AA 3C < pshx D8AB CC 05 F5 ... ldd #05f5 D8AE 37 7 pshb @@ -11323,6 +11393,7 @@ D8E6 20 EE . bra ee D8E8 39 9 rts jump92: +; displays select other item D8E9 F6 00 2B ..+ ldab 002b D8EC C1 00 .. cmpb #00 D8EE 26 18 &. bne 18 @@ -11348,22 +11419,22 @@ D91F BD C0 BA ... jsr c0ba ;display: D922 20 32 2 bra 32 D924 C1 02 .. cmpb #02 D926 26 18 &. bne 18 -D928 CC AD 42 ..B ldd #ad42 +D928 CC AD 42 ..B ldd #ad42 ; "FAITES" D92B BD C0 BA ... jsr c0ba ;display: D92E 8D A3 .. bsr dest a3 -D930 CC AD 4D ..M ldd #ad4d +D930 CC AD 4D ..M ldd #ad4d ; "AURTE" D933 BD C0 BA ... jsr c0ba ;display: D936 8D 9B .. bsr dest 9b -D938 CC AD 58 ..X ldd #ad58 -D93B BD C0 BA ... jsr c0ba ;display: +D938 CC AD 58 ..X ldd #ad58 ; "CHOIX" +D92B BD C0 BA ... jsr c0ba ;display: D93E 20 16 . bra 16 -D940 CC AD 21 ..! ldd #ad21 +D940 CC AD 21 ..! ldd #ad21 ; "SELECT " D943 BD C0 BA ... jsr c0ba ;display: D946 8D 8B .. bsr dest 8b -D948 CC AD 2C .., ldd #ad2c +D948 CC AD 2C .., ldd #ad2c ; "OTHER" D94B BD C0 BA ... jsr c0ba ;display: D94E 8D 83 .. bsr dest 83 -D950 CC AD 37 ..7 ldd #ad37 +D950 CC AD 37 ..7 ldd #ad37 ; "ITEM" D953 BD C0 BA ... jsr c0ba ;display: D956 BD D8 D3 ... jsr d8d3 ;jump84 500ms delay D959 39 9 rts @@ -11371,19 +11442,19 @@ D959 39 9 rts jump123: D95A F6 00 06 ... ldab 0006 D95D F1 0B AF ... cmpb 0baf -D960 26 0D &. bne 0d +D960 26 0D &. bne 0d ; to d984 D962 BD D7 FF ... jsr d7ff ;jump80 D965 F6 0B B4 ... ldab 0bb4 D968 F7 00 06 ... stab 0006 -D96B 8D 55 .U bsr dest 55 -D96D 20 52 R bra 52 +D96B 8D 55 .U bsr 55 ;jump205 +D96D 20 52 R bra 52 ; exit D96F F6 00 06 ... ldab 0006 D972 F1 0B AE ... cmpb 0bae -D975 26 0D &. bne 0d +D975 26 0D &. bne 0d ; to d984 D977 BD D7 FF ... jsr d7ff ;jump80 D97A F6 0B B3 ... ldab 0bb3 D97D F7 00 06 ... stab 0006 -D980 8D 40 .@ bsr dest 40 +D980 8D 40 .@ bsr 40 ;jump205 D982 20 3D = bra 3d D984 F6 00 06 ... ldab 0006 D987 F1 0B AD ... cmpb 0bad @@ -11391,7 +11462,7 @@ D98A 26 0D &. bne 0d D98C BD D7 FF ... jsr d7ff ;jump80 D98F F6 0B B2 ... ldab 0bb2 D992 F7 00 06 ... stab 0006 -D995 8D 2B .+ bsr dest 2b +D995 8D 2B .+ bsr 2b ;jump205 D997 20 28 ( bra 28 D999 F6 00 06 ... ldab 0006 D99C F1 0B AC ... cmpb 0bac @@ -11399,7 +11470,7 @@ D99F 26 0D &. bne 0d D9A1 BD D7 FF ... jsr d7ff ;jump80 D9A4 F6 0B B1 ... ldab 0bb1 D9A7 F7 00 06 ... stab 0006 -D9AA 8D 16 .. bsr dest 16 +D9AA 8D 16 .. bsr 16 ;jump205 D9AC 20 13 . bra 13 D9AE F6 00 06 ... ldab 0006 D9B1 F1 0B AB ... cmpb 0bab @@ -11407,9 +11478,10 @@ D9B4 26 0B &. bne 0b D9B6 BD D7 FF ... jsr d7ff ;jump80 D9B9 F6 0B B0 ... ldab 0bb0 D9BC F7 00 06 ... stab 0006 -D9BF 8D 01 .. bsr dest 01 +D9BF 8D 01 .. bsr 01 ;jump205 D9C1 39 9 rts +jump205: D9C2 CC 03 E8 ... ldd #03e8 D9C5 BD E5 71 ..q jsr e571 ;msdelay D9C8 BD D7 83 ... jsr d783 ;jump44 @@ -11507,8 +11579,8 @@ DA71 02 . idiv DA72 8F . xgdx DA73 37 7 pshb DA74 36 6 psha -DA75 CC 00 C3 ... ldd #00c3 -DA78 BD FB BA ... jsr fbba ;jump38 +DA75 CC 00 C3 ... ldd #00c3 ; 195 +DA78 BD FB BA ... jsr fbba ;jump38 - multiply? DA7B B3 0B B9 ... subd 0bb9 DA7E 24 05 $. bcc 05 DA80 5F _ clrb @@ -11517,8 +11589,8 @@ DA82 FD 0B B9 ... std 0bb9 DA85 FC 0B B9 ... ldd 0bb9 DA88 37 7 pshb DA89 36 6 psha -DA8A CC 00 0A ... ldd #000a -DA8D BD FB BA ... jsr fbba ;jump38 +DA8A CC 00 0A ... ldd #000a ; 10 +DA8D BD FB BA ... jsr fbba ;jump38 - multiply? DA90 37 7 pshb DA91 36 6 psha DA92 FC 0B B5 ... ldd 0bb5 @@ -11531,8 +11603,8 @@ DA9C 02 . idiv DA9D 8F . xgdx DA9E 37 7 pshb DA9F 36 6 psha -DAA0 CC 00 0A ... ldd #000a -DAA3 BD FB BA ... jsr fbba ;jump38 +DAA0 CC 00 0A ... ldd #000a ; 10 +DAA3 BD FB BA ... jsr fbba ;jump38 - multiply? DAA6 CE 00 0A ... ldx #000a DAA9 02 . idiv DAAA 8F . xgdx @@ -11944,8 +12016,8 @@ DE03 C6 14 .. ldab #14 DE05 F7 00 2C .., stab 002c DE08 39 9 rts -dump119: -DE09 CC 0B 9A ... ldd #0b9a +jump119: +DE09 CC 0B 9A ... ldd #0b9a ; machine id? DE0C BD C0 BA ... jsr c0ba ;display: DE0F C6 14 .. ldab #14 DE11 F7 00 2C .., stab 002c @@ -12014,7 +12086,8 @@ DEA1 7F 00 4F ..O clr 004f goto70: DEA4 39 9 rts -dump117: +jump117: +; machine out of order display? DEA5 F6 00 2B ..+ ldab 002b DEA8 C1 00 .. cmpb #00 DEAA 26 0D &. bne 0d @@ -12036,13 +12109,13 @@ DECA C1 02 .. cmpb #02 DECC 26 0D &. bne 0d DECE CE 00 10 ... ldx #0010 DED1 3C < pshx -DED2 CC AE 5B ..[ ldd #ae5b +DED2 CC AE 5B ..[ ldd #ae5b ; more german DED5 BD C0 2E ... jsr c02e ;jump71 DED8 38 8 pulx DED9 20 0B . bra 0b DEDB CE 00 15 ... ldx #0015 DEDE 3C < pshx -DEDF CC AE 44 ..D ldd #ae44 +DEDF CC AE 44 ..D ldd #ae44 ; "MACHINE OUT OF ORDER" DEE2 BD C0 2E ... jsr c02e ;jump71 DEE5 38 8 pulx DEE6 39 9 rts @@ -12072,7 +12145,7 @@ DF16 F6 00 1B ... ldab 001b DF19 C4 02 .. andb #02 DF1B 26 12 &. bne 12 DF1D CC 00 FF ... ldd #00ff -DF20 BD C7 E7 ... jsr c7e7 ;jump37 +DF20 BD C7 E7 ... jsr c7e7 ;jump37 - send to serial port DF23 CE 00 1B ... ldx #001b DF26 1C 00 02 .. bset 00,x, #02 DF29 CE 0B C1 ... ldx #0bc1 @@ -12081,8 +12154,8 @@ DF2F F6 00 21 ..! ldab 0021 DF32 C4 20 . andb #20 DF34 27 07 '. beq 07 ; -DF36 BD D6 52 ..R jsr d652 ;jump5 -DF39 BD DE A5 ... jsr dea5 ;jump117 +DF36 BD D6 52 ..R jsr d652 ;jump5 - pulse bill acceptor +DF39 BD DE A5 ... jsr dea5 ;jump117 - machine out of order? DF3C 39 9 rts ; DF3D F6 00 4F ..O ldab 004f @@ -12139,7 +12212,7 @@ DFBD C1 00 .. cmpb #00 DFBF 26 0D &. bne 0d DFC1 CE 00 19 ... ldx #0019 DFC4 3C < pshx -DFC5 CC AD E7 ... ldd #ade7 +DFC5 CC AD E7 ... ldd #ade7 ; "INTRODUZCA" DFC8 BD C0 2E ... jsr c02e ;jump71 DFCB 38 8 pulx DFCC 20 2D - bra 2d @@ -12147,7 +12220,7 @@ DFCE C1 01 .. cmpb #01 DFD0 26 0D &. bne 0d DFD2 CE 00 12 ... ldx #0012 DFD5 3C < pshx -DFD6 CC AD D3 ... ldd #add3 ; more german +DFD6 CC AD D3 ... ldd #add3 ; "NICT UEBERZAHLEN" DFD9 BD C0 2E ... jsr c02e ;jump71 DFDC 38 8 pulx DFDD 20 1C . bra 1c @@ -12155,7 +12228,7 @@ DFDF C1 02 .. cmpb #02 DFE1 26 0D &. bne 0d DFE3 CE 00 19 ... ldx #0019 DFE6 3C < pshx -DFE7 CC AD B8 ... ldd #adb8 +DFE7 CC AD B8 ... ldd #adb8 ; "MONNAIE EXACT" DFEA BD C0 2E ... jsr c02e ;jump71 DFED 38 8 pulx DFEE 20 0B . bra 0b @@ -12179,7 +12252,7 @@ E016 C1 00 .. cmpb #00 E018 26 0D &. bne 0d E01A CE 00 12 ... ldx #0012 E01D 3C < pshx -E01E CC AE 30 ..0 ldd #ae30 +E01E CC AE 30 ..0 ldd #ae30 ; "MONEDA UNICAMENTE" E021 BD C0 2E ... jsr c02e ;jump71 E024 38 8 pulx E025 20 2D - bra 2d @@ -12187,7 +12260,7 @@ E027 C1 01 .. cmpb #01 E029 26 0D &. bne 0d E02B CE 00 0B ... ldx #000b E02E 3C < pshx -E02F CC AE 23 ..# ldd #ae23 +E02F CC AE 23 ..# ldd #ae23 ; "NUR MUNZEN" E032 BD C0 2E ... jsr c02e ;jump71 E035 38 8 pulx E036 20 1C . bra 1c @@ -12195,13 +12268,13 @@ E038 C1 02 .. cmpb #02 E03A 26 0D &. bne 0d E03C CE 00 12 ... ldx #0012 E03F 3C < pshx -E040 CC AE 0F ... ldd #ae0f +E040 CC AE 0F ... ldd #ae0f ; "MONNAIES SEULEMENT" E043 BD C0 2E ... jsr c02e ;jump71 E046 38 8 pulx E047 20 0B . bra 0b E049 CE 00 0B ... ldx #000b E04C 3C < pshx -E04D CC AE 02 ... ldd #ae02 +E04D CC AE 02 ... ldd #ae02 ; "COINS ONLY" E050 BD C0 2E ... jsr c02e ;jump71 E053 38 8 pulx E054 20 0D . bra 0d @@ -12209,7 +12282,7 @@ E056 F6 0B BF ... ldab 0bbf E059 4F O clra E05A 37 7 pshb E05B 36 6 psha -E05C CC 09 93 ... ldd #0993 +E05C CC 09 93 ... ldd #0993 ; some custom message? E05F BD C0 2E ... jsr c02e ;jump71 E062 38 8 pulx goto72: @@ -12222,7 +12295,7 @@ E06E CE 00 1D ... ldx #001d E071 1C 00 40 ... bset 00,x, #40 E074 BD E7 C7 ... jsr e7c7 ;jump114 E077 F6 00 06 ... ldab 0006 -E07A C1 59 .Y cmpb #59 +E07A C1 59 .Y cmpb #59 ; 89 E07C 26 06 &. bne 06 E07E BD DE 09 ... jsr de09 ;jump119 E081 7E E5 5E ~.^ jmp e55e ;goto74 @@ -12239,7 +12312,7 @@ E09D 26 08 &. bne 08 E09F BD D7 83 ... jsr d783 ;jump44 E0A2 83 00 00 ... subd #0000 E0A5 27 09 '. beq 09 -E0A7 BD E5 D1 ... jsr e5d1 ;jump52 +E0A7 BD E5 D1 ... jsr e5d1 ;jump52 - triple beep E0AA BD D8 E9 ... jsr d8e9 ;jump92 E0AD 7E E5 5E ~.^ jmp e55e ;goto74 E0B0 F6 00 06 ... ldab 0006 @@ -12292,20 +12365,20 @@ E118 26 49 &I bne 49 E11A F6 00 2B ..+ ldab 002b E11D C1 00 .. cmpb #00 E11F 26 08 &. bne 08 -E121 CC AC C9 ... ldd #acc9 +E121 CC AC C9 ... ldd #acc9 ; "PRECIO" E124 BD C0 BA ... jsr c0ba ;display: E127 20 1E . bra 1e E129 C1 01 .. cmpb #01 E12B 26 08 &. bne 08 -E12D CC AC BE ... ldd #acbe +E12D CC AC BE ... ldd #acbe ; "PREIS" E130 BD C0 BA ... jsr c0ba ;display: E133 20 12 . bra 12 E135 C1 02 .. cmpb #02 E137 26 08 &. bne 08 -E139 CC AC B3 ... ldd #acb3 +E139 CC AC B3 ... ldd #acb3 ; "PRIX" E13C BD C0 BA ... jsr c0ba ;display: E13F 20 06 . bra 06 -E141 CC AC A8 ... ldd #aca8 +E141 CC AC A8 ... ldd #aca8 ; "PRICE" E144 BD C0 BA ... jsr c0ba ;display: E147 BD D8 D3 ... jsr d8d3 ;jump84 500ms delay E14A CE 00 00 ... ldx #0000 @@ -12313,7 +12386,7 @@ E14D 3C < pshx E14E FC 00 44 ..D ldd 0044 E151 BD BE 9E ... jsr be9e ;jump50 E154 38 8 pulx -E155 BD E5 D1 ... jsr e5d1 ;jump52 +E155 BD E5 D1 ... jsr e5d1 ;jump52 - triple beep E158 BD D8 D3 ... jsr d8d3 ;jump84 500ms delay E15B C6 0C .. ldab #0c E15D F7 00 2C .., stab 002c @@ -12383,8 +12456,8 @@ E1F7 1C 00 80 .. bset 00,x, #80 E1F9 BD D2 13 .. jsr d213 ;jump45 E1FC 83 00 00 ... subd #0000 E200 26 12 &. bne 12 -E202 BD E5 D1 ... jsr e5d1 ;jump52 -E205 BD D8 E9 ... jsr d8e9 ;jump92 +E202 BD E5 D1 ... jsr e5d1 ;jump52 - triple beep +E205 BD D8 E9 ... jsr d8e9 ;jump92 - "SELECT OTHER ITEM" E208 FC 00 40 ..@ ldd 0040 E20B F3 00 44 ..D addd 0044 E20E FD 00 40 ..@ std 0040 @@ -12659,7 +12732,7 @@ E458 1D 00 02 ... bclr 00,x, #02 E45B F6 00 17 ... ldab 0017 E45E C4 02 .. andb #02 E460 27 09 '. beq 09 -E462 BD E5 D1 ... jsr e5d1 ;jump52 +E462 BD E5 D1 ... jsr e5d1 ;jump52 - triple beep E465 CE 00 17 ... ldx #0017 E468 1D 00 02 ... bclr 00,x, #02 E46B 7E E3 DE ~.. jmp e3de ;goto77 @@ -12673,27 +12746,27 @@ E47A BD D2 13 ... jsr d213 ;jump45 E47D 83 00 00 ... subd #0000 E480 26 0F &. bne 0f E482 CC 00 80 ... ldd #0080 -E485 BD C7 E7 ... jsr c7e7 ;jump37 -E488 BD E5 D1 ... jsr e5d1 ;jump52 +E485 BD C7 E7 ... jsr c7e7 ;jump37 - send to serial port +E488 BD E5 D1 ... jsr e5d1 ;jump52 - triple beep E48B BD D8 E9 ... jsr d8e9 ;jump92 E48E 7E E5 5E ~.^ jmp e55e ;goto74 E491 F6 00 2B ..+ ldab 002b E494 C1 00 .. cmpb #00 E496 26 08 &. bne 08 -E498 CC AD 16 ... ldd #ad16 +E498 CC AD 16 ... ldd #ad16 ; "GRACIAS" E49B BD C0 BA ... jsr c0ba ;display: E49E 20 1E . bra 1e E4A0 C1 01 .. cmpb #01 E4A2 26 08 &. bne 08 -E4A4 CC AD 0B ... ldd #ad0b +E4A4 CC AD 0B ... ldd #ad0b ; "DANKE" E4A7 BD C0 BA ... jsr c0ba ;display: E4AA 20 12 . bra 12 E4AC C1 02 .. cmpb #02 E4AE 26 08 &. bne 08 -E4B0 CC AD 00 ... ldd #ad00 +E4B0 CC AD 00 ... ldd #ad00 ; "MERCI" E4B3 BD C0 BA ... jsr c0ba ;display: E4B6 20 06 . bra 06 -E4B8 CC AC F5 ... ldd #acf5 +E4B8 CC AC F5 ... ldd #acf5 ; "THANKS" E4BB BD C0 BA ... jsr c0ba ;display: E4BE BD D8 D3 ... jsr d8d3 ;jump84 500ms delay E4C1 CE 00 01 ... ldx #0001 @@ -12703,7 +12776,7 @@ E4C8 BD BE 9E ... jsr be9e ;jump50 E4CB 38 8 pulx E4CC 5F _ clrb E4CD 4F O clra -E4CE BD C7 E7 ... jsr c7e7 ;jump37 +E4CE BD C7 E7 ... jsr c7e7 ;jump37 - send to serial port E4D1 F6 0B C0 ... ldab 0bc0 E4D4 2D 03 -. blt 03 E4D6 7E E5 58 ~.X jmp e558 ;goto78 @@ -12835,6 +12908,7 @@ E5A8 31 1 ins E5A9 39 9 rts jump12: +; beep if keypressed? E5AA F6 00 33 ..3 ldab 0033 E5AD 27 0C '. beq 0c ; to e5bb E5AF F6 00 29 ..) ldab 0029 ; key state @@ -12842,7 +12916,7 @@ E5B2 27 05 '. beq 05 ; to e5b9 (out) E5B4 C6 02 .. ldab #02 E5B6 F7 00 33 ..3 stab 0033 E5B9 20 15 . bra 15 ; to e5d0 (out) -E5BB C6 03 .. ldab #03 +E5BB C6 03 .. ldab #03 ; beep E5BD F7 00 32 ..2 stab 0032 E5C0 FC 00 3B ..; ldd 003b E5C3 27 06 '. beq 06 ; to e5cb @@ -12853,6 +12927,7 @@ E5CD F7 00 33 ..3 stab 0033 E5D0 39 9 rts jump52: +; signifies a triple beep? E5D1 C6 0B .. ldab #0b ; 1011 E5D3 F7 00 32 ..2 stab 0032 E5D6 39 9 rts @@ -13230,18 +13305,14 @@ E846 AA 00 .. ora 00,x E848 EA 01 .. orb 01,x E84A ED 00 .. std 00,x E84C CE 10 16 ... ldx #1016 -E84F 1D 00 .. bclr add,x 00,x -E851 C0 FC .. subb #fc -E853 10 . sba -E854 18 . illegal +E84F 1D 00 C0 .. bclr 00,x, #c0 +E852 FC 10 18 .. ldd 1018 E855 43 C coma E856 53 S comb E857 FD 10 18 ... std 1018 E85A CE 10 18 ... ldx #1018 -E85D 1D 00 .. bclr add,x 00,x -E85F C0 FC .. subb #fc -E861 10 . sba -E862 16 . tab +E85D 1D 00 C0 .. bclr 00,x, #c0 +E85F FC 10 16 .. ldd 1016 E863 37 7 pshb E864 36 6 psha E865 FC 10 18 ... ldd 1018 @@ -13307,7 +13378,7 @@ E8D0 C4 FF .. andb #ff E8D2 84 3F .? anda #3f E8D4 FD 10 16 ... std 1016 E8D7 FC 10 16 ... ldd 1016 -E8DA 83 27 10 .'. subd #2710 +E8DA 83 27 10 .'. subd #2710 ; 10000 E8DD 24 2F $/ bcc 2f E8DF F6 00 06 ... ldab 0006 E8E2 BD D4 68 ..h jsr d468 ;jump51 @@ -13521,7 +13592,7 @@ EA61 BD E5 D7 ... jsr e5d7 ;jump69 - test input line EA64 38 8 pulx EA65 83 00 00 ... subd #0000 EA68 27 3F '? beq 3f ; to eaa9 if off - +; ; test internal mode switch (bit 1 of 1800) EA6A CE 00 01 ... ldx #0001 EA6D 3C < pshx @@ -13530,52 +13601,52 @@ EA71 BD E5 D7 ... jsr e5d7 ;jump69 - test input line EA74 38 8 pulx EA75 83 00 00 ... subd #0000 EA78 27 2F '/ beq 2f ; to eaa9 if off - +; ; both no-sale & mode switches held. - +; ; 1000-unit delay EA7A CC 03 E8 ... ldd #03e8 EA7D BD E5 71 ..q jsr e571 ;msdelay - +; EA80 7F 0B A8 ... clr 0ba8 - +; ; blink "SECURE OFF" until mode switch is released EA83 F6 18 00 ... ldab 1800 EA86 C4 01 .. andb #01 EA88 26 1C &. bne 1c ; to eaa4 (loop until released) - +; ; blank display EA8A BD BE 4B ..K jsr be4b ;displayblank (blank display buffer) EA8D 0F . sei EA8E BD BE 01 ... jsr be01 ;jump70 (commit to display) EA91 0E . cli - +; ; 500-unit delay EA92 CC 01 F4 ... ldd #01f4 EA95 BD E5 71 ..q jsr e571 ;msdelay - +; EA98 CC AF D1 ... ldd #afd1 ; "SECURE OFF" EA9B BD C0 BA ... jsr c0ba ;display: - +; ; 500-unit delay EA9E CC 01 F4 ... ldd #01f4 EAA1 BD E5 71 ..q jsr e571 ;msdelay ; loop EAA4 20 DD . bra dd ; to ea83 EAA6 BD BE 69 ..i jsr be69 ;displayreset - +; ; no sale switch or internal mode switch on - +; ; fiddle with the bill acceptor EAA9 C6 01 .. ldab #01 EAAB F7 00 14 ... stab 0014 EAAE F6 00 14 ... ldab 0014 EAB1 F7 38 00 .8. stab 3800 - +; ; 30-unit delay EAB4 CC 00 1E ... ldd #001e EAB7 BD E5 71 ..q jsr e571 ;msdelay - +; ; more bill acceptor fiddling & tests EABA CE 00 01 ... ldx #0001 EABD 3C < pshx @@ -13615,7 +13686,7 @@ EB08 38 8 pulx EB09 83 00 00 ... subd #0000 EB0C 26 03 &. bne 03 EB0E 7E ED F8 ~.. jmp edf8 ;goto80 - something about the bill validator failed. skip it. -EB11 CC 5A 5A .ZZ ldd #5a5a +EB11 CC 5A 5A .ZZ ldd #5a5a ; 23130 EB14 FD 10 16 ... std 1016 EB17 CC B1 39 ..9 ldd #b139 ;"**********" EB1A BD C0 BA ... jsr c0ba ;display: @@ -13687,7 +13758,7 @@ EBB0 FE 00 73 ..s ldx 0073 EBB3 E6 00 .. ldab 00,x EBB5 C1 AA .. cmpb #aa EBB7 27 08 '. beq 08 -EBB9 CE 10 16 ... ldx #1016 +EBB9 CE 10 16 ... ldx #1016 ; timer output compare register EBBC 1D 00 FF .. bclr 00,x, #FF EBBF 20 09 .. bra 09 EBC1 FE 00 73 ..s ldx 0073 @@ -13802,7 +13873,7 @@ EC9D 2C 1B ,. bge 1b EC9F 30 0 tsx ECA0 E6 00 .. ldab 00,x ECA2 4F O clra -ECA3 C3 B1 D0 ... addd #b1d0 +ECA3 C3 B1 D0 ... addd #b1d0 ; "THANK YOU FOR YOUR PATRONAGE" ECA6 8F . xgdx ECA7 E6 00 .. ldab 00,x ECA9 37 7 pshb @@ -13858,10 +13929,11 @@ ED02 6C 00 l. inc 00,x ED04 20 D8 . bra d8 ED06 30 0 tsx ED07 6F 00 o. clr 00,x +; ED09 30 0 tsx ED0A E6 00 .. ldab 00,x ED0C C1 0B .. cmpb #0b -ED0E 24 12 $. bcc 12 +ED0E 24 12 $. bcc 12 ; to ed22 ED10 5F _ clrb ED11 37 7 pshb ED12 30 0 tsx @@ -13874,6 +13946,7 @@ ED1B E7 00 .. stab 00,x ED1D 30 0 tsx ED1E 6C 00 l. inc 00,x ED20 20 E7 . bra e7 +; clear stuff ready for test harness? ED22 4F O clra ED23 5F _ clrb ED24 FD 0D F9 ... std 0df9 @@ -13977,9 +14050,9 @@ EDEB 7F 0B B1 ... clr 0bb1 EDEE 7F 0B B0 ... clr 0bb0 EDF1 C6 05 .. ldab #05 EDF3 F7 08 00 ... stab 0800 -EDF6 8D 21 .! bsr dest 21 +EDF6 8D 21 .! bsr 21 ;jump204 - test harness function goto80: -; switch things off +; switch things off (motors, display clock, keypad strobe) EDF8 7F 00 14 ... clr 0014 EDFB F6 00 14 ... ldab 0014 EDFE F7 38 00 .8. stab 3800 @@ -14000,8 +14073,8 @@ EE14 BD E5 71 ... jsr e571 ;msdelay EE17 38 8 pulx EE18 39 9 rts - -EE19 BD E5 D1 ... jsr e5d1 ;jump52 +jump204: +EE19 BD E5 D1 ... jsr e5d1 ;jump52 - triple beep goto81: ; this the diagnostic function activated when the "test harness" ; is connected @@ -14322,9 +14395,9 @@ F152 CC 05 DC ... ldd #05dc F155 BD E5 71 ..q jsr e571 ;msdelay F158 7E EE 1C ~.. jmp ee1c ;goto81 -;send a byte to the printer? -;it calls c7e7, which does things with the serial port jump53: +;send a byte to the printer +;it calls c7e7, which does things with the serial port F15B 37 7 pshb F15C 36 6 psha F15D F6 00 19 ... ldab 0019 @@ -14357,19 +14430,19 @@ F19B E6 01 .. ldab 01,x F19D C1 30 .0 cmpb #30 F19F 26 08 &. bne 08 F1A1 CC 00 20 .. ldd #0020 -F1A4 BD C7 E7 ... jsr c7e7 ;jump37 +F1A4 BD C7 E7 ... jsr c7e7 ;jump37 - send to serial port F1A7 20 0D . bra 0d F1A9 30 0 tsx F1AA E6 01 .. ldab 01,x F1AC 4F O clra -F1AD BD C7 E7 ... jsr c7e7 ;jump37 +F1AD BD C7 E7 ... jsr c7e7 ;jump37 - send to serial port F1B0 CE 00 1D ... ldx #001d F1B3 1D 00 01 ... bclr 00,x, #01 F1B6 20 07 . bra 07 F1B8 30 0 tsx F1B9 E6 01 .. ldab 01,x F1BB 4F O clra -F1BC BD C7 E7 ... jsr c7e7 ;jump37 +F1BC BD C7 E7 ... jsr c7e7 ;jump37 - send to serial port F1BF 38 8 pulx F1C0 39 9 rts @@ -14487,17 +14560,16 @@ F294 BD F1 5B ..[ jsr f15b ;jump53 F297 38 8 pulx F298 39 9 rts -jump61 -jump61:: +jump61: F299 37 7 pshb F29A 36 6 psha -F29B F6 20 00 . . ldab 2000 -F29E C4 40 .@ andb #40 +F29B F6 20 00 . . ldab 2000 +F29E C4 40 .@ andb #40 ; printer DSR F2A0 27 7B '{ beq 7b F2A2 F6 00 17 ... ldab 0017 F2A5 C4 08 .. andb #08 F2A7 26 06 &. bne 06 -F2A9 CC 00 24 ..$ ldd #0024 +F2A9 CC 00 24 ..$ ldd #0024 ; "$" F2AC BD F1 5B ..[ jsr f15b ;jump53 F2AF CE 00 1D ... ldx #001d F2B2 1C 00 01 ... bset 00,x, #01 @@ -14506,42 +14578,42 @@ F2B6 EC 00 .. ldd 00,x F2B8 BD E7 45 ..E jsr e745 ;jump55 - number to string F2BB F6 00 57 ..W ldab 0057 F2BE 4F O clra -F2BF BD F1 5B ..[ jsr f15b ;jump53 +F2BF BD F1 5B ..[ jsr f15b ;jump53 - byte to printer F2C2 F6 00 5A ..Z ldab 005a F2C5 4F O clra -F2C6 BD F1 5B ..[ jsr f15b ;jump53 +F2C6 BD F1 5B ..[ jsr f15b ;jump53 - byte to printer F2C9 F6 00 13 ... ldab 0013 F2CC C1 08 .. cmpb #08 F2CE 26 0C &. bne 0c F2D0 CC 00 2E ... ldd #002e -F2D3 BD F1 5B ..[ jsr f15b ;jump53 +F2D3 BD F1 5B ..[ jsr f15b ;jump53 - byte to printer F2D6 CE 00 1D ... ldx #001d F2D9 1D 00 01 ... bclr 00,x, #01 F2DC F6 00 5D ..] ldab 005d F2DF 4F O clra -F2E0 BD F1 5B ..[ jsr f15b ;jump53 +F2E0 BD F1 5B ..[ jsr f15b ;jump53 - byte to printer F2E3 F6 00 13 ... ldab 0013 F2E6 C1 04 .. cmpb #04 F2E8 26 0C &. bne 0c F2EA CC 00 2E ... ldd #002e -F2ED BD F1 5B ..[ jsr f15b ;jump53 +F2ED BD F1 5B ..[ jsr f15b ;jump53 - byte to printer F2F0 CE 00 1D ... ldx #001d F2F3 1D 00 01 ... bclr 00,x, #01 F2F6 F6 00 5E ..^ ldab 005e F2F9 4F O clra -F2FA BD F1 5B ..[ jsr f15b ;jump53 +F2FA BD F1 5B ..[ jsr f15b ;jump53 - byte to printer F2FD F6 00 13 ... ldab 0013 F300 C1 02 .. cmpb #02 F302 26 06 &. bne 06 F304 CC 00 2E ... ldd #002e -F307 BD F1 5B ..[ jsr f15b ;jump53 +F307 BD F1 5B ..[ jsr f15b ;jump53 - byte to printer F30A CE 00 1D ... ldx #001d F30D 1D 00 01 ... bclr 00,x, #01 F310 F6 00 5F .._ ldab 005f F313 4F O clra -F314 BD F1 5B ..[ jsr f15b ;jump53 +F314 BD F1 5B ..[ jsr f15b ;jump53 - byte to printer F317 CC 00 0A ... ldd #000a -F31A BD F1 5B ..[ jsr f15b ;jump53 +F31A BD F1 5B ..[ jsr f15b ;jump53 - byte to printer F31D 38 8 pulx F31E 39 9 rts @@ -14551,14 +14623,14 @@ F320 37 7 pshb F321 36 6 psha F322 3C < pshx F323 F6 20 00 . . ldab 2000 -F326 C4 40 .@ andb #40 +F326 C4 40 .@ andb #40 ; printer dsr F328 26 03 &. bne 03 F32A 7E F3 BC ~.. jmp f3bc ;goto82 F32D F6 00 17 ... ldab 0017 F330 C4 08 .. andb #08 F332 26 06 &. bne 06 -F334 CC 00 24 ..$ ldd #0024 -F337 BD F1 5B ..[ jsr f15b ;jump53 +F334 CC 00 24 ..$ ldd #0024 ; "$" +F337 BD F1 5B ..[ jsr f15b ;jump53 - byte to printer F33A CE 00 1D ... ldx #001d F33D 1C 00 01 ... bset 00,x, #01 F340 30 0 tsx @@ -14665,6 +14737,7 @@ F413 38 8 pulx F414 39 9 rts jump112: +; print a report? F415 F6 0B C0 ... ldab 0bc0 F418 C4 02 .. andb #02 F41A 27 15 '. beq 15 @@ -14694,38 +14767,38 @@ F458 CC 00 18 ... ldd #0018 F45B BD F1 5B ..[ jsr f15b ;jump53 F45E CC B2 1B ... ldd #b21b " ROWE INTERNATIONAL" F461 BD F1 E8 ... jsr f1e8 ;jump57 -F464 CC 00 0A ... ldd #000a +F464 CC 00 0A ... ldd #000a ; new line F467 BD F1 5B ..[ jsr f15b ;jump53 F46A CC B2 38 ..8 ldd #b238 " -------------------" F46D BD F1 E8 ... jsr f1e8 ;jump57 -F470 CC 00 0A ... ldd #000a +F470 CC 00 0A ... ldd #000a ; new line F473 BD F1 5B ..[ jsr f15b ;jump53 -F476 CC B2 56 ..V ldd #b256 +F476 CC B2 56 ..V ldd #b256 ; "5900 SOFTWARE VER 5" F479 BD F1 E8 ... jsr f1e8 ;jump57 -F47C CC 00 0A ... ldd #000a +F47C CC 00 0A ... ldd #000a ; new line F47F BD F1 5B ..[ jsr f15b ;jump53 -F482 CC 00 0A ... ldd #000a +F482 CC 00 0A ... ldd #000a ; new line F485 BD F1 5B ..[ jsr f15b ;jump53 -F488 CC B2 75 ..u ldd #b275 +F488 CC B2 75 ..u ldd #b275 ; ACCOUNT RECORD F48B BD F1 E8 ... jsr f1e8 ;jump57 -F48E CC 00 0A ... ldd #000a +F48E CC 00 0A ... ldd #000a ; new line F491 BD F1 5B ..[ jsr f15b ;jump53 -F494 CC B2 38 ..8 ldd #b238 +F494 CC B2 38 ..8 ldd #b238 ; -------------------- F497 BD F1 E8 ... jsr f1e8 ;jump57 -F49A CC 00 0A ... ldd #000a +F49A CC 00 0A ... ldd #000a ; new line F49D BD F1 5B ..[ jsr f15b ;jump53 -F4A0 CC 00 0A ... ldd #000a +F4A0 CC 00 0A ... ldd #000a ; new line F4A3 BD F1 5B ..[ jsr f15b ;jump53 -F4A6 CC B2 90 ... ldd #b290 +F4A6 CC B2 90 ... ldd #b290 ; SERIAL # F4A9 BD F1 E8 ... jsr f1e8 ;jump57 F4AC CE 00 0A ... ldx #000a F4AF 3C < pshx -F4B0 CC 0C BC ... ldd #0cbc +F4B0 CC 0C BC ... ldd #0cbc ; serial number F4B3 BD F1 C1 ... jsr f1c1 ;jump59 F4B6 38 8 pulx F4B7 CC 00 0A ... ldd #000a F4BA BD F1 5B ..[ jsr f15b ;jump53 -F4BD CC B2 A2 ... ldd #b2a2 +F4BD CC B2 A2 ... ldd #b2a2 ; "MACHINE ID" F4C0 BD F1 E8 ... jsr f1e8 ;jump57 F4C3 CE 00 0A ... ldx #000a F4C6 3C < pshx @@ -14734,22 +14807,22 @@ F4CA BD F1 C1 ... jsr f1c1 ;jump59 F4CD 38 8 pulx F4CE CC 00 0A ... ldd #000a F4D1 BD F1 5B ..[ jsr f15b ;jump53 -F4D4 CC B2 B4 ... ldd #b2b4 +F4D4 CC B2 B4 ... ldd #b2b4 ; "AUDIT NUMBER" F4D7 BD F1 E8 ... jsr f1e8 ;jump57 F4DA FC 0C E7 ... ldd 0ce7 -F4DD BD F2 4D ..M jsr f24d ;jump58 +F4DD BD F2 4D ..M jsr f24d ;jump58 - convert to string F4E0 CC 00 0A ... ldd #000a F4E3 BD F1 5B ..[ jsr f15b ;jump53 F4E6 CC 00 0A ... ldd #000a F4E9 BD F1 5B ..[ jsr f15b ;jump53 -F4EC CC B2 C6 ... ldd #b2c6 +F4EC CC B2 C6 ... ldd #b2c6 ; "SALES (R) F4EF BD F1 E8 ... jsr f1e8 ;jump57 F4F2 FE 0D E9 ... ldx 0de9 F4F5 3C < pshx F4F6 FC 0D E7 ... ldd 0de7 F4F9 BD F3 1F ... jsr f31f ;jump60 F4FC 38 8 pulx -F4FD CC B2 D8 ... ldd #b2d8 +F4FD CC B2 D8 ... ldd #b2d8 ; "SALES (N) F500 BD F1 E8 ... jsr f1e8 ;jump57 F503 FE 0D ED ... ldx 0ded F506 3C < pshx @@ -14955,7 +15028,7 @@ F707 F6 0B C0 ... ldab 0bc0 F70A C4 02 .. andb #02 F70C 27 06 '. beq 06 F70E CC 00 80 ... ldd #0080 -F711 BD C7 E7 ... jsr c7e7 ;jump37 +F711 BD C7 E7 ... jsr c7e7 ;jump37 - send to serial port F714 7F 00 38 ..8 clr 0038 F717 39 9 rts @@ -15031,20 +15104,24 @@ F79F 1C 00 10 .. bset 00,x, #10 F7A2 7C 00 4C |.L inc 004c F7A5 F6 00 4C ..L ldab 004c F7A8 C1 4B .K cmpb #4b -F7AA 26 13 &. bne 13 +F7AA 26 13 &. bne 13 ; to f7bf F7AC 7F 00 4C ..L clr 004c F7AF F6 00 4F ..O ldab 004f F7B2 27 03 '. beq 03 F7B4 7A 00 4F z.O dec 004f +; F7B7 F6 00 25 ..% ldab 0025 F7BA 27 03 '. beq 03 F7BC 7A 00 25 z.% dec 0025 +; F7BF F6 00 31 ..1 ldab 0031 F7C2 26 03 &. bne 03 -F7C4 BD FE 69 ..i jsr fe69 ;inhibit interrupts +F7C4 BD FE 69 ..i jsr fe69 ;reset +; F7C7 F6 00 7F ... ldab 007f F7CA 27 03 '. beq 03 -F7CC BD FE 69 ..i jsr fe69 ;inhibit interrupts +F7CC BD FE 69 ..i jsr fe69 ;reset +; F7CF C6 40 .@ ldab #40 F7D1 F7 10 25 ..% stab 1025 ; notify end of RTI period F7D4 38 8 pulx @@ -15092,7 +15169,7 @@ F801 F7 10 28 ..( stab 1028 ; SPCR 00101000 ; initialize the display F804 BD BE 69 ..i jsr be69 ;displayreset ; -; initialize the bill validator +; initialize the bill validator & more stuff F807 BD EA 59 ..Y jsr ea59 ;jump65 ; F80A CC 00 64 ..d ldd #0064 ; 100-unit delay @@ -15149,7 +15226,7 @@ F889 C6 3C .< ldab #3c F88B F7 00 31 ..1 stab 0031 F88E 0E . cli F88F CC 00 FF ... ldd #00ff -F892 BD C7 E7 ... jsr c7e7 ;jump37 +F892 BD C7 E7 ... jsr c7e7 ;jump37 - send to serial port F895 5F _ clrb F896 4F O clra F897 FD 00 40 ..@ std 0040 @@ -15195,6 +15272,7 @@ F8FE 0E . cli ; ; begin of main loop goto85: +; test power lines F8FF BD E6 1B ... jsr e61b ;jump4 set 0031 to 10 F902 BD D1 05 ... jsr d105 ;motors_off F905 F6 10 0A ... ldab 100a @@ -15228,6 +15306,8 @@ F94A F7 30 00 .0. stab 3000 ; clear send & reset lines F94D C6 1E .. ldab #1e F94F F7 00 35 ..5 stab 0035 ; +; end of power line test +; F952 F6 0B C0 ... ldab 0bc0 F955 C4 08 .. andb #08 F957 27 16 '. beq 16 ; to f96f @@ -15242,7 +15322,7 @@ F969 CE 0B C1 ... ldx #0bc1 F96C 1C 00 08 .. bset 00,x, #08 ; set bill error bit ; F96F F6 0B C1 ... ldab 0bc1 -F972 C4 07 .. andb #07 ; test for power failures +F972 C4 07 .. andb #07 ; was there a power failure? F974 27 0D '. beq 0d ; to f983 F976 F6 00 35 ..5 ldab 0035 F979 26 08 &. bne 08 @@ -15250,6 +15330,7 @@ F97B CE 00 21 ..! ldx #0021 F97E 1C 00 20 .. bset 00,x, #20 F981 20 06 .. bra 06 ; to f989 ; +; F983 CE 00 21 ..! ldx #0021 F986 1D 00 20 .. bclr 00,x, #20 F989 BD BB 63 . jsr bb63 ;jump200 - read the keypad @@ -15337,9 +15418,9 @@ FA5E BD E8 9A ... jsr e89a ;jump68 FA61 BD BE 69 ..i jsr be69 ;displayreset FA64 7F 00 06 ... clr 0006 FA67 CE 00 1F ... ldx #001f -FA6A 1D 00 .. bclr add,x 00,x -FA6C 20 C6 . bra c6 -FA6E 1E F7 00 35 ...5 brset f7,x 00 35 +FA6A 1D 00 20 .. bclr 00,x, #20 +FA6D C6 1E . ldab #1e +FA6F F7 00 35 ...5 stab 0035 FA72 20 03 . bra 03 goto84: FA74 BD DE E7 ... jsr dee7 ;jump116 @@ -15347,7 +15428,7 @@ FA77 20 66 f bra 66 goto83: FA79 F6 00 12 ... ldab 0012 FA7C C4 20 . andb #20 -FA7E 27 5F '_ beq 5f +FA7E 27 5F '_ beq 5f ; to fadf - restart loop FA80 F6 00 1F ... ldab 001f FA83 C4 20 . andb #20 FA85 26 03 &. bne 03 @@ -15371,7 +15452,7 @@ FAB0 CC 02 33 .. ldd #0233 FAB4 FD 00 3B ..; std 003b FAB7 20 09 . bra 09 ; to fac2 ; -FAB9 BD E5 AA ... jsr e5aa ;jump12 +FAB9 BD E5 AA ... jsr e5aa ;jump12 - beep if key pressed? FABC CE 00 1F ... ldx #001f FABF 1D 00 04 ... bclr 00,x, #04 FAC2 CE 00 1D ... ldx #001d @@ -15470,14 +15551,15 @@ FBA8 BD C0 BA ... jsr c0ba ;display: FBAB CC 07 D0 ... ldd #07d0 FBAE BD E5 71 ..q jsr e571 ;msdelay FBB1 3B ; rti -FBB2 BD FE 69 ..i jsr fe69 ;inhibit interrupts +FBB2 BD FE 69 ..i jsr fe69 ;reset FBB5 3B ; rti -FBB6 BD FE 69 ..i jsr fe69 ;inhibit interrupts +FBB6 BD FE 69 ..i jsr fe69 ;reset FBB9 3B ; rti jump38: ; passed a u16 on the stack, i, and a u16 in D, j -; multiplication funciton of some sort? +; i *think* it multiplies i*j and returns it in D. +; but the assembly seems to have several off-by-one errors FBBA 3C < pshx FBBB 37 7 pshb FBBC 30 0 tsx @@ -15485,10 +15567,10 @@ FBBD E6 06 .. ldab 06,x ; lower 8-bits of i FBBF 3D = mul ; A*B => D FBC0 A6 00 .. ldaa 00,x FBC2 37 7 pshb -FBC3 E6 05 .. ldab 05,x +FBC3 E6 05 .. ldab 05,x ; upper byte of return address?? FBC5 3D = mul FBC6 32 2 pula -FBC7 1B . aba +FBC7 1B . aba ; a now contains ad+bc FBC8 33 3 pulb FBC9 36 6 psha FBCA A6 06 .. ldaa 06,x @@ -15496,8 +15578,8 @@ FBCC 3D = mul FBCD 37 7 pshb FBCE AB 00 .. adda 00,x FBD0 36 6 psha -FBD1 EC 03 .. ldd 03,x -FBD3 ED 05 .. std 05,x +FBD1 EC 03 .. ldd 03,x ; move saved value of X +FBD3 ED 05 .. std 05,x ; into the return address??? FBD5 38 8 pulx FBD6 8F . xgdx FBD7 83 00 00 ... subd #0000 @@ -15705,16 +15787,11 @@ FD1E EC 0A .. ldd 0a,x FD20 7E FD E3 ~.. jmp fde3 ;goto90 FD23 86 08 .. ldaa #08 FD25 A7 05 .. staa 05,x -FD27 69 i rol -FD28 0D . sec -FD29 69 i rol -FD2A 0C . clc -FD2B 69 i rol -FD2C 0B . sev -FD2D 69 i rol -FD2E 0A . clv -FD2F 69 i rol -FD30 09 . dex +FD27 69 0D i. rol 0d,x +FD29 69 0C i. rol 0c,x +FD2B 69 0B i. rol 0b,x +FD2D 69 0A i. rol 0a,x +FD2F 69 09 i. rol 09,x FD31 EC 0B .. ldd 0b,x FD33 A3 10 .. subd 10,x FD35 ED 14 .. std 14,x @@ -15727,8 +15804,7 @@ FD41 EC 14 .. ldd 14,x FD43 ED 0B .. std 0b,x FD45 6A 05 j. dec 05,x FD47 26 DE &. bne de -FD49 69 i rol -FD4A 0D . sec +FD49 69 0D i. rol 0d,x FD4B 1F 04 01 09 .... brclr 04,x 01 09 FD4F EC 0B .. ldd 0b,x FD51 ED 14 .. std 14,x @@ -15742,18 +15818,12 @@ FD5E 5F _ clrb FD5F 7E FD E3 ~.. jmp fde3 ;goto90 FD62 86 10 .. ldaa #10 FD64 A7 05 .. staa 05,x -FD66 69 i rol -FD67 0D . sec -FD68 69 i rol -FD69 0C . clc -FD6A 69 i rol -FD6B 0B . sev -FD6C 69 i rol -FD6D 0A . clv -FD6E 69 i rol -FD6F 09 . dex -FD70 69 i rol -FD71 08 . inx +FD66 69 0D i. rol 0d,x +FD68 69 0C i. rol 0c,x +FD6A 69 0B i. rol 0b,x +FD6C 69 0A i. rol 0a,x +FD6E 69 09 i. rol 09,x +FD70 69 08 i. rol 08,x FD72 EC 0A .. ldd 0a,x FD74 A3 10 .. subd 10,x FD76 ED 14 .. std 14,x @@ -15766,10 +15836,8 @@ FD82 EC 14 .. ldd 14,x FD84 ED 0A .. std 0a,x FD86 6A 05 j. dec 05,x FD88 26 DC &. bne dc -FD8A 69 i rol -FD8B 0D . sec -FD8C 69 i rol -FD8D 0C . clc +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 @@ -15786,16 +15854,11 @@ goto91: FDA4 2B BC +. bmi bc FDA6 86 10 .. ldaa #10 FDA8 A7 05 .. staa 05,x -FDAA 69 i rol -FDAB 0D . sec -FDAC 69 i rol -FDAD 0C . clc -FDAE 69 i rol -FDAF 0B . sev -FDB0 69 i rol -FDB1 0A . clv -FDB2 69 i rol -FDB3 07 . tpa +FDAA 69 0D i rol 0d,x +FDAC 69 0C i rol 0c,x +FDAE 69 0B i rol 08,x +FDB0 69 0A i rol 0a,x +FDB2 69 07 i rol 07,x FDB4 EC 0A .. ldd 0a,x FDB6 A3 10 .. subd 10,x FDB8 ED 14 .. std 14,x @@ -15807,10 +15870,8 @@ FDC2 EC 14 .. ldd 14,x FDC4 ED 0A .. std 0a,x FDC6 6A 05 j. dec 05,x FDC8 26 E0 &. bne e0 -FDCA 69 i rol -FDCB 0D . sec -FDCC 69 i rol -FDCD 0C . clc +FDCA 69 0D i. rol 0d,x +FDCC 69 0C i. rol 0c,x FDCE 1F 04 01 09 .... brclr 04,x 01 09 FDD2 EC 0A .. ldd 0a,x FDD4 ED 14 .. std 14,x