$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