move common code around, more open stuff
This commit is contained in:
parent
656e83f002
commit
f2eef6ce01
2
Makefile
2
Makefile
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
SOURCES = main.aii volume.aii get_file_info.aii \
|
SOURCES = main.aii volume.aii get_file_info.aii \
|
||||||
open.aii \
|
open.aii \
|
||||||
id_disk.aii stubs.aii tables.aii device.aii
|
id_disk.aii stubs.aii tables.aii device.aii params.aii
|
||||||
|
|
||||||
OBJECTS=$(SOURCES:.aii=.o)
|
OBJECTS=$(SOURCES:.aii=.o)
|
||||||
|
|
||||||
|
|
|
@ -171,290 +171,7 @@ do_access proc
|
||||||
rts
|
rts
|
||||||
endp
|
endp
|
||||||
|
|
||||||
do_storage_type proc
|
|
||||||
with dp,fst_parms
|
|
||||||
|
|
||||||
lda disk_inode.mode
|
|
||||||
; check for directory. GS/OS doesn't have concepts for other types (yet).
|
|
||||||
|
|
||||||
phx ; save
|
|
||||||
and #S_IFMT ; $f000
|
|
||||||
xba
|
|
||||||
lsr a
|
|
||||||
lsr a
|
|
||||||
lsr a
|
|
||||||
tax
|
|
||||||
jsr (table,x)
|
|
||||||
|
|
||||||
table
|
|
||||||
dc.w unknown
|
|
||||||
dc.w fifo
|
|
||||||
dc.w chr
|
|
||||||
dc.w unknown
|
|
||||||
dc.w dir
|
|
||||||
dc.w unknown
|
|
||||||
dc.w blk
|
|
||||||
dc.w unknown
|
|
||||||
dc.w reg
|
|
||||||
dc.w unknown
|
|
||||||
dc.w lnk
|
|
||||||
dc.w unknown
|
|
||||||
dc.w sock
|
|
||||||
dc.w unknown
|
|
||||||
dc.w wht
|
|
||||||
dc.w unknown
|
|
||||||
|
|
||||||
unknown
|
|
||||||
lda #0
|
|
||||||
bra store
|
|
||||||
fifo:
|
|
||||||
chr:
|
|
||||||
blk:
|
|
||||||
lnk:
|
|
||||||
sock:
|
|
||||||
wht:
|
|
||||||
lda disk_inode.mode
|
|
||||||
and #S_IFMT
|
|
||||||
bra store
|
|
||||||
|
|
||||||
dir
|
|
||||||
lda #$0d
|
|
||||||
bra store
|
|
||||||
|
|
||||||
reg
|
|
||||||
lda #1 ; could base it on size but whatever!
|
|
||||||
; drop through
|
|
||||||
|
|
||||||
store
|
|
||||||
plx ; restore
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
rts
|
|
||||||
|
|
||||||
endp
|
|
||||||
|
|
||||||
do_file_type proc
|
|
||||||
|
|
||||||
with dp,fst_parms
|
|
||||||
|
|
||||||
lda disk_inode.mode
|
|
||||||
and #S_IFMT
|
|
||||||
cmp #S_IFDIR
|
|
||||||
beq dir
|
|
||||||
cmp #S_IFREG
|
|
||||||
beq reg
|
|
||||||
|
|
||||||
unknown
|
|
||||||
lda #$00
|
|
||||||
bra store
|
|
||||||
|
|
||||||
dir
|
|
||||||
lda #$0f
|
|
||||||
bra store
|
|
||||||
|
|
||||||
reg
|
|
||||||
lda #$06 ; binary
|
|
||||||
bra store
|
|
||||||
|
|
||||||
store
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
endp
|
|
||||||
|
|
||||||
do_aux_type proc
|
|
||||||
with dp,fst_parms
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
rts
|
|
||||||
|
|
||||||
endp
|
|
||||||
|
|
||||||
do_eof proc
|
|
||||||
with dp,fst_parms
|
|
||||||
|
|
||||||
lda disk_inode.size
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
lda disk_inode.size+2
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
rts
|
|
||||||
|
|
||||||
endp
|
|
||||||
|
|
||||||
do_blocks proc
|
|
||||||
with dp,fst_parms
|
|
||||||
with v1
|
|
||||||
|
|
||||||
; not sure if minix supports sparse blocks. could just estimate
|
|
||||||
; based on file size.
|
|
||||||
|
|
||||||
phx ; save
|
|
||||||
phy ; save
|
|
||||||
|
|
||||||
; 7 direct blocks, 1 indirect block, 1 double indirect block.
|
|
||||||
ldx #0
|
|
||||||
ldy #0 ; count
|
|
||||||
@loop
|
|
||||||
lda disk_inode.zone,x
|
|
||||||
beq @next
|
|
||||||
iny
|
|
||||||
@next
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
cpx #NR_DZONES*2
|
|
||||||
bcc @loop
|
|
||||||
|
|
||||||
; y is number of direct blocks.
|
|
||||||
|
|
||||||
; check for indirect block...
|
|
||||||
lda disk_inode.zone + NR_DZONES * 2
|
|
||||||
beq dib
|
|
||||||
|
|
||||||
;
|
|
||||||
; count up indirect blocks...
|
|
||||||
;
|
|
||||||
iny
|
|
||||||
|
|
||||||
dib
|
|
||||||
; check for double indirect block
|
|
||||||
lda disk_inode.zone + (NR_DZONES + 1) * 2
|
|
||||||
beq store
|
|
||||||
;
|
|
||||||
; count up double indirect blocks....
|
|
||||||
;
|
|
||||||
|
|
||||||
iny
|
|
||||||
|
|
||||||
store
|
|
||||||
tya
|
|
||||||
ply
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
lda #0
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
|
|
||||||
plx ; restore
|
|
||||||
rts
|
|
||||||
endp
|
|
||||||
|
|
||||||
|
|
||||||
do_r_eof proc
|
|
||||||
with dp,fst_parms
|
|
||||||
|
|
||||||
entry do_r_blocks
|
|
||||||
do_r_blocks
|
|
||||||
lda #0
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
rts
|
|
||||||
endp
|
|
||||||
|
|
||||||
|
|
||||||
do_option_list proc
|
|
||||||
with dp,fst_parms
|
|
||||||
|
|
||||||
; if the option list is present, store my fst id.
|
|
||||||
|
|
||||||
lda [param_blk_ptr],y
|
|
||||||
sta ptr
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
lda [param_blk_ptr],y
|
|
||||||
sta ptr+2
|
|
||||||
|
|
||||||
ora ptr
|
|
||||||
beq exit
|
|
||||||
|
|
||||||
; check if the option list ptr is large enough.
|
|
||||||
lda [ptr]
|
|
||||||
cmp #4
|
|
||||||
bcc pre
|
|
||||||
|
|
||||||
; store the size of the option list.
|
|
||||||
ldy #2
|
|
||||||
lda #2
|
|
||||||
sta [ptr],y
|
|
||||||
|
|
||||||
|
|
||||||
lda [ptr]
|
|
||||||
cmp #6
|
|
||||||
bcc bts
|
|
||||||
bra ok
|
|
||||||
|
|
||||||
; less than 4 is a parm range error.
|
|
||||||
; less than the necessary option list size is a buf_too_small error. (but store the space required)
|
|
||||||
|
|
||||||
|
|
||||||
pre
|
|
||||||
lda #parm_range_err
|
|
||||||
sta tool_error
|
|
||||||
bra exit
|
|
||||||
|
|
||||||
bts
|
|
||||||
|
|
||||||
lda #buff_too_small
|
|
||||||
sta tool_error
|
|
||||||
bra exit
|
|
||||||
|
|
||||||
ok
|
|
||||||
ldy #4
|
|
||||||
lda #fst_id
|
|
||||||
sta [ptr],y
|
|
||||||
|
|
||||||
|
|
||||||
exit
|
|
||||||
rts
|
|
||||||
endp
|
|
||||||
|
|
||||||
|
|
||||||
do_create_date_time_0 proc
|
|
||||||
with fst_parms
|
|
||||||
|
|
||||||
; todo ...
|
|
||||||
|
|
||||||
entry do_mod_date_time_0
|
|
||||||
do_mod_date_time_0
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
|
|
||||||
rts
|
|
||||||
endp
|
|
||||||
|
|
||||||
|
|
||||||
do_create_date_time proc
|
|
||||||
with fst_parms
|
|
||||||
|
|
||||||
; todo ...
|
|
||||||
|
|
||||||
entry do_mod_date_time
|
|
||||||
do_mod_date_time
|
|
||||||
|
|
||||||
lda #0
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
iny
|
|
||||||
iny
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
|
|
||||||
rts
|
|
||||||
endp
|
|
||||||
|
|
||||||
|
|
||||||
path_to_inode proc
|
path_to_inode proc
|
||||||
|
|
48
open.aii
48
open.aii
|
@ -11,9 +11,29 @@
|
||||||
include 'records.equ'
|
include 'records.equ'
|
||||||
|
|
||||||
|
|
||||||
|
import do_ignore
|
||||||
|
import do_refnum
|
||||||
|
import do_file_type
|
||||||
|
import do_aux_type
|
||||||
|
import do_storage_type
|
||||||
|
import do_option_list
|
||||||
|
import do_eof
|
||||||
|
import do_blocks
|
||||||
|
import do_r_eof
|
||||||
|
import do_r_blocks
|
||||||
|
import do_create_date_time
|
||||||
|
import do_mod_date_time
|
||||||
|
|
||||||
|
entry do_fcr_access
|
||||||
|
entry check_resource
|
||||||
|
entry check_access
|
||||||
|
entry build_fcr
|
||||||
|
|
||||||
open procname export
|
open procname export
|
||||||
|
|
||||||
with fst_parms
|
with fst_parms
|
||||||
|
with dev_parms
|
||||||
|
with dp
|
||||||
|
|
||||||
; find the inode...
|
; find the inode...
|
||||||
|
|
||||||
|
@ -66,7 +86,7 @@ open_dcb_1
|
||||||
dc.w $04, do_ignore ; path
|
dc.w $04, do_ignore ; path
|
||||||
dc.w $08, do_ignore ; request access
|
dc.w $08, do_ignore ; request access
|
||||||
dc.w $0a, do_ignore ; resource resourceNumber
|
dc.w $0a, do_ignore ; resource resourceNumber
|
||||||
dc.w $0c, do_access ; actual access
|
dc.w $0c, do_fcr_access ; actual access
|
||||||
dc.w $0e, do_file_type
|
dc.w $0e, do_file_type
|
||||||
dc.w $10, do_aux_type
|
dc.w $10, do_aux_type
|
||||||
dc.w $14, do_storage_type
|
dc.w $14, do_storage_type
|
||||||
|
@ -83,7 +103,8 @@ open_dcb_1
|
||||||
|
|
||||||
build_fcr proc
|
build_fcr proc
|
||||||
|
|
||||||
|
with dp
|
||||||
|
|
||||||
; build filename string...
|
; build filename string...
|
||||||
lda #fcr.sizeof
|
lda #fcr.sizeof
|
||||||
ldx #0
|
ldx #0
|
||||||
|
@ -100,7 +121,7 @@ build_fcr proc
|
||||||
|
|
||||||
ldy #vcr.open_count
|
ldy #vcr.open_count
|
||||||
lda [my_vcr],y
|
lda [my_vcr],y
|
||||||
inc
|
inc a
|
||||||
sta [my_vcr],y
|
sta [my_vcr],y
|
||||||
|
|
||||||
lda #read_access
|
lda #read_access
|
||||||
|
@ -133,8 +154,8 @@ build_fcr proc
|
||||||
|
|
||||||
; copy the disk inode
|
; copy the disk inode
|
||||||
|
|
||||||
ldx #v1_inode.sizeof-2
|
ldx #disk_inode.sizeof-2
|
||||||
ldy #vcr.disk_inode + v1_inode.sizeof - 2
|
ldy #fcr.disk_inode + fcr.disk_inode.sizeof - 2 ; is sizeof updated?
|
||||||
|
|
||||||
@loop
|
@loop
|
||||||
lda disk_inode,x
|
lda disk_inode,x
|
||||||
|
@ -154,7 +175,7 @@ check_resource procname
|
||||||
; verify the resourceNumber is ok
|
; verify the resourceNumber is ok
|
||||||
; sets a/carry on error.
|
; sets a/carry on error.
|
||||||
|
|
||||||
with fstparms, dp
|
with fst_parms, dp
|
||||||
|
|
||||||
lda <call_class
|
lda <call_class
|
||||||
beq done
|
beq done
|
||||||
|
@ -182,16 +203,27 @@ done
|
||||||
rts
|
rts
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
do_fcr_access procname
|
||||||
|
with fst_parms, dp
|
||||||
|
|
||||||
|
phy
|
||||||
|
ldy #fcr.access
|
||||||
|
lda [my_fcr],y
|
||||||
|
ply
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
rts
|
||||||
|
endp
|
||||||
|
|
||||||
check_access procname
|
check_access procname
|
||||||
|
|
||||||
with fst_parms
|
with fst_parms, dp
|
||||||
|
|
||||||
; todo ....
|
; todo ....
|
||||||
; for now, read-only.
|
; for now, read-only.
|
||||||
|
|
||||||
; class 0 ok
|
; class 0 ok
|
||||||
; class 1 w/ pcount < 4 ok
|
; class 1 w/ pcount < 4 ok
|
||||||
lda class
|
lda call_class
|
||||||
beq done
|
beq done
|
||||||
lda [param_blk_ptr]
|
lda [param_blk_ptr]
|
||||||
cmp #4
|
cmp #4
|
||||||
|
|
|
@ -0,0 +1,341 @@
|
||||||
|
include 'gsos.equ'
|
||||||
|
include 'minix.equ'
|
||||||
|
include 'fst.equ'
|
||||||
|
|
||||||
|
include 'fst.macros'
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
; routines used to store data in parameter blocks
|
||||||
|
;
|
||||||
|
; input:
|
||||||
|
; x - must be preserved.
|
||||||
|
; y - offset in param_blk_ptr to store the value.
|
||||||
|
;
|
||||||
|
; outputs:
|
||||||
|
; x - must be preserved.
|
||||||
|
; set tool_error if error.
|
||||||
|
;
|
||||||
|
|
||||||
|
do_ignore proc export
|
||||||
|
rts
|
||||||
|
endp
|
||||||
|
|
||||||
|
do_file_sys_id proc export
|
||||||
|
|
||||||
|
with dp
|
||||||
|
with fst_parms
|
||||||
|
|
||||||
|
lda #fst_id
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
rts
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
; assumes disk_inode is valid.
|
||||||
|
do_storage_type proc export
|
||||||
|
with dp,fst_parms
|
||||||
|
|
||||||
|
lda disk_inode.mode
|
||||||
|
; check for directory. GS/OS doesn't have concepts for other types (yet).
|
||||||
|
|
||||||
|
phx ; save
|
||||||
|
and #S_IFMT ; $f000
|
||||||
|
xba
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
lsr a
|
||||||
|
tax
|
||||||
|
jsr (table,x)
|
||||||
|
|
||||||
|
table
|
||||||
|
dc.w unknown
|
||||||
|
dc.w fifo
|
||||||
|
dc.w chr
|
||||||
|
dc.w unknown
|
||||||
|
dc.w dir
|
||||||
|
dc.w unknown
|
||||||
|
dc.w blk
|
||||||
|
dc.w unknown
|
||||||
|
dc.w reg
|
||||||
|
dc.w unknown
|
||||||
|
dc.w lnk
|
||||||
|
dc.w unknown
|
||||||
|
dc.w sock
|
||||||
|
dc.w unknown
|
||||||
|
dc.w wht
|
||||||
|
dc.w unknown
|
||||||
|
|
||||||
|
unknown
|
||||||
|
lda #0
|
||||||
|
bra store
|
||||||
|
fifo:
|
||||||
|
chr:
|
||||||
|
blk:
|
||||||
|
lnk:
|
||||||
|
sock:
|
||||||
|
wht:
|
||||||
|
lda disk_inode.mode
|
||||||
|
and #S_IFMT
|
||||||
|
bra store
|
||||||
|
|
||||||
|
dir
|
||||||
|
lda #$0d
|
||||||
|
bra store
|
||||||
|
|
||||||
|
reg
|
||||||
|
lda #1 ; could base it on size but whatever!
|
||||||
|
; drop through
|
||||||
|
|
||||||
|
store
|
||||||
|
plx ; restore
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
rts
|
||||||
|
|
||||||
|
endp
|
||||||
|
|
||||||
|
; assume disk_inode is valid.
|
||||||
|
do_file_type proc export
|
||||||
|
|
||||||
|
with dp,fst_parms
|
||||||
|
|
||||||
|
lda disk_inode.mode
|
||||||
|
and #S_IFMT
|
||||||
|
cmp #S_IFDIR
|
||||||
|
beq dir
|
||||||
|
cmp #S_IFREG
|
||||||
|
beq reg
|
||||||
|
|
||||||
|
unknown
|
||||||
|
lda #$00
|
||||||
|
bra store
|
||||||
|
|
||||||
|
dir
|
||||||
|
lda #$0f
|
||||||
|
bra store
|
||||||
|
|
||||||
|
reg
|
||||||
|
lda #$06 ; binary
|
||||||
|
bra store
|
||||||
|
|
||||||
|
store
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
endp
|
||||||
|
|
||||||
|
do_aux_type proc export
|
||||||
|
with dp,fst_parms
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
rts
|
||||||
|
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
; assumes disk_inode is valid.
|
||||||
|
do_eof proc export
|
||||||
|
with dp,fst_parms
|
||||||
|
|
||||||
|
lda disk_inode.size
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
lda disk_inode.size+2
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
rts
|
||||||
|
|
||||||
|
endp
|
||||||
|
|
||||||
|
; file blocks, not disk blocks.
|
||||||
|
do_blocks proc export
|
||||||
|
with dp,fst_parms
|
||||||
|
with v1
|
||||||
|
|
||||||
|
; not sure if minix supports sparse blocks. could just estimate
|
||||||
|
; based on file size.
|
||||||
|
|
||||||
|
phx ; save
|
||||||
|
phy ; save
|
||||||
|
|
||||||
|
; 7 direct blocks, 1 indirect block, 1 double indirect block.
|
||||||
|
ldx #0
|
||||||
|
ldy #0 ; count
|
||||||
|
@loop
|
||||||
|
lda disk_inode.zone,x
|
||||||
|
beq @next
|
||||||
|
iny
|
||||||
|
@next
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
cpx #NR_DZONES*2
|
||||||
|
bcc @loop
|
||||||
|
|
||||||
|
; y is number of direct blocks.
|
||||||
|
|
||||||
|
; check for indirect block...
|
||||||
|
lda disk_inode.zone + NR_DZONES * 2
|
||||||
|
beq dib
|
||||||
|
|
||||||
|
;
|
||||||
|
; count up indirect blocks...
|
||||||
|
;
|
||||||
|
iny
|
||||||
|
|
||||||
|
dib
|
||||||
|
; check for double indirect block
|
||||||
|
lda disk_inode.zone + (NR_DZONES + 1) * 2
|
||||||
|
beq store
|
||||||
|
;
|
||||||
|
; count up double indirect blocks....
|
||||||
|
;
|
||||||
|
|
||||||
|
iny
|
||||||
|
|
||||||
|
store
|
||||||
|
tya
|
||||||
|
ply
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
lda #0
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
|
||||||
|
plx ; restore
|
||||||
|
rts
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
do_r_eof proc export
|
||||||
|
with dp,fst_parms
|
||||||
|
|
||||||
|
export do_r_blocks
|
||||||
|
do_r_blocks
|
||||||
|
lda #0
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
rts
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
do_option_list proc export
|
||||||
|
with dp,fst_parms
|
||||||
|
|
||||||
|
; if the option list is present, store my fst id.
|
||||||
|
|
||||||
|
lda [param_blk_ptr],y
|
||||||
|
sta ptr
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
lda [param_blk_ptr],y
|
||||||
|
sta ptr+2
|
||||||
|
|
||||||
|
ora ptr
|
||||||
|
beq exit
|
||||||
|
|
||||||
|
; check if the option list ptr is large enough.
|
||||||
|
lda [ptr]
|
||||||
|
cmp #4
|
||||||
|
bcc pre
|
||||||
|
|
||||||
|
; store the size of the option list.
|
||||||
|
ldy #2
|
||||||
|
lda #2
|
||||||
|
sta [ptr],y
|
||||||
|
|
||||||
|
|
||||||
|
lda [ptr]
|
||||||
|
cmp #6
|
||||||
|
bcc bts
|
||||||
|
bra ok
|
||||||
|
|
||||||
|
; less than 4 is a parm range error.
|
||||||
|
; less than the necessary option list size is a buf_too_small error.
|
||||||
|
; (but store the space required)
|
||||||
|
|
||||||
|
|
||||||
|
pre
|
||||||
|
lda #parm_range_err
|
||||||
|
sta tool_error
|
||||||
|
bra exit
|
||||||
|
|
||||||
|
bts
|
||||||
|
|
||||||
|
lda #buff_too_small
|
||||||
|
sta tool_error
|
||||||
|
bra exit
|
||||||
|
|
||||||
|
ok
|
||||||
|
ldy #4
|
||||||
|
lda #fst_id
|
||||||
|
sta [ptr],y
|
||||||
|
|
||||||
|
|
||||||
|
exit
|
||||||
|
rts
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
do_create_date_time_0 proc export
|
||||||
|
with fst_parms
|
||||||
|
|
||||||
|
; todo ...
|
||||||
|
|
||||||
|
export do_mod_date_time_0
|
||||||
|
do_mod_date_time_0
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
|
||||||
|
rts
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
do_create_date_time proc export
|
||||||
|
with fst_parms
|
||||||
|
|
||||||
|
; todo ...
|
||||||
|
|
||||||
|
export do_mod_date_time
|
||||||
|
do_mod_date_time
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
iny
|
||||||
|
iny
|
||||||
|
sta [param_blk_ptr],y
|
||||||
|
|
||||||
|
rts
|
||||||
|
endp
|
||||||
|
|
||||||
|
;
|
||||||
|
; fcr-based items.
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
do_refnum proc export
|
||||||
|
|
||||||
|
with fst_parms, dp
|
||||||
|
|
||||||
|
lda [<my_fcr]
|
||||||
|
sta [<param_blk_ptr],y
|
||||||
|
rts
|
||||||
|
endp
|
||||||
|
|
||||||
|
|
||||||
|
end
|
18
volume.aii
18
volume.aii
|
@ -18,10 +18,11 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
import do_file_sys_id
|
||||||
|
import do_ignore
|
||||||
|
|
||||||
entry do_block_size
|
entry do_block_size
|
||||||
entry do_file_sys_id
|
|
||||||
entry do_free_blocks
|
entry do_free_blocks
|
||||||
entry do_ignore
|
|
||||||
entry do_total_blocks
|
entry do_total_blocks
|
||||||
entry do_vol_name_0
|
entry do_vol_name_0
|
||||||
entry do_vol_name_1
|
entry do_vol_name_1
|
||||||
|
@ -111,19 +112,6 @@ volume_dcb_1
|
||||||
endp
|
endp
|
||||||
|
|
||||||
|
|
||||||
do_ignore proc export
|
|
||||||
rts
|
|
||||||
endp
|
|
||||||
|
|
||||||
do_file_sys_id proc
|
|
||||||
|
|
||||||
with dp
|
|
||||||
with fst_parms
|
|
||||||
|
|
||||||
lda #fst_id
|
|
||||||
sta [param_blk_ptr],y
|
|
||||||
rts
|
|
||||||
endp
|
|
||||||
|
|
||||||
do_block_size proc
|
do_block_size proc
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue