;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
;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)
;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'
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
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
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
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
D49D 7F 00 05 ... clr 0005
goto65:
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
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
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
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
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
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:
D9C2 CC 03 E8 ... ldd #03e8
D9C5 BD E5 71 ..q jsr e571 ;msdelay
D9C8 BD D7 83 ... jsr d783 ;jump44
DA73 37 7 pshb
DA74 36 6 psha
DA75 CC 00 C3 ... ldd #00c3
-DA78 BD FB BA ... jsr fbba ;jump38
+DA78 BD FB BA ... jsr fbba ;jump38 - multiply?
DA7B B3 0B B9 ... subd 0bb9
DA7E 24 05 $. bcc 05
DA80 5F _ clrb
DA88 37 7 pshb
DA89 36 6 psha
DA8A CC 00 0A ... ldd #000a
-DA8D BD FB BA ... jsr fbba ;jump38
+DA8D BD FB BA ... jsr fbba ;jump38 - multiply?
DA90 37 7 pshb
DA91 36 6 psha
DA92 FC 0B B5 ... ldd 0bb5
DA9E 37 7 pshb
DA9F 36 6 psha
DAA0 CC 00 0A ... ldd #000a
-DAA3 BD FB BA ... jsr fbba ;jump38
+DAA3 BD FB BA ... jsr fbba ;jump38 - multiply?
DAA6 CE 00 0A ... ldx #000a
DAA9 02 . idiv
DAAA 8F . xgdx
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
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
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
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
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
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
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
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
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
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
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
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:
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:
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
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
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
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
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
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
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
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
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
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
; 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
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
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
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: