mirror of
https://github.com/A2osX/A2osX.git
synced 2024-05-31 16:41:30 +00:00
Compare commits
2 Commits
d69b4e0488
...
75a3e9572a
Author | SHA1 | Date | |
---|---|---|---|
|
75a3e9572a | ||
|
74acfeccd1 |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -51,7 +51,7 @@ IO.Reset.In sec
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.Pipe.Out >PUSHEA.G IO.TMPFIFO
|
IO.Pipe.Out >PUSHEA.G IO.FIFONAME
|
||||||
>PUSHWZ mode
|
>PUSHWZ mode
|
||||||
>SYSCALL MKFIFO
|
>SYSCALL MKFIFO
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -129,7 +129,7 @@ IO.Pipe.OpenR ldx #O.RDONLY+O.TEXT
|
||||||
|
|
||||||
IO.Pipe.OpenW ldx #O.WRONLY+O.TEXT
|
IO.Pipe.OpenW ldx #O.WRONLY+O.TEXT
|
||||||
|
|
||||||
IO.Pipe.Open >LEA.G IO.TMPFIFO
|
IO.Pipe.Open >LEA.G IO.FIFONAME
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.FOpenYAX >PUSHYA
|
IO.FOpenYAX >PUSHYA
|
||||||
txa
|
txa
|
||||||
|
|
|
@ -780,7 +780,7 @@ Sleep .BS 4
|
||||||
*M32.BUF .BS 12 -1234567890\0
|
*M32.BUF .BS 12 -1234567890\0
|
||||||
TimeBuf .EQ *
|
TimeBuf .EQ *
|
||||||
M32.BUF .EQ *
|
M32.BUF .EQ *
|
||||||
IO.TMPFIFO .BS 12 /tmp/fifoXX\0
|
IO.FIFONAME .BS 12 /dev/fifoXX\0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DS.END .ED
|
DS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -149,7 +149,7 @@ Dev.Detect >STYA ZPArgPtr
|
||||||
|
|
||||||
ldx DEVSLOT0x
|
ldx DEVSLOT0x
|
||||||
lda #A2osX.S.NIC
|
lda #A2osX.S.NIC
|
||||||
sta A2osX.S,x
|
sta A2osX.S-1,x
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -46,7 +46,7 @@ Dev.Detect >STYA ARGS
|
||||||
|
|
||||||
.1 and #$0f
|
.1 and #$0f
|
||||||
tay
|
tay
|
||||||
lda A2osX.S,y
|
lda A2osX.S-1,y
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldx #DEVSIG.Length-1
|
ldx #DEVSIG.Length-1
|
||||||
|
@ -79,7 +79,7 @@ Dev.Detect >STYA ARGS
|
||||||
pha
|
pha
|
||||||
tay
|
tay
|
||||||
lda #A2osX.S.COM
|
lda #A2osX.S.COM
|
||||||
sta A2osX.S,y
|
sta A2osX.S-1,y
|
||||||
pla
|
pla
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
|
|
|
@ -46,7 +46,7 @@ Dev.Detect >STYA ARGS
|
||||||
|
|
||||||
.1 and #$0f
|
.1 and #$0f
|
||||||
tay
|
tay
|
||||||
lda A2osX.S,y
|
lda A2osX.S-1,y
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldx #DEVSIG.Length-1
|
ldx #DEVSIG.Length-1
|
||||||
|
@ -79,7 +79,7 @@ Dev.Detect >STYA ARGS
|
||||||
pha
|
pha
|
||||||
tay
|
tay
|
||||||
lda #A2osX.S.COM
|
lda #A2osX.S.COM
|
||||||
sta A2osX.S,y
|
sta A2osX.S-1,y
|
||||||
pla
|
pla
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
|
|
|
@ -51,7 +51,7 @@ Dev.Detect >STYA ZPArgPtr
|
||||||
ldx #$70
|
ldx #$70
|
||||||
ldy #7
|
ldy #7
|
||||||
|
|
||||||
.1 lda A2osX.S,y IO based detection, avoid scanning in Disk Controller IO!!!!
|
.1 lda A2osX.S-1,y IO based detection, avoid scanning in Disk Controller IO!!!!
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
lda L91C96.BSR+1,x
|
lda L91C96.BSR+1,x
|
||||||
|
@ -100,7 +100,7 @@ Dev.Detect >STYA ZPArgPtr
|
||||||
|
|
||||||
ldx DEVSLOT0x
|
ldx DEVSLOT0x
|
||||||
lda #A2osX.S.NIC
|
lda #A2osX.S.NIC
|
||||||
sta A2osX.S,x
|
sta A2osX.S-1,x
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -42,7 +42,7 @@ Dev.Detect >STYA ARGS
|
||||||
|
|
||||||
.1 and #$0f
|
.1 and #$0f
|
||||||
tay
|
tay
|
||||||
lda A2osX.S,y
|
lda A2osX.S-1,y
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldy #4
|
ldy #4
|
||||||
|
@ -74,7 +74,7 @@ Dev.Detect >STYA ARGS
|
||||||
pha
|
pha
|
||||||
tay
|
tay
|
||||||
lda #A2osX.S.SND
|
lda #A2osX.S.SND
|
||||||
sta A2osX.S,y
|
sta A2osX.S-1,y
|
||||||
pla
|
pla
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
|
|
|
@ -73,6 +73,8 @@ Dev.Detect >LDYA L.MSG.DETECT
|
||||||
sta GOMOUSE.JMP+2
|
sta GOMOUSE.JMP+2
|
||||||
and #$0F
|
and #$0F
|
||||||
sta DEVSLOT0n
|
sta DEVSLOT0n
|
||||||
|
tax
|
||||||
|
|
||||||
ora #$30
|
ora #$30
|
||||||
sta FD.DEV.NAME+3
|
sta FD.DEV.NAME+3
|
||||||
asl
|
asl
|
||||||
|
@ -80,6 +82,9 @@ Dev.Detect >LDYA L.MSG.DETECT
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
sta GOMOUSE.n0+1
|
sta GOMOUSE.n0+1
|
||||||
|
|
||||||
|
lda #A2osX.S.XY
|
||||||
|
sta A2osX.S-1,x
|
||||||
|
|
||||||
>PUSHW L.MSG.DETECT.OK
|
>PUSHW L.MSG.DETECT.OK
|
||||||
>PUSHW L.FD.DEV.NAME
|
>PUSHW L.FD.DEV.NAME
|
||||||
|
|
|
@ -7,6 +7,7 @@ NEW
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB inc/macros.i
|
.INB inc/macros.i
|
||||||
.INB inc/a2osx.i
|
.INB inc/a2osx.i
|
||||||
|
.INB inc/kernel.i
|
||||||
.INB inc/mli.e.i
|
.INB inc/mli.e.i
|
||||||
.INB inc/com.i
|
.INB inc/com.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -46,7 +47,7 @@ Dev.Detect >STYA ARGS
|
||||||
|
|
||||||
.1 and #$0f
|
.1 and #$0f
|
||||||
tay
|
tay
|
||||||
lda A2osX.S,y
|
lda A2osX.S-1,y
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldx #DEVSIG.Length-1
|
ldx #DEVSIG.Length-1
|
||||||
|
@ -79,7 +80,7 @@ Dev.Detect >STYA ARGS
|
||||||
pha
|
pha
|
||||||
tay
|
tay
|
||||||
lda #A2osX.S.COM
|
lda #A2osX.S.COM
|
||||||
sta A2osX.S,y
|
sta A2osX.S-1,y
|
||||||
pla
|
pla
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
|
@ -292,7 +293,7 @@ DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
|
||||||
.PS "Apple // Int Crd"
|
.PS "Apple // Int Crd"
|
||||||
.DA #S.DIB.T.CHAR
|
.DA #S.DIB.T.CHAR
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA #0,#94
|
.DA K.VER
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DCB .DA #S.DCB.T.COM
|
DCB .DA #S.DCB.T.COM
|
||||||
.DA #0 FLAGS
|
.DA #0 FLAGS
|
||||||
|
|
|
@ -117,7 +117,7 @@ Dev.Detect >STYA ZPArgsPtr
|
||||||
|
|
||||||
.1 and #$0f
|
.1 and #$0f
|
||||||
tay
|
tay
|
||||||
lda A2osX.S,y
|
lda A2osX.S-1,y
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldx #DEVSIG.Length-1
|
ldx #DEVSIG.Length-1
|
||||||
|
@ -187,7 +187,7 @@ Dev.Detect >STYA ZPArgsPtr
|
||||||
and #$0F
|
and #$0F
|
||||||
tax
|
tax
|
||||||
lda #A2osX.S.NIC
|
lda #A2osX.S.NIC
|
||||||
sta A2osX.S,x
|
sta A2osX.S-1,x
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ Dev.Detect >STYA ZPArgPtr
|
||||||
ldx #$70+$88
|
ldx #$70+$88
|
||||||
ldy #7
|
ldy #7
|
||||||
|
|
||||||
.1 lda A2osX.S,y IO based detection, avoid scanning in Disk Controller IO!!!!
|
.1 lda A2osX.S-1,y IO based detection, avoid scanning in Disk Controller IO!!!!
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
lda #W5100.MR.RST
|
lda #W5100.MR.RST
|
||||||
|
@ -127,7 +127,7 @@ Dev.Detect >STYA ZPArgPtr
|
||||||
|
|
||||||
ldx DEVSLOT0x
|
ldx DEVSLOT0x
|
||||||
lda #A2osX.S.NIC
|
lda #A2osX.S.NIC
|
||||||
sta A2osX.S,x
|
sta A2osX.S-1,x
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -56,7 +56,7 @@ Dev.Detect >STYA ZPArgPtr
|
||||||
ldx #$70
|
ldx #$70
|
||||||
ldy #7
|
ldy #7
|
||||||
|
|
||||||
.1 lda A2osX.S,y IO based detection, avoid scanning in Disk Controller IO!!!!
|
.1 lda A2osX.S-1,y IO based detection, avoid scanning in Disk Controller IO!!!!
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
lda /PP.ID
|
lda /PP.ID
|
||||||
|
@ -121,7 +121,7 @@ Dev.Detect >STYA ZPArgPtr
|
||||||
|
|
||||||
ldx DEVSLOT0x
|
ldx DEVSLOT0x
|
||||||
lda #A2osX.S.NIC
|
lda #A2osX.S.NIC
|
||||||
sta A2osX.S,x
|
sta A2osX.S-1,x
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -53,7 +53,7 @@ Dev.Detect >STYA ZPArgPtr
|
||||||
ldx #$70+$88
|
ldx #$70+$88
|
||||||
ldy #7
|
ldy #7
|
||||||
|
|
||||||
.1 lda A2osX.S,y IO based detection, avoid scanning in Disk Controller IO!!!!
|
.1 lda A2osX.S-1,y IO based detection, avoid scanning in Disk Controller IO!!!!
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
lda #W5100.MR.RST
|
lda #W5100.MR.RST
|
||||||
|
@ -125,7 +125,7 @@ Dev.Detect >STYA ZPArgPtr
|
||||||
|
|
||||||
ldx DEVSLOT0x
|
ldx DEVSLOT0x
|
||||||
lda #A2osX.S.NIC
|
lda #A2osX.S.NIC
|
||||||
sta A2osX.S,x
|
sta A2osX.S-1,x
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -67,7 +67,7 @@ A2osX.HZ .EQ A2osX.KCONFIG+00 5/6 for 50/60Hz
|
||||||
A2osX.TTYDEVS .EQ A2osX.KCONFIG+01
|
A2osX.TTYDEVS .EQ A2osX.KCONFIG+01
|
||||||
A2osX.F .EQ A2osX.KCONFIG+02
|
A2osX.F .EQ A2osX.KCONFIG+02
|
||||||
A2osX.F.CHROOT .EQ %10000000 ChRooting to /RAMx
|
A2osX.F.CHROOT .EQ %10000000 ChRooting to /RAMx
|
||||||
A2osX.F.PMODE .EQ %01000000 Pre-emptive Mode
|
A2osX.F.PMODE .EQ %01000000 Preemptive Mode
|
||||||
*
|
*
|
||||||
A2osX.S .EQ A2osX.KCONFIG+09 7 slots
|
A2osX.S .EQ A2osX.KCONFIG+09 7 slots
|
||||||
A2osX.S.Z80 .EQ $80
|
A2osX.S.Z80 .EQ $80
|
||||||
|
|
|
@ -346,9 +346,9 @@ XDOS.SysDeath tax death error code.
|
||||||
|
|
||||||
.1 sta IO.CLRPAGE2 switch in text page 1.
|
.1 sta IO.CLRPAGE2 switch in text page 1.
|
||||||
|
|
||||||
ldy #deathmsg.LEN-1
|
ldy #XDOS.SysErrMsgL-1
|
||||||
|
|
||||||
.2 lda deathmsg,y
|
.2 lda XDOS.SysErrMsg,y
|
||||||
sta $400,y 'SYS ERR-$'
|
sta $400,y 'SYS ERR-$'
|
||||||
dey
|
dey
|
||||||
bpl .2
|
bpl .2
|
||||||
|
@ -361,7 +361,7 @@ XDOS.SysDeath tax death error code.
|
||||||
|
|
||||||
adc #$06 inc to alpha a-f
|
adc #$06 inc to alpha a-f
|
||||||
|
|
||||||
.3 ldy #deathmsg.LEN
|
.3 ldy #XDOS.SysErrMsgL
|
||||||
ora #$80
|
ora #$80
|
||||||
sta $400,y
|
sta $400,y
|
||||||
|
|
||||||
|
@ -381,9 +381,9 @@ XDOS.BFMgr lda XDOS.CmdFlags,x translate into command address.
|
||||||
sta cmdtemp
|
sta cmdtemp
|
||||||
and #$3F bit 6 is refnum, 5 is time to process
|
and #$3F bit 6 is refnum, 5 is time to process
|
||||||
tax
|
tax
|
||||||
lda cmdtable,x move address to indirect jump
|
lda XDOS.CmdJmps,x move address to indirect jump
|
||||||
sta .8+1
|
sta .8+1
|
||||||
lda cmdtable+1,x high byte
|
lda XDOS.CmdJmps+1,x high byte
|
||||||
sta .8+2
|
sta .8+2
|
||||||
|
|
||||||
lda #$20 init backup bit flag
|
lda #$20 init backup bit flag
|
||||||
|
@ -695,10 +695,11 @@ badref lda #MLI.E.BADREF requested refnum is
|
||||||
sec illegal (out of range)
|
sec illegal (out of range)
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XDOS.Online jsr mvdbufr figure out how big buffer has to be.
|
XDOS.Online jsr XDOS.GetUserBuf figure out how big buffer has to be.
|
||||||
|
|
||||||
stz cbytes set this for valdbuf routine.
|
stz cbytes set this for valdbuf routine.
|
||||||
stz cbytes+1
|
stz cbytes+1
|
||||||
|
|
||||||
ldy #$01
|
ldy #$01
|
||||||
lda (ZP.A3L),y if 0 then cbytes=$100 else $010 for one
|
lda (ZP.A3L),y if 0 then cbytes=$100 else $010 for one
|
||||||
and #$F0 device. mask out unused nibble.
|
and #$F0 device. mask out unused nibble.
|
||||||
|
|
|
@ -208,9 +208,9 @@ XDOS.FindFile jsr XDOS.CheckPath see if file exists
|
||||||
XDOS.CheckPath jsr XDOS.FindVol
|
XDOS.CheckPath jsr XDOS.FindVol
|
||||||
bcs fnderr.RTS
|
bcs fnderr.RTS
|
||||||
|
|
||||||
bne lookfil0 branch if more than root
|
bne XDOS.CheckPath1 branch if more than root
|
||||||
|
|
||||||
jsr XDOS.ZPT.InitGBuf
|
jsr XDOS.ZPT.InitGBuf zpt = GBUF+4
|
||||||
|
|
||||||
ldy #$1F move in id and date info
|
ldy #$1F move in id and date info
|
||||||
|
|
||||||
|
@ -228,6 +228,7 @@ XDOS.CheckPath jsr XDOS.FindVol
|
||||||
|
|
||||||
lda #$D0 fake directory file
|
lda #$D0 fake directory file
|
||||||
sta XDOS.DE.Filename
|
sta XDOS.DE.Filename
|
||||||
|
|
||||||
lda XDOS.GBuf+2 check forward link.
|
lda XDOS.GBuf+2 check forward link.
|
||||||
ora XDOS.GBuf+3 if non-zero, assume full sized directory
|
ora XDOS.GBuf+3 if non-zero, assume full sized directory
|
||||||
bne .3 else assume it's the slot 3 /RAM volume
|
bne .3 else assume it's the slot 3 /RAM volume
|
||||||
|
@ -244,7 +245,7 @@ errdir lda #MLI.E.BADDIR directory error
|
||||||
fnderr sec
|
fnderr sec
|
||||||
fnderr.RTS rts
|
fnderr.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
lookfil0 stz nofree reset free entry indicator.
|
XDOS.CheckPath1 stz nofree reset free entry indicator.
|
||||||
|
|
||||||
sec dir to be searched has header in this block.
|
sec dir to be searched has header in this block.
|
||||||
|
|
||||||
|
@ -363,7 +364,7 @@ L386C asl
|
||||||
.FIN
|
.FIN
|
||||||
|
|
||||||
movhead jsr XDOS.GetDH move directory info.
|
movhead jsr XDOS.GetDH move directory info.
|
||||||
jmp lookfil0 do next local pathname.
|
jmp XDOS.CheckPath1 do next local pathname.
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XDOS.GetDH ldx #10 move this directory info
|
XDOS.GetDH ldx #10 move this directory info
|
||||||
|
|
||||||
|
|
|
@ -390,13 +390,13 @@ L3DFD lda #MLI.E.BEYEOF invalid position
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XDOS.SetMark ldy #$04 index to user's desired position.
|
XDOS.SetMark ldy #$04 index to user's desired position.
|
||||||
ldx XDOS.FCBPtr file's control block index.
|
ldx XDOS.FCBPtr file's control block index.
|
||||||
inx inc by 2 for index to hi eof
|
inx inc by 2 for index to hi eof
|
||||||
inx
|
inx
|
||||||
sec indicate comparisons are necessary.
|
sec indicate comparisons are necessary.
|
||||||
|
|
||||||
.1 lda (ZP.A3L),y move it to 'tpos'
|
.1 lda (ZP.A3L),y move it to 'tpos'
|
||||||
sta tposll-2,y
|
sta XDOS.TmpPos-2,y
|
||||||
bcc .2 branch if mark < eof
|
bcc .2 branch if mark < eof
|
||||||
|
|
||||||
cmp XDOS.FCBs+FCB.EOF,x
|
cmp XDOS.FCBs+FCB.EOF,x
|
||||||
|
@ -411,12 +411,12 @@ XDOS.SetMark ldy #$04 index to user's desired position.
|
||||||
eor #$01 preserves carry status.
|
eor #$01 preserves carry status.
|
||||||
bne .1 branch if more.
|
bne .1 branch if more.
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
rdposn ldy XDOS.FCBPtr test to see if new position is
|
rdposn ldy XDOS.FCBPtr test to see if new position is
|
||||||
lda XDOS.FCBs+FCB.MARK+1,y within the same (current) data block.
|
lda XDOS.FCBs+FCB.MARK+1,y within the same (current) data block.
|
||||||
and #$FE
|
and #$FE
|
||||||
sta scrtch
|
sta scrtch
|
||||||
|
|
||||||
lda tposlh middle byte of new position
|
lda XDOS.TmpPos+1 middle byte of new position
|
||||||
sec
|
sec
|
||||||
sbc scrtch
|
sbc scrtch
|
||||||
sta scrtch
|
sta scrtch
|
||||||
|
@ -425,7 +425,7 @@ rdposn ldy XDOS.FCBPtr test to see if new position is
|
||||||
cmp #$02 must be within 512 bytes of beginning
|
cmp #$02 must be within 512 bytes of beginning
|
||||||
bcs L3E44 of current position.
|
bcs L3E44 of current position.
|
||||||
|
|
||||||
lda tposhi make sure within the same 64k.
|
lda XDOS.TmpPos+2 make sure within the same 64k.
|
||||||
cmp XDOS.FCBs+FCB.MARK+2,y
|
cmp XDOS.FCBs+FCB.MARK+2,y
|
||||||
bne L3E44 branch if not.
|
bne L3E44 branch if not.
|
||||||
|
|
||||||
|
@ -439,8 +439,9 @@ L3E44 lda XDOS.FCBs+FCB.STYPE,y determine file type for positioning.
|
||||||
|
|
||||||
jmp dirmark no, test for dir type.
|
jmp dirmark no, test for dir type.
|
||||||
|
|
||||||
L3E50 ldy #$A4 clear illegal filetype entry in fcb
|
L3E50
|
||||||
sta XDOS.FCBs,y
|
* ldy #$A4 ??????? clear illegal filetype entry in fcb
|
||||||
|
* sta XDOS.FCBs,y ??????? WILL TRASH anther FCB
|
||||||
lda #MLI.E.BADREF and report error
|
lda #MLI.E.BADREF and report error
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@ -459,7 +460,7 @@ L3E6B ldy XDOS.FCBPtr test to see if current index block
|
||||||
lda XDOS.FCBs+FCB.MARK+2,y is usable by checking if new
|
lda XDOS.FCBs+FCB.MARK+2,y is usable by checking if new
|
||||||
and #$FE position is within 128k of the
|
and #$FE position is within 128k of the
|
||||||
sta scrtch beginning of current sapling level
|
sta scrtch beginning of current sapling level
|
||||||
lda tposhi chunk.
|
lda XDOS.TmpPos+2 chunk.
|
||||||
sec
|
sec
|
||||||
sbc scrtch
|
sbc scrtch
|
||||||
bcc L3E9D branch if a new index block is needed.
|
bcc L3E9D branch if a new index block is needed.
|
||||||
|
@ -471,9 +472,9 @@ L3E6B ldy XDOS.FCBPtr test to see if current index block
|
||||||
dex
|
dex
|
||||||
bne datlevel1 no, use current indexes.
|
bne datlevel1 no, use current indexes.
|
||||||
|
|
||||||
L3E89 lda tposlh is new position < 512 ?
|
L3E89 lda XDOS.TmpPos+1 is new position < 512 ?
|
||||||
lsr
|
lsr
|
||||||
ora tposhi
|
ora XDOS.TmpPos+2
|
||||||
bne L3EEF no, mark both data and index block as
|
bne L3EEF no, mark both data and index block as
|
||||||
|
|
||||||
lda XDOS.FCBs+FCB.1stBLK,y unallocated. 1st block is only block
|
lda XDOS.FCBs+FCB.1stBLK,y unallocated. 1st block is only block
|
||||||
|
@ -492,7 +493,7 @@ L3EA9 ldx levels be sure there is a top index
|
||||||
cpx #$03 before reading it...
|
cpx #$03 before reading it...
|
||||||
beq posindex branch if file is a tree.
|
beq posindex branch if file is a tree.
|
||||||
|
|
||||||
lda tposhi is new position within range of a
|
lda XDOS.TmpPos+2 is new position within range of a
|
||||||
lsr sapling file (less than 128k) ?
|
lsr sapling file (less than 128k) ?
|
||||||
php save results
|
php save results
|
||||||
lda #$07 (no level is allocated for new pos'n)
|
lda #$07 (no level is allocated for new pos'n)
|
||||||
|
@ -517,7 +518,7 @@ posindex jsr XDOS.ClrFCBStatus clr all alloc requirements for previous
|
||||||
jsr rfcbfst position. get highest level index block
|
jsr rfcbfst position. get highest level index block
|
||||||
bcs L3ED4
|
bcs L3ED4
|
||||||
|
|
||||||
lda tposhi then test for a sap level index block
|
lda XDOS.TmpPos+2 then test for a sap level index block
|
||||||
lsr
|
lsr
|
||||||
tay
|
tay
|
||||||
lda (zpt),y
|
lda (zpt),y
|
||||||
|
@ -597,23 +598,23 @@ rnewpos sta ZP.BLKNUM+1
|
||||||
|
|
||||||
jsr XDOS.ClrFCBStatus show whole chain is allocated.
|
jsr XDOS.ClrFCBStatus show whole chain is allocated.
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
svmark ldy XDOS.FCBPtr update position in fcb
|
svmark ldy XDOS.FCBPtr update position in fcb
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
ldx #$02
|
ldx #$02
|
||||||
|
|
||||||
L3F68 lda XDOS.FCBs+FCB.MARK,y save old mark in case calling routine
|
L3F68 lda XDOS.FCBs+FCB.MARK,y save old mark in case calling routine
|
||||||
sta oldmark,x fails later.
|
sta oldmark,x fails later.
|
||||||
lda tposll,x
|
lda XDOS.TmpPos,x
|
||||||
sta XDOS.FCBs+FCB.MARK,y
|
sta XDOS.FCBs+FCB.MARK,y
|
||||||
dey
|
dey
|
||||||
dex move 3 byte position marker
|
dex move 3 byte position marker
|
||||||
bpl L3F68
|
bpl L3F68
|
||||||
|
|
||||||
clc set up indirect address to buffer
|
clc set up indirect address to buffer
|
||||||
lda ZP.DataPtr page pointed to by the current
|
lda ZP.DataPtr page pointed to by the current
|
||||||
sta sos position marker.
|
sta sos position marker.
|
||||||
lda tposlh
|
lda XDOS.TmpPos+1
|
||||||
and #$01
|
and #$01
|
||||||
adc ZP.DataPtr+1
|
adc ZP.DataPtr+1
|
||||||
sta sos+1
|
sta sos+1
|
||||||
|
@ -630,15 +631,15 @@ L3F9C lda scrtch recover results of previous subtraction.
|
||||||
sta cntent blocks must be read to get to new pos'n.
|
sta cntent blocks must be read to get to new pos'n.
|
||||||
|
|
||||||
lda XDOS.FCBs+FCB.MARK+1,y test for positive direction
|
lda XDOS.FCBs+FCB.MARK+1,y test for positive direction
|
||||||
cmp tposlh indicated by carry.
|
cmp XDOS.TmpPos+1 indicated by carry.
|
||||||
|
|
||||||
lda XDOS.FCBs+FCB.MARK+2,y
|
lda XDOS.FCBs+FCB.MARK+2,y
|
||||||
sbc tposhi
|
sbc XDOS.TmpPos+2
|
||||||
|
|
||||||
bcc L3FB9 if set, position forward. otherwise,
|
bcc L3FB9 if set, position forward. otherwise,
|
||||||
|
|
||||||
L3FAB ldy #$00 read directory file in reverse order.
|
L3FAB ldy #$00 read directory file in reverse order.
|
||||||
jsr dirpos1 read previous block.
|
jsr XDOS.DirSeek read previous block.
|
||||||
bcs L3FD6 if error.
|
bcs L3FD6 if error.
|
||||||
|
|
||||||
inc cntent count up to 128.
|
inc cntent count up to 128.
|
||||||
|
@ -647,7 +648,7 @@ L3FAB ldy #$00 read directory file in reverse order.
|
||||||
bmi svmark always.
|
bmi svmark always.
|
||||||
|
|
||||||
L3FB9 ldy #$02 position is forward from current.
|
L3FB9 ldy #$02 position is forward from current.
|
||||||
jsr dirpos1 read next directory block
|
jsr XDOS.DirSeek read next directory block
|
||||||
bcs L3FD6 if error.
|
bcs L3FD6 if error.
|
||||||
|
|
||||||
dec cntent
|
dec cntent
|
||||||
|
@ -655,22 +656,17 @@ L3FB9 ldy #$02 position is forward from current.
|
||||||
|
|
||||||
beq svmark branch always.
|
beq svmark branch always.
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
dirpos1 lda (ZP.DataPtr),y get link address of previous or next
|
XDOS.DirSeek lda (ZP.DataPtr),y get link address of previous or next
|
||||||
sta ZP.BLKNUM directory block.
|
sta ZP.BLKNUM directory block.
|
||||||
cmp #$01 test for null byte into carry
|
iny
|
||||||
iny but first be sure there is a link.
|
lda (ZP.DataPtr),y get the rest of the link.
|
||||||
lda (ZP.DataPtr),y get the rest of the link.
|
sta ZP.BLKNUM+1
|
||||||
bne L3FD8 branch if certain link exists.
|
ora ZP.BLKNUM but first be sure there is a link.
|
||||||
|
bne XDOS.ReadFCB.DBLK branch if certain link exists.
|
||||||
bcs L3FD8 was the low part null as well ?
|
|
||||||
|
|
||||||
lda #MLI.E.EOF something is wrong with directory file!
|
lda #MLI.E.EOF something is wrong with directory file!
|
||||||
|
|
||||||
sec error.
|
sec error.
|
||||||
|
|
||||||
L3FD6 rts
|
L3FD6 rts
|
||||||
|
|
||||||
L3FD8 sta ZP.BLKNUM+1
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XDOS.ReadFCB.DBLK
|
XDOS.ReadFCB.DBLK
|
||||||
lda #$01 read command
|
lda #$01 read command
|
||||||
|
@ -690,23 +686,6 @@ XDOS.ReadFCB.DBLK
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*rfcbidx lda #$01 prepare to read index block : read command
|
|
||||||
* sta ZP.CMDNUM
|
|
||||||
|
|
||||||
* ldx #zpt address of current index buffer.
|
|
||||||
* XDOS.FileIOPtrX go read index block.
|
|
||||||
* bcs L400C error
|
|
||||||
|
|
||||||
* ldy XDOS.FCBPtr
|
|
||||||
* lda ZP.BLKNUM
|
|
||||||
* sta XDOS.FCBs+FCB.IBLK,y save block address of this index in fcb
|
|
||||||
* lda ZP.BLKNUM+1
|
|
||||||
* sta XDOS.FCBs+FCB.IBLK+1,y
|
|
||||||
|
|
||||||
** clc
|
|
||||||
|
|
||||||
*L400C rts
|
|
||||||
*--------------------------------------
|
|
||||||
wfcbfst jsr XDOS.FlushBM update the bitmap and write file's 1st block.
|
wfcbfst jsr XDOS.FlushBM update the bitmap and write file's 1st block.
|
||||||
|
|
||||||
ldx #$02 write command
|
ldx #$02 write command
|
||||||
|
@ -715,7 +694,7 @@ wfcbfst jsr XDOS.FlushBM update the bitmap and write file's 1st block.
|
||||||
rfcbfst ldx #$01 read command.
|
rfcbfst ldx #$01 read command.
|
||||||
|
|
||||||
lda #FCB.1stBLK
|
lda #FCB.1stBLK
|
||||||
ora XDOS.FCBPtr add offset to XDOS.FCBPtr
|
ora XDOS.FCBPtr add offset to XDOS.FCBPtr
|
||||||
tay
|
tay
|
||||||
txa get back command
|
txa get back command
|
||||||
|
|
||||||
|
@ -751,8 +730,6 @@ XDOS.FileIO2 sec also, set to indicate reg call made to
|
||||||
stz GP.ERROR clear global error code.
|
stz GP.ERROR clear global error code.
|
||||||
jmp XDOS.DevCall call the driver.
|
jmp XDOS.DevCall call the driver.
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
||||||
*--------------------------------------
|
|
||||||
XDOS.WriteDBLK ldx #ZP.DataPtr point at memory address with x and
|
XDOS.WriteDBLK ldx #ZP.DataPtr point at memory address with x and
|
||||||
lda #FCB.DBLK disk address with y.
|
lda #FCB.DBLK disk address with y.
|
||||||
ora XDOS.FCBPtr add offset to XDOS.FCBPtr
|
ora XDOS.FCBPtr add offset to XDOS.FCBPtr
|
||||||
|
@ -848,7 +825,7 @@ L40FF ldx #$06 move address of 1st block of file, end
|
||||||
|
|
||||||
L4101 sta ZP.BLKNUM+1 of file and current usage count.
|
L4101 sta ZP.BLKNUM+1 of file and current usage count.
|
||||||
lda XDOS.FCBPtr
|
lda XDOS.FCBPtr
|
||||||
ora ofcbtbl,x this is done via a translation table
|
ora XDOS.DE2FCB,x this is done via a translation table
|
||||||
tay between directory info and fcb.
|
tay between directory info and fcb.
|
||||||
lda XDOS.DE.KeyPtr,x
|
lda XDOS.DE.KeyPtr,x
|
||||||
sta XDOS.FCBs,y
|
sta XDOS.FCBs,y
|
||||||
|
@ -877,7 +854,7 @@ L4101 sta ZP.BLKNUM+1 of file and current usage count.
|
||||||
ldy #$02 etc. set desired position to 0.
|
ldy #$02 etc. set desired position to 0.
|
||||||
lda #$00
|
lda #$00
|
||||||
|
|
||||||
L413C sta tposll,y
|
L413C sta XDOS.TmpPos,y
|
||||||
dey
|
dey
|
||||||
bpl L413C
|
bpl L413C
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XDOS.Read jsr mvdbufr xfer buffer address and request count
|
XDOS.Read jsr XDOS.GetUserBuf xfer buffer address and request count
|
||||||
jsr mvcbytes to a more accessable location, also
|
jsr mvcbytes to a more accessable location, also
|
||||||
pha get fcb attributes and save on stack.
|
pha get fcb attributes and save on stack.
|
||||||
jsr calcmrk calc mark after read, test if mark > eof
|
jsr XDOS.CalcNewMark calc mark after read, test if mark > eof
|
||||||
pla carry set means end mark > eof.
|
pla carry set means end mark > eof.
|
||||||
and #$01 test for read enabled.
|
and #$01 test for read enabled.
|
||||||
beq .9
|
beq .9
|
||||||
|
@ -13,11 +13,11 @@ XDOS.Read jsr mvdbufr xfer buffer address and request count
|
||||||
|
|
||||||
ldy XDOS.FCBPtr request to read until just before eof.
|
ldy XDOS.FCBPtr request to read until just before eof.
|
||||||
lda XDOS.FCBs+FCB.EOF,y result = (eof-1) - position
|
lda XDOS.FCBs+FCB.EOF,y result = (eof-1) - position
|
||||||
sbc tposll
|
sbc XDOS.TmpPos
|
||||||
sta cbytes
|
sta cbytes
|
||||||
sta rwreql
|
sta rwreql
|
||||||
lda XDOS.FCBs+FCB.EOF+1,y
|
lda XDOS.FCBs+FCB.EOF+1,y
|
||||||
sbc tposlh
|
sbc XDOS.TmpPos+1
|
||||||
sta cbytes+1
|
sta cbytes+1
|
||||||
sta rwreqh
|
sta rwreqh
|
||||||
ora cbytes if both bytes = 0 then eof error
|
ora cbytes if both bytes = 0 then eof error
|
||||||
|
@ -74,12 +74,12 @@ L424E inc ZP.DataPtr+1 incll ptrs by one block (512 bytes)
|
||||||
inc ZP.DataPtr+1
|
inc ZP.DataPtr+1
|
||||||
dec rwreqh
|
dec rwreqh
|
||||||
dec rwreqh
|
dec rwreqh
|
||||||
inc tposlh
|
inc XDOS.TmpPos+1
|
||||||
inc tposlh
|
inc XDOS.TmpPos+1
|
||||||
bne L4269 if pos'n doesn't get to a 64k boundary
|
bne L4269 if pos'n doesn't get to a 64k boundary
|
||||||
|
|
||||||
inc tposhi otherwise, must check for a 128k one.
|
inc XDOS.TmpPos+2 otherwise, must check for a 128k one.
|
||||||
lda tposhi carry set if 128k boundary reached.
|
lda XDOS.TmpPos+2 carry set if 128k boundary reached.
|
||||||
eor #$01
|
eor #$01
|
||||||
lsr
|
lsr
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ rwdone ldy #$06 return total # of bytes actually read
|
||||||
preprw ldy XDOS.FCBPtr adj pointer to user's buffer to make
|
preprw ldy XDOS.FCBPtr adj pointer to user's buffer to make
|
||||||
sec the transfer
|
sec the transfer
|
||||||
lda ZP.UserBuf
|
lda ZP.UserBuf
|
||||||
sbc tposll
|
sbc XDOS.TmpPos
|
||||||
sta ZP.UserBuf
|
sta ZP.UserBuf
|
||||||
bcs .1 if no adjustment to hi address needed
|
bcs .1 if no adjustment to hi address needed
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ preprw ldy XDOS.FCBPtr adj pointer to user's buffer to make
|
||||||
lda XDOS.FCBs+FCB.NLBYTE,y move newline character to more
|
lda XDOS.FCBs+FCB.NLBYTE,y move newline character to more
|
||||||
sta nlchar accesible spot.
|
sta nlchar accesible spot.
|
||||||
|
|
||||||
.2 ldy tposll index to 1st data.
|
.2 ldy XDOS.TmpPos index to 1st data.
|
||||||
lda ZP.DataPtr reset low order of position pointer to
|
lda ZP.DataPtr reset low order of position pointer to
|
||||||
sta sos beginning of page.
|
sta sos beginning of page.
|
||||||
ldx rwreql get low order count of requested bytes.
|
ldx rwreql get low order count of requested bytes.
|
||||||
|
@ -191,10 +191,10 @@ L4319 dex dec # of bytes left to move.
|
||||||
|
|
||||||
lda sos+1 test for end of buffer, but first
|
lda sos+1 test for end of buffer, but first
|
||||||
inc ZP.UserBuf+1 adjust user buffer pointer
|
inc ZP.UserBuf+1 adjust user buffer pointer
|
||||||
inc tposlh and position
|
inc XDOS.TmpPos+1 and position
|
||||||
bne L4329
|
bne L4329
|
||||||
|
|
||||||
inc tposhi
|
inc XDOS.TmpPos+2
|
||||||
|
|
||||||
L4329 inc sos+1 and sos buffer high address.
|
L4329 inc sos+1 and sos buffer high address.
|
||||||
eor ZP.DataPtr+1 (carry is undisturbed)
|
eor ZP.DataPtr+1 (carry is undisturbed)
|
||||||
|
@ -227,14 +227,14 @@ L4350 iny adjust position.
|
||||||
bne L435D
|
bne L435D
|
||||||
|
|
||||||
inc ZP.UserBuf+1 inc pointers
|
inc ZP.UserBuf+1 inc pointers
|
||||||
inc tposlh
|
inc XDOS.TmpPos+1
|
||||||
bne L435D
|
bne L435D
|
||||||
|
|
||||||
inc tposhi
|
inc XDOS.TmpPos+2
|
||||||
|
|
||||||
L435D bit setvflg (sets v flag)
|
L435D bit setvflg (sets v flag)
|
||||||
|
|
||||||
L4360 sty tposll save low position
|
L4360 sty XDOS.TmpPos save low position
|
||||||
bvs L4366
|
bvs L4366
|
||||||
|
|
||||||
inx leave request as +1 for next call
|
inx leave request as +1 for next call
|
||||||
|
@ -304,11 +304,12 @@ mvcbytes ldy #$04 move request count to a more accessable location
|
||||||
sta cbytes+1
|
sta cbytes+1
|
||||||
sta rwreqh
|
sta rwreqh
|
||||||
ldy XDOS.FCBPtr return y = val(XDOS.FCBPtr),
|
ldy XDOS.FCBPtr return y = val(XDOS.FCBPtr),
|
||||||
|
|
||||||
lda XDOS.FCBs+FCB.ACCESS,y a = attributes
|
lda XDOS.FCBs+FCB.ACCESS,y a = attributes
|
||||||
clc and carry clear...
|
* clc and carry clear...
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
mvdbufr ldy #$02 move the pointer to user's buffer
|
XDOS.GetUserBuf ldy #$02 move the pointer to user's buffer
|
||||||
lda (ZP.A3L),y to the block file manager
|
lda (ZP.A3L),y to the block file manager
|
||||||
sta ZP.UserBuf z-page area
|
sta ZP.UserBuf z-page area
|
||||||
iny
|
iny
|
||||||
|
@ -326,11 +327,14 @@ XDOS.GetFCB.ST ldy XDOS.FCBPtr return storage type
|
||||||
* y,x,a is unknown
|
* y,x,a is unknown
|
||||||
* carry set indicates scrtch > eof
|
* carry set indicates scrtch > eof
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
calcmrk ldx #$00
|
XDOS.CalcNewMark
|
||||||
|
ldx #$00
|
||||||
ldy XDOS.FCBPtr
|
ldy XDOS.FCBPtr
|
||||||
|
|
||||||
clc
|
clc
|
||||||
L43EE lda XDOS.FCBs+FCB.MARK,y
|
|
||||||
sta tposll,x
|
.1 lda XDOS.FCBs+FCB.MARK,y
|
||||||
|
sta XDOS.TmpPos,x
|
||||||
sta oldmark,x
|
sta oldmark,x
|
||||||
adc cbytes,x
|
adc cbytes,x
|
||||||
sta scrtch,x
|
sta scrtch,x
|
||||||
|
@ -340,18 +344,18 @@ L43EE lda XDOS.FCBs+FCB.MARK,y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
inx
|
inx
|
||||||
bne L43EE always.
|
bne .1 always.
|
||||||
|
*--------------------------------------
|
||||||
eoftest lda scrtch,x new mark in scrtch.
|
eoftest lda scrtch,x new mark in scrtch.
|
||||||
cmp XDOS.FCBs+FCB.EOF,y is new position > eof ?
|
cmp XDOS.FCBs+FCB.EOF,y is new position > eof ?
|
||||||
bcc L4414 no, proceed.
|
bcc .1 no, proceed.
|
||||||
bne L4414 yes, adjust 'cbytes' request
|
bne .1 yes, adjust 'cbytes' request
|
||||||
|
|
||||||
dey
|
dey
|
||||||
dex all tree bytes compared ?
|
dex all tree bytes compared ?
|
||||||
bpl eoftest no, test next lowest
|
bpl eoftest no, test next lowest
|
||||||
|
|
||||||
L4414 rts
|
.1 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
werreof jsr plus2fcb reset eof to pre-error position.
|
werreof jsr plus2fcb reset eof to pre-error position.
|
||||||
|
|
||||||
|
@ -392,7 +396,7 @@ plus2fcb lda #$02 on exit both a and y = XDOS.FCBPtr+2.
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XDOS.Write jsr mvcbytes first determine if requested write is legal.
|
XDOS.Write jsr mvcbytes first determine if requested write is legal.
|
||||||
pha
|
pha
|
||||||
jsr calcmrk save a copy of eof to old eof, set/clr
|
jsr XDOS.CalcNewMark save a copy of eof to old eof, set/clr
|
||||||
jsr wadjeof carry to determine if new mark > eof.
|
jsr wadjeof carry to determine if new mark > eof.
|
||||||
pla get attributes again.
|
pla get attributes again.
|
||||||
and #$02 is write enabled ?
|
and #$02 is write enabled ?
|
||||||
|
@ -410,7 +414,7 @@ L4462 jsr XDOS.TestWP otherwise, make sure device is not
|
||||||
|
|
||||||
jmp rwdone else do nothing.
|
jmp rwdone else do nothing.
|
||||||
|
|
||||||
L4472 jsr mvdbufr move the user's buffer ptr to bfm zero
|
L4472 jsr XDOS.GetUserBuf move the user's buffer ptr to bfm zero
|
||||||
cmp #$04 page area, also get storage type.
|
cmp #$04 page area, also get storage type.
|
||||||
bcs L445E if not tree, return an access error.
|
bcs L445E if not tree, return an access error.
|
||||||
|
|
||||||
|
@ -498,10 +502,10 @@ L4507 iny page crossed ?
|
||||||
|
|
||||||
lda sos+1 test for end of buffer
|
lda sos+1 test for end of buffer
|
||||||
inc ZP.UserBuf+1 but first adjust user buffer pointer
|
inc ZP.UserBuf+1 but first adjust user buffer pointer
|
||||||
inc tposlh and position
|
inc XDOS.TmpPos+1 and position
|
||||||
bne L451C
|
bne L451C
|
||||||
|
|
||||||
inc tposhi
|
inc XDOS.TmpPos+2
|
||||||
bne L451C
|
bne L451C
|
||||||
|
|
||||||
lda #MLI.E.BEYEOF out of range if > 32MB
|
lda #MLI.E.BEYEOF out of range if > 32MB
|
||||||
|
@ -532,14 +536,14 @@ L4539 iny and position
|
||||||
bne L4546
|
bne L4546
|
||||||
|
|
||||||
inc ZP.UserBuf+1 inc pointers
|
inc ZP.UserBuf+1 inc pointers
|
||||||
inc tposlh
|
inc XDOS.TmpPos+1
|
||||||
bne L4546
|
bne L4546
|
||||||
|
|
||||||
inc tposhi
|
inc XDOS.TmpPos+2
|
||||||
|
|
||||||
L4546 bit setvflg set v flag
|
L4546 bit setvflg set v flag
|
||||||
|
|
||||||
L4549 sty tposll save low position
|
L4549 sty XDOS.TmpPos save low position
|
||||||
stx rwreql and remainder of request count.
|
stx rwreql and remainder of request count.
|
||||||
php save statuses
|
php save statuses
|
||||||
|
|
||||||
|
@ -547,7 +551,7 @@ L4549 sty tposll save low position
|
||||||
jsr XDOS.SetFCBStatus
|
jsr XDOS.SetFCBStatus
|
||||||
|
|
||||||
clc adjust user's low buffer address
|
clc adjust user's low buffer address
|
||||||
lda tposll
|
lda XDOS.TmpPos
|
||||||
adc ZP.UserBuf
|
adc ZP.UserBuf
|
||||||
sta ZP.UserBuf
|
sta ZP.UserBuf
|
||||||
bcc L4564
|
bcc L4564
|
||||||
|
@ -576,7 +580,7 @@ topdown jsr swapdown make current 1st block an entry in new
|
||||||
L457A jsr alcwblk get another block address for the sap
|
L457A jsr alcwblk get another block address for the sap
|
||||||
bcs L45B1 level index. branch if errors.
|
bcs L45B1 level index. branch if errors.
|
||||||
|
|
||||||
lda tposhi calculate position of new index block
|
lda XDOS.TmpPos+2 calculate position of new index block
|
||||||
lsr in the top of the tree.
|
lsr in the top of the tree.
|
||||||
tay
|
tay
|
||||||
lda scrtch get address of newly allocated index
|
lda scrtch get address of newly allocated index
|
||||||
|
@ -686,9 +690,9 @@ XDOS.TestWPA sta ZP.UNITNUM make the device status call
|
||||||
|
|
||||||
.1 jmp XDOS.PopBlkNumRTS restore the block #
|
.1 jmp XDOS.PopBlkNumRTS restore the block #
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XDOS.Tpos2Y lda tposhi get index to next block address
|
XDOS.Tpos2Y lda XDOS.TmpPos+2 get index to next block address
|
||||||
lsr
|
lsr
|
||||||
lda tposlh
|
lda XDOS.TmpPos+1
|
||||||
ror
|
ror
|
||||||
tay index to address = int(pos/512)
|
tay index to address = int(pos/512)
|
||||||
XDOS.Tpos2Y.RTS rts
|
XDOS.Tpos2Y.RTS rts
|
||||||
|
|
|
@ -300,7 +300,7 @@ L47EF lda XDOS.FCBs+FCB.EOF,y
|
||||||
ldx #$02
|
ldx #$02
|
||||||
|
|
||||||
L47FD lda (ZP.A3L),y position mark to new eof
|
L47FD lda (ZP.A3L),y position mark to new eof
|
||||||
sta tposll,x
|
sta XDOS.TmpPos,x
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
bpl L47FD
|
bpl L47FD
|
||||||
|
@ -308,7 +308,7 @@ L47FD lda (ZP.A3L),y position mark to new eof
|
||||||
ldx #$02 point to 3rd byte.
|
ldx #$02 point to 3rd byte.
|
||||||
|
|
||||||
L4808 lda oldeof,x see if eof moved backwards so blocks
|
L4808 lda oldeof,x see if eof moved backwards so blocks
|
||||||
cmp tposll,x can be released.
|
cmp XDOS.TmpPos,x can be released.
|
||||||
bcc eofset (branch if not)
|
bcc eofset (branch if not)
|
||||||
bne purge branch if blocks to be released
|
bne purge branch if blocks to be released
|
||||||
|
|
||||||
|
@ -344,7 +344,7 @@ purge jsr XDOS.FlushOne make sure file is current
|
||||||
ldx #$02
|
ldx #$02
|
||||||
|
|
||||||
L4840 lda XDOS.FCBs+FCB.MARK,y
|
L4840 lda XDOS.FCBs+FCB.MARK,y
|
||||||
cmp tposll,x compare until not equal or carry clear.
|
cmp XDOS.TmpPos,x compare until not equal or carry clear.
|
||||||
bcc L485F branch if eof > mark.
|
bcc L485F branch if eof > mark.
|
||||||
|
|
||||||
bne L484E branch if eof < mark.
|
bne L484E branch if eof < mark.
|
||||||
|
@ -356,7 +356,7 @@ L4840 lda XDOS.FCBs+FCB.MARK,y
|
||||||
L484E ldy XDOS.FCBPtr
|
L484E ldy XDOS.FCBPtr
|
||||||
ldx #$00
|
ldx #$00
|
||||||
|
|
||||||
L4853 lda tposll,x fake position, correct position will
|
L4853 lda XDOS.TmpPos,x fake position, correct position will
|
||||||
sta XDOS.FCBs+FCB.MARK,y be made below...
|
sta XDOS.FCBs+FCB.MARK,y be made below...
|
||||||
iny
|
iny
|
||||||
inx
|
inx
|
||||||
|
@ -364,13 +364,13 @@ L4853 lda tposll,x fake position, correct position will
|
||||||
bne L4853
|
bne L4853
|
||||||
|
|
||||||
L485F jsr XDOS.GetFreeCntVCBX force free block count before releasing
|
L485F jsr XDOS.GetFreeCntVCBX force free block count before releasing
|
||||||
lda tposll blocks. prepare for purge of excess...
|
lda XDOS.TmpPos blocks. prepare for purge of excess...
|
||||||
sta dseed all blocks and bytes beyond new eof
|
sta dseed all blocks and bytes beyond new eof
|
||||||
lda tposlh must be zero'd
|
lda XDOS.TmpPos+1 must be zero'd
|
||||||
sta dsap
|
sta dsap
|
||||||
and #$01
|
and #$01
|
||||||
sta dseed+1
|
sta dseed+1
|
||||||
lda tposhi
|
lda XDOS.TmpPos+2
|
||||||
lsr
|
lsr
|
||||||
sta dtree
|
sta dtree
|
||||||
ror dsap pass position in terms of block & bytes.
|
ror dsap pass position in terms of block & bytes.
|
||||||
|
@ -396,9 +396,9 @@ L485F jsr XDOS.GetFreeCntVCBX force free block count before releasing
|
||||||
L489F sta dseed+1
|
L489F sta dseed+1
|
||||||
L48A2 ldy XDOS.FCBPtr also must pass file's 1st block address.
|
L48A2 ldy XDOS.FCBPtr also must pass file's 1st block address.
|
||||||
lda XDOS.FCBs+FCB.1stBLK,y
|
lda XDOS.FCBs+FCB.1stBLK,y
|
||||||
sta firstbl
|
sta XDOS.1stBLK
|
||||||
lda XDOS.FCBs+FCB.1stBLK+1,y
|
lda XDOS.FCBs+FCB.1stBLK+1,y
|
||||||
sta firstbh
|
sta XDOS.1stBLK+1
|
||||||
stz deblock lastly, initialize # of blocks to
|
stz deblock lastly, initialize # of blocks to
|
||||||
stz deblock+1 be free'd.
|
stz deblock+1 be free'd.
|
||||||
jsr detree deallocate blocks from tree.
|
jsr detree deallocate blocks from tree.
|
||||||
|
@ -410,7 +410,7 @@ L48A2 ldy XDOS.FCBPtr also must pass file's 1st block address.
|
||||||
ldx #$ff
|
ldx #$ff
|
||||||
|
|
||||||
L48C2 inx
|
L48C2 inx
|
||||||
lda firstbl,x
|
lda XDOS.1stBLK,x
|
||||||
sta XDOS.FCBs+FCB.1stBLK,y move in possible new first file block
|
sta XDOS.FCBs+FCB.1stBLK,y move in possible new first file block
|
||||||
lda XDOS.FCBs+FCB.UBLK,y address. adjust usage count also
|
lda XDOS.FCBs+FCB.UBLK,y address. adjust usage count also
|
||||||
sbc deblock,x
|
sbc deblock,x
|
||||||
|
@ -431,7 +431,7 @@ L48C2 inx
|
||||||
ldx #2
|
ldx #2
|
||||||
|
|
||||||
L48F2 lda XDOS.FCBs+FCB.MARK,y tell 'rdposn' to go to correct
|
L48F2 lda XDOS.FCBs+FCB.MARK,y tell 'rdposn' to go to correct
|
||||||
sta tposll,x
|
sta XDOS.TmpPos,x
|
||||||
eor #$80 position from incorrect place.
|
eor #$80 position from incorrect place.
|
||||||
sta XDOS.FCBs+FCB.MARK,y
|
sta XDOS.FCBs+FCB.MARK,y
|
||||||
dey
|
dey
|
||||||
|
@ -500,7 +500,7 @@ XDOS.GetFileInfo
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.1 lda XDOS.DE.Filename transfer bytes from internal order to
|
.1 lda XDOS.DE.Filename transfer bytes from internal order to
|
||||||
lsr call spec via 'inftabl' translation
|
lsr call spec via XDOS.DE2FINFO translation
|
||||||
lsr table but first change storage type to
|
lsr table but first change storage type to
|
||||||
lsr external (low nibble) format.
|
lsr external (low nibble) format.
|
||||||
lsr
|
lsr
|
||||||
|
@ -508,7 +508,7 @@ XDOS.GetFileInfo
|
||||||
|
|
||||||
ldy #$11 index to last of user's spec table.
|
ldy #$11 index to last of user's spec table.
|
||||||
|
|
||||||
.2 lda inftabl-3,y
|
.2 lda XDOS.DE2FINFO-3,y
|
||||||
and #$7F strip bit used by setinfo
|
and #$7F strip bit used by setinfo
|
||||||
tax
|
tax
|
||||||
lda XDOS.DE.Filename,x move directory info to call spec. table
|
lda XDOS.DE.Filename,x move directory info to call spec. table
|
||||||
|
@ -533,7 +533,7 @@ XDOS.SetFileInfo
|
||||||
|
|
||||||
ldy #$0D init pointer to user supplied list.
|
ldy #$0D init pointer to user supplied list.
|
||||||
|
|
||||||
.1 ldx inftabl-3,y get index to corresponding 'd.' table.
|
.1 ldx XDOS.DE2FINFO-3,y get index to corresponding 'd.' table.
|
||||||
bmi .2 branch if parameter can't be set.
|
bmi .2 branch if parameter can't be set.
|
||||||
|
|
||||||
lda (ZP.A3L),y
|
lda (ZP.A3L),y
|
||||||
|
@ -905,9 +905,9 @@ L4B45 lda GP.DEVNUM last device used.
|
||||||
bcs L4B67 before going thru deallocation.
|
bcs L4B67 before going thru deallocation.
|
||||||
|
|
||||||
lda XDOS.DE.KeyPtr 'detree' needs first block address
|
lda XDOS.DE.KeyPtr 'detree' needs first block address
|
||||||
sta firstbl
|
sta XDOS.1stBLK
|
||||||
lda XDOS.DE.KeyPtr+1
|
lda XDOS.DE.KeyPtr+1
|
||||||
sta firstbh
|
sta XDOS.1stBLK+1
|
||||||
lda XDOS.DE.Filename find out which storage type.
|
lda XDOS.DE.Filename find out which storage type.
|
||||||
and #$F0 strip off name length.
|
and #$F0 strip off name length.
|
||||||
cmp #$40 is it a seed, sapling or tree ?
|
cmp #$40 is it a seed, sapling or tree ?
|
||||||
|
@ -927,9 +927,9 @@ XDOS.DestroyFile
|
||||||
|
|
||||||
* lda #$00 set 'detree' input variables, must be
|
* lda #$00 set 'detree' input variables, must be
|
||||||
|
|
||||||
L4B6F stz stortyp,x in order: deblock, dtree, dsap, dseed.
|
.1 stz stortyp,x in order: deblock, dtree, dsap, dseed.
|
||||||
dex
|
dex
|
||||||
bne L4B6F loop until all zero'd.
|
bne .1 loop until all zero'd.
|
||||||
|
|
||||||
lda #$02 this avoids an extra file i/o and pre-
|
lda #$02 this avoids an extra file i/o and pre-
|
||||||
sta dseed+1 vents destruction of any deleted data.
|
sta dseed+1 vents destruction of any deleted data.
|
||||||
|
@ -938,8 +938,8 @@ L4B6F stz stortyp,x in order: deblock, dtree, dsap, dseed.
|
||||||
dec delflag reset flag.
|
dec delflag reset flag.
|
||||||
bcs L4B93 (de-evolution)
|
bcs L4B93 (de-evolution)
|
||||||
|
|
||||||
L4B85 ldx firstbh
|
L4B85 lda XDOS.1stBLK now deallocate seed.
|
||||||
lda firstbl now deallocate seed.
|
ldx XDOS.1stBLK+1
|
||||||
jsr XDOS.DeallocAX
|
jsr XDOS.DeallocAX
|
||||||
bcs L4B93
|
bcs L4B93
|
||||||
|
|
||||||
|
@ -961,7 +961,7 @@ L4BAF cmp #$01 adjust carry accordingly
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
L4BCD bcc L4B85 branch widened (always taken)
|
L4BCD bcc L4B85 branch widened (always taken)
|
||||||
|
*--------------------------------------
|
||||||
XDOS.DestroyDir cmp #$D0 is this a directory file ?
|
XDOS.DestroyDir cmp #$D0 is this a directory file ?
|
||||||
bne L4C1B no, file incompatible.
|
bne L4C1B no, file incompatible.
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ NEW
|
||||||
*
|
*
|
||||||
* on entry:
|
* on entry:
|
||||||
* stortype = storage type in upper nibble, lower nibble is undisturbed.
|
* stortype = storage type in upper nibble, lower nibble is undisturbed.
|
||||||
* firstbl & firstbh = first block of file (index or data).
|
* XDOS.1stBLK = first block of file (index or data).
|
||||||
* deblock = 0
|
* deblock = 0
|
||||||
* dtree = ptr to 1st block with data to be deallocated at tree level.
|
* dtree = ptr to 1st block with data to be deallocated at tree level.
|
||||||
* dsap = ptr to 1st block at sapling level.
|
* dsap = ptr to 1st block at sapling level.
|
||||||
|
@ -14,7 +14,7 @@ NEW
|
||||||
*
|
*
|
||||||
* on exit:
|
* on exit:
|
||||||
* stortype = modified result of storage type (if applicable).
|
* stortype = modified result of storage type (if applicable).
|
||||||
* firstbl & h = modified if storage type changed.
|
* XDOS.1stBLK = modified if storage type changed.
|
||||||
* deblock = total number of blocks freed at all levels.
|
* deblock = total number of blocks freed at all levels.
|
||||||
* dtree, dsap, deseed unchanged.
|
* dtree, dsap, deseed unchanged.
|
||||||
*
|
*
|
||||||
|
@ -204,16 +204,16 @@ L4D4F jmp XDOS.WriteGBuf update data block to disk.
|
||||||
|
|
||||||
L4D52 rts return error status.
|
L4D52 rts return error status.
|
||||||
|
|
||||||
drdfrst lda firstbl read specified 1st block into XDOS.GBuf
|
drdfrst lda XDOS.1stBLK read specified 1st block into XDOS.GBuf
|
||||||
ldx firstbh
|
ldx XDOS.1stBLK+1
|
||||||
jmp XDOS.ReadGBufAX go read it
|
jmp XDOS.ReadGBufAX go read it
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* beware that dealloc may bring in a new bitmap block and may destroy
|
* beware that dealloc may bring in a new bitmap block and may destroy
|
||||||
* locations 46 and 47 which are used to point to the current index block.
|
* locations 46 and 47 which are used to point to the current index block.
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
shrink ldx firstbh first deallocate top index block
|
shrink ldx XDOS.1stBLK+1 first deallocate top index block
|
||||||
phx
|
phx
|
||||||
lda firstbl
|
lda XDOS.1stBLK
|
||||||
pha save block address of this index block.
|
pha save block address of this index block.
|
||||||
jsr XDOS.DeallocAX free it from the bitmap
|
jsr XDOS.DeallocAX free it from the bitmap
|
||||||
pla
|
pla
|
||||||
|
@ -223,9 +223,9 @@ shrink ldx firstbh first deallocate top index block
|
||||||
bcs L4D1E report errors.
|
bcs L4D1E report errors.
|
||||||
|
|
||||||
lda XDOS.GBuf get # of new 1st block from old index.
|
lda XDOS.GBuf get # of new 1st block from old index.
|
||||||
sta firstbl
|
sta XDOS.1stBLK
|
||||||
lda XDOS.GBuf+$100
|
lda XDOS.GBuf+$100
|
||||||
sta firstbh
|
sta XDOS.1stBLK+1
|
||||||
ldy #$00
|
ldy #$00
|
||||||
jsr XDOS.SwapGBUFY flip that one entry in old top index.
|
jsr XDOS.SwapGBUFY flip that one entry in old top index.
|
||||||
sec now change file type,
|
sec now change file type,
|
||||||
|
@ -830,7 +830,7 @@ XDOS.CmdFlags .HS A0A1A2
|
||||||
.HS 50515253
|
.HS 50515253
|
||||||
.HS 94959697
|
.HS 94959697
|
||||||
|
|
||||||
cmdtable .DA XDOS.Create
|
XDOS.CmdJmps .DA XDOS.Create
|
||||||
.DA XDOS.Destroy
|
.DA XDOS.Destroy
|
||||||
.DA XDOS.Rename
|
.DA XDOS.Rename
|
||||||
.DA XDOS.SetFileInfo
|
.DA XDOS.SetFileInfo
|
||||||
|
@ -869,13 +869,18 @@ xdosver .HS 00
|
||||||
compat .HS 00
|
compat .HS 00
|
||||||
.HS C3270D000000
|
.HS C3270D000000
|
||||||
.FIN
|
.FIN
|
||||||
rootstuf .HS 0F02000400000800
|
rootstuf .HS 0F.0200.0400.000800
|
||||||
whichbit .HS 8040201008040201
|
whichbit .HS 8040201008040201
|
||||||
ofcbtbl .HS 0C0D1819151617
|
XDOS.DE2FCB .DA #FCB.1stBLK+0
|
||||||
inftabl .HS 1E101F2080939421
|
.DA #FCB.1stBLK+1
|
||||||
.HS 22232418191A1B
|
.DA #FCB.UBLK+0
|
||||||
deathmsg .AS -"SYS ERR-$0"
|
.DA #FCB.UBLK+1
|
||||||
deathmsg.LEN .EQ *-deathmsg
|
.DA #FCB.EOF+0
|
||||||
|
.DA #FCB.EOF+1
|
||||||
|
.DA #FCB.EOF+2
|
||||||
|
XDOS.DE2FINFO .HS 1E.10.1F.20.80.93.94.21.22.23.24.18.19.1A.1B
|
||||||
|
XDOS.SysErrMsg .AS -"SYS ERR-$0"
|
||||||
|
XDOS.SysErrMsgL .EQ *-XDOS.SysErr
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XDOS.DATA .DUMMY
|
XDOS.DATA .DUMMY
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -943,9 +948,7 @@ XDOS.BM.DevID .HS 00
|
||||||
XDOS.BM.BlkNum .HS 0000
|
XDOS.BM.BlkNum .HS 0000
|
||||||
XDOS.BM.Idx .HS 00
|
XDOS.BM.Idx .HS 00
|
||||||
|
|
||||||
tposll .HS 00
|
XDOS.TmpPos .HS 000000
|
||||||
tposlh .HS 00
|
|
||||||
tposhi .HS 00
|
|
||||||
|
|
||||||
rwreql .HS 00
|
rwreql .HS 00
|
||||||
rwreqh .HS 00
|
rwreqh .HS 00
|
||||||
|
@ -968,8 +971,7 @@ cferr .HS 00
|
||||||
|
|
||||||
* deallocation temporary variables
|
* deallocation temporary variables
|
||||||
|
|
||||||
firstbl .HS 00
|
XDOS.1stBLK .HS 0000
|
||||||
firstbh .HS 00
|
|
||||||
stortyp .HS 00
|
stortyp .HS 00
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
deblock .HS 0000
|
deblock .HS 0000
|
||||||
|
|
|
@ -79,7 +79,7 @@ CS.INIT lda DevID
|
||||||
stx hBuf
|
stx hBuf
|
||||||
|
|
||||||
>STYA IOCTL+S.IOCTL.BUFPTR for CS.INIT.DEV
|
>STYA IOCTL+S.IOCTL.BUFPTR for CS.INIT.DEV
|
||||||
|
|
||||||
jsr CS.INIT.DEV
|
jsr CS.INIT.DEV
|
||||||
bcs .90
|
bcs .90
|
||||||
|
|
||||||
|
|
|
@ -244,7 +244,7 @@ MSG.TCPIPERR .AZ "TELNETD:TCP/IP Not initialized properly."
|
||||||
MSG.SKTERR .AZ "TELNETD:Listen Error."
|
MSG.SKTERR .AZ "TELNETD:Listen Error."
|
||||||
MSG.INCOMING .CZ "TELNETD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n"
|
MSG.INCOMING .CZ "TELNETD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
NOD.Template .AZ "/tmp/tty%h"
|
NOD.Template .AZ "/dev/tty%h"
|
||||||
CMD.Template .AZ "${ROOT}sbin/getty -E %s ${ROOT}sbin/login"
|
CMD.Template .AZ "${ROOT}sbin/getty -E %s ${ROOT}sbin/login"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
|
SA.LOCAL .DA #AF.INET S.SOCKADDR.AF
|
||||||
|
|
|
@ -49,7 +49,7 @@ Dev.Detect >STYA ZPArgPtr
|
||||||
|
|
||||||
.1 and #$0f
|
.1 and #$0f
|
||||||
tay
|
tay
|
||||||
lda A2osX.S,y
|
lda A2osX.S-1,y
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
ldx #DEVSIG.Length-1
|
ldx #DEVSIG.Length-1
|
||||||
|
@ -112,7 +112,7 @@ Dev.Detect >STYA ZPArgPtr
|
||||||
and #$0F
|
and #$0F
|
||||||
tay
|
tay
|
||||||
lda #A2osX.S.COM
|
lda #A2osX.S.COM
|
||||||
sta A2osX.S,y
|
sta A2osX.S-1,y
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
|
|
||||||
|
|
|
@ -144,7 +144,7 @@ Dev.Detect >STYA ZPArgPtr
|
||||||
|
|
||||||
ldx DEVSLOT0x
|
ldx DEVSLOT0x
|
||||||
lda #A2osX.S.NIC
|
lda #A2osX.S.NIC
|
||||||
sta A2osX.S,x
|
sta A2osX.S-1,x
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -49,17 +49,15 @@ NEW
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Public Vars
|
* Public Vars
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.LIST ON
|
|
||||||
.BS A2osX.KCONFIG-*
|
.BS A2osX.KCONFIG-*
|
||||||
.LIST OFF
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Kernel Config Block
|
* Kernel Config Block
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA #6 A2osX.HZ=60hz
|
.DA #6 A2osX.HZ : 60hz
|
||||||
.DA #2 A2osX.TTYDEVS=2
|
.DA #2 A2osX.TTYDEVS : 2
|
||||||
.DA #0 ChRoot/Preemptive Disabled
|
.DA #0 A2osX.F : ChRoot/Preemptive Disabled
|
||||||
.HS 000000000000 spare
|
.BS A2osX.S-*
|
||||||
.HS 00000000000000 All Slots marked as "Free"
|
.BS 7 All Slots marked as "Free"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.gp
|
SAVE usr/src/sys/kernel.s.gp
|
||||||
|
|
|
@ -139,7 +139,9 @@ Kernel.Init2 sei
|
||||||
>LDYAI MSG.FX
|
>LDYAI MSG.FX
|
||||||
jsr PrintFYA
|
jsr PrintFYA
|
||||||
|
|
||||||
.5 lda A2osX.HZ
|
.5 sta IO.SETALTZP
|
||||||
|
lda A2osX.HZ
|
||||||
|
sta IO.CLRALTZP
|
||||||
pha
|
pha
|
||||||
>LDYAI MSG.HZ
|
>LDYAI MSG.HZ
|
||||||
jsr PrintFYA
|
jsr PrintFYA
|
||||||
|
@ -293,6 +295,15 @@ KConfigLoad >LDYAI MSG.KCREAD
|
||||||
pla
|
pla
|
||||||
plp
|
plp
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
ldx #15
|
||||||
|
|
||||||
|
.3 lda A2osX.KCONFIG,x
|
||||||
|
sta IO.SETALTZP
|
||||||
|
sta A2osX.KCONFIG,x
|
||||||
|
sta IO.CLRALTZP
|
||||||
|
dex
|
||||||
|
bpl .3
|
||||||
|
|
||||||
>LDYAI MSG.KCREAD.OK
|
>LDYAI MSG.KCREAD.OK
|
||||||
bra .8
|
bra .8
|
||||||
|
@ -619,7 +630,7 @@ CPU.Init.Z80 >PUSHWI MSG.Z80
|
||||||
sta A2osX.Z80SLOT
|
sta A2osX.Z80SLOT
|
||||||
tax
|
tax
|
||||||
lda #A2osX.S.Z80
|
lda #A2osX.S.Z80
|
||||||
sta A2osX.S,x
|
sta A2osX.S-1,x
|
||||||
|
|
||||||
>PUSHWI MSG.Z80.OK
|
>PUSHWI MSG.Z80.OK
|
||||||
lda A2osX.Z80SLOT
|
lda A2osX.Z80SLOT
|
||||||
|
@ -845,7 +856,7 @@ DevMgrInit >LDYAI MSG.DEV
|
||||||
lda #A2osX.S.BLK
|
lda #A2osX.S.BLK
|
||||||
|
|
||||||
.7 ldx FD.BDEV+S.FD.DEV.BUSID
|
.7 ldx FD.BDEV+S.FD.DEV.BUSID
|
||||||
sta A2osX.S,x
|
sta A2osX.S-1,x
|
||||||
|
|
||||||
.8 dec .1+1
|
.8 dec .1+1
|
||||||
bmi .80
|
bmi .80
|
||||||
|
@ -907,7 +918,7 @@ DevMgr.VXD >LDYAI VSD.PATCH
|
||||||
bit IO.RRAMWRAMBNK1
|
bit IO.RRAMWRAMBNK1
|
||||||
|
|
||||||
lda #A2osX.S.VXD
|
lda #A2osX.S.VXD
|
||||||
sta A2osX.S,x
|
sta A2osX.S-1,x
|
||||||
|
|
||||||
plp
|
plp
|
||||||
|
|
||||||
|
@ -1109,7 +1120,7 @@ IrqMgr.TClk stz ZPPtr1 Try finding a TClock Card...
|
||||||
tay get $n0
|
tay get $n0
|
||||||
sty IRQ.n0
|
sty IRQ.n0
|
||||||
lda #A2osX.S.CLK
|
lda #A2osX.S.CLK
|
||||||
sta A2osX.S,x
|
sta A2osX.S-1,x
|
||||||
|
|
||||||
lda #$40+$20 Enable interrupt + 64Hz
|
lda #$40+$20 Enable interrupt + 64Hz
|
||||||
sta $c080,y
|
sta $c080,y
|
||||||
|
|
|
@ -154,7 +154,7 @@ K.MKFIFO jsr STAT.PM
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 lda STAT.TMPFIFO,y
|
.1 lda STAT.DEVFIFO,y
|
||||||
sta (ZPPtr1),y fill pathname buffer
|
sta (ZPPtr1),y fill pathname buffer
|
||||||
iny
|
iny
|
||||||
cpy #9
|
cpy #9
|
||||||
|
@ -283,7 +283,7 @@ STAT.PM >PULLW K.S.STAT+S.STAT.MODE
|
||||||
>PULLW ZPPtr1 pathname
|
>PULLW ZPPtr1 pathname
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STAT.TMPFIFO .AS "/tmp/fifo"
|
STAT.DEVFIFO .AS "/dev/fifo"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.stat
|
SAVE usr/src/sys/kernel.s.stat
|
||||||
|
|
|
@ -359,43 +359,57 @@ TERMX.CUF clc
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.BS
|
TERMX.CUB sec no wrap
|
||||||
TERMX.CUB ldy #S.DCB.TTY.CH
|
|
||||||
lda (ZPDCBPtr),y
|
|
||||||
beq TERMX.BS.8
|
|
||||||
|
|
||||||
dec
|
.HS 90 BCC
|
||||||
sta (ZPDCBPtr),y
|
|
||||||
|
|
||||||
TERMX.BS.8 clc
|
TERMX.BS clc wrap
|
||||||
|
|
||||||
|
jsr TERMX.BS1
|
||||||
|
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.DEL ldy #S.DCB.TTY.CH
|
TERMX.BS1 ldy #S.DCB.TTY.CH
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
dec
|
dec
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
bra .3
|
|
||||||
|
|
||||||
.1 ldy #S.DCB.TTY.CV
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 bcs .9 no wrap
|
||||||
|
|
||||||
|
ldy #S.DCB.TTY.CV
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
beq TERMX.BS.8
|
sec
|
||||||
|
beq .9
|
||||||
|
|
||||||
dec
|
dec
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
ldy #S.DCB.TTY.CH
|
ldy #S.DCB.TTY.CH
|
||||||
lda #79
|
lda #79
|
||||||
sta (ZPDCBPtr),y S.DCB.TTY.CH
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
|
clc
|
||||||
|
|
||||||
.3 lda #C.SPACE
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
TERMX.DEL clc wrap
|
||||||
|
jsr TERMX.BS1
|
||||||
|
bcs TERMX.CR.8
|
||||||
|
|
||||||
|
lda #C.SPACE
|
||||||
jmp SetCharAtCurPos
|
jmp SetCharAtCurPos
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.CR lda #0
|
TERMX.CR lda #0
|
||||||
ldy #S.DCB.TTY.CH
|
ldy #S.DCB.TTY.CH
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
clc
|
|
||||||
|
TERMX.CR.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.SO sec
|
TERMX.SO sec
|
||||||
|
|
|
@ -38,7 +38,7 @@ UNISTD.Open ldx #5 /dev/
|
||||||
jsr K.GetDevByName
|
jsr K.GetDevByName
|
||||||
bcc .6
|
bcc .6
|
||||||
|
|
||||||
.2 ldx #1
|
ldx #1
|
||||||
|
|
||||||
.3 lda FILEs.hFD-1,x
|
.3 lda FILEs.hFD-1,x
|
||||||
beq .5
|
beq .5
|
||||||
|
@ -69,7 +69,11 @@ UNISTD.Open ldx #5 /dev/
|
||||||
cpx #K.FILE.MAX+1
|
cpx #K.FILE.MAX+1
|
||||||
bcc .3
|
bcc .3
|
||||||
|
|
||||||
jmp FS.OPEN.REG
|
lda #MLI.E.NODEV
|
||||||
|
* sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
.2 jmp FS.OPEN.REG
|
||||||
|
|
||||||
.6 jsr DEV.GetPDrv
|
.6 jsr DEV.GetPDrv
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user