$C8F0/51440: Perform [C] - Copy command
C8F0: A9 E0 LDA #$E0
C8F2: 8D 4F 02 STA $024F
C8F5: 20 D1 F0 JSR $F0D1
C8F8: 20 19 F1 JSR $F119 ; get buffer number of BAM
C8FB: A9 FF LDA #$FF
C8FD: 95 A7 STA $A7,X
C8FF: A9 0F LDA #$0F
C901: 8D 56 02 STA $0256
C904: 20 E5 C1 JSR $C1E5 ; check input line
C907: D0 03 BNE $C90C
C909: 4C C1 C8 JMP $C8C1 ; 31, 'syntax error'
Jump from $C907:
C90C: 20 F8 C1 JSR $C1F8 ; check input
C90F: 20 20 C3 JSR $C320 ; test drive number
C912: AD 8B 02 LDA $028B ; flag for syntax check
C915: 29 55 AND #$55
C917: D0 0F BNE $C928
C919: AE 7A 02 LDX $027A
C91C: BD 00 02 LDA $0200,X ; character of the command
C91F: C9 2A CMP #$2A ; '*'
C921: D0 05 BNE $C928
Jump from $C92D:
C923: A9 30 LDA #$30
C925: 4C C8 C1 JMP $C1C8 ; 30, 'syntax error'
Jump from $C917, $C921:
C928: AD 8B 02 LDA $028B ; syntax flag
C92B: 29 D9 AND #$D9
C92D: D0 F4 BNE $C923 ; 30, 'syntax error'
C92F: 4C 52 C9 JMP $C952
C932: A9 00 LDA #$00
C934: 8D 58 02 STA $0258
C937: 8D 8C 02 STA $028C ; number of drives
C93A: 8D 80 02 STA $0280 ; track number in directory
C93D: 8D 81 02 STA $0281
C940: A5 E3 LDA $E3
C942: 29 01 AND #$01
C944: 85 7F STA $7F ; drive number
C946: 09 01 ORA #$01
C948: 8D 91 02 STA $0291
C94B: AD 7B 02 LDA $027B
C94E: 8D 7A 02 STA $027A
C951: 60 RTS
Jump from $C92F:
C952: 20 4F C4 JSR $C44F ; search for file in directory
C955: AD 78 02 LDA $0278 ; number of filenames in command
C958: C9 03 CMP #$03 ; smaller than three?
C95A: 90 45 BCC $C9A1 ; yes
C95C: A5 E2 LDA $E2 ; first drive number
C95E: C5 E3 CMP $E3 ; second drive number
C960: D0 3F BNE $C9A1 ; not on same drive?
C962: A5 DD LDA $DD ; directory block of the 1st file
C964: C5 DE CMP $DE ; same directory block as second file?
C966: D0 39 BNE $C9A1 ; no
C968: A5 D8 LDA $D8 ; directory sector of first file
C96A: C5 D9 CMP $D9 ; same directory sector as second file?
C96C: D0 33 BNE $C9A1 ; no
C96E: 20 CC CA JSR $CACC ; is file present?
C971: A9 01 LDA #$01
C973: 8D 79 02 STA $0279
C976: 20 FA C9 JSR $C9FA
C979: 20 25 D1 JSR $D125 ; get data type
C97C: F0 04 BEQ $C982 ; rel-file? yes
C97E: C9 02 CMP #$02 ; prg-file?
C980: D0 05 BNE $C987 ; no
Jump from $C97C:
C982: A9 64 LDA #$64
C984: 20 C8 C1 JSR $C1C8 ; 64, 'file type mismatch'
Jump from $C980:
C987: A9 12 LDA #$12 ; 18
C989: 85 83 STA $83 ; secondary address
C98B: AD 3C 02 LDA $023C
C98E: 8D 3D 02 STA $023D
C991: A9 FF LDA #$FF
C993: 8D 3C 02 STA $023C
C996: 20 2A DA JSR $DA2A ; prepare append
C999: A2 02 LDX #$02
C99B: 20 B9 C9 JSR $C9B9 ; copy file
C99E: 4C 94 C1 JMP $C194 ; done
Previous Page / Next Page