.weak IS_PET = false .endweak .if IS_PET cbmopen .macro filedes, device, secaddr, filenameptr, filenamelen lda #\filedes sta LA lda #\device sta FA lda #\secaddr sta SA lda \filenamelen sta FNLEN lda #<\filenameptr sta FNADR lda #>\filenameptr sta FNADR+1 jsr OPEN lda STATUS beq + sec bcs ++ + clc + .endmacro cbmstatus .macro lda STATUS .endmacro .else cbmopen .macro filedes, device, secaddr, filenameptr, filenamelen lda \filenamelen ldx #<\filenameptr ldy #>\filenameptr jsr SETNAM lda #\filedes ldx FA bne + ldx #\device + ldy #\secaddr jsr SETLFS jsr OPEN .endmacro cbmstatus .macro jsr READST .endmacro .endif .section code LoadCH8 .proc .cbmopen 2, 8, 2, ch8filename, ch8filenamelen bcs error ldx #2 jsr CHKIN lda #C8ENTRY sta EAL+1 ldy #0 - .cbmstatus bne eof jsr CHRIN sta (EAL), y inc EAL bne + inc EAL+1 + jmp - eof and #$40 beq readerror close lda #2 jsr CLOSE jsr CLRCHN rts error ; TODO lda #4 sta $d020 jmp close readerror ; TODO lda #1 sta $d020 jmp close .endproc .endsection code .section data ch8filenamelen .byte ? ch8filename .text "tetris.ch8" .fill 16 .endsection data