hier mal ein Auszug von meinem AMIGA-LOOK-MODUL - Code.
Bei dem wird getestet, ob das 1. File der Disk die Ladeadresse $0801 (SYSNO) oder eine andere Ladeadresse hat (SYSYES).
Vielleicht hilft es ja als Grundgerüst ....
Dass beim 1. Aufruf der Filename ":*" und beim 2. , eigentlich relewanten Aufruf als filename "*" benutzt wird, umschifft das Problem, falls der 1. Filename ein DEL bzw. kein PRG ist (bei Dirart z.B.)
Das nur zur Erklärung, dürfte für Deine Zwecke aber nicht relevant sein ....
Code
;**************************************
; READFILE
;**************************************
READFILE:
LDA #$34
STA $FB
LDA #$03
STA $FC
LDA #6
LDX #<READNAMEA
LDY #>READNAMEA
JSR $FFBD
LDA #1
LDX #8
LDY #0
JSR $FFBA
JSR $FFC0
LDA #1
JSR $FFC3
LDA #5
LDX #<READNAMEB
LDY #>READNAMEB
JSR $FFBD
LDA #1
LDX #8
LDY #0
JSR $FFBA
JSR OPEN
LDX #1
JSR $FFC6
LDY #00
READJ1:
JSR $FFCF
STA ($FB),Y
INC $FB
LDA $FB
CMP #$00
BNE READJ1
JSR $FFCC
LDA #1
JSR $FFC3
LDA #0
STA $03FD
STA $03FE
STA $03FF
LDA $0334
CMP #$01
BNE SYSNO
LDA $0335
CMP #$08
BNE SYSNO
LDA #$00
STA $FB
LDY #$3A
READJ4:
LDA ($FB),Y
CMP #$9E
BEQ READJ2
CMP #0
BEQ READJ3
INY
CPY #0
BNE READJ4
BEQ READJ6
READJ3:
INY
CPY #0
BEQ READJ6
LDA ($FB),Y
CMP #0
BNE READJ5
INY
CPY #0
BEQ READJ6
LDA ($FB),Y
CMP #0
BEQ READJ6
BNE READJ7
READJ5:
INY
CPY #0
BEQ READJ6
READJ7:
INY
CPY #0
BEQ READJ6
BNE READJ4
READJ2:
JSR SYSNO
BCS READJ8
READJ6:
JSR SYSYES
READJ8:
CLC
RTS
SYSNO:
LDA #$37
STA SYSUPSET+1
LDA #$34
STA SYSUPSET+2
LDA #$31
STA SYSUPSET+3
LDA #$30
STA SYSUPSET+4
LDA #$20
STA SYSTEXT
STA SYSTEXT+3
SEC
RTS
SYSYES:
LDA #$32
STA SYSUPSET+1
STA SYSUPSET+4
LDA #$39
STA SYSUPSET+2
STA SYSUPSET+3
LDA #$2C
STA SYSTEXT
STA SYSTEXT+3
RTS
READNAMEA:
!tx ":*,P,R"
READNAMEB:
!tx "*,P,R"
Alles anzeigen