Kernel 0.94+

This commit is contained in:
Rémy GIBERT 2020-12-15 14:23:22 +01:00
parent fdca1edf79
commit 0f9ebec8be
83 changed files with 1296 additions and 1229 deletions

View File

@ -491,14 +491,11 @@ A = Child PSID
Load TXT a file in memory (with ending 0)
## C
`int loadtxtfile ( const char * filename, short int flags, short int ftype, int auxtype );`
`int loadtxtfile ( const char * filename );`
## ASM
**In:**
`>PUSHW filename`
`>PUSHB flags`
`>PUSHB ftype`
`>PUSHW auxtype`
`>LDYA filename`
`>SYSCALL loadtxtfile`
## RETURN VALUE

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -47,7 +47,7 @@ CS.INIT clc
rts
*--------------------------------------
CS.RUN ldy #S.PS.ARGC
lda (pPs),y
lda (pPS),y
beq CS.RUN.USAGE
jsr CS.RUN.GetInfo

View File

@ -170,11 +170,7 @@ CS.RUN.ARGS inc ArgIndex
sec QUIT Process
rts
*--------------------------------------
CS.RUN.LoadFile >PUSHYA
>PUSHBI O.RDONLY
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL LoadTxtFile
CS.RUN.LoadFile >SYSCALL LoadTxtFile
bcs .9
phx

View File

@ -140,9 +140,13 @@ CS.RUN lda #C.SPACE
.80 ldy #S.PS.hStdIn
lda (pPS),y
tax
lda OF.Table.hFD-1,x
lsr
bcs .97
lda Nod.Table.hFD-2,x
>SYSCALL GetMemPtr
>STYA ZPPtr1
lda (ZPPtr1)
cmp #S.FD.T.PIPE
bne .97

View File

@ -8,7 +8,6 @@ NEW
.INB inc/macros.i
.INB inc/a2osx.i
.INB inc/mli.e.i
.INB inc/kernel.i
.INB inc/libblkdev.i
*--------------------------------------
.DUMMY
@ -768,7 +767,7 @@ Disk2.XD .DA 640 BlkCnt
Disk2.HD .DA 1280 BlkCnt
.DA #80 TrkCnt
.DA #2 Stepping
.DA ##194 VolNum
.DA #194 VolNum
.DA #$80 AltBB
.DA #1 HeadCnt
.BS 1
@ -776,7 +775,7 @@ Disk2.HD .DA 1280 BlkCnt
Disk2.HXD .DA 1280 BlkCnt
.DA #80 TrkCnt
.DA #2 Stepping
.DA ##194 VolNum
.DA #194 VolNum
.DA #$80 AltBB
.DA #1 HeadCnt
.BS 1

109
BIN/FORTH.S.GFX.txt Normal file
View File

@ -0,0 +1,109 @@
NEW
AUTO 3,1
*--------------------------------------
GFX.Open >PUSHBI 0
>LDYA L.DEV.GFX
>SYSCALL Open
bcs .9
>STA.G hDevGFX
* ldy #S.PS.hStdIn
* lda (pPS),y
* >SYSCALL GetMemPtr
* >STYA ZPPtr1
* ldy #S.FD.DEV.DEVID
* lda (ZPPtr1),y
* >PUSHA
* >PUSHBI IOCTL.CONTROL
* >PUSHWI 0
* >SYSCALL IOCTL
.9 rts
*--------------------------------------
GFX.Close >LDA.G hDevGFX
beq .9
>SYSCALL Close
.9 rts
*--------------------------------------
* (Y X C)
*--------------------------------------
GFX.PLOT lda #S.CB.CMD.SETPIXEL
>STA.G GFX.CB+S.CB.CMD
lda #S.CB.OP.SET
>STA.G GFX.CB+S.CB.OP
lda #S.CB.M.C16
>STA.G GFX.CB+S.CB.M
>PULLA
>STA.G GFX.CB+S.CB.COLOR
>PULLA
ldx #4
ldy #GFX.CB+S.CB.X1+3
.1 >PULLA
sta (pData),y
dey
dex
bne .1
>PUSHB.G hDevGFX
>PUSHBI IOCTL.WRITE
>PUSHEA.G GFX.CB
>SYSCALL IOCTL
lda pStack
clc
adc #6
sta pStack
rts
*--------------------------------------
* (Y2 X2 Y1 X1 C)
*--------------------------------------
GFX.RECT lda #S.CB.CMD.FILLRECT
>STA.G GFX.CB+S.CB.CMD
lda #S.CB.OP.SET
>STA.G GFX.CB+S.CB.OP
lda #S.CB.M.C16
>STA.G GFX.CB+S.CB.M
>PULLA
>STA.G GFX.CB+S.CB.COLOR
>PULLA
ldx #8
ldy #GFX.CB+S.CB.X1+7
.1 >PULLA
sta (pData),y
dey
dex
bne .1
>PUSHB.G hDevGFX
>PUSHBI IOCTL.WRITE
>PUSHEA.G GFX.CB
>SYSCALL IOCTL
lda pStack
clc
adc #10
sta pStack
rts
*--------------------------------------
*--------------------------------------
*--------------------------------------
*--------------------------------------
MAN
SAVE usr/src/bin/forth.s.gfx
LOAD usr/src/bin/forth.s
ASM

View File

@ -4,9 +4,6 @@ NEW
KW.Lookup >LDYA L.KEYWORDS
>STYA ZPPtr1
>LDYA ZPCLBufPtr
>STYA ZPPtr2
ldx #0
.1 ldy #$ff
@ -51,7 +48,7 @@ KW.Lookup >LDYA L.KEYWORDS
rts
.7 iny
lda (ZPPtr2),y Get Src text char...
lda (ZPCLBufPtr),y Get Src text char...
beq .9 end of text
jmp IsSpaceOrCR CS=end of valid chars
@ -761,7 +758,7 @@ KW.PRINT >LDYAI 256
>SYSCALL PutS
pla
>SYSCALL freemem
>SYSCALL FreeMem
.9 rts
*--------------------------------------

View File

@ -9,6 +9,7 @@ NEW
.INB inc/a2osx.i
.INB inc/mli.i
.INB inc/mli.e.i
.INB inc/gfx.i
*--------------------------------------
CODE.SIZE .EQ 2048
DATA.SIZE .EQ 2048
@ -73,6 +74,7 @@ CS.START cld
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.DEV.GFX .DA DEV.GFX
L.MSG.GREETINGS .DA MSG.GREETINGS
L.MSG.USAGE .DA MSG.USAGE
L.MSG.ECHOCRLF .DA MSG.ECHOCRLF
@ -94,7 +96,9 @@ J.ESC .DA CL.BS left arrow
* .DA HIS.GetPrev
.DA CL.NAK right arrow
L.KEYWORDS .DA KEYWORDS
J.KEYWORDS .DA KW.DUP
J.KEYWORDS .DA GFX.PLOT
.DA GFX.RECT
.DA KW.DUP
.DA KW.DROP
.DA KW.SWAP
J.KEYWORDS.OVER .DA KW.OVER
@ -262,6 +266,8 @@ CS.RUN >PUSHW L.MSG.GREETINGS
stz bCompile
lda #127
sta RP
jsr GFX.Open
*--------------------------------------
CS.RUN.LOOP >SLEEP
@ -359,7 +365,7 @@ CS.FORTH.Run.File
>PUSHW ZPCLBuf
>LDA.G hFile
>SYSCALL fgets
>SYSCALL FGetS
bcs .9
>LDA.G bTrace
@ -577,7 +583,9 @@ CS.RUN.GetNum >PUSHW ZPCLBufPtr
CS.DOEVENT sec
rts
*--------------------------------------
CS.QUIT >LDA.G hSList
CS.QUIT jsr GFX.Close
>LDA.G hSList
beq .1
>PUSHA
@ -766,9 +774,11 @@ CheckStackPop4 lda pStack
.INB usr/src/bin/forth.s.cl
.INB usr/src/bin/forth.s.cp
.INB usr/src/bin/forth.s.kw
.INB usr/src/bin/forth.s.gfx
*--------------------------------------
CS.END
*--------------------------------------
DEV.GFX .AZ "/dev/gfx"
MSG.GREETINGS .AZ "\e[?7h\r\nA2osX-FORTH %d.%d (figFORTH)\r\n"
MSG.USAGE .AS "Usage : FORTH <option> file\r\n"
.AS " -D : Debug Mode\r\n"
@ -793,7 +803,10 @@ EscChars .AS 'DBAC'
EscChars.Cnt .EQ *-EscChars
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
*--------------------------------------
KEYWORDS .AT "DUP" ( n - n n ) Duplicate top of stack.
KEYWORDS .AT "PLOT"
.AT "RECT"
*--------------------------------------
.AT "DUP" ( n - n n ) Duplicate top of stack.
.AT "DROP" ( n - ) Discard top of stack.
.AT "SWAP" ( n1 n2 - n2 n1 ) Reverse top two stack items.
.AT "OVER" ( n1 n2 - n1 n2 n1 ) Copy second item to top.
@ -960,7 +973,8 @@ hCLBuf .BS 1
hFile .BS 1
LineCounter .BS 2
hSList .BS 1
hDevGFX .BS 1
GFX.CB .BS S.CB
DS.END .ED
*--------------------------------------
MAN

View File

@ -109,7 +109,11 @@ CS.RUN
ldy #S.PS.hStdIn
lda (pPS),y
tax
lda OF.Table.hFD-1,x
lsr
bcs .97
lda Nod.Table.hFD-2,x
>SYSCALL GetMemPtr
>STYA ZPPtr1
lda (ZPPtr1)

View File

@ -283,42 +283,27 @@ CS.QUIT lda hFont
.8 clc
rts
*--------------------------------------
LoadResources >PUSHW L.FONTFILE
>PUSHBI O.RDONLY
>PUSHBI $CC Type
>PUSHWZ Aux type
LoadResources >LDYA L.FONTFILE
>SYSCALL LoadStkObj
bcs .99
stx hFont
>PUSHW L.FONTFILEB
>PUSHBI O.RDONLY
>PUSHBI $CC Type
>PUSHWZ Aux type
>LDYA L.FONTFILEB
>SYSCALL LoadStkObj
bcs .99
stx hFontB
>PUSHW L.MARILYNFILE
>PUSHBI O.RDONLY
>PUSHBI $CB Type
>PUSHWZ Aux type
>LDYA L.MARILYNFILE
>SYSCALL LoadStkObj
.99 bcs .9
stx CB.PIX+S.CB.SrcPtr
>PUSHW L.LOGOFILE
>PUSHBI O.RDONLY
>PUSHBI $CB Type
>PUSHWZ Aux type
>LDYA L.LOGOFILE
>SYSCALL LoadStkObj
bcs .9
stx CB.LOGO+S.CB.SrcPtr
>PUSHW L.PALETTEFILE
>PUSHBI O.RDONLY
>PUSHBI $CB Type
>PUSHWZ Aux type
>LDYA L.PALETTEFILE
>SYSCALL LoadStkObj
bcs .9
stx CB.PALETTE+S.CB.SrcPtr

View File

@ -55,10 +55,7 @@ CS.INIT >LDYA L.LIBGUI
* clc
.9 rts
*--------------------------------------
CS.RUN >PUSHW L.LOGOFILE
>PUSHBI O.RDONLY
>PUSHBI $CB Type
>PUSHWZ Aux type
CS.RUN >LDYA L.LOGOFILE
>SYSCALL LoadStkObj
bcs .9

View File

@ -197,10 +197,6 @@ CS.RUN.HOSTOK jsr CS.RUN.GETNEXTARG
jsr CS.RUN.GETNEXTARG
bcs .9
>PUSHYA
>PUSHBI O.RDONLY
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL LoadTxtFile
bcs .9

View File

@ -7,7 +7,6 @@ NEW
*--------------------------------------
.INB inc/macros.i
.INB inc/a2osx.i
.INB inc/kernel.i
.INB inc/mli.i
.INB inc/mli.e.i
*--------------------------------------

View File

@ -137,18 +137,18 @@ CS.RUN
>STYA ZPLineBuf
stx hLineBuf
ldy #S.PS.hStdOut
lda (pPS),y
tax
lda OF.Table.hFD-1,x
>SYSCALL GetMemPtr
>STYA ZPPtr1
* ldy #S.PS.hStdOut
* lda (pPS),y
* tax
* lda OF.Table.hFD-1,x
* >SYSCALL GetMemPtr
* >STYA ZPPtr1
lda (ZPPtr1) S.FD.T
beq CS.RUN.LOOP S.FD.T.REG
* lda (ZPPtr1) S.FD.T
* beq CS.RUN.LOOP S.FD.T.REG
cmp #S.FD.T.PIPE
beq CS.RUN.LOOP
* cmp #S.FD.T.PIPE
* beq CS.RUN.LOOP
dec bCRLF
*--------------------------------------

View File

@ -45,6 +45,7 @@ L.MSG2.C .DA MSG2.C
L.MSG2.B .DA MSG2.B
L.MSG3 .DA MSG3
L.MSG4 .DA MSG4
L.NO.PATH .DA NO.PATH
L.FD.T .DA FD.T.REG
.DA FD.T.DIR
.DA FD.T.CDEV
@ -199,22 +200,20 @@ DumpNod >LDYA L.MSG3
>SYSCALL PutS
ldx #2
stx Index
.1 lda Nod.Table.hPath-2,x
.1 stx Index
lda Nod.Table.hFD-2,x
beq .7
>PUSHW L.MSG4
lda Index
txa
>PUSHA
tax
lda Nod.Table.hFD-2,x
>PUSHA
ldx Index
lda Nod.Table.hFD-2,x
>SYSCALL GetMemPtr
>STYA ZPFDPtr
lda (ZPFDPtr)
@ -222,16 +221,23 @@ DumpNod >LDYA L.MSG3
>PUSHW L.FD.T,x
ldx Index
lda Nod.Table.hPath-2,x
>SYSCALL GetMemPtr
>PUSHYA
lda Nod.Table.hName-2,x
bne .2
>LDYA L.NO.PATH
bra .3
.2 >SYSCALL GetMemPtr
.3 >PUSHYA
>PUSHBI 6
>SYSCALL PrintF
.7 inc Index
ldx Index
.7 inx
inx
cpx #K.NOD.MAX+2
bne .1
@ -251,10 +257,12 @@ MSG2.ERR .AZ "Device Error : $%h\r\n"
MSG2 .AZ "%s $%h/$%h %16S %03d.%03d "
MSG2.B .AZ "%10u\r\n"
MSG2.C .AZ "n/a\r\n"
MSG.SFLAGS .AS "BWRLNEIO"
MSG.SFLAGS .AS "bwrlneio"
*--------------------------------------
MSG3 .AZ "hNod hFD Type Filepath"
MSG4 .AZ "%03d $%h %5s %s\r\n"
NO.PATH .AZ "(no path)"
*--------------------------------------
FD.T.REG .AZ "REG"
FD.T.DIR .AZ "DIR"
FD.T.CDEV .AZ "CDEV"

View File

@ -50,61 +50,42 @@ CS.INIT clc
CS.RUN >LDYA L.MSG0
>SYSCALL PutS
ldx #1
stx FILE.ID
ldx #2
.1 lda OF.Table.hFD-1,x
.1 stx FILE.ID
lda Nod.Table.hFD-2,x
beq .7
>PUSHW L.MSG1
txa
>PUSHA
lda Nod.Table.hFD-2,x
>PUSHA
>SYSCALL GetMemPtr
>STYA ZPFDPtr
>PUSHW L.MSG1
lda FILE.ID
tax
>PUSHA
lda OF.Table.hFD-1,x
>PUSHA
ldx FILE.ID
lda OF.Table.hPath-1,x
bne .2
lda OF.Table.hFD-1,x
tax
lda Dev.Table-1,x
sta ZPFDPtr
clc
adc #S.FD.DEV
tay
lda Dev.Table,x
sta ZPFDPtr+1
adc /S.FD.DEV
bra .3
.2 >SYSCALL GetMemPtr
.3 pha
lda (ZPFDPtr)
tax
>PUSHW L.FD.T,x
pla
lda Nod.Table.hName-2,x
>SYSCALL GetMemPtr
>PUSHYA
>PUSHBI 6
>SYSCALL PrintF
.7 inc FILE.ID
ldx FILE.ID
cpx #K.OF.MAX+1
.7 ldx FILE.ID
inx
inx
cpx #K.NOD.MAX*2+2
bne .1
.8 lda #0
lda #0
sec
.9 rts
*--------------------------------------

View File

@ -70,12 +70,14 @@ CS.RUN
lda (ZPPtr1)
cmp #'-'
bne .4
ldy #1
lda (ZPPtr1),y
ldx OptionList
.2 cmp OptionList,x
beq .3
dex
bne .2
@ -90,24 +92,34 @@ CS.RUN
lda #$80
sta (pData),y
bra .1
.4 lda hFile
bne .99
>LDYA ZPPtr1
jsr CS.RUN.OPEN
bcs .9
bra .1 scan for any other args
.7 lda bHelp
beq .8
.71 jsr .99
lda #0
rts
.8 lda hFile
bne .80
ldy #S.PS.hStdIn
lda (pPS),y
tax
lda OF.Table.hFD-1,x
lsr
bcs .71
lda Nod.Table.hFD-2,x
>SYSCALL GetMemPtr
>STYA ZPPtr1
@ -118,6 +130,7 @@ CS.RUN
.80 >LDYAI 256
>SYSCALL GetMem
bcs .9
>STYA ZPBufPtr
stx hBuf
@ -127,27 +140,37 @@ CS.RUN
CS.RUN.LOOP jsr CS.RUN.GETLINE
bcs .9
.1 inc LineNum
bne .11
inc LineNum+1
.11 lda LineCount
bne .2
lda bPage
beq .2
lda #C.FF
>SYSCALL PutChar
.2 jsr CS.RUN.PRINT
inc LineCount
lda LineCount
cmp #PG.SIZE
bne CS.RUN.LOOP
stz LineCount
jsr CS.RUN.PAUSE
bcc CS.RUN.LOOP
.9 cmp #MLI.E.EOF
bne .99
lda #0 Exit with no Error
.99 sec
rts
*--------------------------------------
@ -174,23 +197,30 @@ CS.RUN.PAUSE ldy #S.PS.hStdErr
cmp #'Q'
beq .9
cmp #'q'
beq .9
.3 cmp #C.SPACE
bne .4
jmp CS.RUN.ERASE
.4 cmp #C.CR
bne .10
jsr CS.RUN.ERASE
.40 jsr CS.RUN.GETLINE
bcc .5
cmp #MLI.E.EOF
beq .90
rts
.5 inc LineNum
bne .6
inc LineNum+1
.6 jsr CS.RUN.PRINT
@ -225,6 +255,7 @@ CS.RUN.GETLINE >PUSHWI 256
>PUSHW ZPBufPtr
lda hFile
bne .1
ldy #S.PS.hStdIn
lda (pPS),y
@ -239,6 +270,7 @@ CS.RUN.PRINT lda bLineNum
>PUSHBI 2
>SYSCALL PrintF
bcs .9
.1 lda bEscCodes
bmi .2

View File

@ -276,7 +276,7 @@ CS.RUN.FILE jsr CS.RUN.BuildFilePath
>PUSHW ZPFullPath
>LDA.G hArcFile
tay
lda OF.Table.hPath-1,y
lda Nod.Table.hName-2,y
>SYSCALL GetMemPtr
>SYSCALL StrCmp
bcc .8

View File

@ -6,7 +6,7 @@ CMD.. lda (ZPArgVBufPtr)
beq CMD...9
>LDYA ZPArgVBufPtr
jsr IO.Load
>SYSCALL LoadTxtFile
bcs CMD.SHIFTA.RTS
>LDYA ZPArgVBufPtr

View File

@ -4,18 +4,10 @@ NEW
*--------------------------------------
IO.Reset jsr IO.Reset.In
jsr IO.Reset.Out
jsr IO.Reset.Err
IO.Reset.9 rts
*--------------------------------------
IO.Load >PUSHYA
>PUSHBI O.RDONLY
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL LoadTxtFile
rts
jmp IO.Reset.Err
*--------------------------------------
IO.Pipe.In jsr IO.Pipe.OpenR Open last created PIPE
bcs IO.Set.RTS
bcs .9
pha
@ -27,7 +19,8 @@ IO.Pipe.In jsr IO.Pipe.OpenR Open last created PIPE
ldy #S.PS.hStdIn
sta (pPS),y
rts
.9 rts
*--------------------------------------
IO.Set.In pha
jsr IO.Reset.In
@ -37,7 +30,8 @@ IO.Set.In pha
pla
ldy #S.PS.hStdIn
sta (pPS),y
IO.Set.RTS rts
rts
*--------------------------------------
IO.Pop.In clc
.HS B0 BCS
@ -55,16 +49,24 @@ IO.Reset.In sec
>STZ.G IO.hIn
.8 clc
IO.Reset.In.RTS rts
rts
*--------------------------------------
IO.Pipe.Out >PUSHEA.G IO.FIFO
IO.Pipe.Out ldy #IO.DEVFIFO+4
ldx #4
.1 lda DEV,x
sta (pData),y
dey
dex
bpl .1
>PUSHEA.G IO.DEVFIFO+5 leave room for /dev/
>PUSHWZ mode
>SYSCALL MKFIFO
bcs IO.Reset.In.RTS Create a new PIPE
bcs .9
jsr IO.Pipe.OpenW Open for OUTPUT
bcs IO.Reset.In.RTS
bcs .9
pha
ldy #S.PS.hStdOut
@ -74,7 +76,7 @@ IO.Pipe.Out >PUSHEA.G IO.FIFO
ldy #S.PS.hStdOut
sta (pPS),y
rts
.9 rts
*--------------------------------------
IO.Set.Out pha
jsr IO.Reset.Out
@ -135,7 +137,8 @@ IO.Pipe.OpenR ldx #O.RDONLY+O.TEXT
.HS 2C BIT ABS
IO.Pipe.OpenW ldx #O.WRONLY+O.TEXT
>LEA.G IO.FIFO
>LEA.G IO.DEVFIFO
*--------------------------------------
IO.FOpenYAX >PUSHYA
txa

View File

@ -220,7 +220,7 @@ CS.RUN jsr CL.Init
jmp CS.RUN.CMDLINE
.1 jsr GetArgV Load SH batch file
jsr IO.Load
>SYSCALL LoadTxtFile
bcs .9
phx X = loaded file hMem
@ -243,7 +243,7 @@ CS.RUN jsr CL.Init
bcs .9
>LDYA L.HOME.PROFILE
jsr IO.Load
>SYSCALL LoadTxtFile
bcs CS.RUN.LOOP No profile...
>LDYA L.HOME.PROFILE
@ -573,6 +573,8 @@ EscChars .AS 'DBAC'
EscChars.Cnt .EQ *-EscChars
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
*--------------------------------------
DEV .AS "/dev/"
*--------------------------------------
CD.. .AZ ".."
*--------------------------------------
IN .AZ "IN"
@ -716,7 +718,7 @@ IO.hErr .BS 1
*M32.BUF .BS 12 -1234567890\0
TimeBuf .EQ *
M32.BUF .EQ *
IO.FIFO .BS 12 /DEV/FIFOxx\0
IO.DEVFIFO .BS 12 /dev/fifoXX\0
*--------------------------------------
DS.END .ED
*--------------------------------------

View File

@ -74,7 +74,7 @@ CS.RUN lda #DEFAULT.TIMEOUT
>LDYA ZPPtr1
>STYA ArgPtr
lda #3
sta TimeOut
sta Timeout
bra .1
.2 ldy #2
@ -100,7 +100,7 @@ CS.RUN lda #DEFAULT.TIMEOUT
>SYSCALL ArgV
bcs .9
>SYSCALL atol
>SYSCALL AToL
bcs .9
>PULLL Timeout

View File

@ -7,7 +7,6 @@ NEW
*--------------------------------------
.INB inc/macros.i
.INB inc/a2osx.i
.INB inc/kernel.i
.INB inc/mli.i
.INB inc/mli.e.i
*--------------------------------------

View File

@ -8,7 +8,6 @@ NEW
.INB inc/macros.i
.INB inc/a2osx.i
.INB inc/mli.e.i
.INB inc/kernel.i
*--------------------------------------
.DUMMY
.OR ZPBIN

View File

@ -117,7 +117,7 @@ CS.RUN inc ArgIndex
ldy #S.PS.hStdIn
lda (pPS),y
tax
lda OF.Table.hFD-1,x
lda Nod.Table.hFD-2,x
>SYSCALL GetMemPtr
>STYA ZPPtr1
lda (ZPPtr1)

View File

@ -83,7 +83,6 @@ CS.RUN >LDYA L.MSG0
ldx SessionID
lda S.Table.hFile-1,x
tax
jsr CS.RUN.GetDevName
>PUSHYA 2 bytes DEV
@ -106,11 +105,9 @@ CS.RUN >LDYA L.MSG0
.9 rts
*--------------------------------------
CS.RUN.GetDevName
lda OF.Table.hPath-1,x
bne .1
lda OF.Table.hFD-1,x
tax
lsr
bcc .1
lda Dev.Table-1,x
@ -123,7 +120,9 @@ CS.RUN.GetDevName
* clc
rts
.1 >SYSCALL GetMemPtr
.1 lda Nod.Table.hFD-2,x
>SYSCALL GetMemPtr
rts
*--------------------------------------
CS.EVENT sec

View File

@ -45,8 +45,7 @@ RESCALE 4 * CONSTANT S_ESCAPE
: DOESCAPE
ZR_SQ ZI_SQ 2DUP +
ESCAPES? IF
2DROP
TRUE
DROP DROP 1
ELSE
- CREAL @ + \ leave result on stack
ZREAL @ ZIMAG @ RESCALE */ 2 *

View File

@ -9,13 +9,14 @@ K.MEM.nALIGNm1 .EQ $F0
*K.MEM.ALIGN .EQ 64
*K.MEM.nALIGNm1 .EQ $C0
*--------------------------------------
K.DEV.MAX .EQ 28
K.FLT.MAX .EQ 4
K.DEV.MAX .EQ 32
K.NOD.MAX .EQ 32
K.OF.MAX .EQ 32
K.USR.MAX .EQ 16
K.PS.MAX .EQ 32
K.USR.MAX .EQ 16
K.FLT.MAX .EQ 4
K.EVT.MAX .EQ 4
K.TTY.MAX .EQ 8
K.IRQDEV.MAX .EQ 4
@ -225,15 +226,15 @@ SYS.FEOF .EQ $3E
SYS.Remove .EQ $40
SYS.Rename .EQ $42
* STDIO2
* .EQ $44
* .EQ $46
SYS.PrintF .EQ $48
SYS.FPrintF .EQ $4A
SYS.SPrintF .EQ $4C
SYS.ScanF .EQ $4E
SYS.PrintF .EQ $44
SYS.FPrintF .EQ $46
SYS.SPrintF .EQ $48
SYS.ScanF .EQ $4A
SYS.FScanF .EQ $4C
SYS.SScanF .EQ $4E
SYS.FScanF .EQ $50
SYS.SScanF .EQ $52
* .EQ $50
* .EQ $52
* .EQ $54
* .EQ $56

View File

@ -4,8 +4,9 @@ NEW
IO.D2.SeekTimeR .EQ 140 LIBBLKDEV Recalibration
IO.D2.SeekTimeF .EQ 65 LIBBLKDEV Track Formatter
IO.D2.SeekTimeB .EQ 65 LIBBLKDEV Boot Block
IO.D2.SeekTimeP .EQ 65 ProDOS.FX initial
IO.D2.SeekTimeI .EQ 20 ProDOS.FX increment -> until > 128
IO.D2.SeekTime0 .EQ 65 ProDOS.FX initial0
IO.D2.SeekTimeP .EQ 30 ProDOS.FX initial
IO.D2.SeekTimeI .EQ 10 ProDOS.FX increment -> until > 128
*--------------------------------------
IO.D2.Ph0Off .EQ $C080
IO.D2.Ph0On .EQ $C081

View File

@ -3,26 +3,23 @@ NEW
*--------------------------------------
Mem.Table .EQ $0800
*--------------------------------------
Dev.Table .EQ $1300 K.Dev.MAX*2
Dev.Table .EQ $1300 K.DEV.MAX*2
*--------------------------------------
Flt.Table.hPath .EQ $1338 K.FLT.MAX
Flt.Table.hLib .EQ $133C K.FLT.MAX
Nod.Table.hName .EQ $1340 K.NOD.MAX*2
Nod.Table.hFD .EQ $1341
*--------------------------------------
Nod.Table.hPath .EQ $1340 K.NOD.MAX
Nod.Table.hFD .EQ $1360 K.NOD.MAX
PS.Table.PID .EQ $1380 K.PS.MAX
PS.Table.hPS .EQ $13A0 K.PS.MAX
PS.Table.Hits .EQ $13C0 K.PS.MAX
PS.Table.Stats .EQ $13E0 K.PS.MAX
*--------------------------------------
OF.Table.hPath .EQ $1380 K.OF.MAX
OF.Table.hFD .EQ $13A0 K.OF.MAX
S.Table.hSID .EQ $1400 K.USR.MAX
S.Table.hFile .EQ $1410 K.USR.MAX
*--------------------------------------
PS.Table.PID .EQ $13C0 K.PS.MAX
PS.Table.hPS .EQ $13E0 K.PS.MAX
PS.Table.Hits .EQ $1400 K.PS.MAX
PS.Table.Stats .EQ $1420 K.PS.MAX
Flt.Table.hPath .EQ $1420 K.FLT.MAX
Flt.Table.hLib .EQ $1424 K.FLT.MAX
*--------------------------------------
S.Table.hSID .EQ $1440 K.USR.MAX
S.Table.hFile .EQ $1450 K.USR.MAX
*--------------------------------------
A2osX.EndTables .EQ $1460
A2osX.EndTables .EQ $1428
*--------------------------------------
MAN
SAVE inc/kernel.i

View File

@ -1,14 +1,14 @@
NEW
AUTO 3,1
.LIST OFF
--------------------------------------
*--------------------------------------
LIBCRYPT.MD5 .EQ 4
LIBCRYPT.MD5Init .EQ 6
LIBCRYPT.MD5Update .EQ 8
LIBCRYPT.MD5Finalize .EQ 10
--------------------------------------
S.MD5 STRUCT
--------------------------------------
*--------------------------------------
* S.MD5 STRUCT
*--------------------------------------
S.MD5.ABCD0 .EQ 0
S.MD5.A0 .EQ 0
S.MD5.B0 .EQ 4
@ -19,6 +19,6 @@ S.MD5.EXTRABIT .EQ 24
S.MD5.FINALIZED .EQ 25
S.MD5 .EQ 26
--------------------------------------
*--------------------------------------
MAN
SAVE inc/libcrypt.i

View File

@ -355,11 +355,7 @@ BB.Seek lda BB.HdrTrk get track we're on
.4 tay
lda IO.D2.Ph0On,x
nop
nop
lda IO.D2.Ph0On,y
nop
nop
lda #IO.D2.SeekTimeB
jsr BB.Wait
@ -376,21 +372,12 @@ BB.Seek lda BB.HdrTrk get track we're on
bra BB.Read
*--------------------------------------
BB.PhasesOff bit IO.D2.Ph0Off,x
nop
nop
ldx IO.D2.Ph0Off,y
nop
nop
rts
*--------------------------------------
BB.Wait phx (3)
.1 ldx BB.Slotn0 (3)
bit IO.D2.RData,x (4)
ldx #18 (2)
.1 ldx #19 (2)
.2 dex (2)
bne .2 (3)

View File

@ -121,24 +121,18 @@ D2MoveHead.SEI ldx Slotn0
and #6
ora Slotn0
bcc .4
* bcc .4
* move out : invert 2 phases
phx
tax
pla
* phx
* tax
* pla
.4 tay
lda IO.D2.Ph0On,x
phx
ldx Slotn0
bit IO.D2.RData,x
lda IO.D2.Ph0On,y
bit IO.D2.RData,x
plx
lda #IO.D2.SeekTimeF
jsr D2.Wait100usecA
@ -147,14 +141,8 @@ D2MoveHead.SEI ldx Slotn0
.7 jsr D2.Wait25600usec
.8 pha
bit IO.D2.Ph0Off,x
ldx Slotn0
bit IO.D2.RData,x
lda IO.D2.Ph0Off,y
bit IO.D2.RData,x
pla
.8 bit IO.D2.Ph0Off,x
ldx IO.D2.Ph0Off,y
rts
*--------------------------------------
D2.Wait25600usec
@ -162,10 +150,7 @@ D2.Wait25600usec
D2.Wait100usecA phx
.1 ldx Slotn0 (3)
bit IO.D2.RData,x (4)
ldx #18 (2)
.1 ldx #19 (2)
.2 dex (2)
bne .2 (3)

View File

@ -2,13 +2,13 @@ NEW
AUTO 3,1
*--------------------------------------
FON.Init >LDYA L.SYSX7
jsr FON.Load
>SYSCALL2 LoadStkObj
bcs .9
stx hSYSFON
>LDYA L.SYSX7B
jsr FON.Load
>SYSCALL2 LoadStkObj
bcs .9
stx hSYSFONB
@ -26,13 +26,6 @@ FON.Init >LDYA L.SYSX7
.9 rts
*--------------------------------------
FON.Load >PUSHYA
>PUSHBI O.RDONLY
>PUSHBI $CC Type
>PUSHWZ Aux type
>SYSCALL2 LoadStkObj
rts
*--------------------------------------
FON.GetTextSize >STYA CB.CACHE+S.CB.TxtPtr
stx CB.CACHE+S.CB.hFont

View File

@ -444,6 +444,29 @@ LDR.ClkDevTCLK lda CLRC8ROM switch out $C8 ROMs
dey
bpl .2
lda idxl+1
and #$f
tax
sta CLRPAGE2
stz $478,x
stz $7f8,x
sta SETPAGE2
stz $478,x
stz $7f8,x
lda idxl+1
asl
asl
asl
asl
tax
stz $c080,x
lda $c088,x
lda $c080,x
lda #'T'
ldx PAKME.TCLK
ldy PAKME.TCLK+1

View File

@ -549,17 +549,20 @@ XRW.Write.RTS rts (6)
* for motor on timing.
*--------------------------------------
XRW.WaitSeekTime
lda XRW.SeekTime
* lda XRW.SeekCnt
* bne .1
* inc XRW.SeekCnt
lda #IO.D2.SeekTime0
* bra XRW.Wait100usecA
*.1 lda XRW.SeekTime
.HS 2C BIT ABS
XRW.Wait25600usec
lda #0
XRW.Wait100usecA
phx
.1 ldx A2L (3)
bit IO.D2.RData,x (4)
ldx #16 (2)
.1 ldx #17 (2)
.2 dex (2)
bne .2 (3)
@ -573,7 +576,7 @@ XRW.Wait100usecA
bne .1 (3)
plx
rts (6)
rts
*--------------------------------------
* read subroutine (16-sector format)
*
@ -730,7 +733,6 @@ XRW.Read.RTS rts
* A = target track
*--------------------------------------
XRW.Seek ldx XRW.UnitIndex
pha save target track
jsr XRW.Trk2Qtrk
@ -744,6 +746,8 @@ XRW.Seek ldx XRW.UnitIndex
pla
sta XRW.D2Trk-1,x will be current track at the end
stz XRW.SeekCnt
ldx A2L
ldy A2L
@ -790,24 +794,18 @@ XRW.Seek ldx XRW.UnitIndex
and #6
ora A2L
bcc .4
* bcc .4
* move out : invert 2 phases
phx
tax
pla
* phx
* tax
* pla
.4 tay
lda IO.D2.Ph0On,x
phx
ldx A2L
bit IO.D2.RData,x
lda IO.D2.Ph0On,y
bit IO.D2.RData,x
plx
jsr XRW.WaitSeekTime
@ -815,14 +813,8 @@ XRW.Seek ldx XRW.UnitIndex
.7 jsr XRW.Wait25600usec
.8 pha
bit IO.D2.Ph0Off,x
ldx A2L
bit IO.D2.RData,x
lda IO.D2.Ph0Off,y
bit IO.D2.RData,x
pla
.8 bit IO.D2.Ph0Off,x
ldx IO.D2.Ph0Off,y
rts
*--------------------------------------
XRW.Reset ldx A2L
@ -1024,7 +1016,9 @@ XRW.CurrentQTrack .HS 00
* .HS FF
XRW.TargetQTrack .HS 00
.HS B0B4B8BCC0C4C8
.HS FFFF
* .HS FFFF
.HS FF
XRW.SeekCnt .HS 00
.HS CCD0D4D8DCE0
XRW.bWrite .HS 00
.HS E4E8ECF0F4F8FC

View File

@ -4,7 +4,7 @@ NEW
.OP 65C02
.OR $2000
.TF sbin/initd
*---------------------------------------
*--------------------------------------
INITDDBG .EQ 0
*--------------------------------------
.INB inc/macros.i
@ -62,10 +62,13 @@ CS.RUN ldy #S.PS.PID
cmp #1
bne .9
* bra .55
ldy #S.PS.hStdIn
lda (pPS),y
>SYSCALL FEOF
bcs .99
tay
bne .1
@ -75,6 +78,7 @@ CS.RUN ldy #S.PS.PID
cmp #18 CTRL-R for Root mode
bne .1
*.55
>LDYA L.MSG.CTRLR
>SYSCALL PutS

View File

@ -158,6 +158,7 @@ BIN.Load.1 >PUSHWI K.Buf256
>LDYA K.S.STAT+S.STAT.P.AUXTYPE
>STYA BIN.R.CS.Start
>PUSHYA Push AUXTYPE
jsr K.LoadFile
bcs .9 Error Loading file
@ -425,6 +426,6 @@ BIN.65R02 .HS 1.2.2.1.2.2.2.2.1.2.1.1.B.B.B.3
.HS 2.2.2.1.2.2.2.2.1.B.1.1.1.B.B.3
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.BIN
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.bin
LOAD usr/src/sys/kernel.s
ASM

View File

@ -606,6 +606,9 @@ CORE.IRQ.TCLOCK.Off
ldx IRQ.n0
stz $c080,x
lda $c088,x
lda $c080,x
ldx IRQ.0n
sta CLRPAGE2
stz $478,x
@ -615,9 +618,6 @@ CORE.IRQ.TCLOCK.Off
stz $478,x
stz $7f8,x
lda $c088,y
lda $c080,y
rts
*--------------------------------------
CORE.IRQ.MOUSE.Off
@ -642,6 +642,6 @@ IRQ.Tick .BS 1
IRQ.Vectors .BS K.IRQDEV.MAX*2
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.CORE
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.core
LOAD usr/src/sys/kernel.s
ASM

View File

@ -15,9 +15,9 @@ pIOBuf .EQ ZPKERNEL+14
*--------------------------------------
ZPMEMMGR .EQ $10
*--------------------------------------
SIGNFLG .EQ $16 COS,SIN,TAN
*SIGNFLG .EQ $16 COS,SIN,TAN
*--------------------------------------
* AuxMove / XFer
* XMov / XFer
*--------------------------------------
A1L .EQ $3C
A2L .EQ $3E
@ -25,7 +25,7 @@ A4L .EQ $42
*XFer.JMP .EQ $3ED
AuxMove .EQ $C311
XMov .EQ $C311
XFer .EQ $C314 CS:M->X, VS:Use Aux ZP
*--------------------------------------
* $42-$47 ProDOS Block Device Drivers Main
@ -113,11 +113,12 @@ PS.NewPSPtr .BS 2
.ED
*--------------------------------------
.DUMMY
.OR ZPTMP+20 7 Bytes
.OR ZPTMP+20 6 Bytes
IO.Open.FLAGS .BS 1
IO.Open.TYPE .BS 1
IO.Open.AUXTYPE .BS 2
IO.hFD .BS 1
IO.hDevNod .BS 1
.ED
*--------------------------------------
A2osX.SaveSM .EQ $100 Aux
@ -240,6 +241,6 @@ S.MD5.FINALIZED .EQ 25
S.MD5 .EQ 26
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.DEF
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.def
LOAD usr/src/sys/kernel.s
ASM

View File

@ -9,40 +9,87 @@ NEW
* X = hDev
*\--------------------------------------
K.GetDevByName >STYA ZPPtr1 requested dev name
ldx #1
.1 jsr SHARED.GetDevFD
bcs K.GetDev.NODEV
.1 lda Dev.Table,x
beq .4
sta pFD+1
pha
tya
* clc
lda Dev.Table-1,x
sta pFD
clc
adc #S.FD.DEV
sta ZPPtr2
tay
pla
adc /S.FD.DEV
sta ZPPtr2+1
ldy #$ff
jsr .8
bcs .3
.2 iny
lda (ZPPtr1),y
cmp (ZPPtr2),y
bne .7
jsr DEV.GetPDrv
ora (ZPPtr2),y Both char are 0 ?
bne .2
>LDYA pFD X = hDevNod
beq SHARED.GetDevFD yes, get Ptr
* clc
rts
.7 inx no....loop
.3 inx no....loop
inx
cpx #K.DEV.MAX*2+1
bne .1
K.GetDev.NODEV lda #MLI.E.NODEV
.4 ldx #2
.5 lda Nod.Table.hFD-2,x
beq .7
lda Nod.Table.hName-2,x
beq .7
jsr K.GetMemPtr
jsr .8
bcs .7
lda Nod.Table.hFD-2,x
jsr K.GetMemPtr Y,A = pPD, X = hDevNod
>STYA pFD for UNISTD.Open
* clc
rts
.7 inx
inx
cpx #K.NOD.MAX*2+2
bne .5
.9 lda #MLI.E.NODEV
sec
rts
*--------------------------------------
.8 >STYA ZPPtr2
ldy #$ff
.80 iny
lda (ZPPtr1),y
cmp (ZPPtr2),y
bne .89
eor #0
bne .80
clc
rts
.89 sec
K.GetDev.9 rts
*/--------------------------------------
* # GetDevStatus
@ -56,33 +103,23 @@ K.GetDev.9 rts
*\--------------------------------------
K.GetDevStatus >PULLW K.S.IOCTL+S.IOCTL.BUFPTR
>PULLA
tax
jsr SHARED.GetDevFD
jsr DEV.GetPFD
bcs K.GetDev.9
>STYA pFD
lda #S.IOCTL.STATCODE.GETDIB
*--------------------------------------
SHARED.GetDevStatus
DEV.GetDevStatus
sta K.S.IOCTL+S.IOCTL.STATCODE
ldy #S.FD.DEV.DEVID
lda (pFD),y
sta K.S.IOCTL+S.IOCTL.UNITNUM
jsr SHARED.GetPDrv
>LDYAI K.S.IOCTL
ldx #IOCTL.STATUS
*--------------------------------------
SHARED.pDrvJmp jmp (pDrv)
*--------------------------------------
SHARED.GetDevFD lda Dev.Table,x
beq K.GetDev.NODEV
ldy Dev.Table-1,x
clc
rts
DEV.pDrvJmp jmp (pDrv)
*/--------------------------------------
* # MKDev
* Create a hDEV
@ -98,9 +135,19 @@ SHARED.GetDevFD lda Dev.Table,x
K.MKDev >PULLW ZPPtr2 ptr2=name
>PULLW ZPPtr1 ptr1=fd
ldx DevMgr.DevIdx
ldx #1
.10 lda Dev.Table,x
beq .11
inx
inx
cpx #K.DEV.MAX*2+1
beq .9
bne .10
bra .9
.11 stx IO.hDevNod
ldy #$ff
ldx #S.FD.DEV
@ -120,7 +167,7 @@ K.MKDev >PULLW ZPPtr2 ptr2=name
>STYA pFD
>STYA .4+1
ldx DevMgr.DevIdx
ldx IO.hDevNod
sta Dev.Table,x
tya
sta Dev.Table-1,x
@ -144,8 +191,10 @@ K.MKDev >PULLW ZPPtr2 ptr2=name
>LDYAI K.IOBuf
>STYA K.S.IOCTL+S.IOCTL.BUFPTR
jsr DEV.GetPDrv
lda #S.IOCTL.STATCODE.STATUS
jsr SHARED.GetDevStatus
jsr DEV.GetDevStatus
bcs .99
lda K.IOBuf Get Status byte
@ -173,9 +222,7 @@ K.MKDev >PULLW ZPPtr2 ptr2=name
lda (pDRV),y
sta IRQ.Vectors+1,x
.8 lda DevMgr.DevIdx
inc DevMgr.DevIdx
inc DevMgr.DevIdx
.8 lda IO.hDevNod
* clc
rts
*/--------------------------------------
@ -192,13 +239,9 @@ K.MKDev >PULLW ZPPtr2 ptr2=name
*\--------------------------------------
K.IOCTL ldy #3 hDev
lda (pStack),y
tax
jsr SHARED.GetDevFD
jsr DEV.GetPFD
bcs .9
>STYA pFD
jsr SHARED.GetPDrv
ldy #2 request
lda (pStack),y
@ -212,7 +255,85 @@ K.IOCTL ldy #3 hDev
.9 >RET 4
*--------------------------------------
DEV.GetPFD sta IO.hDevNod
tax
lsr
bcs .1
lda Nod.Table.hFD-2,x empty slot ?
beq DEV.GetPFD.9
sta IO.hFD
jsr K.GetMemPtr
>STYA pFD
* clc
rts
.1 stz IO.hFD
ldy Dev.Table-1,x
lda Dev.Table,x
beq DEV.GetPFD.9
>STYA pFD
DEV.GetPDrv ldy #S.FD.DEV.DRVPTR
lda (pFD),y
sta pDRV
iny
lda (pFD),y
sta pDRV+1
clc
rts
DEV.GetPFD.9 lda #E.INVH
sec
rts
*--------------------------------------
* X = 0 > REG
* X = 1 > DIR
* X = 2 > PIPE
*--------------------------------------
DEV.MkFD stx .8+1
ldy DEV.MkFD.Y,x
lda #0
ldx #S.MEM.F.INIT0+S.MEM.F.FD
jsr MEM.GetMem.YAX
bcs .9
>STYA pFD
stx IO.hFD
.8 ldx #$ff SELF MODIFIED
lda DEV.MkFD.T,x
sta (pFD) X = hFD, A = T
* clc
.9 rts
DEV.MkFD.Y .DA #S.FD.REG,#S.FD.DIR,#S.FD.PIPE
DEV.MkFD.T .DA #S.FD.T.REG,#S.FD.T.DIR,#S.FD.T.PIPE
*--------------------------------------
DEV.Destroy ldx IO.hDevNod
lda Nod.Table.hName-2,x
beq .1
stz Nod.Table.hName-2,x
jsr K.FreeMem
ldx IO.hDevNod
.1 lda Nod.Table.hFD-2,x
stz Nod.Table.hFD-2,x
jmp K.FreeMem
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.DEV
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.dev
LOAD usr/src/sys/kernel.s
ASM

View File

@ -16,36 +16,9 @@ NEW
K.OpenDir jsr PFT.CheckPathYA
bcs .9
ldx #1
jsr IO.MkFD
bcs .9
lda K.Buf256+1 One char ("/") ?
beq .8 No, Go open dir....
jsr FS.Stat
bcs .98 file/dir does not exists....quit
lda K.S.STAT+S.STAT.MODE+1
and #$f0
cmp /S.STAT.MODE.DIR
bne .97
jsr FS.OPEN
bcs .98
.8 jsr STDIO.NewHFile
bcs .98
jmp FS.OPEN.DIR
.9 rts
.97 lda #MLI.E.UNSUPST
.98 pha Save Error Code
lda IO.hFD
jsr K.Close
pla
sec
rts
*/--------------------------------------
* # ReadDir
* ## C
@ -531,6 +504,6 @@ K.ReadDir.AddStat
*K.CloseDir .EQ K.FClose
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.DIRENT
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.dirent
LOAD usr/src/sys/kernel.s
ASM

View File

@ -99,7 +99,7 @@ DRV.BlkDevice.DIB
DRV.BLK txa
lsr
sta DRV.BLK.PARAMS CMD
ldy #S.FD.DEV.DEVID Drive 1, or 2
ldy #S.FD.DEV.DEVID Drive 1, or 2
lda (pFD),y
dec O or 1
lsr in Carry
@ -270,6 +270,6 @@ DRV.NULL.CLOSE clc
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.DRV
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.drv
LOAD usr/src/sys/kernel.s
ASM

View File

@ -75,6 +75,6 @@ K.GetEnv.I ldy #S.PS.hENV FROM STDLIB:EXPAND
jmp K.SYSCALL.JMPX
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.ENV
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.env
LOAD usr/src/sys/kernel.s
ASM

View File

@ -412,6 +412,6 @@ ENVX.NextEnvP4Y tya
.8 rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.ENVX
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.envx
LOAD usr/src/sys/kernel.s
ASM

View File

@ -18,6 +18,6 @@ K.GetErrorMessage
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.ERROR
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.error
LOAD usr/src/sys/kernel.s
ASM

View File

@ -148,6 +148,6 @@ ERRORX.Messages .AT "Bad MLI Call"
.AT "Unknown Error"
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.ERRORX
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.errorx
LOAD usr/src/sys/kernel.s
ASM

View File

@ -1,8 +1,8 @@
NEW
AUTO 3,1
*--------------------------------------
IO.OPEN.REG >MLICALL MLIGETFILEINFO
bcc .10 Already Exists
FS.OPEN.REG >MLICALL MLIGETFILEINFO
bcc .2 Already Exists
bit IO.Open.FLAGS Create if not exists ?
bpl .9 No, return MLI error
@ -18,35 +18,35 @@ IO.OPEN.REG >MLICALL MLIGETFILEINFO
jsr FS.CREATE
bcs .9
.10 ldx #0
jsr IO.MkFD
.2 ldx #0
jsr DEV.MkFD
bcs .9
jsr FS.OPEN
jsr FS.MLIOPEN
bcs .99
lda IO.Open.FLAGS
bit #O.WRONLY
beq .20 Write mode ?
beq .5 Write mode ?
and #O.APPEND Append ?
bne .11 yes, go to end of file
bne .3 yes, go to end of file
stz K.MLI.PARAMS+2
stz K.MLI.PARAMS+3
stz K.MLI.PARAMS+4
>MLICALL MLISETEOF no, reset size to 0
bra .21
bra .4
.11 >MLICALL MLIGETEOF
.3 >MLICALL MLIGETEOF
bcs .99
>MLICALL MLISETMARK
.21 bcs .99
.4 bcs .99
.20 lda IO.Open.FLAGS
.5 lda IO.Open.FLAGS
and #O.TEXT Text Mode ?
beq .8
beq .6
lda #$FF
sta K.MLI.PARAMS+2
@ -55,35 +55,53 @@ IO.OPEN.REG >MLICALL MLIGETFILEINFO
>MLICALL MLINEWLINE
bcs .99
.8 lda IO.hFD
.9 rts
.6 >LDYAI K.MLI.PATH+1
>STYA ZPPtr1
jsr K.MkNod.I
bcc .8
.99 pha Save Error Code
lda IO.hFD
jsr K.Close
pla
sec
rts
*--------------------------------------
IO.READ.REG ldx #MLIREAD
.HS 2C BIT ABS
*--------------------------------------
IO.WRITE.REG ldx #MLIWRITE
ldy #S.FD.REG.REF
lda (pFD),y
sta K.MLI.PARAMS+1
>PULLW K.MLI.PARAMS+2
>PULLW K.MLI.PARAMS+4
.8
lda #4 Param Count = 4 for MLIREAD & MLIWRITE
jsr GP.MLICall
.9 rts
*--------------------------------------
FS.OPEN.DIR ldx #1
jsr DEV.MkFD
bcs .9
>LDYA K.MLI.PARAMS+6
.9
*IO.WRITE.REG.RTS
lda K.MLI.PATH+2
beq .8 "/"
>MLICALL MLIGETFILEINFO
bcs .9
lda K.MLI.PARAMS+S.FI.T
cmp #S.FI.T.DIR
bne .99
jsr FS.MLIOPEN
bcs .98
.8 >LDYAI K.MLI.PATH+1
>STYA ZPPtr1
jsr K.MkNod.I
bcc .9
.98 pha Save Error Code
lda IO.hFD
jsr K.Close
pla
sec
rts
.99 lda #MLI.E.UNSUPST
sec
.9 rts
*--------------------------------------
FS.CLOSE.REG
FS.CLOSE.DIR ldy #S.FD.REG.REF
@ -100,8 +118,25 @@ FS.CLOSE.DIR ldy #S.FD.REG.REF
jsr K.FreeMem
.2 lda IO.hFD
jmp K.FreeMem
.2 jmp DEV.Destroy
*--------------------------------------
FS.READ.REG ldx #MLIREAD
.HS 2C BIT ABS
*--------------------------------------
FS.WRITE.REG ldx #MLIWRITE
ldy #S.FD.REG.REF
lda (pFD),y
sta K.MLI.PARAMS+1
>PULLW K.MLI.PARAMS+2
>PULLW K.MLI.PARAMS+4
lda #4 Param Count = 4 for MLIREAD & MLIWRITE
jsr GP.MLICall
bcs .9
>LDYA K.MLI.PARAMS+6
.9 rts
*--------------------------------------
FS.EOF.REG >MLICALL MLIGETMARK
bcs .9
@ -130,6 +165,7 @@ FS.EOF.REG >MLICALL MLIGETMARK
*--------------------------------------
FS.CREATE sta K.MLI.PARAMS+7 Storage Type
ldx #3
.1 lda DATELO,x
sta K.MLI.PARAMS+8,x Create Date/Time
dex
@ -140,7 +176,7 @@ FS.CREATE sta K.MLI.PARAMS+7 Storage Type
>MLICALL MLICREATE
rts
*--------------------------------------
FS.OPEN >LDYAI 1024 get a ProDOS IOBUF
FS.MLIOPEN >LDYAI 1024 get a ProDOS IOBUF
ldx #S.MEM.F.ALIGN
jsr MEM.GetMem.YAX
bcs .9
@ -152,6 +188,7 @@ FS.OPEN >LDYAI 1024 get a ProDOS IOBUF
>MLICALL MLIOPEN
bcs .9
lda K.MLI.PARAMS+5 get ref_num
ldy #S.FD.REG.REF
sta (pFD),y
@ -159,62 +196,15 @@ FS.OPEN >LDYAI 1024 get a ProDOS IOBUF
sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based
* clc
.9
FS.OPEN.RTS rts
*--------------------------------------
FS.FSTAT.A >PUSHA
FS.FSTAT >PUSHWI K.S.STAT
ldx #SYS.FStat
jsr PFT.CheckNode2
bcs .9
ldy #2
lda (pStack),y
tax
lda OF.Table.hPath-1,x
jsr K.GetMemPtr
jsr PFT.YAToMLIPATH
jsr FS.Stat.203
bcs .9
lda (pFD) #S.FD.T
bne .9
ldy #S.FD.REG.REF
lda (pFD),y
sta K.MLI.PARAMS+1
>MLICALL MLIGETEOF
ldx #2
.1 lda K.MLI.PARAMS+2,x
sta K.S.STAT+S.STAT.SIZE,x
dex
bpl .1
.9 >RET 3
*--------------------------------------
FS.STAT.YA >PUSHYA
>PUSHWI K.S.STAT
ldx #SYS.Stat
jsr PFT.CheckPath2
bcs .9
jsr FS.Stat.203
.9 >POP 4
FS.STAT.YA.RTS rts
FS.MLIOPEN.RTS rts
*--------------------------------------
FS.Stat bit A2osX.FSID
bmi FS.Stat.FX
FS.Stat.203 >MLICALL MLIGETFILEINFO
bcs FS.STAT.YA.RTS
bcs FS.MLIOPEN.RTS
jsr FS.ClrStat

View File

@ -97,7 +97,9 @@ GP.Sleep2 ldy #S.PS.PC
inc $1fe PC=PC+1
bne .4
inc $1ff because of RTI
.4 lda (pPS)
ora #S.PS.F.SLEEP
sta (pPS)
@ -123,6 +125,7 @@ GP.SysCall dec IRQ.InKernel
pla
jsr K.SYSCALL2
bcc .2 no error quit...
tax CS,A=0 ?
beq .3 Yes, BLOCKING I/O
@ -136,7 +139,9 @@ GP.SysCall dec IRQ.InKernel
* sec
sbc #2 move back JSR GP.SysCall -3 (jsr $BF00) +1 (RTI)
bcs .4
dex
.4 inc IRQ.InKernel
bra GP.Sleep2
*--------------------------------------
@ -147,6 +152,7 @@ GP.LibCall dec IRQ.InLib
jsr K.GetMemPtr Get LIB Code Segment (MemMgr in $E000, no BNK change)
>STYA .1+1
pla
.1 jsr $FFFF SELF MODIFIED
GP.LibCall.8 inc IRQ.InLib
@ -155,11 +161,15 @@ GP.LibCall.RTS rts
GP.AtkCall dec IRQ.InKernel
>STYA .1
jsr GO.ProDOS
jsr MLI
.DA #MLIATALK
.1 .DA *
jsr GO.A2osX
GP.AtkCall.INC inc IRQ.InKernel
rts
*/--------------------------------------
@ -298,6 +308,7 @@ GP.lrintf jsr GP.SetFAC
jsr GP.ROMCALL
ldy #3
.1 lda FAC+1,y
sta (pStack),y
dey
@ -340,7 +351,7 @@ GO.A2osX php
bcs GO.A2osX.BNK if CS, go AUXLC
bit RRAMWRAMBNK1 Go MAINLC (ProDOS), always BNK1
bit RRAMWRAMBNK1
* bit RRAMWRAMBNK1
tsx
stx A2osX.SaveSX
@ -352,7 +363,7 @@ GO.A2osX php
GO.A2osX.BNK ldx #RRAMWRAMBNK1 Self Modified, initialized to BNK1 for INIT3
bit $C000,x
bit $C000,x
* bit $C000,x
sta SETALTZP
tsx
stx A2osX.SaveSM
@ -418,6 +429,6 @@ GP.CodeEnd .BS $BED0-*
*--------------------------------------
GP.End .EQ *
MAN
SAVE USR/SRC/SYS/KERNEL.S.GP
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.gp
LOAD usr/src/sys/kernel.s
ASM

View File

@ -121,7 +121,7 @@ Kernel.Init3 sta SETALTZP
sta A2osX.KVER+1
sta SETALTCHAR
sta CLRMIXED
sta SETMIXED
sta CLRHIRES
sta SET80DISP
sta SET80STORE
@ -153,6 +153,9 @@ Kernel.Init3 sta SETALTZP
jsr SysScrInit
bcs *
sta CLRMIXED
>PUSHWI DEV.CONSOLE
>PUSHBI O.RDWR
>PUSHBI S.FI.T.TXT
@ -297,7 +300,7 @@ MemMgrInit >LDYAI Mem.MHiMem
ldx #K.NOD.MAX*2-1
.2 stz Nod.Table.hPath,x
.2 stz Nod.Table.hName,x
dex
bpl .2
@ -307,12 +310,6 @@ MemMgrInit >LDYAI Mem.MHiMem
dex
bpl .3
ldx #K.OF.MAX*2-1
.4 stz OF.Table.hPath,x
dex
bpl .4
ldx #K.EVT.MAX*S.EVT-1
.5 stz Evt.Table,x
@ -683,6 +680,7 @@ DevMgrInit >LDYAI MSG.DEV
sta ZPPtr1+1
stz ZPPtr1 Cn00
plp
lda #0
adc #1 Make DevID 1 or 2
@ -1121,14 +1119,14 @@ PwdMgrInit >LDYAI MSG.PWD
>SYSCALL2 puts
>LDYAI PWD.ETCPASSWD
jsr PwdMgrInit.Load
>SYSCALL2 LoadStkObj
bcs .1
stx PWD.hUsrDB
>STYA PWD.UsrDBSize
>LDYAI PWD.ETCGROUP
jsr PwdMgrInit.Load
>SYSCALL2 LoadStkObj
bcs .1
stx PWD.hGrpDB
@ -1138,13 +1136,6 @@ PwdMgrInit >LDYAI MSG.PWD
* clc
.9 rts
*--------------------------------------
PwdMgrInit.Load >PUSHYA
>PUSHBI O.RDONLY
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
>SYSCALL2 LoadStkObj
rts
*--------------------------------------
* Modified CHARGET/CHARGOT for ROM CALL
* CHRGET .EQ $B1 - C8
*--------------------------------------

View File

@ -136,6 +136,6 @@ IRQ.JMP jmp $FFFF SELF MODIFIED Not handled, pass to ProDOS
IRQ.8 rti
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.IRQ
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.irq
LOAD usr/src/sys/kernel.s
ASM

View File

@ -43,15 +43,15 @@ K.SYSCALL .DA K.ChTyp $00 : STAT
.DA K.Remove $40
.DA K.Rename
.DA 0
.DA 0
.DA K.PrintF
.DA K.FPrintF
.DA K.SPrintF
.DA K.ScanF
.DA K.FScanF $50
.DA K.FScanF
.DA K.SScanF
.DA 0 $50
.DA 0
.DA 0
.DA 0
.DA 0

View File

@ -2,6 +2,6 @@ NEW
AUTO 3,1
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.MATH
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.math
LOAD usr/src/sys/kernel.s
ASM

View File

@ -550,6 +550,6 @@ MATH32.ACC32NEG.RTS
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.MATH32
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.math32
LOAD usr/src/sys/kernel.s
ASM

View File

@ -58,6 +58,6 @@ K.MD5Finalize >PULLW FORPNT
jmp K.SYSCALL.JMPX
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.MD5
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.md5
LOAD usr/src/sys/kernel.s
ASM

View File

@ -487,6 +487,6 @@ MD5.i .BS 1
MD5.BUFFER64 .BS 64
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.MD5X
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.md5x
LOAD usr/src/sys/kernel.s
ASM

View File

@ -51,11 +51,11 @@ K.Realloc >PULLW MEM.NewSize
lda .7+1
sta SETREADAUX
jsr MEM.MoveSetupA1A2 Setup AUX base & End Ptrs
jsr MEM.SetA1A2 Setup AUX base & End Ptrs
sta CLRREADAUX
clc Aux To Main
jsr AuxMove
jsr XMov
.7 lda #$ff SELF MODIFIED
>SYSCALL2 FreeStkObj
@ -589,11 +589,11 @@ MEM.MoveToMain sec
lda .2+1 Get AUX mem Ptr
sta SETREADAUX
jsr MEM.MoveSetupA1A2 Setup AUX base & End Ptrs
jsr MEM.SetA1A2 Setup AUX base & End Ptrs
sta CLRREADAUX
clc Aux To Main
jsr AuxMove
jsr XMov
.1 lda #$ff SELF MODIFIED
bpl .8 Copy : dont discard AUX mem
@ -615,10 +615,10 @@ MEM.MoveToAux stx .1+1 Save MAIN hMem
>STYA A4L Save AUX Ptr
lda .1+1
jsr MEM.MoveSetupA1A2 Setup MAIN base & End Ptrs
jsr MEM.SetA1A2 Setup MAIN base & End Ptrs
sec Main To Aux
jsr AuxMove
jsr XMov
.1 lda #$ff SELF MODIFIED
jsr K.FreeMem release MAIN memory
@ -628,8 +628,7 @@ MEM.MoveToAux stx .1+1 Save MAIN hMem
.9 rts
*--------------------------------------
MEM.MoveSetupA1A2
jsr K.GetMemPtr
MEM.SetA1A2 jsr K.GetMemPtr
>STYA A1L Start Address
pha
@ -678,6 +677,6 @@ MEM.GetKrnlBuf pha
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.MEM
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.mem
LOAD usr/src/sys/kernel.s
ASM

View File

@ -94,21 +94,9 @@ PFT.CheckNode2 ldy #2
PFT.CheckNodeA stx .80+1 Save SYSCALL #
sta .81+1 Save hFILE
tax
lda OF.Table.hFD-1,x
beq .9
jsr DEV.GetPFD
bcs .99
sta IO.hFD
ldy OF.Table.hPath-1,x if 0, its a hDEV
bne .10
tax
ldy Dev.Table-1,x
lda Dev.Table,x
bra .11
.10 jsr K.GetMemPtr
.11 >STYA pFD
ldy #S.FD.HANDLER
lda (pFD),y
beq .8 Handler is 0, back to kernel....
@ -133,13 +121,10 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL #
.80 ldx #$ff SELF MODIFIED
.81 lda #$ff SELF MODIFIED
clc
rts
.9 lda #E.INVH
sec
rts
.99 rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.PFT
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.pft
LOAD usr/src/sys/kernel.s
ASM

View File

@ -1,39 +1,38 @@
NEW
AUTO 3,1
*--------------------------------------
IO.PIPE.SRCBUF .EQ ZPDRV
IO.PIPE.DSTBUF .EQ ZPDRV+2
IO.PIPE.CNT .EQ ZPDRV+4
IO.PIPE.BASEH .EQ ZPDRV+6
IO.PIPE.BUFH .EQ ZPDRV+7
IO.PIPE.SIZEH .EQ ZPDRV+8
PIPE.SRCBUF .EQ ZPDRV
PIPE.DSTBUF .EQ ZPDRV+2
PIPE.CNT .EQ ZPDRV+4
PIPE.BASEH .EQ ZPDRV+6
PIPE.BUFH .EQ ZPDRV+7
PIPE.SIZEH .EQ ZPDRV+8
*--------------------------------------
IO.OPEN.PIPE ldy #S.FD.PIPE.S
lda (pFD),y
inc
sta (pFD),y
lda IO.hFD
lda IO.hDevNod
clc
rts
*--------------------------------------
IO.CLOSE.PIPE ldy #S.FD.PIPE.S
lda (pFD),y
bmi .1 remote PS closed its end
lda #$80
sta (pFD),y
clc
rts
.1 jsr IO.CLOSE.NOD
ldy #S.FD.PIPE.hMem
.1 ldy #S.FD.PIPE.hMem
lda (pFD),y
beq .2
>SYSCALL2 FreeStkObj
.2 lda IO.hFD
jmp K.FreeMem
.2 jmp DEV.Destroy
*--------------------------------------
* (pStack)+2 count
* (pStack)+0 buf
@ -55,20 +54,20 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S
sbc (pStack),y
bcc IO.READ.PIPE.NODATA not enough room in PIPE
>PULLW IO.PIPE.SRCBUF
>PULLW PIPE.SRCBUF
ldy #S.FD.PIPE.Head+1
jsr IO.PIPE.GET.BUF
jsr PIPE.GET.BUF
>STYA IO.PIPE.DSTBUF
>STYA PIPE.DSTBUF
>PULLA get cnt lo
sta IO.PIPE.CNT
sta PIPE.CNT
eor #$ff
tax
>PULLA get cnt hi
sta IO.PIPE.CNT+1
sta PIPE.CNT+1
eor #$ff
pha
ldy #S.FD.PIPE.Head
@ -86,28 +85,28 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S
pha
.2 lda (IO.PIPE.SRCBUF)
sta (IO.PIPE.DSTBUF),y
.2 lda (PIPE.SRCBUF)
sta (PIPE.DSTBUF),y
inc IO.PIPE.SRCBUF
inc PIPE.SRCBUF
bne .4
inc IO.PIPE.SRCBUF+1
inc PIPE.SRCBUF+1
.4 iny
bne .1
lda IO.PIPE.BUFH
lda PIPE.BUFH
inc
cmp IO.PIPE.SIZEH
cmp PIPE.SIZEH
beq .6
sta IO.PIPE.BUFH
inc IO.PIPE.DSTBUF+1
sta PIPE.BUFH
inc PIPE.DSTBUF+1
bra .1
.6 stz IO.PIPE.BUFH
lda IO.PIPE.BASEH Pipe Buffer Base
sta IO.PIPE.DSTBUF+1
.6 stz PIPE.BUFH
lda PIPE.BASEH Pipe Buffer Base
sta PIPE.DSTBUF+1
bra .1
.8 sta CLRWRITEAUX
@ -116,14 +115,14 @@ IO.WRITE.PIPE ldy #S.FD.PIPE.S
ldy #S.FD.PIPE.Head
sta (pFD),y
iny
lda IO.PIPE.BUFH
lda PIPE.BUFH
sta (pFD),y
ldy #S.FD.PIPE.Free
jsr IO.PIPE.SUB.CNT
jsr PIPE.SUB.CNT
iny #S.FD.PIPE.Used
jsr IO.PIPE.ADD.CNT
jsr PIPE.ADD.CNT
jmp IO.READ.PIPE.EXIT
IO.READ.PIPE.EOF
@ -145,12 +144,12 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
bmi IO.READ.PIPE.EOF Remote PS closed the Pipe
bpl IO.READ.PIPE.NODATA
.10 >PULLW IO.PIPE.DSTBUF get dest buf
.10 >PULLW PIPE.DSTBUF get dest buf
ldy #S.FD.PIPE.Tail+1
jsr IO.PIPE.GET.BUF
jsr PIPE.GET.BUF
>STYA IO.PIPE.SRCBUF
>STYA PIPE.SRCBUF
>PULLA get cnt lo
tax
@ -170,8 +169,8 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
iny
lda (pFD),y X,A = Used
.12 stx IO.PIPE.CNT
sta IO.PIPE.CNT+1
.12 stx PIPE.CNT
sta PIPE.CNT+1
eor #$ff
pha
@ -193,28 +192,28 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
pha
.2 lda (IO.PIPE.SRCBUF),y
sta (IO.PIPE.DSTBUF)
.2 lda (PIPE.SRCBUF),y
sta (PIPE.DSTBUF)
inc IO.PIPE.DSTBUF
inc PIPE.DSTBUF
bne .4
inc IO.PIPE.DSTBUF+1
inc PIPE.DSTBUF+1
.4 iny
bne .1
lda IO.PIPE.BUFH
lda PIPE.BUFH
inc
cmp IO.PIPE.SIZEH
cmp PIPE.SIZEH
beq .6
sta IO.PIPE.BUFH
inc IO.PIPE.SRCBUF+1
sta PIPE.BUFH
inc PIPE.SRCBUF+1
bra .1
.6 stz IO.PIPE.BUFH
lda IO.PIPE.BASEH
sta IO.PIPE.SRCBUF+1 Restore Pipe Buf base
.6 stz PIPE.BUFH
lda PIPE.BASEH
sta PIPE.SRCBUF+1 Restore Pipe Buf base
bra .1
.8 sta CLRREADAUX
@ -223,54 +222,57 @@ IO.READ.PIPE ldy #S.FD.PIPE.Used+1
ldy #S.FD.PIPE.Tail
sta (pFD),y
iny
lda IO.PIPE.BUFH
lda PIPE.BUFH
sta (pFD),y
ldy #S.FD.PIPE.Free
jsr IO.PIPE.ADD.CNT
jsr PIPE.ADD.CNT
iny #S.FD.PIPE.Used
jsr IO.PIPE.SUB.CNT
jsr PIPE.SUB.CNT
IO.READ.PIPE.EXIT
>LDYA IO.PIPE.CNT Y,A = bytes written
>LDYA PIPE.CNT Y,A = bytes written
clc
rts
*--------------------------------------
IO.PIPE.GET.BUF lda (pFD),y
sta IO.PIPE.BUFH
PIPE.GET.BUF lda (pFD),y
sta PIPE.BUFH
ldy #S.FD.PIPE.Size+1
lda (pFD),y
sta IO.PIPE.SIZEH
sta PIPE.SIZEH
ldy #S.FD.PIPE.hMem
lda (pFD),y
>SYSCALL2 GetStkObjPtr
sta IO.PIPE.BASEH Pipe Buffer Base
sta PIPE.BASEH Pipe Buffer Base
* clc
adc IO.PIPE.BUFH
adc PIPE.BUFH
rts
*--------------------------------------
IO.PIPE.ADD.CNT clc
PIPE.ADD.CNT clc
lda (pFD),y
adc IO.PIPE.CNT
adc PIPE.CNT
sta (pFD),y
iny
lda (pFD),y
adc IO.PIPE.CNT+1
adc PIPE.CNT+1
sta (pFD),y
rts
*--------------------------------------
IO.PIPE.SUB.CNT sec
PIPE.SUB.CNT sec
lda (pFD),y
sbc IO.PIPE.CNT
sbc PIPE.CNT
sta (pFD),y
iny
lda (pFD),y
sbc IO.PIPE.CNT+1
sbc PIPE.CNT+1
sta (pFD),y
rts
*--------------------------------------
@ -280,15 +282,16 @@ IO.EOF.PIPE clc
iny
ora (pFD),y
beq .8
lda #0
* clc
rts
.8 lda #$ff
.8 dec lda #$ff
* clc
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.PIPE
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.pipe
LOAD usr/src/sys/kernel.s
ASM

View File

@ -50,6 +50,7 @@ PS.Exec jsr PS.CreateChild A=PID,Child S.PS at PS.NewPSPtr,PS.Load.hMem
sta .8+1
stz K.IOBuf If !=0 after PS.Load, it's a script
jsr PS.Load
bcs .90
@ -320,7 +321,7 @@ PS.Load ldy #$ff
bne .1
>LDYA PS.ArgV found /, some path specified, no search
jsr FS.STAT.YA
jsr PS.STAT.YA
bcc .6 REAL path in K.Buf256
.99 rts
@ -404,7 +405,7 @@ PS.Load.SCRIPT jsr PS.Buf2IO
sta K.Buf256-1,x K.Buf256 = "${ROOT}BIN/SHELL\0"
.5 >LDYAI K.Buf256
jsr FS.STAT.YA
jsr PS.STAT.YA
bcs PS.Load.RTS
lda K.S.STAT+S.STAT.P.TYPE
@ -745,19 +746,21 @@ K.Kill.2 ldy #S.PS.hSession
* # LoadTxtFile
* Load TXT a file in memory (with ending 0)
* ## C
* `int loadtxtfile ( const char * filename, short int flags, short int ftype, int auxtype );`
* `int loadtxtfile ( const char * filename );`
* ## ASM
* **In:**
* `>PUSHW filename`
* `>PUSHB flags`
* `>PUSHB ftype`
* `>PUSHW auxtype`
* `>LDYA filename`
* `>SYSCALL loadtxtfile`
* ## RETURN VALUE
* Y,A = File Length (without ending 0)
* X = hMem of Loaded File
*\--------------------------------------
K.LoadTxtFile sec
K.LoadTxtFile >PUSHYA
>PUSHBI O.RDONLY
>PUSHBI S.FI.T.TXT
>PUSHWZ Aux type
sec
.HS 90 BCC
*/--------------------------------------
* # LoadFile
@ -783,8 +786,9 @@ K.LoadFile clc
bcs .99
sta PS.hFILE
jsr FS.FSTAT.A
>PUSHA
>PUSHWI K.S.Stat
>SYSCALL2 FStat
bcs .98
lda K.S.Stat+S.STAT.SIZE+3
@ -795,8 +799,10 @@ K.LoadFile clc
bit PS.bTXT Add 1 to buffer size for ending 0
bpl .1
iny
bne .1
inc
bne .1
@ -958,7 +964,7 @@ PS.Find.4 lda $ffff,y Self Modified, Append Filename...
bra PS.Find.4
PS.Find.5 >LDYAI K.Buf256
jsr FS.STAT.YA
jsr PS.STAT.YA
bcs PS.Find.1 Failed...retry next path...
lda K.S.STAT+S.STAT.P.TYPE
@ -987,6 +993,11 @@ PS.Buf2IO ldx #$ff
rts
*--------------------------------------
PS.STAT.YA >PUSHYA
>PUSHWI K.S.STAT
>SYSCALL2 Stat
rts
*--------------------------------------
PS.SHUTDOWN .AZ "shutdown"
*PS.T .AZ " -T 3"
PS.VARS .DA .1
@ -1028,6 +1039,6 @@ K.GetMemStat >STYA ZPPtr1
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.PS
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.ps
LOAD usr/src/sys/kernel.s
ASM

View File

@ -833,6 +833,6 @@ PWDX.GROUP .AS "root:0"
PWDX.GROUP.Size .EQ *-PWDX.GROUP
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.PWDX
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.pwdx
LOAD usr/src/sys/kernel.s
ASM

View File

@ -151,6 +151,6 @@ SHARED.GetScrnDevX
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.SHARED
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.shared
LOAD usr/src/sys/kernel.s
ASM

View File

@ -87,6 +87,6 @@ K.SListFree >PULLA
K.SListNew jmp K.SYSCALL.JMPX
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.SLIST
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.slist
LOAD usr/src/sys/kernel.s
ASM

View File

@ -504,6 +504,6 @@ SLIST.ToNextBlock.RTS
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.SLISTX
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.slistx
LOAD usr/src/sys/kernel.s
ASM

View File

@ -93,9 +93,29 @@ K.FStat jsr PFT.CheckNode2
>PULLW K.Stat.Store.2+1
jsr FS.FSTAT
>PULLA
tax
lda Nod.Table.hName-2,x get path
jsr K.GetMemPtr
jsr PFT.YAToMLIPATH
jsr FS.Stat.203
bcs K.Stat.Store.RTS
ldy #S.FD.REG.REF
lda (pFD),y
sta K.MLI.PARAMS+1
>MLICALL MLIGETEOF
bcs K.Stat.Store.RTS
ldx #2
.1 lda K.MLI.PARAMS+2,x
sta K.S.STAT+S.STAT.SIZE,x
dex
bpl .1
K.Stat.Store ldy #S.STAT-1
K.Stat.Store.1 lda K.S.STAT,y
@ -174,10 +194,10 @@ K.MKFIFO jsr STAT.PullPathAndMode
bcs K.Stat.Store.RTS
ldy #0
.1 lda DEV.FIFO,y
.1 lda STAT.FIFO,y
sta (ZPPtr1),y fill pathname buffer
iny
cpy #9
cpy #4
bne .1
lda IO.hFD
@ -211,9 +231,10 @@ K.MkNod >PULLB IO.hFD
K.MkNod.I ldx #2
.1 lda Nod.Table.hPath-2,x
.1 lda Nod.Table.hFD-2,x empty slot ?
beq .2
inx
inx
cpx #K.Nod.MAX+2
bne .1
@ -222,18 +243,21 @@ K.MkNod.I ldx #2
* sec
rts
.2 stx .3+1 Store hFILE
.2 stx IO.hDevNod
>LDYA ZPPtr1
>SYSCALL2 StrDup
bcs .9
txa
.3 ldx #$ff SELF MODIFIED
sta Nod.Table.hPath-2,x
lda IO.hFD
sta Nod.Table.hFD-2,x
txa hNODE
.3 ldx IO.hDevNod
sta Nod.Table.hName-2,x store path
.4 lda IO.hFD
sta Nod.Table.hFD-2,x store hFD
txa hDevNod
clc
.9 rts
*/--------------------------------------
@ -255,7 +279,7 @@ K.Pipe sta .1+1 SIZE HI
stx .8+1 save PIPE buffer
ldx #2
jsr IO.MkFD
jsr DEV.MkFD
bcs .9
.1 lda #$ff SELF MODIFIED
@ -288,6 +312,8 @@ STAT.PullPathAndMode
>PULLW ZPPtr1 pathname
rts
*--------------------------------------
STAT.FIFO .AS "fifo"
*--------------------------------------
MAN
SAVE usr/src/sys/kernel.s.stat
LOAD usr/src/sys/kernel.s

View File

@ -210,17 +210,19 @@ K.FGetS jsr PFT.CheckNodeA
.1 jsr STDIO.Get.1
bcc .2
cmp #MLI.E.EOF
beq .9
cmp #E.NODATA
sec
bne .9 IO error
.11 lda #0 BLOCKING
lda #0 BLOCKING
rts
.2 lda K.IOBuf
cmp #C.LF Discard any leading LF from a previous CR/LF
* beq .8 returns as empty string
beq .11 CS -> NODATA -> BLOCKING
cmp #C.LF Discard any leading LF from a prev CR/LF
beq .1
cmp #C.CR
beq .8 empty string
@ -234,7 +236,7 @@ K.FGetS jsr PFT.CheckNodeA
lda ZPPtr1+1
eor #$ff
sta ZPPtr1+1
*--------------------------------------
.3 inc ZPPtr1
bne .4
inc ZPPtr1+1
@ -385,17 +387,7 @@ K.FOpen jsr PFT.CheckPath4
inc pStack discard filename
inc pStack
jsr UNISTD.Open
bcs .99
jsr STDIO.NewHFile
bcc .99
pha Save Error Code
lda IO.hFD
jsr K.Close
pla
sec
jmp UNISTD.Open
.9 >POP 6
.99 rts
@ -411,21 +403,9 @@ K.FOpen jsr PFT.CheckPath4
* ## RETURN VALUE
*\--------------------------------------
K.FClose jsr PFT.CheckNodeA
bcs K.FClose.RTS
bcs K.FRead.RTS
sta .1+1 store hFile
jsr UNISTD.Close
bcs K.FClose.RTS
.1 ldx #$ff SELF MODIFIED
stz OF.Table.hFD-1,x
lda OF.Table.hPath-1,x
beq K.FClose.RTS special files have no path
stz OF.Table.hPath-1,x
jmp K.FreeMem discard filename
jmp UNISTD.Close
*/--------------------------------------
* # FRead (BLOCKING)
* Read bytes from file
@ -446,7 +426,7 @@ K.FRead jsr PFT.CheckNodeA
jsr UNISTD.Read
bcs K.FWrite.9
K.FClose.RTS rts
K.FRead.RTS rts
*/--------------------------------------
* # FWrite (BLOCKING)
* Write bytes to file
@ -682,48 +662,6 @@ K.Rename jsr PFT.CheckPath2
.9 >RET 4
*--------------------------------------
* K.Buf256 = filepath
* X = hFD
*--------------------------------------
STDIO.NewHFile ldx #1
.1 lda OF.Table.hFD-1,x
beq .2
inx
cpx #K.OF.MAX+1
bne .1
lda #E.OOH
* sec
rts
.2 stx .4+1
ldx #0
lda (pFD)
cmp #S.FD.T.CDEV
beq .3
cmp #S.FD.T.BDEV
beq .3 No hPath for DEV
>LDYAI K.buf256
>SYSCALL2 StrDup
bcs .9
.3 txa
.4 ldx #$ff SELF MODIFIED
sta OF.Table.hPath-1,x
lda IO.hFD
sta OF.Table.hFD-1,x
txa hFILE
clc
.9 rts
*--------------------------------------
MAN
SAVE usr/src/sys/kernel.s.stdio
LOAD usr/src/sys/kernel.s

View File

@ -728,6 +728,6 @@ STDIO.Exit php
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.STDIO2
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.stdio2
LOAD usr/src/sys/kernel.s
ASM

View File

@ -577,6 +577,6 @@ ENV.GetP3LenY ldy #$ff
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.STDLIB
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.stdlib
LOAD usr/src/sys/kernel.s
ASM

View File

@ -249,6 +249,6 @@ SHARED.SPtr1PPtr2
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.STRING
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.string
LOAD usr/src/sys/kernel.s
ASM

View File

@ -69,6 +69,6 @@ STRV.Ptr1Ptr2cpy
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.STRV
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.strv
LOAD usr/src/sys/kernel.s
ASM

View File

@ -150,6 +150,6 @@ STRVX.NStrPtr1 ldy #$ff
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.STRVX
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.strvx
LOAD usr/src/sys/kernel.s
ASM

View File

@ -24,7 +24,6 @@ TERM.STATUS jsr TERM.GetIOCTLBufCntDCB
bra TERM.TOAUX
TERM.OPEN sta ZPDevID DEV.ID in A for OPEN
TERM.CONTROL
TERM.CLOSE jsr TERM.GetDCB
@ -104,6 +103,6 @@ TERM.GetDevName sta CLRREADAUX
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.TERM
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.term
LOAD usr/src/sys/kernel.s
ASM

View File

@ -1521,6 +1521,6 @@ BUF.BASEH .DA /S.DCB.TTY+0
.DA /S.DCB.TTY+1840
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.TERMX
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.termx
LOAD usr/src/sys/kernel.s
ASM

View File

@ -76,6 +76,6 @@ K.CTime2Time >PULLW FORPNT S.TIME
jmp K.SYSCALL.JMPX
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.TIME
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.time
LOAD usr/src/sys/kernel.s
ASM

View File

@ -459,6 +459,6 @@ TIMEX.IsLeap cmp #0 Year = 00 ?
rts
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.TIMEX
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.timex
LOAD usr/src/sys/kernel.s
ASM

View File

@ -21,61 +21,30 @@ K.Open jsr PFT.YAToMLIPATH
stz IO.Open.AUXTYPE
stz IO.Open.AUXTYPE+1
*--------------------------------------
UNISTD.Open ldx #5 /DEV/
UNISTD.Open ldx #5 /dev/
cpx K.MLI.PATH
bcs .99
bcs .8
.1 lda K.MLI.PATH,x
cmp DEV.FIFO-1,x
bne .99
cmp UNISTD.DEV-1,x
bne .8
dex
bne .1
*--------------------------------------
* /DEV/xxxxxx (CDEV,BDEV,DSOCK,SSOCK,PIPE)
*--------------------------------------
>LDYAI K.MLI.PATH+6 skip $/DEV/
>LDYAI K.MLI.PATH+6 skip $/dev/
jsr K.GetDevByName
bcc .7
ldx #2
.10 lda Nod.Table.hPath-2,x
beq .3
jsr K.GetMemPtr
>STYA ZPPtr1
ldy #0
.2 lda (ZPPtr1),y
iny
cmp K.MLI.PATH,y
bne .3
cmp #0 end of string ?
bne .2
lda Nod.Table.hFD-2,x return hFD
jsr UNISTD.GetPFD
bra .71
.3 inx
cpx #K.NOD.MAX+2
bne .10
lda #MLI.E.NODEV
* sec
rts no OF found
bcs .9
*--------------------------------------
.7 stx IO.hFD
>STYA pFD
stx IO.hDevNod pFD set by GetDevByName
.71 lda (pFD) #S.FD.T
lda (pFD) #S.FD.T
tax
jmp (.8-2,x)
.8
jmp (.2-2,x)
.2
* .DA STDIO.IOERR REG
.DA STDIO.IOERR DIR
.DA IO.OPEN.CDEV
@ -85,7 +54,9 @@ UNISTD.Open ldx #5 /DEV/
.DA IO.OPEN.SSOCK
.DA IO.OPEN.PIPE
.99 jmp IO.OPEN.REG
.8 jmp FS.OPEN.REG
.9 rts
*/--------------------------------------
* # close
* ## C
@ -95,7 +66,7 @@ UNISTD.Open ldx #5 /DEV/
* `lda fd`
* `>SYSCALL close`
*\--------------------------------------
K.Close jsr UNISTD.GetPFD
K.Close jsr DEV.GetPFD
UNISTD.Close lda (pFD) #S.FD.T
tax
@ -122,12 +93,12 @@ UNISTD.Close lda (pFD) #S.FD.T
* CC: Y,A = bytes read
* CS: A = EC
*\--------------------------------------
K.Read jsr UNISTD.GetPFD
K.Read jsr DEV.GetPFD
UNISTD.Read lda (pFD) #S.FD.T
tax
jmp (.1,x)
.1 .DA IO.READ.REG
.1 .DA FS.READ.REG
.DA STDIO.IOERR DIR
.DA IO.READ.CDEV
.DA STDIO.IOERR BDEV
@ -149,12 +120,12 @@ UNISTD.Read lda (pFD) #S.FD.T
* CC: Y,A = bytes written
* CS: A = EC
*\--------------------------------------
K.Write jsr UNISTD.GetPFD
K.Write jsr DEV.GetPFD
UNISTD.Write lda (pFD) #S.FD.T
tax
jmp (.1,x)
.1 .DA IO.WRITE.REG
.1 .DA FS.WRITE.REG
.DA STDIO.IOERR DIR
.DA IO.WRITE.CDEV
.DA STDIO.IOERR BDEV
@ -163,28 +134,22 @@ UNISTD.Write lda (pFD) #S.FD.T
.DA IO.WRITE.SSOCK
.DA IO.WRITE.PIPE
*--------------------------------------
UNISTD.GetPFD sta IO.hFD
jsr K.GetMemPtr
>STYA pFD
rts
*--------------------------------------
IO.OPEN.CDEV
IO.OPEN.BDEV jsr SHARED.GetPDrv
ldx #IOCTL.OPEN
lda IO.hFD
jsr SHARED.pDrvJmp
IO.OPEN.BDEV ldx #IOCTL.OPEN
lda IO.hDevNod
jsr DEV.pDrvJmp
bcs IO.WRITE.CDEV.RTS
*--------------------------------------
IO.OPEN.DSOCK
*--------------------------------------
IO.OPEN.SSOCK
lda IO.hFD
*--------------------------------------
IO.CLOSE.CDEV
IO.CLOSE.BDEV
IO.OPEN.SSOCK lda IO.hDevNod
clc
rts
*--------------------------------------
IO.CLOSE.CDEV
IO.CLOSE.BDEV ldx #IOCTL.CLOSE
lda IO.hDevNod
jmp DEV.pDrvJmp
*--------------------------------------
IO.READ.CDEV ldx #IOCTL.READ
.HS 2C BIT ABS
*--------------------------------------
@ -192,9 +157,9 @@ IO.WRITE.CDEV ldx #IOCTL.WRITE
>PULLW K.S.IOCTL+S.IOCTL.BUFPTR
>PULLW K.S.IOCTL+S.IOCTL.BYTECNT
jsr SHARED.GetPDrv
>LDYAI K.S.IOCTL
jsr SHARED.pDrvJmp
jsr DEV.pDrvJmp
bcs .9
>LDYA K.S.IOCTL+S.IOCTL.BYTECNT
@ -227,51 +192,7 @@ IO.WRITE.SSOCK ldy #S.FD.SSOCK.WRITE
.1 jmp $FFFF SELF MODIFIED
*--------------------------------------
IO.EOF.CDEV lda #S.IOCTL.STATCODE.EOF
jmp SHARED.GetDevStatus
*--------------------------------------
* X = 0 > REG
* X = 1 > DIR
* X = 2 > PIPE
*--------------------------------------
IO.MkFD stx .8+1
ldy IO.MkFD.Y,x
lda #0
ldx #S.MEM.F.INIT0+S.MEM.F.FD
jsr MEM.GetMem.YAX
bcs .9
>STYA pFD
stx IO.hFD
.8 ldx #$ff SELF MODIFIED
lda IO.MkFD.T,x
sta (pFD) X = hFD, A = T
* clc
.9 rts
IO.MkFD.Y .DA #S.FD.REG,#S.FD.DIR,#S.FD.PIPE
IO.MkFD.T .DA #S.FD.T.REG,#S.FD.T.DIR,#S.FD.T.PIPE
*--------------------------------------
IO.CLOSE.NOD ldx #2
lda IO.hFD
.1 cmp Nod.Table.hFD-2,x
bne .2
stz Nod.Table.hFD-2,x
lda Nod.Table.hPath-2,x
stz Nod.Table.hPath-2,x
jmp K.FreeMem
.2 inx
cpx #K.Nod.MAX+2
bne .1
lda #E.INVH
* sec
rts
jmp DEV.GetDevStatus
*/--------------------------------------
* # ChOwn
* ## C
@ -310,17 +231,9 @@ K.ChOwn jsr PFT.CheckPath2
K.ChOwn.RET4 >RET 4
*--------------------------------------
SHARED.GetPDrv ldy #S.FD.DEV.DRVPTR
lda (pFD),y
sta pDRV
iny
lda (pFD),y
sta pDRV+1
rts
*--------------------------------------
DEV.FIFO .AS "/dev/fifo" STAT,UNISTD
UNISTD.DEV .AS "/dev/"
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.UNISTD
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.unistd
LOAD usr/src/sys/kernel.s
ASM

View File

@ -89,6 +89,6 @@ Z80.6502Y .BS 1
Z80.6502P .BS 1
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.Z80
LOAD USR/SRC/SYS/KERNEL.S
SAVE usr/src/sys/kernel.s.z80
LOAD usr/src/sys/kernel.s
ASM

View File

@ -125,7 +125,6 @@ DevMgr.Timer .BS 1
DevMgr.Stat .DA DevMgr.FreeMem
DevMgr.Free .DA DevMgr.FreeMem
.DA DevMgr.HiMem
DevMgr.DevIdx .DA #1
DevMgr.FreeMem .EQ *
.EP
A2osX.E0.S .EQ *-A2osX.E0.B

View File

@ -133,8 +133,7 @@ RW.Detect2 php
ldx #0
.3 txa
sta RWBankSelect
.3 stx RWBankSelect
*--------------------------------------
* Added after David Finnigan from macgui.com testing sessions
*
@ -143,17 +142,16 @@ RW.Detect2 php
*
* to address possibly a timing issue with Accelerators
*--------------------------------------
cmp 0
bne .4
eor #$FF
lda 0
tay
eor #$ff
cmp 1
bne .4
inx
bpl .3
dex we reached 128,last detected page was 127
cpy #127
bne .3
.4 ldy #127 X = detected page count
@ -586,8 +584,10 @@ RWDRVX.RESTORE ldy #RWDRVX.XM.SIZE Now, restore begining of $300
*--------------------------------------
RWDRVX.XM.START ldy #2 2 pages to copy
RWDRVX.XM.COPY jsr RWDRV.XM.RUN+RWDRVX.XM.SRCLC-RWDRVX.XM.START
sta $C000,x
RWDRVX.XM.COPY sta CLRALTZP
jsr RWDRV.XM.RUN+RWDRVX.XM.SRCLC-RWDRVX.XM.START
sta $C000,x select proper Main/Aux ZP/LC
sta RWBankSelect
ldx #0
@ -597,8 +597,10 @@ RWDRVX.XM.SRC lda $FFFF,x
inx
bne RWDRVX.XM.SRC
sta CLRALTZP
jsr RWDRV.XM.RUN+RWDRVX.XM.DSTLC-RWDRVX.XM.START
sta $C000,x
sta $C000,x select proper Main/Aux ZP/LC
sta RWBankSelect
ldx #0
@ -617,7 +619,7 @@ RWDRVX.XM.DST sta $FFFF,x
stz RWBankSelect
*--------------------------------------
RWDRVX.XM.MNLC bit RRAMWRAMBNK1 ProDOS always uses LCBANK1
bit RRAMWRAMBNK1
* bit RRAMWRAMBNK1
lda #0
@ -633,7 +635,7 @@ RWDRVX.XM.RWLC lda #$FF
bmi RWDRVX.XM.BANK
bit RRAMWRAMBNK2
bit RRAMWRAMBNK2
* bit RRAMWRAMBNK2
RWDRVX.XM.BANK lda #$FF