| 
 
注册时间2004-11-27最后登录1970-1-1 
 | 
 
| 这里只分析了sys-tools的通讯部分。。。 流程
 1.寻找通讯设备
 2.找到通讯设备后,接收将要进行的操作的指令,再接收数据的大小及数据至缓冲区,若操作失败则等待重新操作的信号
 3.重复2至通讯结束
 
 详细过程如下:
 
 ;初始化计数器
 $6B04: A9 00 LDA #$00
 $6B06: 8D C9 0F STA $0FC9
 $6B09: A9 10 LDA #$10
 $6B0B: 8D CA 0F STA $0FCA
 $6B0E: 60 RTS
 
 ;计数器减
 $6B0F: AD C9 0F LDA $0FC9
 $6B12: D0 03 BNE $6B17
 $6B14: CE CA 0F DEC $0FCA
 $6B17: CE C9 0F DEC $0FC9
 $6B1A: AD CA 0F LDA $0FCA
 $6B1D: C9 00 CMP #$00
 $6B1F: D0 05 BNE $6B26
 $6B21: AD C9 0F LDA $0FC9
 $6B24: C9 00 CMP #$00
 $6B26: 60 RTS
 
 ;???
 $6B27: 20 3C 6C JSR $6C3C
 $6B2A: 85 45 STA $45
 $6B2C: 60 RTS
 
 ;等待I/O Ready
 $6B2D: 20 04 6B JSR $6B04;(初始化计数器)
 $6B30: A9 00 LDA #$00
 $6B32: 8D AA 0F STA $0FAA
 $6B35: 08 PHP
 $6B36: 48 PHA
 $6B37: A5 3D LDA $3D
 $6B39: 29 FC AND #$FC
 $6B3B: 09 00 ORA #$00
 $6B3D: 85 3D STA $3D
 $6B3F: 68 PLA
 $6B40: 28 PLP
 $6B41: A9 00 LDA #$00
 $6B43: 85 3D STA $3D
 $6B45: A9 04 LDA #$04
 $6B47: 85 3D STA $3D
 $6B49: 08 PHP
 $6B4A: 48 PHA
 $6B4B: A5 3D LDA $3D
 $6B4D: 29 FC AND #$FC
 $6B4F: 09 00 ORA #$00
 $6B51: 85 3D STA $3D
 $6B53: 68 PLA
 $6B54: 28 PLP
 $6B55: A5 3B LDA $3B
 $6B57: C9 60 CMP #$60
 $6B59: F0 0A BEQ $6B65;转准备好了
 $6B5B: 20 0F 6B JSR $6B0F;(计数器减)
 $6B5E: D0 D5 BNE $6B65
 $6B60: A9 01 LDA #$01
 $6B62: 8D AA 0F STA $0FAA
 $6B65: 60 RTS
 
 ;打开串口通讯
 $6B66: A5 3D LDA $3D
 $6B68: 29 FC AND #$FC
 $6B6A: 09 00 ORA #$00
 $6B6C: 85 3D STA $3D
 $6B6E: A9 04 LDA #$04
 $6B70: 85 3D STA $3D
 $6B72: A5 3D LDA $3D
 $6B74: 29 FC AND #$FC
 $6B76: 09 00 ORA #$00
 $6B78: 85 3D STA $3D
 $6B7A: A9 01 LDA #$01
 $6B7C: 85 3B STA $3B
 $6B7E: A9 20 LDA #$20
 $6B80: 85 3E STA $3E
 $6B82: AD 3A 04 LDA $043A
 $6B85: 09 10 ORA #$10
 $6B87: 85 3F STA $3F
 $6B89: 8D 3A 04 STA $043A
 $6B8C: AD 3B 04 LDA $043B
 $6B8F: 09 10 ORA #$10
 $6B91: 85 1E STA $1E
 $6B93: 8D 3B 04 STA $043B
 $6B96: 08 PHP
 $6B97: 48 PHA
 $6B98: A5 3D LDA $3D
 $6B9A: 29 FC AND #$FC
 $6B9C: 09 03 ORA #$03
 $6B9E: 85 3D STA $3D
 $6BA0: 68 PLA
 $6BA1: 28 PLP
 $6BA2: A9 80 LDA #$80
 $6BA4: 85 3A STA $3A
 $6BA6: 85 3C STA $3C
 $6BA8: 08 PHP
 $6BA9: 48 PHA
 $6BAA: A5 3D LDA $3D
 $6BAC: 29 FC AND #$FC
 $6BAE: 09 01 ORA #$01
 $6BB0: 85 3D STA $3D
 $6BB2: 68 PLA
 $6BB3: 28 PLP
 $6BB4: A9 00 LDA #$00
 $6BB6: 85 3B STA $3B
 $6BB8: A9 30 LDA #$30
 $6BBA: 85 3D STA $3D
 $6BBC: 20 2D 6B JSR $6B2D;(等I/O READY)
 $6BBF: 08 PHP
 $6BC0: 48 PHA
 $6BC1: A5 3D LDA $3D
 $6BC3: 29 FC AND #$FC
 $6BC5: 09 01 ORA #$01
 $6BC7: 85 3D STA $3D
 $6BC9: 68 PLA
 $6BCA: 28 PLP
 $6BCB: A9 01 LDA #$01
 $6BCD: 85 3A STA $3A
 $6BCF: 08 PHP
 $6BD0: 48 PHA
 $6BD1: A5 3D LDA $3D
 $6BD3: 29 FC AND #$FC
 $6BD5: 09 00 ORA #$00
 $6BD7: 85 3D STA $3D
 $6BD9: 68 PLA
 $6BDA: 28 PLP
 $6BDB: A9 00 LDA #$00
 $6BDD: 85 3C STA $3C
 $6BDF: 08 PHP
 $6BE0: 48 PHA
 $6BE1: A5 3D LDA $3D
 $6BE3: 29 FC AND #$FC
 $6BE5: 09 02 ORA #$02
 $6BE7: 85 3D STA $3D
 $6BE9: 68 PLA
 $6BEA: 28 PLP
 $6BEB: A9 20 LDA #$20
 $6BED: 85 3C STA $3C
 $6BEF: 60 RTS
 
 ;关闭串口通讯
 $6BF0: A5 3D LDA $3D
 $6BF2: 29 FC AND #$FC
 $6BF4: 09 00 ORA #$00
 $6BF6: 85 3D STA $3D
 $6BF8: A5 3D LDA $3D
 $6BFA: 29 FB AND #$FB
 $6BFC: 85 3D STA $3D
 $6BFE: A5 3D LDA $3D
 $6C00: 29 FC AND #$FC
 $6C02: 09 02 ORA #$02
 $6C04: 85 3D STA $3D
 $6C06: A9 00 LDA #$00
 $6C08: 85 3C STA $3C
 $6C0A: 60 RTS
 
 ;发送一个字节
 $6C0B: 48 PHA
 $6C0C: A5 3D LDA $3D
 $6C0E: 29 FC AND #$FC
 $6C11: 09 00 ORA #$00
 $6C13: 85 3D STA $3D
 $6C15: 20 04 6B JSR $6B04;(初始化计数器)
 $6C17: A5 3B LDA $3B
 $6C19: 29 20 AND #$20
 $6C1B: D0 0A BNE $6C27;转发送
 $6C1D: 20 0F 6B JSR $6B0F;(计数器减)
 $6C20: D0 F5 BNE $6C17;继续等
 ;超时,发送字节时出错
 $6C22: A9 0A LDA #$0A
 $6C24: 4C 88 6D JMP $6D88
 $6C27: 68 PLA
 $6C28: 85 3A STA $3A
 $6C2A: 60 RTS
 
 ;接收一个字节
 $6C2B: A5 3D LDA $3D
 $6C2D: 29 FC AND #$FC
 $6C2F: 09 00 ORA #$00
 $6C31: 85 3D STA $3D
 $6C33: A5 3B LDA $3B
 $6C35: 29 01 AND #$01
 $6C37: F0 FA A5 BEQ $6C33
 $6C39: A5 3A LDA $3A
 $6C3B: 60 RTS
 
 ;???
 $6C3C: A9 00 LDA #$00
 $6C3E: 85 3E STA $3E
 $6C40: A5 3F LDA $3F
 $6C42: 29 3F AND #$3F
 $6C44: 60 RTS
 
 ;接收一个字节并?
 $6C45: A5 3D LDA $3D
 $6C47: 29 FC AND #$FC
 $6C49: 09 00 ORA #$00
 $6C4B: 85 3D STA $3D
 $6C4D: A5 3B LDA $3B
 $6C4F: 29 01 AND #$01
 $6C51: D0 0E BNE $6C61
 $6C53: 20 3C 6C JSR $6C3C;(???)
 $6C56: 38 SEC;这几句不明白其用途,不过不影响对整个的理解
 $6C57: E5 45 SBC $45
 $6C59: B0 02 BCS $6C5D
 $6C5B: 69 3C ADC #$3C
 $6C5D: C9 02 CMP #$02
 $6C5F: 90 EC BCC $6C4D
 $6C61: A5 3A LDA $3A
 $6C63: 60 RTS
 
 ;死循环发送"WQX"并判断回应是否为$4C
 $6C64: A9 57 LDA #$57
 $6C66: 20 0B 6C JSR $6C0B;(发送一个字节)
 $6C69: A9 51 LDA #$51
 $6C6B: 20 0B 6C JSR $6C0B
 $6C6E: A9 58 LDA #$58
 $6C70: 20 0B 6C JSR $6C0B
 $6C73: 20 2B 6C JSR $6C2B;(接收一个字节)
 $6C76: C9 4C CMP #$4C
 $6C78: D0 EA BNE $6C64
 $6C7A: 60 RTS
 
 ;判断上传时连接状态
 $6C7B: A5 3D LDA $3D
 $6C7D: 29 FC AND #$FC
 $6C7F: 09 00 ORA #$00
 $6C81: 85 3D STA $3D
 $6C83: A5 3B LDA $3B
 $6C85: 29 9E AND #$9E
 $6C87: D0 09 BNE $6C92;转状态不符
 $6C89: A5 3B LDA $3B
 $6C8B: 29 60 AND #$60
 $6C8D: C9 60 CMP #$60
 $6C8F: D0 EA BNE $6C7B;继续等
 $6C91: 60 RTS
 ;状态不符,转上传时连接状态出错
 $6C92: A9 01 LDA #$01
 $6C94: 4C 88 6D JMP $6D88
 
 ;上传缓冲区数据
 $6C97: A9 08 LDA #$08
 $6C99: 20 0B 6C JSR $6C0B;(发送一个字节)
 $6C9C: 20 7B 6C JSR $6C7B;(判断上传时连接状态)
 $6C9F: 20 27 6B JSR $6B27;(???)
 $6CA2: 20 45 6C JSR $6C45;(接收一个字节并?)
 $6CA5: C9 06 CMP #$06;这是上传时的握手信号,WQX发送$08,FTPLINK应返回$06
 $6CA7: F0 05 BEQ $6CAE
 $6CA9: A9 02 LDA #$02;上传时握手信号错
 $6CAB: 4C 88 6D JMP $6D88
 $6CAE: AD 0F 09 LDA $090F;告诉FTPLINK待传文件大小
 $6CB1: 85 80 STA $80
 $6CB3: 20 0B 6C JSR $6C0B
 $6CB6: AD 10 09 LDA $0910
 $6CB9: 85 81 STA $81
 $6CBB: 20 0B 6C JSR $6C0B
 $6CBE: A5 80 LDA $80
 $6CC0: 05 81 ORA $81
 $6CC2: F0 4E BEQ $6D14;转文件大小为零
 $6CC4: A9 00 LDA #$00;下面的代码用于发送并逐个与$84异或,($80)大小,($82)地址,2KB为单位
 $6CC6: 85 82 STA $82
 $6CC8: A9 20 LDA #$20
 $6CCA: 85 83 STA $83
 $6CCC: A9 00 LDA #$00
 $6CCE: 85 84 STA $84
 $6CD0: A2 08 LDX #$08
 $6CD2: A0 00 LDY #$00
 $6CD4: B1 82 LDA ($82),Y
 $6CD6: 48 PHA
 $6CD7: 20 0B 6C JSR $6C0B;(发送一个字节)
 $6CDA: 68 PLA
 $6CDB: 45 84 EOR $84
 $6CDD: 85 84 STA $84
 $6CDF: CA DEX
 $6CE0: D0 05 BNE $6CE7
 $6CE2: 20 7B 6C JSR $6C7B;(判断上传时连接状态)
 $6CE5: A2 08 LDX #$08
 $6CE7: E6 82 INC $82
 $6CE9: D0 02 BNE $6CED
 $6CEB: E6 83 INC $83
 $6CED: A5 80 LDA $80
 $6CEF: D0 02 BNE $6CF3
 $6CF1: C6 81 DEC $81
 $6CF3: C6 80 DEC $80
 $6CF5: A5 80 LDA $80
 $6CF7: 05 81 ORA $81
 $6CF9: D0 D7 BNE $6CD2
 $6CFB: A5 84 LDA $84;将最后的异或值传给FTPLINK
 $6CFD: 20 0B 6C JSR $6C0B
 $6D00: 20 7B 6C JSR $6C7B;(判断上传时连接状态)
 $6D03: 20 27 6B JSR $6B27;(???)
 $6D06: 20 45 6C JSR $6C45;(接收一个字节并?)
 $6D09: C9 06 CMP #$06;异或值正确吗
 $6D0B: F0 05 BEQ $6D12;转正常结束
 $6D0D: A9 03 LDA #$03;上传时结束信号错
 $6D0F: 4C 88 6D JMP $6D88
 $6D12: 60 RTS
 
 ;获取操作指令及接收数据到缓冲
 $6D13: A9 05 LDA #$05;每次传输以此信号开始
 $6D15: 20 0B 6C JSR $6C0B;(发送一个字节)
 $6D18: 20 7B 6C JSR $6C7B;(判断上传时连接状态)
 $6D1B: 20 27 6B JSR $6B27
 $6D1E: 20 45 6C JSR $6C45;从FTPLINK获取要进行的操作,供子程序6E18用
 $6D21: 85 40 STA $40
 $6D23: 20 45 6C JSR $6C45;(接收一个字节并?)获得本次传输的大小
 $6D26: 8D 0F 09 STA $090F
 $6D29: 85 80 STA $80
 $6D2B: 20 45 6C JSR $6C45
 $6D2E: 8D 10 09 STA $0910
 $6D31: 85 81 STA $81
 $6D33: 05 80 ORA $80
 $6D35: F0 43 BEQ $6D7A;大小为零,结束
 $6D37: A9 00 LDA #$00
 $6D39: 85 82 STA $82
 $6D3B: A9 20 LDA #$20
 $6D3D: 85 83 STA $83
 $6D3F: A9 00 LDA #$00
 $6D41: 85 84 STA $84
 $6D43: 20 45 6C JSR $6C45
 $6D46: A0 00 LDY #$00
 $6D48: 91 82 STA ($82),Y
 $6D4A: 45 84 EOR $84
 $6D4C: 85 84 STA $84
 $6D4E: E6 82 INC $82
 $6D50: D0 02 BNE $6D54
 $6D52: E6 83 INC $83
 $6D54: A5 80 LDA $80
 $6D56: D0 02 BNE $6D5A
 $6D58: C6 81 DEC $81
 $6D5A: C6 80 DEC $80
 $6D5C: A5 80 LDA $80
 $6D5E: 05 81 ORA $81
 $6D60: D0 E1 BNE $6D43
 $6D62: 20 45 6C JSR $6C45
 $6D65: 45 84 EOR $84
 $6D67: F0 03 BEQ $6D6C;如果条件满足,说明WQX的异或值与FTPLINK的相同,否则需重新传输
 $6D69: A9 58 LDA #$58
 $6D6B: 2C A9 4F BIT $4FA9;技巧:如果上面BEQ的条件满足则LDA #$4F(成功:O),否则LDA #$58(失败:X)
 $6D6E: 85 43 STA $43
 $6D70: 20 0B 6C JSR $6C0B;(发送一个字节)将结果告诉FTPLINK
 $6D73: 20 7B 6C JSR $6C7B
 $6D76: A5 43 LDA $43
 $6D78: C9 4F CMP #$4F
 $6D7A: 60 RTS
 
 ;结束通讯,发送"E"
 $6D7B: A9 45 LDA #$45
 $6D7D: 20 0B 6C JSR $6C0B;(发送一个字节)
 $6D80: 58 CLI
 $6D81: 20 F0 6B JSR $6BF0
 $6D84: A6 41 LDX $41
 $6D86: 9A TXS
 $6D87: 60 RTS
 
 ;显示各种错误信息
 错误代码:
 1.上传时连接状态错
 2.上传时握手信号错
 3.上传时结束信号错
 4.无法进入目录
 5.无法创建文件
 6.无法打开文件
 7.写文件出错
 8.读文件出错
 9.下载时校验错(这个没有用到,只是简单的异或校检,错了就重新传)
 A.发送字节时出错
 $6D88: 58 CLI
 $6D89: 48 PHA
 $6D8A: 00 2A C7 INT $C72A
 $6D8D: 68 PLA
 $6D8E: 0A ASL
 $6D8F: AA TAX
 $6D90: BD 60 6F LDA $6F60,X
 $6D93: 85 80 STA $80
 $6D95: BD 61 6F LDA $6F61,X
 $6D98: 85 81 STA $81
 $6D9A: A0 00 LDY #$00
 $6D9C: B1 80 LDA ($80),Y
 $6D9E: 99 E8 02 STA $02E8,Y
 $6DA1: F0 03 BEQ $6DA6
 $6DA3: C8 INY
 $6DA4: D0 F6 BNE $6D9E
 $6DA6: A9 FF LDA #$FF
 $6DA8: 8D AF 03 STA $03AF
 $6DAB: A9 FF LDA #$FF
 $6DAD: 8D B0 03 STA $03B0
 $6DB0: 00 19 C7 INT $C719
 $6DB3: 00 0A C0 INT $C00A
 $6DB6: 4C 81 6D JMP $6D81
 
 ;显示"-/"
 $6DB9: E6 42 INC $42
 $6DBB: A9 F8 LDA #$F8
 $6DBD: 85 80 STA $80
 $6DCF: A9 6D LDA #$6D
 $6DC1: 85 81 STA $81
 $6DC3: A5 42 LDA $42
 $6DC5: 29 03 AND #$03
 $6DC7: 0A ASL
 $6DC8: 0A ASL
 $6DC9: 0A ASL
 $6DCA: 18 CLC
 $6DCB: 65 80 ADC $80
 $6DCD: 85 80 STA $80
 $6DCF: 90 02 BCC $6DD3
 $6DD1: E6 81 INC $81
 $6DD3: A9 9E LDA #$9E
 $6DD5: 85 82 STA $82
 $6DD7: A9 1C LDA #$1C
 $6DD9: 85 83 STA $83
 $6DDB: A2 08 LDX #$08
 $6DDD: A0 00 LDY #$00
 $6DDF: B1 80 LDA ($80),Y
 $6DE1: 91 82 STA ($82),Y
 $6DE3: E6 80 INC $80
 $6DE5: D0 02 BNE $6DE9
 $6DE7: E6 81 INC $81
 $6DE9: 18 CLC
 $6DEA: A5 82 LDA $82
 $6DEC: 69 14 ADC #$14
 $6DEE: 85 82 STA $82
 $6DF0: 90 02 BCC $6DF4
 $6DF2: E6 83 INC $83
 $6DF4: CA DEX
 $6DF5: D0 E8 BNE $6DDF
 $6DF7: 60 RTS
 
 ;显示"-/"用
 $6DF8: 00 00 00 FF
 $6DFC: FF 00 00 00
 $6E00: C0 60 30 18
 $6E04: 0C 06 03 01
 $6E08: 18 18 18 18
 $6E0C: 18 18 18 18
 $6E10: 01 03 06 0C
 $6E14: 18 30 60 C0
 
 ;CASE(由$40的内容控制)
 $6E18: A9 00 LDA #$00
 $6E1A: 8D F6 03 STA $03F6
 $6E1D: 8D 01 04 STA $0401
 $6E20: A5 40 LDA $40
 $6E22: 0A ASL
 $6E23: AA TAX
 $6E24: BD 31 6E LDA $6E31,X
 $6E27: 85 80 STA $80
 $6E29: BD 32 6E LDA $6E32,X
 $6E2C:85 81 STA $81
 $6E2E: 6C 80 00 JMP ($0080)
 
 ;TABLE,子程序6E18用
 $6E31: 5C 6E 43 6E
 $6E35: 5F 6E 82 6E
 $6E39: E6 6E F9 6E
 $6E3D: 7B 6D A9 6E
 $6E41: C4 6E
 
 
 ;可能是显示从FTPLINK接收的"开始通讯"
 $6E43: A2 64 LDX #$64
 $6E45: BD FF 1F LDA $1FFF,X
 $6E48: 9D BF 02 STA $02BF,X
 $6E4B: CA DEX
 $6E4C: D0 F7 BNE $6E45
 $6E4E: A9 FF LDA #$FF
 $6E50: 8D AF 03 STA $03AF
 $6E53: A9 FF LDA #$FF
 $6E55: 8D B0 03 STA $03B0
 $6E58: 00 19 C7 INT $C719
 $6E5B: 60 RTS
 
 ;执行从FTPLINK下载的程序
 $6E5C: 4C 00 20 JMP $2000
 
 ;下载时进入或创建目录用
 $6E5F: A2 39 LDX #$39
 $6E61: BD FF 1F LDA $1FFF,X
 $6E64: 9D D5 08 STA $08D5,X
 $6E67: CA DEX
 $6E68: D0 F7 BNE $6E61
 $6E6A: 00 0D 05 INT $050D
 $6E6D: B0 01 BCS $6E70
 $6E6F: 60 RTS
 $6E70: AD 15 09 LDA $0915
 $6E73: C9 02 CMP #$02
 $6E75: F0 05 BEQ $6E7C
 $6E77: A9 04 LDA #$04;无法进入目录
 $6E79: 4C 88 6D JMP $6D88
 $6E7C: 00 0B 05 INT $050B
 $6E7F: 90 DE BCC $6E5F
 $6E81: 60 RTS
 
 ;下载时创建文件用,缓冲的前两个字节为文件属性
 $6E82: A2 39 LDX #$39
 $6E84: BD 01 20 LDA $2001,X
 $6E87: 9D D5 08 STA $08D5,X
 $6E8A: CA DEX
 $6E8B: D0 F7 BNE $6E84
 $6E8D: AD 00 20 LDA $2000
 $6E90: 8D 13 09 STA $0913
 $6E93: AD 01 20 LDA $2001
 $6E96: 8D 14 09 STA $0914
 $6E99: A9 70 LDA #$70
 $6E9B: 8D 12 09 STA $0912
 $6E9E: 00 14 05 INT $0514
 $6EA1: 90 05 BCC $6EA8
 $6EA3: A9 05 LDA #$05;无法创建文件
 $6EA5: 4C 88 6D JMP $6D88
 $6EA8: 60 RTS
 
 ;上传时打开文件
 $6EA9: A2 39 LDX #$39
 $6EAB: BD 01 20 LDA $2001,X
 $6EAE: 9D D5 08 STA $08D5,X
 $6EB1: CA DEX
 $6EB2: D0 F7 BNE $6EAB
 $6EB4: A9 80 LDA #$80
 $6EB6: 8D 12 09 STA $0912
 $6EB9: 00 14 05 INT $0514
 $6EBC: 90 05 BCC $6EC3
 $6EBE: A9 06 LDA #$06;无法打开文件
 $6EC0: 4C 88 6D JMP $6D88
 $6EC3: 60 RTS
 
 ;读文件并上传,前两个字节为大小
 $6EC4: A9 00 LDA #$00
 $6EC6: 85 DD STA $DD
 $6EC8: A9 20 LDA #$20
 $6ECA: 85 DE STA $DE
 $6ECC: AD 00 20 LDA $2000
 $6ECF: 8D 0F 09 STA $090F
 $6ED2: AD 01 20 LDA $2001
 $6ED5: 8D 10 09 STA $0910
 $6ED8: 00 15 05 INT $0515
 $6EDB: 90 05 BCC $6EE2
 $6EDD: A9 08 LDA #$08;读文件出错
 $6EDF: 4C 88 6D JMP $6D88
 $6EE2: 20 97 6C JSR $6C97;(上传缓冲区的数据)
 $6EE5: 60 RTS
 
 ;下载时写文件用
 $6EE6: A9 00 LDA #$00
 $6EE8: 85 DD STA $DD
 $6EEA: A9 20 LDA #$20
 $6EEC: 85 DE STA $DE
 $6EEE: 00 17 05 INT $0517
 $6EF1: 90 05 BCC $6EF8
 $6EF3: A9 07 LDA #$07;写文件出错
 $6EF5: 4C 88 6D JMP $6D88
 $6EF8: 60 RTS
 
 ;关闭文件
 $6EF9: 00 16 05 INT $0516
 $6EFC: 60 RTS
 
 ;程序入口
 $6EFD: BA TSX
 $6EFE: 86 41 STX $41
 $6F00: 00 22 05 INT $0522
 $6F03: 00 2A C7 INT $C72A
 $6F06: A2 0A LDX #$0A
 $6F08: BD 55 6F LDA $6F55,X
 $6F0B: 9D EC 02 STA $02EC,X
 $6F0E: CA DEX
 $6F0F: D0 F7 BNE $6F08
 $6F11: A9 FF LDA #$FF
 $6F13: 8D AF 03 STA $03AF
 $6F16: A9 FF LDA #$FF
 $6F18: 8D B0 03 STA $03B0
 $6F1B: 00 19 C7 INT $C719
 $6F1E: 20 66 6B JSR $6B66;(打开串口通讯)
 $6F21: 20 64 6C JSR $6C64;寻找通讯设备
 $6F24: 78 SEI
 $6F25: 20 13 6D JSR $6D13;(获取操作指令及接收数据到缓冲)成功则零标志被设置
 (代号存于$40
 0.执行从FTPLINK下载的代码
 1.显示下载的文字
 2.下载时进入或创建目录
 3.下载时创建文件
 4.下载时写文件
 5.关闭文件
 6.结束通讯
 7.上传时打开文件
 8.上传时读文件并上传
 $6F28: D0 0A BNE $6F34;若上一步操作失败则跳转
 $6F2A: 58 CLI
 $6F2B: 20 18 6E JSR $6E18;(CASE)
 $6F2E: 20 B9 6D JSR $6DB9;(显示"-/")
 $6F31: 4C 24 6F JMP $6F24
 $6F34: A9 00 LDA #$00;因子程序$6D13失败而暂停,等待重新开始的信号$CF,$CB
 $6F36: 85 44 STA $44
 $6F38: 20 27 6B JSR $6B27
 $6F3B: 20 45 6C JSR $6C45
 $6F3E: C9 CF CMP #$CF
 $6F40: D0 07 BNE $6F49
 $6F42: A9 01 LDA #$01
 $6F44: 85 44 STA $44
 $6F46: 4C 38 6F JMP $6F38
 $6F49: C9 CB CMP #$CB
 $6F4B: D0 E7 BNE $6F34
 $6F4D: A5 44 LDA $44
 $6F4F: C9 01 CMP #$01
 $6F51: D0 E1 BNE $6F34
 $6F53: 4C 24 6F JMP $6F24
 
 | 
 |