1
0
mirror of https://github.com/cc65/cc65.git synced 2024-12-22 12:30:41 +00:00

added some comments; new ft_flag bit #4: fd was opened by program

git-svn-id: svn://svn.cc65.org/cc65/trunk@1891 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cpg 2003-01-05 23:33:38 +00:00
parent b45445d047
commit d25ea2001b

View File

@ -42,7 +42,7 @@
cmp fd_table+ft_iocb,x ; entry in use? cmp fd_table+ft_iocb,x ; entry in use?
beq inval ; no, return error beq inval ; no, return error
lda fd_table+ft_usa,x ; get usage counter lda fd_table+ft_usa,x ; get usage counter
beq ok_notlast ; 0? beq ok_notlast ; 0? (shouldn't happen)
sec sec
sbc #1 ; decr usage counter sbc #1 ; decr usage counter
sta fd_table+ft_usa,x sta fd_table+ft_usa,x
@ -53,10 +53,11 @@ retiocb:php
tax tax
plp plp
bne cont bne cont
php
lda #$ff lda #$ff
sta fd_table+ft_iocb,y ; clear table entry sta fd_table+ft_iocb,y ; clear table entry
plp lda fd_table+ft_flag,y
and #16 ; opened by app?
eor #16 ; return set Z if yes
cont: rts cont: rts
ok_notlast: ok_notlast:
@ -251,7 +252,7 @@ do_open:lda tmp1
ldy #$ff ldy #$ff
srchfree: srchfree:
tya tya
cmp fd_table,x cmp fd_table,x ; check ft_iocb field for $ff
beq freefnd ; found a free slot beq freefnd ; found a free slot
txa txa
clc clc
@ -289,7 +290,8 @@ l2: sta fd_table+ft_dev,x ; set device
lda loc_Y lda loc_Y
sta fd_table+ft_iocb,x ; set iocb index sta fd_table+ft_iocb,x ; set iocb index
lda loc_devnum lda loc_devnum
and #7 ; only 3 bits and #7 ; device number is 3 bits
ora #16 ; indicated a fd actively opened by the app
sta fd_table+ft_flag,x sta fd_table+ft_flag,x
lda tmp2 lda tmp2
jsr fdt_to_fdi ; get new index jsr fdt_to_fdi ; get new index