     $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