floppy directory display starts working
This commit is contained in:
1 parent
f8c048fab3
commit
57bdda7eb5
5 files changed
+173
-131
No files matched your search
@@ -0,0 +1,117 @@
|
||||
|
||||
; Create BASIC line from directory entry
|
||||
|
||||
|
||||
; in: .X = offset from XX_DIRENT_BUF, .Y = characters to indent after line number
|
||||
; out: .X (low byte) = current position, .A = 0
|
||||
|
||||
|
||||
util_dir_basic:
|
||||
|
||||
lda #$01 ; link to the next line - dummy, will be regenerated by BASIC
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
|
||||
lda PAR_FSIZE_BLOCKS+0 ; store number of blocks
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
lda PAR_FSIZE_BLOCKS+1
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
|
||||
lda #' ' ; indent file name
|
||||
|
||||
@lp1:
|
||||
dey
|
||||
bmi @lp1_done
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
bra @lp1
|
||||
|
||||
@lp1_done:
|
||||
|
||||
lda #$22 ; opening quote
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
|
||||
ldy #$FF ; put file name
|
||||
|
||||
@lp2:
|
||||
|
||||
iny
|
||||
lda PAR_FNAME, y
|
||||
cmp #$A0
|
||||
beq @lp2_done
|
||||
cpy #$10
|
||||
beq @lp2_done
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
bra @lp2
|
||||
|
||||
@lp2_done:
|
||||
|
||||
lda #$22 ; closing quote
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
|
||||
ldy #$10 ; put spaces for indentation
|
||||
|
||||
@lp3:
|
||||
|
||||
dey
|
||||
lda PAR_FNAME, y
|
||||
cmp #$A0
|
||||
bne @lp3_done
|
||||
|
||||
lda #' '
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
bra @lp3
|
||||
|
||||
@lp3_done:
|
||||
|
||||
lda PAR_FTYPE ; put 'damaged' mark if needed
|
||||
bmi @closed
|
||||
lda #'*'
|
||||
+skip_2_bytes_trash_nvz
|
||||
|
||||
@closed:
|
||||
|
||||
lda #' '
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
|
||||
lda PAR_FTYPE ; put file type
|
||||
and #$3F
|
||||
dec
|
||||
asl
|
||||
asl
|
||||
tay
|
||||
|
||||
@lp4:
|
||||
|
||||
lda dir_types, y
|
||||
beq @lp4_done
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
iny
|
||||
bra @lp4
|
||||
|
||||
@lp4_done:
|
||||
|
||||
lda PAR_FTYPE ; read-only mark (if needed)
|
||||
and #$40
|
||||
beq @skipro
|
||||
lda #'<'
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
|
||||
@skipro:
|
||||
|
||||
lda #$00 ; put end of the line
|
||||
sta XX_DIRENT_BUF, x
|
||||
inx
|
||||
|
||||
rts
|
||||
Reference in new issue
Block a user