$D815/55317: -Check '#' Channel
Jump from $D7F5:
D815: E0 23 CPX #$23 ; "#"
D817: D0 12 BNE $D82B
D819: 4C 84 CB JMP $CB84 ; open direct access file
Jump from $D7CD:
D81C: A9 02 LDA #$02
D81E: 8D 96 02 STA $0296 ; file type program
D821: A9 00 LDA #$00
D823: 85 7F STA $7F ; drive 0
D825: 8D 8E 02 STA $028E
D828: 20 42 D0 JSR $D042 ; load BAM
Jump from $D817:
D82B: 20 E5 C1 JSR $C1E5 ; analyze line
D82E: D0 04 BNE $D834 ; colon found?
D830: A2 00 LDX #$00
D832: F0 0C BEQ $D840
Jump from $D82E:
D834: 8A TXA ; comma found?
D835: F0 05 BEQ $D83C ; no
D837: A9 30 LDA #$30
D839: 4C C8 C1 JMP $C1C8 ; 30, 'syntax error'
Jump from $D835:
D83C: 88 DEY
D83D: F0 01 BEQ $D840
D83F: 88 DEY
Jump from $D832, $D83D:
D840: 8C 7A 02 STY $027A ; pointer to drive number
D843: A9 8D LDA #$8D ; shift CR
D845: 20 68 C2 JSR $C268 ; analyze line to end
D848: E8 INX
D849: 8E 78 02 STX $0278 ; comma counter
D84C: 20 12 C3 JSR $C312 ; get drive number
D84F: 20 CA C3 JSR $C3CA ; check drive number
D852: 20 9D C4 JSR $C49D ; find file entry in directory
D855: A2 00 LDX #$00 ; default values
D857: 8E 58 02 STX $0258 ; record length
D85A: 8E 97 02 STX $0297
D85D: 8E 4A 02 STX $024A ; file type
D860: E8 INX
D861: EC 77 02 CPX $0277 ; comma before equal sign?
D864: B0 10 BCS $D876 ; no
D866: 20 09 DA JSR $DA09 ; get file type and control mode
D869: E8 INX
D86A: EC 77 02 CPX $0277 ; additional comma?
D86D: B0 07 BCS $D876 ; no
D86F: C0 04 CPY #$04
D871: F0 3E BEQ $D8B1
D873: 20 09 DA JSR $DA09 ; get file type and control method
Jump from $D864, $D86D, $D8BD, $D8C4:
D876: AE 4C 02 LDX $024C
D879: 86 83 STX $83 ; secondary address
D87B: E0 02 CPX #$02 ; greater than 2?
D87D: B0 12 BCS $D891 ; yes
D87F: 8E 97 02 STX $0297 ; 0 or 1 (LOAD or SAVE)
D882: A9 40 LDA #$40
D884: 8D F9 02 STA $02F9
D887: AD 4A 02 LDA $024A ; file type
D88A: D0 1B BNE $D8A7 ; not deleted
D88C: A9 02 LDA #$02 ; PRG
D88E: 8D 4A 02 STA $024A ; as file type
Jump from $D87D:
D891: AD 4A 02 LDA $024A
D894: D0 11 BNE $D8A7
D896: A5 E7 LDA $E7
D898: 29 07 AND #$07 ; get file type and command line
D89A: 8D 4A 02 STA $024A
D89D: AD 80 02 LDA $0280 ; track number
D8A0: D0 05 BNE $D8A7 ; not equal zero?
D8A2: A9 01 LDA #$01
D8A4: 8D 4A 02 STA $024A ; file type sequential
Jump from $D88A, $D894, $D8A0:
D8A7: AD 97 02 LDA $0297 ; control method
D8AA: C9 01 CMP #$01 ; 'W'
D8AC: F0 18 BEQ $D8C6 ; yes
D8AE: 4C 40 D9 JMP $D940
Jump from $D871:
D8B1: BC 7A 02 LDY $027A,X ; pointer behind second comma
D8B4: B9 00 02 LDA $0200,Y ; get value
D8B7: 8D 58 02 STA $0258 ; record length
D8BA: AD 80 02 LDA $0280 ; track number
D8BD: D0 B7 BNE $D876
D8BF: A9 01 LDA #$01 ; 'W'
D8C1: 8D 97 02 STA $0297 ; as second method
D8C4: D0 B0 BNE $D876
Jump from $D8AC:
D8C6: A5 E7 LDA $E7 ; file type
D8C8: 29 80 AND #$80 ; isolate wildcard flag
D8CA: AA TAX
D8CB: D0 14 BNE $D8E1 ; wildcard in name
D8CD: A9 20 LDA #$20
D8CF: 24 E7 BIT $E7 ; was file closed?
D8D1: F0 06 BEQ $D8D9 ; yes
D8D3: 20 B6 C8 JSR $C8B6 ; byte 0 in buffer and write block
D8D6: 4C E3 D9 JMP $D9E3
Jump from $D8D1:
D8D9: AD 80 02 LDA $0280 ; track number of the first block
D8DC: D0 03 BNE $D8E1 ; already existing
D8DE: 4C E3 D9 JMP $D9E3
Jump from $D8CB, $D8DC:
D8E1: AD 00 02 LDA $0200 ; first character from input buffer
D8E4: C9 40 CMP #$40 ; '@'?
D8E6: F0 0D BEQ $D8F5 ; yes
D8E8: 8A TXA
D8E9: D0 05 BNE $D8F0 ; wildcard set?
D8EB: A9 63 LDA #$63
D8ED: 4C C8 C1 JMP $C1C8 ; 63, 'file exists'
Jump from $D8E9:
D8F0: A9 33 LDA #$33
D8F2: 4C C8 C1 JMP $C1C8 ; 33, 'syntax error'
Previous Page / Next Page