;0bd9 also related
;0bc0 machine capabilities flags
; bit0: have dumb mech
-; bit1:
+; bit1: have a changer
; bit2: have card reader
; bit3: have bill validator
; bit4: link master - price holding enabled
AB95 BD D4 79 ..y jsr d479 ;jump67
AB98 BD E8 9A ... jsr e89a ;jump68
AB9B BD E9 EA ... jsr e9ea ;jump113
-AB9E 7F 0B C1 ... clr 0bc1
+AB9E 7F 0B C1 ... clr 0bc1 ; clear all errors
ABA1 39 9 rts
jump8:
AC84 C4 07 .. andb #07
AC86 26 0A &. bne 0a
AC88 F6 0B C1 ... ldab 0bc1
-AC8B C4 7F .. andb #7f
+AC8B C4 7F .. andb #7f ; have errors?
AC8D 26 03 &. bne 03
AC8F 5F _ clrb
AC90 20 02 . bra 02
C372 CE 00 15 ... ldx #0015
C375 1C 00 80 .. bset 00,x, #80
C378 CE 0B C1 ... ldx #0bc1
-C37B 1D 00 08 .. bclr 00,x #08
+C37B 1D 00 08 .. bclr 00,x #08 ; clear bill error bit
C37E F6 00 1D ... ldab 001d
C381 C4 20 . andb #20
C383 27 03 '. beq 03
C6A8 C4 01 .. andb #01
C6AA 27 06 '. beq 06
C6AC CE 0B C1 ... ldx #0bc1
-C6AF 1C 00 01 ... bset 00,x, #01
+C6AF 1C 00 01 ... bset 00,x, #01 ; set changer powerup error bit
C6B2 F6 0B C0 ... ldab 0bc0
C6B5 C4 04 .. andb #04
C6B7 27 06 '. beq 06
C6B9 CE 0B C1 ... ldx #0bc1
-C6BC 1C 00 02 ... bset 00,x, #02
+C6BC 1C 00 02 ... bset 00,x, #02 ; set card powerup error bit
C6BF CE 00 1A ... ldx #001a
C6C2 1D 00 04 ... bclr 00,x, #04 ; keypad strobe finish
C6C5 F6 00 1A ... ldab 001a
sciinterrupt:
C81C 34 4 des
C81D F6 0B C0 ... ldab 0bc0
-C820 C4 01 .. andb #01
-C822 26 0A &. bne 0e ; to c82e
+C820 C4 01 .. andb #01 ; do we have a dumb mech?
+C822 26 0A &. bne 0a ; if so, to c82e
+;
C824 F6 0B C0 ... ldab 0bc0
-C827 C4 04 .. andb #04
-C829 26 03 &. bne 03 ; to c82e
-C82B 7E CB FF ~.. jmp cbff ;goto44
+C827 C4 04 .. andb #04 ; do we have a card reader?
+C829 26 03 &. bne 03 ; if so, to c82e
+C82B 7E CB FF ~.. jmp cbff ; else to goto44
+;
C82E C6 96 .. ldab #96 ; 150
-C830 F7 00 30 ..0 stab 0030
+C830 F7 00 30 ..0 stab 0030 ; changer related still
C833 F6 10 2E ... ldab 102e ; SCI status
C836 C4 02 .. andb #02 ; test for Framing Error
C838 26 0B &. bne 0b ; if so, to c845
C88C C6 04 . andb #04
C88E F7 0C DB ... stab 0cdb
C891 CE 0B C1 ... ldx #0bc1
-C894 1C 00 40 ... bset 00,x, #40 ;endif
+C894 1C 00 40 ... bset 00,x, #40 ; set tube error
+;
C897 F6 00 21 ..! ldab 0021
C89A F4 0B D8 ... andb 0bd8
C89D 27 08 '. beq 08 ; to c8a7
C8B4 C6 04 .. ldab #04
C8B6 F7 0C DA ... stab 0cda
C8B9 CE 0B C1 ... ldx #0bc1
-C8BC 1C 00 40 ... bset 00,x, #40
+C8BC 1C 00 40 ... bset 00,x, #40 ; set tube error
; if 0021 & 0bd9, then set bit 7 of 0017, else unset it.
C8BF F6 00 21 ..! ldab 0021
C8C2 F4 0B D9 ... andb 0bd9
C8DC F7 0C D9 ... stab 0cd9
; set tube error bit
C8DF CE 0B C1 ... ldx #0bc1
-C8E2 1C 00 40 ... bset 00,x, #40
+C8E2 1C 00 40 ... bset 00,x, #40 ; set tube error bit
C8E5 20 31 1 bra 31 ; to c918
;
goto46: ; pulse the send' line of the changer
CA74 C6 01 .. ldab #01
CA76 F7 00 08 ... stab 0008
CA79 CE 0B C1 ... ldx #0bc1
-CA7C 1D 00 01 ... bclr 00,x, #01
+CA7C 1D 00 01 ... bclr 00,x, #01 ; clear card powerup error bit
CA7F 7E CB DA ~.. jmp cbda ;goto48 (clean exit)
;
CA82 F6 10 2F ../ ldab 102f ; read SCI data
CB7A 27 08 '. beq 08
CB7C CE 00 21 ..! ldx #0021
CB7F 1C 00 10 ... bset 00,x, #10
-CB82 20 56 V bra 56 ; to cbda - cleanup and exit
+CB82 20 56 V bra 56 ;goto48 - cleanup and exit
;
CB84 F6 10 2F ../ ldab 102f ; read SCI data
CB87 C4 EF .. andb #ef ; 11101111
CB89 C1 E3 .. cmpb #e3 ; 11100111
CB8B 26 08 &. bne 08 ; to cb95
CB8D CE 0B C1 ... ldx #0bc1
-CB90 1D 00 02 ... bclr 00,x, #02
-CB93 20 45 E bra 45
+CB90 1D 00 02 ... bclr 00,x, #02 ; clear card powerup error bit
+CB93 20 45 E bra 45 ;goto48 - cleanup and exit
;
+; this could be the coin mech powerup message?
CB95 F6 10 2F ../ ldab 102f ; read SCI data
CB98 C4 EF .. andb #ef ; 11101111
CB9A C1 63 .c cmpb #63 ; 01101110
CB9C 26 1C &. bne 1c ; to cbba
-CB9E CE 0B C1 ... ldx #0bc1
+CB9E CE 0B C1 ... ldx #0bc1 ; clear changer powerup error bit
CBA1 1D 00 01 ... bclr 00,x, #01
CBA4 F6 0B C0 ... ldab 0bc0
-CBA7 C4 01 .. andb #01
-CBA9 27 0D '. beq 0d ; to cbb8
+CBA7 C4 01 .. andb #01 ; do we have a changer?
+CBA9 27 0D '. beq 0d ; to cbb8 - cleanup & exit
CBAB F6 0B C0 ... ldab 0bc0
-CBAE C4 04 .. andb #04
+CBAE C4 04 .. andb #04 ; if we don't have a card reader, we don't have an error reading from it. duh.
CBB0 27 06 '. beq 06 ; to cbb8
CBB2 CE 0B C1 ... ldx #0bc1
-CBB5 1D 00 02 ... bclr 00,x, #02
+CBB5 1D 00 02 ... bclr 00,x, #02 ; clear card powerup error bit
CBB8 20 20 bra 20 ;goto48 - cleanup & exit
;
+; the coin mech is telling us it has a bad sensor
CBBA F6 10 2F ../ ldab 102f ; read SCI data
CBBD C4 EF .. andb #ef ; 11101111
CBBF C1 67 .g cmpb #67 ; 01100111
CBC1 26 08 &. bne 08 ; to cbcb
CBC3 CE 0B C1 ... ldx #0bc1
-CBC6 1C 00 .. bset 00,x, #20
+CBC6 1C 00 .. bset 00,x, #20 ; set bad sensor error bit
CBC9 20 0F bra 0f ;goto48 - cleanup & exit
;
CBCB F6 10 2F ../ ldab 102f ; read SCI data
CBD0 C1 27 .' cmpb #27 ; 00100111
CBD2 26 06 &. bne 06 ;goto48 - cleanup & exit
;
-CBD4 CE 0B C1 ... ldx #0bc1
+CBD4 CE 0B C1 ... ldx #0bc1 ; set coin jam error bit
CBD7 1C 00 10 ... bset 00,x, #10
goto48: ; cleanup and exit
CBDA CE 00 1A ... ldx #001a
CBFC 7E CE 46 ~.F jmp ce46 ;goto47 (exit)
;
goto44:
-CBFF F6 0B C0 ... ldab 0bc0
+CBFF F6 0B C0 ... ldab 0bc0 ; do we have a changer?
CC02 C4 02 .. andb #02
-CC04 26 03 &. bne 03
-CC06 7E CE 3B ~.; jmp ce3b ;goto54 - swallow 2 bytes & exit
+CC04 26 03 &. bne 03 ; if so, swallow & exit
+CC06 7E CE 3B ~.; jmp ce3b ; goto54 - swallow a byte & exit
+ ; else
+;
CC09 F6 10 2F ../ ldab 102f ; read SCI data
CC0C C4 E0 .. andb #e0
CC0E C1 20 . cmpb #20
CC10 27 03 '. beq 03
-CC12 7E CE 3B ~.; jmp ce3b ;goto54 - swallow 2 bytes & exit
+CC12 7E CE 3B ~.; jmp ce3b ;goto54 - swallow a byte & exit
+;
CC15 C6 32 .2 ldab #32 ; 50
CC17 F7 00 2F ../ stab 002f
CC1A CE 00 1B ... ldx #001b
CE36 BD C7 E7 ... jsr c7e7 ;jump37 - send byte to coin mech
goto55:
CE39 20 0B . bra 0b ; to ce46 (exit)
-goto54: ; just swallow two bytes?
+goto54: ; just swallow a byte?
CE3B F6 10 2E ... ldab 102e ; SCI Status
CE3E 30 0 tsx
CE3F E7 00 .. stab 00,x ; store into stack variable
DF23 CE 00 1B ... ldx #001b
DF26 1C 00 02 .. bset 00,x, #02
DF29 CE 0B C1 ... ldx #0bc1
-DF2C 1C 00 04 .. bset 00,x, #04
+DF2C 1C 00 04 .. bset 00,x, #04 ; set link powerup error bit
DF2F F6 00 21 ..! ldab 0021
DF32 C4 20 . andb #20
DF34 27 07 '. beq 07
E000 C4 08 .. andb #08
E002 27 52 'R beq 52
E004 F6 0B C1 ... ldab 0bc1
-E007 C4 08 .. andb #08
+E007 C4 08 .. andb #08 ; test bill error bit
E009 26 08 &. bne 08
E00B FC 0B EF ... ldd 0bef
E00E 83 00 64 ..d subd #0064
goto92:
E329 BD E8 9A ... jsr e89a ;jump68
E32C CE 0B C1 ... ldx #0bc1
-E32F 1D 00 08 ... bclr 00,x, #08
+E32F 1D 00 08 ... bclr 00,x, #08 ; clear bill error bit
E332 7E E5 5E ~.^ jmp e55e ;goto74
goto75:
E335 F6 0B C0 ... ldab 0bc0