Although I am trying to work through the logistics of the format for mode $35. What I have so far is that it should be 35 00 xx xx yy yy yy. I do know that xx xx cannot be greater than $0480. I am not sure if the ELM is capable of this one though. This is what I have so far piecing together the code:
Code: Select all
18190 ldY L1E3A; 01E3A = 1D, 01E3B = E8
18194 ldaA 15, Y; 01DF7 = AA
18197 cmpA #$AA
18199 beq L819E
1819E ldaB 0, Y; 01DE8 = 6C
181A1 xorB #%00001000
181A3 bitB #%00011000
181A5 beq L81AA
181AA cmpB #$E0
181AC bcs L81B1
181B1 bitB #%00000100
181B3 bne L81C2
181C2 ldaA 1, Y; 01DE9 = 10
181C5 cmpA #$FE
181C7 bne L81E3
181E3 cmpA LC251; 1C251 = 10
181E6 beq L81F8
181F8 ldX L1E7B; 01E7B = 1E, 01E7C = 6B
181FB ldaA 15, X; 01E7A = 00
181FD cmpA #$AA
181FF bne L820B
1820B ldD 0, Y; 01DE8 = 6C, 01DE9 = 10
1820E stD 0, X; 01E6B = 6C, 01E6C = 10
18210 ldD 2, Y; 01DEA = F1, 01DEB = 35
18213 stD 2, X; 01E6D = F1, 01E6E = 35
18215 ldD 4, Y; 01DEC = 00, 01DED = 00
18218 stD 4, X; 01E6F = 00, 01E70 = 00
1821A ldD 6, Y; 01DEE = 04, 01DEF = 00
1821D stD 6, X; 01E71 = 04, 01E72 = 00
1821F ldD 8, Y; 01DF0 = 0E, 01DF1 = 00
18222 stD 8, X; 01E73 = 0E, 01E74 = 00
18224 ldD 10, Y; 01DF2 = 00, 01DF3 = 00
18227 stD 10, X; 01E75 = 00, 01E76 = 00
18229 ldD 12, Y; 01DF4 = 1D, 01DF5 = F2
1822C stD 12, X, 01E77 = 1D, 01E78 = F2
1822E ldD 14, Y; 01DF6 = 00, 01DF7 = AA
18231 stD 14, X; 01E79 = 00, 01E7A = AA
18233 ldD 12, Y; 01DF4 = 1D, 01DF5 = F2
18236 subD L1E3A; 01E3A = 1D, 01E3B = E8
18239 aBX
1823A ldY L1E7B; 01E7B = 1E, 01E7C = 6B
1823E stX 12, Y; 01E77 = 1E, 01E78 = 75
18241 ldD L1E7B; 01E7B = 1E, 01E7C = 6B
18244 addD #$0010
18247 cmpD #$1E7B
1824B bcs L8250
1824D ldD #$1E4B
18250 stD L1E7B; 01E7B = 1E, 01E7C = 4B
18253 ldY L1E3A; 01E3A = 1D, 01E3B = E8
18257 ldaA #$00
18259 staA 15, Y; 01DF7 = 00
1825C ldD L1E3A; 01E3A = 1D, 01E3B = E8
1825F addD #$0010
18262 cmpD #$1E38
18266 bcs L826B
1826B stD L1E3A; 01E3A = 1D, 01E3B = F8
1826E jmp E8190
18190 ldY L1E3A; 01E3A = 1D, 01E3B = F8
18194 ldaA 15, Y; 01E07 = 00
18197 cmpA #$AA
18199 beq L819E
1819B jmp L8271
18271 brset L0088, #%00100000, L8284; 00088 = 02
18275 brset L0088, #%00010000, L82CC; 00088 = 02
18279 ldY L1E7D; 01E7D = 1E, 01E7E = 6B
1827D ldaA 15, Y; 01E7A = AA
18280 cmpA #$AA
18282 beq L8286
18286 ldX #$0383
18289 ldaB 0, Y; 01E6B = 6C
1828C ldaB 0, Y
1828E bne L82A2
182A2 ldaA 0, Y; 01E6B = 6C
182A5 staA 0, X; 00383 = 6C
182A7 ldaA 2, Y; 01E6D = F1
182AA staA 1, X; 00384 = F1
182AC ldaA LC251; 1C251 = 10
182AF staA 2, X; 00385 = 10
182B1 ldD 12, Y; 01E77 = 1E, 01E78 = 75
182B4 subD L1E7D; 01E7D = 1E, 01E7E = 6B
182B7 subB #$03
182B9 staB L1E7F; 01E7F = 07
182BC ldaA 3, Y; 01E6E = 35
182BF staA 3, X; 00386 = 35
182C1 incX
182C2 incY
182C4 decB
182C5 bne L82BC
182BC ldaA 3, Y; 01E6F = 00
182BF staA 3, X; 00387 = 00
182C1 incX
182C2 incY
182C4 decB
182C5 bne L82BC
182BC ldaA 3, Y; 01E70 = 00
182BF staA 3, X; 00388 = 00
182C1 incX
182C2 incY
182C4 decB
182C5 bne L82BC
182BC ldaA 3, Y; 01E71 = 04
182BF staA 3, X; 00389 = 04
182C1 incX
182C2 incY
182C4 decB
182C5 bne L82BC
182BC ldaA 3, Y; 01E72 = 00
182BF staA 3, X; 0038A = 00
182C1 incX
182C2 incY
182C4 decB
182C5 bne L82BC
182BC ldaA 3, Y; 01E73 = 0E
182BF staA 3, X; 0038B = 0E
182C1 incX
182C2 incY
182C4 decB
182C5 bne L82BC
182BC ldaA 3, Y; 01E74 = 00
182BF staA 3, X; 0038C = 00
182C1 incX
182C2 incY
182C4 decB
182C5 bne L82BC
182C7 ldaA #$01
182C9 staA L1E82; 01E82 = 01
182CC call L8883; 003FA = CF, 003F9 = 82, 18883 = F6
18883 ldaB L0386; 00386 = 35
18886 andB #%10111111
18888 tBA
18889 beq L8899
1888B cmpB #$08
1888D bhi L8895
18895 subB #$10
18897 bcc L889F
1889F cmpB #$2F
188A1 bhi L88A8
188A3 ldX #$8805
188A6 jr L88B3
188B3 aBX
188B4 aBX
188B5 ldX 0, X; 1884F = 9E, 18850 = A2
188B7 beq L88D9
188B9 brset L0088, #%00010000, L88D5; 00088 = 02
188BD ldaB L1E7F; 01E7F = 07
188C0 cmpB 0, X; 19EA2 = 07
188C2 bhi L88C8
188C4 cmpB 1, X; 19EA3 = 07
188C6 bcc L88D0
188D0 bset L0088, #%00010000; 00088 = 02, 00088 = 12
188D3 jmp 4, X
19EA6 ldX #$0386
19EA9 call LB00D; 003F8 = AC, 003F7 = 9E
1B00D brset L007A, #%00001000, LB036; 0007A = 80
1B011 tst L1B91; 01B91 = 00
1B014 bne LB036
1B016 ldaB L3B01; 03B01 = 1E
1B019 bitB #%00000001
1B01B bne LB042
1B01D pushX; 003F6 = 86, 003F5 = 03
1B01E ldX L200A; 0200A = E5, 0200B = 7F
1B021 cmpX #$DEAD
1B024 popX; 003F4 = 00, 003F5 = 03, 003F6 = 86
1B025 beq LB042
1B027 ldaB L3B04; 03B04 = 00
1B02A incB
1B02B beq LB042
1B02D tst L0E3D; 00E3D = 00
1B030 bne LB042
1B032 brset L008C, #%00000001, LB042; 0008C = 01
1B042 clrA
1B043 ret; 003F6 = 86, 003F7 = 9E, 003F8 = AC
19EAC tstA
19EAD beq L9EB2
19EB2 ldD 2, X; 00388 = 00, 00389 = 04
19EB4 cmpD #$0480
19EB8 bls L9EBE ; check that xx xx is less than $0480
19EBE ldaA #$51; preload error code "improper upload type"
19EC0 ldaB 1, X; 00387 = 00
19EC2 bne L9F00
19EC4 tst 4, X; 0038A = 00
19EC6 bne L9ED9
19EC8 ldD 5, X; 0038B = 0E, 0038C = 00
19ECA bpl L9ED0
19ED0 addD 2, X; 00388 = 00, 00389 = 04
19ED2 subD #$0001
19ED5 bpl L9EEA
19EEA ldaA 2, X; 00388 = 00
19EEC pushA; 003F8 = 00
19EED ldaA #$54; load message "ready for upload"
19EEF staA 2, X; 00388 = 54
19EF1 ldaA #$03
19EF3 call LAF9F; 003F7 = F6, 003F6 = 9E
1AF9F bclr L0088, #%00010000; 00088 = 12, 00088 = 02
1AFA2 tstA
1AFA3 beq LAFA8
1AFA5 staA L1E7F; 01E7F = 03
1AFA8 ldaA L0386; 00386 = 35
1AFAB oraA #%01000000
1AFAD staA L0386; 00386 = 75 Put 75 in outgoing message good response
1AFB0 ldX #$C603
1AFB3 call LBD43; 003F5 = B6, 003F4 = AF
1BD43 ldaB 16, X; 1C613 = 00
1BD45 ldY #$1F9A
1BD49 aBY
1BD4B tPA
1BD4C di
1BD4D ldaB 15, X; 1C612 = 01
1BD4F oraB 0, Y; 01F9A = 00
1BD52 staB 0, Y; 01F9A = 01
1BD55 tAP
1BD56 ret; 003F3 = 31, 003F4 = AF, 003F5 = B6
1AFB6 bset L0088, #%00100000; 00088 = 02, 00088 = 22
1AFB9 clrA
1AFBA brclr L0088, #%00010000, LAFBF; 00088 = 22
1AFBF ret; 003F5 = B6, 003F6 = 9E, 003F7 = F6
19EF6 call LBDFA; 003F7 = F9, 003F6 = 9E
1BDFA ldaA L1F87; 01F87 = 00
1BDFD beq LBE06
1BE06 ldaA L1B8D; 01B8D = 76
1BE09 cmpA LC253; 1C253 = 00
1BE0C bcs LBE13
1BE0E cmpA LC254; 1C254 = F5
1BE11 bcs LBE16
1BE16 brclr L0089, #%00010000, LBE1D; 00089 = 09
1BE1D di
1BE1E ldaA L0C00; 00C00 = 10
1BE21 ldaB L1F7B; 01F7B = 10
1BE24 staA L1F7B; 01F7B = 10
1BE27 bitA #%00001000
1BE29 beq LBE5B
1BE5B ei
1BE5C call LBEEA; 003F5 = 5F, 003F4 = BE
1BEEA ldaA L1F93; 01F93 = 00
1BEED beq LBEF8
1BEF8 ldX #$1FAA
1BEFB ldaB #$08
1BEFD ldaA #$FF
1BEFF aBX
1BF00 di
1BF01 decX
1BF02 staA 0, X; 01FB1 = FF
1BF04 cmpX #$1FAA
1BF07 bne LBF01
1BF01 decX
1BF02 staA 0, X; 01FB0 = FF
1BF04 cmpX #$1FAA
1BF07 bne LBF01
1BF01 decX
1BF02 staA 0, X; 01FAF = FF
1BF04 cmpX #$1FAA
1BF07 bne LBF01
1BF01 decX
1BF02 staA 0, X; 01FAE = FF
1BF04 cmpX #$1FAA
1BF07 bne LBF01
1BF01 decX
1BF02 staA 0, X; 01FAD = FF
1BF04 cmpX #$1FAA
1BF07 bne LBF01
1BF01 decX
1BF02 staA 0, X; 01FAC = FF
1BF04 cmpX #$1FAA
1BF07 bne LBF01
1BF01 decX
1BF02 staA 0, X; 01FAB = FF
1BF04 cmpX #$1FAA
1BF07 bne LBF01
1BF01 decX
1BF02 staA 0, X; 01FAA = FF
1BF04 cmpX #$1FAA
1BF07 bne LBF01
1BF09 ei
1BF0A brset L0089, #%00001000, LBF11; 00089 = 09
1BF11 brclr L0089, #%00000001, LBF34; 00089 = 09
1BF15 ldX #$C231
1BF18 ldY #$1FAA
1BF1C ldaB #$08
1BF1E aBX
1BF1F aBY
1BF21 di
1BF22 decX
1BF23 decY
1BF25 ldaA 0, X; 1C238 = 00
1BF27 andA 0, Y; 01FB1 = FF
1BF2A staA 0, Y; 01FB1 = 00
1BF2D cmpY #$1FAA
1BF31 bne LBF22