;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
;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
;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)
; 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
;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'
; PE6 <unused>
; PE5 <unused>
; PE4 <unused>
-; 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)
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
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
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
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
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
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
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
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
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
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
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:
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:
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
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 55 ;jump205
-D96D 20 52 R bra 52
+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
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
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
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:
DA72 8F . xgdx
DA73 37 7 pshb
DA74 36 6 psha
-DA75 CC 00 C3 ... ldd #00c3
+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
DA85 FC 0B B9 ... ldd 0bb9
DA88 37 7 pshb
DA89 36 6 psha
-DA8A CC 00 0A ... ldd #000a
+DA8A CC 00 0A ... ldd #000a ; 10
DA8D BD FB BA ... jsr fbba ;jump38 - multiply?
DA90 37 7 pshb
DA91 36 6 psha
DA9D 8F . xgdx
DA9E 37 7 pshb
DA9F 36 6 psha
-DAA0 CC 00 0A ... ldd #000a
+DAA0 CC 00 0A ... ldd #000a ; 10
DAA3 BD FB BA ... jsr fbba ;jump38 - multiply?
DAA6 CE 00 0A ... ldx #000a
DAA9 02 . idiv
E1FC 83 00 00 ... subd #0000
E200 26 12 &. bne 12
E202 BD E5 D1 ... jsr e5d1 ;jump52 - triple beep
-E205 BD D8 E9 ... jsr d8e9 ;jump92
+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
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
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
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
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
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
F414 39 9 rts
jump112:
+; print a report?
F415 F6 0B C0 ... ldab 0bc0
F418 C4 02 .. andb #02
F41A 27 15 '. beq 15
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
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
;
; 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
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
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
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
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
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
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
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
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
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
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