mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-12 20:29:41 +00:00
Kernel 0.92
This commit is contained in:
parent
c3e396238a
commit
be8d29bc45
|
@ -50,14 +50,6 @@ none
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
Y,A = Ptr to installed driver
|
Y,A = Ptr to installed driver
|
||||||
|
|
||||||
# GetDevByID
|
|
||||||
A = DevID
|
|
||||||
|
|
||||||
## RETURN VALUE
|
|
||||||
CC = OK, CS = ERROR
|
|
||||||
Y,A = FD
|
|
||||||
X = hFD
|
|
||||||
|
|
||||||
# GetDevByName
|
# GetDevByName
|
||||||
Y,A = Ptr to device name (C-String)
|
Y,A = Ptr to device name (C-String)
|
||||||
|
|
||||||
|
@ -552,13 +544,6 @@ Load a file in AUX memory (Stock Objects)
|
||||||
Y,A = File Length
|
Y,A = File Length
|
||||||
X = hMem of Loaded Object in AUX mem
|
X = hMem of Loaded Object in AUX mem
|
||||||
|
|
||||||
# GetPSStat
|
|
||||||
**In:**
|
|
||||||
Y,A = Ptr to K.PS.MAX*2+1 bytes buffer
|
|
||||||
|
|
||||||
## RETURN VALUE
|
|
||||||
Buffer filled with PS stats
|
|
||||||
|
|
||||||
# ExecL
|
# ExecL
|
||||||
|
|
||||||
## C
|
## C
|
||||||
|
@ -598,13 +583,6 @@ A = Child PSID
|
||||||
## RETURN VALUE
|
## RETURN VALUE
|
||||||
A = Child PSID
|
A = Child PSID
|
||||||
|
|
||||||
# GetPSStatus
|
|
||||||
**In:**
|
|
||||||
A = PID
|
|
||||||
|
|
||||||
## RETURN VALUE
|
|
||||||
A = Status Byte
|
|
||||||
|
|
||||||
# Stat
|
# Stat
|
||||||
Return information about a file
|
Return information about a file
|
||||||
|
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -8,11 +8,16 @@ AUTO 4,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
|
.INB INC/KERNEL.I
|
||||||
.INB INC/LIBBLKDEV.I
|
.INB INC/LIBBLKDEV.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPtr1 .EQ ZPBIN
|
.DUMMY
|
||||||
ZPPtr2 .EQ ZPBIN+2
|
.OR ZPBIN
|
||||||
ZPPtrFD .EQ ZPBIN+4
|
ZS.START
|
||||||
|
ZPPtr1 .BS 2
|
||||||
|
ZPPtr2 .BS 2
|
||||||
|
ZS.END
|
||||||
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -20,11 +25,12 @@ CS.START cld
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.DA #$61 6502,Level 1 (65c02)
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
.DA #1 BIN Layout Version 1
|
.DA #1 BIN Layout Version 1
|
||||||
.DA 0
|
.DA #0 S.PS.F.EVENT
|
||||||
.DA CS.END-CS.START CS
|
.DA #0
|
||||||
.DA DS.END-DS.START DS
|
.DA CS.END-CS.START Code Size (without Constants)
|
||||||
.DA #32 SS
|
.DA DS.END-DS.START Data SegmentSize
|
||||||
.DA #6 ZP
|
.DA #32 Stack Size
|
||||||
|
.DA #ZS.END-ZS.START Zero Page Size
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
|
@ -82,17 +88,17 @@ CS.INIT ldy #S.PS.ARGC
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.4 >LDA.G hDevFD
|
.4 >LDA.G hDevID
|
||||||
bne .5 Already have a dev...go get VolName
|
bne .5 Already have a dev...go get VolName
|
||||||
|
|
||||||
>LDYA ZPPtr1
|
>LDYA ZPPtr1
|
||||||
>SYSCALL GetDevByName
|
>SYSCALL GetDevByName
|
||||||
bcs .99
|
bcs .99
|
||||||
>STYA ZPPtrFD
|
|
||||||
txa
|
|
||||||
>SYSCALL GetDevByID
|
|
||||||
txa
|
txa
|
||||||
|
>STA.G hDevID
|
||||||
|
lda Dev.Table.hFD,x
|
||||||
>STA.G hDevFD
|
>STA.G hDevFD
|
||||||
|
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.5 ldy #$ff
|
.5 ldy #$ff
|
||||||
|
@ -205,20 +211,19 @@ CS.RUN.InitCat >LDA.G CatSize
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.BuildCat >PUSHEA.G DIB
|
CS.RUN.BuildCat >PUSHEA.G DIB
|
||||||
>LDA.G hDevFD
|
>LDA.G hDevFD
|
||||||
|
|
||||||
>SYSCALL GetDevStatus
|
>SYSCALL GetDevStatus
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
lda ZPPtrFD
|
|
||||||
* clc
|
|
||||||
adc #S.FD.DEV.NAME
|
|
||||||
sta ZPPtr2
|
|
||||||
lda ZPPtrFD+1
|
|
||||||
adc /S.FD.DEV.NAME
|
|
||||||
sta ZPPtr2+1
|
|
||||||
|
|
||||||
>PUSHEA.G VolName
|
>PUSHEA.G VolName
|
||||||
>PUSHW.G DIB+S.DIB.SIZE
|
>PUSHW.G DIB+S.DIB.SIZE
|
||||||
>PUSHW ZPPtr2
|
|
||||||
|
>LDA.G hDevID
|
||||||
|
tax
|
||||||
|
lda Dev.Table.hPath,x
|
||||||
|
>SYSCALL GetMemPtr
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
>PUSHBI 6
|
>PUSHBI 6
|
||||||
>LDYA L.MSG.INIT
|
>LDYA L.MSG.INIT
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
@ -259,6 +264,7 @@ CS.RUN.BuildCat >PUSHEA.G DIB
|
||||||
CS.RUN.WriteCat >PUSHEA.G IOCTL
|
CS.RUN.WriteCat >PUSHEA.G IOCTL
|
||||||
>PUSHBI IOCTL.WRITEBLOCK
|
>PUSHBI IOCTL.WRITEBLOCK
|
||||||
>LDA.G hDevFD
|
>LDA.G hDevFD
|
||||||
|
|
||||||
>SYSCALL IOCTL
|
>SYSCALL IOCTL
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -333,7 +339,8 @@ DS.START
|
||||||
ArgIndex .BS 1
|
ArgIndex .BS 1
|
||||||
bLL .BS 1
|
bLL .BS 1
|
||||||
VolName .BS 16
|
VolName .BS 16
|
||||||
hDevFD .BS 5
|
hDevID .BS 1
|
||||||
|
hDevFD .BS 1
|
||||||
CatSize .BS 1
|
CatSize .BS 1
|
||||||
CatOptions .BS 1
|
CatOptions .BS 1
|
||||||
BlkCnt .BS 1
|
BlkCnt .BS 1
|
||||||
|
|
|
@ -4,7 +4,7 @@ AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF SBIN/IPCONFIG2
|
.TF BIN/DEV/IPCONFIG2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
|
|
|
@ -8,11 +8,18 @@ AUTO 4,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
|
.INB INC/KERNEL.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PAGELEN .EQ 22
|
PAGELEN .EQ 22
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPTR1 .EQ ZPBIN
|
.DUMMY
|
||||||
ZPPTR2 .EQ ZPBIN+2
|
.OR ZPBIN
|
||||||
|
ZS.START
|
||||||
|
ZPPTR1 .BS 2
|
||||||
|
ZPPTR2 .BS 2
|
||||||
|
ZPPSPtr .BS 2
|
||||||
|
ZS.END
|
||||||
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -20,11 +27,12 @@ CS.START cld
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.DA #$61 6502,Level 1 (65c02)
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
.DA #1 BIN Layout Version 1
|
.DA #1 BIN Layout Version 1
|
||||||
.DA 0
|
.DA #0 S.PS.F.EVENT
|
||||||
.DA CS.END-CS.START CS
|
.DA #0
|
||||||
.DA DS.END-DS.START DS
|
.DA CS.END-CS.START Code Size (without Constants)
|
||||||
.DA #64 SS
|
.DA DS.END-DS.START Data SegmentSize
|
||||||
.DA #4 ZP
|
.DA #32 Stack Size
|
||||||
|
.DA #ZS.END-ZS.START Zero Page Size
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
|
@ -182,7 +190,7 @@ CS.RUN.PRINTMEM ldy #S.MEM.LEN+1
|
||||||
|
|
||||||
ldy #S.MEM.OWNERPID
|
ldy #S.MEM.OWNERPID
|
||||||
lda (ZPPTR1),y
|
lda (ZPPTR1),y
|
||||||
>SYSCALL GetPSStatus
|
jsr CS.RUN.CHECKPS
|
||||||
bcc .12
|
bcc .12
|
||||||
|
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
|
@ -260,6 +268,18 @@ CS.RUN.PRINTMEM.EXIT
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CS.RUN.CHECKPS ldx #0
|
||||||
|
|
||||||
|
.1 cmp PS.Table.PID,x
|
||||||
|
beq .8
|
||||||
|
inx
|
||||||
|
cpx K.PS.MAX
|
||||||
|
bne .1
|
||||||
|
rts CS
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
CS.DOEVENT sec
|
CS.DOEVENT sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
113
BIN/PS.S.txt
113
BIN/PS.S.txt
|
@ -10,7 +10,13 @@ AUTO 4,1
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
.INB INC/KERNEL.I
|
.INB INC/KERNEL.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPtr .EQ ZPBIN
|
.DUMMY
|
||||||
|
.OR ZPBIN
|
||||||
|
ZS.START
|
||||||
|
ZPPSPtr .BS 2
|
||||||
|
ZPArgV .BS 2
|
||||||
|
ZS.END
|
||||||
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -18,11 +24,12 @@ CS.START cld
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.DA #$61 6502,Level 1 (65c02)
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
.DA #1 BIN Layout Version 1
|
.DA #1 BIN Layout Version 1
|
||||||
.DA 0
|
.DA #0 S.PS.F.EVENT
|
||||||
.DA CS.END-CS.START CS
|
.DA #0
|
||||||
.DA DS.END-DS.START DS
|
.DA CS.END-CS.START Code Size (without Constants)
|
||||||
.DA #64 SS
|
.DA DS.END-DS.START Data SegmentSize
|
||||||
.DA #2 ZP
|
.DA #16 Stack Size
|
||||||
|
.DA #ZS.END-ZS.START Zero Page Size
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
|
@ -32,74 +39,73 @@ CS.START cld
|
||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.MSG0 .DA MSG0
|
L.MSG0 .DA MSG0
|
||||||
L.MSGK .DA MSGK
|
|
||||||
L.MSG1 .DA MSG1
|
L.MSG1 .DA MSG1
|
||||||
|
L.MSG2 .DA MSG2
|
||||||
|
L.MSG3 .DA MSG3
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT clc
|
CS.INIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >LDYA pData
|
CS.RUN >LDYA L.MSG0
|
||||||
>SYSCALL GetPSStat
|
|
||||||
|
|
||||||
>LDYA L.MSG0
|
|
||||||
>SYSCALL puts
|
>SYSCALL puts
|
||||||
|
|
||||||
>PUSHB.G PS.KCPU
|
|
||||||
>PUSHBI 1
|
|
||||||
>LDYA L.MSGK
|
|
||||||
>SYSCALL printf
|
|
||||||
|
|
||||||
lda #1
|
>LDA.G PS.Index
|
||||||
>STA.G PS.Index
|
|
||||||
|
|
||||||
.1 >INC.G PS.Index
|
.1 tax
|
||||||
tay
|
lda PS.Table.PID,x
|
||||||
lda (pData),y PID
|
beq .7
|
||||||
|
|
||||||
|
lda PS.Table.hPS,x
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr
|
>STYA ZPPSPtr
|
||||||
|
|
||||||
ldy #S.PS.hARGV
|
ldy #S.PS.hARGV
|
||||||
lda (ZPPtr),y
|
lda (ZPPSPtr),y
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>STYA ZPArgV
|
||||||
|
|
||||||
ldy #S.PS.PPID
|
ldy #S.PS.PPID
|
||||||
lda (ZPPtr),y
|
lda (ZPPSPtr),y
|
||||||
>PUSHA Parent PID
|
>PUSHA Parent PID
|
||||||
|
|
||||||
ldy #S.PS.UID
|
ldy #S.PS.UID
|
||||||
lda (ZPPtr),y
|
lda (ZPPSPtr),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
jsr CS.RUN.DecodeFlags
|
jsr CS.RUN.DecodeFlags
|
||||||
|
|
||||||
>PUSHEA.G PS.FLAGS
|
>PUSHEA.G PS.FLAGS
|
||||||
|
|
||||||
>INC.G PS.Index
|
>LDA.G PS.Index
|
||||||
tay
|
tax
|
||||||
lda (pData),y
|
lda PS.Table.Stats,x
|
||||||
|
|
||||||
>PUSHA CPU%
|
>PUSHA CPU%
|
||||||
|
|
||||||
ldy #S.PS.PID
|
ldy #S.PS.PID
|
||||||
lda (ZPPtr),y
|
lda (ZPPSPtr),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHBI 8
|
>PUSHBI 8
|
||||||
>LDYA L.MSG1
|
>LDYA L.MSG1
|
||||||
>SYSCALL printf
|
>SYSCALL printf
|
||||||
|
bcs .9
|
||||||
|
|
||||||
.7 >DEC.G PS.COUNT
|
jsr CS.RUN.PrintArgs
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>SLEEP
|
||||||
|
|
||||||
|
.7 >INC.G PS.Index
|
||||||
|
cmp #K.PS.MAX
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.8
|
.8 lda #0 tell Kernel that all done ok, but
|
||||||
* lda #0 tell Kernel that all done ok, but
|
|
||||||
sec we do not want to stay in memory
|
sec we do not want to stay in memory
|
||||||
rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.DecodeFlags
|
CS.RUN.DecodeFlags
|
||||||
lda (ZPPtr) Get flags
|
lda (ZPPSPtr) Get flags
|
||||||
|
|
||||||
ldy #PS.FLAGS+7
|
ldy #PS.FLAGS+7
|
||||||
ldx #7
|
ldx #7
|
||||||
|
@ -117,6 +123,35 @@ CS.RUN.DecodeFlags
|
||||||
bpl .2
|
bpl .2
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CS.RUN.PrintArgs
|
||||||
|
.1 lda (ZPArgV)
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
>PUSHW ZPArgV
|
||||||
|
>PUSHBI 2
|
||||||
|
>LDYA L.MSG2
|
||||||
|
>SYSCALL printf
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
.2 inc ZPArgV
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
inc ZPArgV+1
|
||||||
|
|
||||||
|
.3 lda (ZPArgV)
|
||||||
|
bne .2
|
||||||
|
|
||||||
|
inc ZPArgV
|
||||||
|
bne .1
|
||||||
|
inc ZPArgV+1
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.8 >PUSHBI 0
|
||||||
|
>LDYA L.MSG3
|
||||||
|
>SYSCALL printf
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
CS.DOEVENT sec
|
CS.DOEVENT sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -125,16 +160,14 @@ CS.QUIT clc
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG0 .AZ "ID CPU% Flags UID PID Command Line"
|
MSG0 .AZ "ID CPU% Flags UID PID Command Line"
|
||||||
MSGK .AZ "000 %03d\% -------- 000 --- *KERNEL*\r\n"
|
MSG1 .AZ "\e[7l%03d %03d\% %s %03d %03d"
|
||||||
MSG1 .AZ "%03d %03d\% %s %03d %03d %s\r\n"
|
MSG2 .AZ " %s"
|
||||||
|
MSG3 .AZ "\r\n"
|
||||||
MSG.FLAGS .AS "IRQDHSed"
|
MSG.FLAGS .AS "IRQDHSed"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
PS.COUNT .BS 1
|
|
||||||
PS.KCPU .BS 1
|
|
||||||
PS.DATA .BS K.PS.MAX*2
|
|
||||||
PS.Index .BS 1
|
PS.Index .BS 1
|
||||||
PS.FLAGS .BS 9
|
PS.FLAGS .BS 9
|
||||||
DS.END
|
DS.END
|
||||||
|
|
|
@ -4,7 +4,7 @@ AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF DRV/DHGR.DRV
|
.TF DRV/GUI/DHGR.DRV
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
|
|
|
@ -4,7 +4,7 @@ AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF DRV/MOUSE.DRV
|
.TF DRV/GUI/MOUSE.DRV
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
|
|
6
ETC/INIT
6
ETC/INIT
|
@ -4,8 +4,10 @@ AUTO 4,1
|
||||||
#!/BIN/SHELL
|
#!/BIN/SHELL
|
||||||
ECHO *** A2osX INIT Script ***
|
ECHO *** A2osX INIT Script ***
|
||||||
SET PS1 = '$PWD'
|
SET PS1 = '$PWD'
|
||||||
SET PATH = ${PATH}BIN/DEV/
|
SET PATH = ${PATH}:${ROOT}BIN/DEV/
|
||||||
# Main Screen
|
SET DRV = ${DRV}:${ROOT}DRV/GUI/
|
||||||
|
SET LIB = ${LIB}:${ROOT}LIB/GUI/
|
||||||
|
# Main Screens
|
||||||
GETTY /DEV/TTY1 ${ROOT}SBIN/LOGIN &
|
GETTY /DEV/TTY1 ${ROOT}SBIN/LOGIN &
|
||||||
GETTY /DEV/TTY2 ${ROOT}SBIN/LOGIN &
|
GETTY /DEV/TTY2 ${ROOT}SBIN/LOGIN &
|
||||||
GETTY /DEV/TTY3 ${ROOT}SBIN/LOGIN &
|
GETTY /DEV/TTY3 ${ROOT}SBIN/LOGIN &
|
||||||
|
|
|
@ -4,9 +4,11 @@ AUTO 4,1
|
||||||
#!/BIN/SHELL
|
#!/BIN/SHELL
|
||||||
ECHO *** A2osX INIT Script ***
|
ECHO *** A2osX INIT Script ***
|
||||||
SET PS1 = '$PWD'
|
SET PS1 = '$PWD'
|
||||||
# Main Screen
|
# Main Screens
|
||||||
INSDRV CONSOLE.DRV
|
GETTY /DEV/TTY1 ${ROOT}SBIN/LOGIN &
|
||||||
STARTPROC GETTY /DEV/CON ${ROOT}SBIN/LOGIN
|
GETTY /DEV/TTY2 ${ROOT}SBIN/LOGIN &
|
||||||
|
GETTY /DEV/TTY3 ${ROOT}SBIN/LOGIN &
|
||||||
|
GETTY /DEV/TTY4 ${ROOT}SBIN/LOGIN &
|
||||||
# Serial Login
|
# Serial Login
|
||||||
#INSDRV SSC.DRV 9600,N,8,1,X
|
#INSDRV SSC.DRV 9600,N,8,1,X
|
||||||
#INSDRV SSC.I.DRV 9600,N,8,1,X
|
#INSDRV SSC.I.DRV 9600,N,8,1,X
|
||||||
|
|
|
@ -170,7 +170,7 @@ SYS.Rename .EQ $42
|
||||||
* .EQ $44
|
* .EQ $44
|
||||||
* .EQ $46
|
* .EQ $46
|
||||||
|
|
||||||
SYS.GetDevByID .EQ $48
|
* .EQ $48
|
||||||
SYS.GetDevByName .EQ $4A
|
SYS.GetDevByName .EQ $4A
|
||||||
SYS.GetDevStatus .EQ $4C
|
SYS.GetDevStatus .EQ $4C
|
||||||
SYS.MKDev .EQ $4E
|
SYS.MKDev .EQ $4E
|
||||||
|
@ -229,8 +229,8 @@ SYS.Kill .EQ $A6
|
||||||
|
|
||||||
* .EQ $A8
|
* .EQ $A8
|
||||||
SYS.GetMemStat .EQ $AA
|
SYS.GetMemStat .EQ $AA
|
||||||
SYS.GetPSStatus .EQ $AC
|
* .EQ $AC
|
||||||
SYS.GetPSStat .EQ $AE
|
* .EQ $AE
|
||||||
|
|
||||||
SYS.Args2ArgV .EQ $B0
|
SYS.Args2ArgV .EQ $B0
|
||||||
SYS.ArgV .EQ $B2
|
SYS.ArgV .EQ $B2
|
||||||
|
|
|
@ -12,7 +12,12 @@ AUTO 4,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TIMEOUT.MAX .EQ 100 10 sec.
|
TIMEOUT.MAX .EQ 100 10 sec.
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPtr1 .EQ ZPBIN
|
.DUMMY
|
||||||
|
.OR ZPBIN
|
||||||
|
ZS.START
|
||||||
|
ZPPtr1 .BS 2
|
||||||
|
ZS.END
|
||||||
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -22,10 +27,10 @@ CS.START cld
|
||||||
.DA #1 BIN Layout Version 1
|
.DA #1 BIN Layout Version 1
|
||||||
.DA #S.PS.F.EVENT S.PS.F
|
.DA #S.PS.F.EVENT S.PS.F
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA CS.END-CS.START CS
|
.DA CS.END-CS.START Code Size (without Constants)
|
||||||
.DA DS.END-DS.START DS
|
.DA DS.END-DS.START Data SegmentSize
|
||||||
.DA #64 SS
|
.DA #32 Stack Size
|
||||||
.DA #2 ZP
|
.DA #ZS.END-ZS.START Zero Page Size
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
|
|
|
@ -9,7 +9,12 @@ AUTO 4,1
|
||||||
.INB INC/MACROS.I
|
.INB INC/MACROS.I
|
||||||
.INB INC/A2OSX.I
|
.INB INC/A2OSX.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPTR1 .EQ ZPBIN
|
.DUMMY
|
||||||
|
.OR ZPBIN
|
||||||
|
ZS.START
|
||||||
|
ZPPTR1 .BS 2
|
||||||
|
ZS.END
|
||||||
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
INPUT.BufPtr.SIZE .EQ 16
|
INPUT.BufPtr.SIZE .EQ 16
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -21,10 +26,10 @@ CS.START cld
|
||||||
.DA #1 BIN Layout Version 1
|
.DA #1 BIN Layout Version 1
|
||||||
.DA #S.PS.F.EVENT S.PS.F
|
.DA #S.PS.F.EVENT S.PS.F
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA CS.END-CS.START CS
|
.DA CS.END-CS.START Code Size (without Constants)
|
||||||
.DA DS.END-DS.START DS
|
.DA DS.END-DS.START Data SegmentSize
|
||||||
.DA #64 SS
|
.DA #16 Stack Size
|
||||||
.DA #2 ZP SS
|
.DA #ZS.END-ZS.START Zero Page Size
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
|
|
|
@ -387,14 +387,12 @@ CORE.ScrSel and #$0F
|
||||||
|
|
||||||
cmp A2osX.ASCREEN Same as active screen...nothing to do
|
cmp A2osX.ASCREEN Same as active screen...nothing to do
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
jsr K.GetDevByID
|
tax
|
||||||
bcs .8
|
|
||||||
phx
|
|
||||||
|
|
||||||
>PUSHWI 0 Param
|
>PUSHWI 0 Param
|
||||||
>PUSHBI IOCTL.CONTROL request
|
>PUSHBI IOCTL.CONTROL request
|
||||||
pla ID
|
lda Dev.Table.hFD,x
|
||||||
|
|
||||||
jsr K.IOCTL
|
jsr K.IOCTL
|
||||||
|
|
||||||
|
|
|
@ -2,24 +2,6 @@ NEW
|
||||||
PREFIX
|
PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # GetDevByID
|
|
||||||
* A = DevID
|
|
||||||
* ## RETURN VALUE
|
|
||||||
* CC = OK, CS = ERROR
|
|
||||||
* Y,A = FD
|
|
||||||
* X = hFD
|
|
||||||
*\--------------------------------------
|
|
||||||
K.GetDevByID cmp DevMgr.DevCnt
|
|
||||||
bcs K.GetDev.NODEV
|
|
||||||
tax
|
|
||||||
|
|
||||||
lda Dev.Table.hFD,x
|
|
||||||
beq K.GetDev.NODEV
|
|
||||||
pha
|
|
||||||
jsr K.GetMemPtr
|
|
||||||
plx
|
|
||||||
rts
|
|
||||||
*/--------------------------------------
|
|
||||||
* # GetDevByName
|
* # GetDevByName
|
||||||
* Y,A = Ptr to device name (C-String)
|
* Y,A = Ptr to device name (C-String)
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
|
@ -159,7 +141,7 @@ K.MKDev jsr MEM.SPtr1PPtr2 ptr1=fd, ptr2=name
|
||||||
txa
|
txa
|
||||||
|
|
||||||
inc DevMgr.DevCnt
|
inc DevMgr.DevCnt
|
||||||
clc
|
* clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
|
|
@ -203,7 +203,6 @@ DRV.NULL cld
|
||||||
.DA DRV.NULL.CLOSE
|
.DA DRV.NULL.CLOSE
|
||||||
.DA DRV.NULL.READ
|
.DA DRV.NULL.READ
|
||||||
.DA DRV.NULL.WRITE
|
.DA DRV.NULL.WRITE
|
||||||
.DA A2osX.BADCALL IRQ
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.NULL.STATUS >LDYAI DRV.NULL.DIB
|
DRV.NULL.STATUS >LDYAI DRV.NULL.DIB
|
||||||
jmp DRV.STATUS.YA
|
jmp DRV.STATUS.YA
|
||||||
|
|
|
@ -109,6 +109,12 @@ Kernel.Init3 sta SETALTZP
|
||||||
|
|
||||||
jsr MemMgrInit
|
jsr MemMgrInit
|
||||||
|
|
||||||
|
>LDYAI CORE.S.PS0 Select Process 0 (Kernel)
|
||||||
|
>STYA pPs
|
||||||
|
|
||||||
|
>LDYAI K.STACKTOP
|
||||||
|
>STYA pStack
|
||||||
|
|
||||||
>PUSHWI FD.NULL.NAME
|
>PUSHWI FD.NULL.NAME
|
||||||
>LDYAI FD.NULL
|
>LDYAI FD.NULL
|
||||||
>SYSCALL MKDev
|
>SYSCALL MKDev
|
||||||
|
@ -355,13 +361,7 @@ SysScrInit.TTYPtrs
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS0.Init >LDYAI CORE.S.PS0 Select Process 0 (Kernel)
|
PS0.Init >PUSHWI 0 Aux type
|
||||||
>STYA pPs
|
|
||||||
|
|
||||||
>LDYAI K.STACKTOP
|
|
||||||
>STYA pStack
|
|
||||||
|
|
||||||
>PUSHWI 0 Aux type
|
|
||||||
>PUSHBI S.FI.T.TXT
|
>PUSHBI S.FI.T.TXT
|
||||||
>PUSHBI O.RDWR
|
>PUSHBI O.RDWR
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ K.SYSCALL.JMP .DA 0 $00
|
||||||
.DA K.Rename
|
.DA K.Rename
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA K.GetDevByID
|
.DA 0
|
||||||
.DA K.GetDevByName
|
.DA K.GetDevByName
|
||||||
.DA K.GetDevStatus
|
.DA K.GetDevStatus
|
||||||
.DA K.MKDev
|
.DA K.MKDev
|
||||||
|
@ -104,8 +104,8 @@ K.SYSCALL.JMP .DA 0 $00
|
||||||
.DA K.Kill
|
.DA K.Kill
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA K.GetMemStat
|
.DA K.GetMemStat
|
||||||
.DA K.GetPSStatus
|
.DA 0
|
||||||
.DA K.GetPSStat
|
.DA 0
|
||||||
|
|
||||||
.DA K.Args2ArgV $B0
|
.DA K.Args2ArgV $B0
|
||||||
.DA K.ArgV
|
.DA K.ArgV
|
||||||
|
|
|
@ -748,43 +748,6 @@ MEM.PutCharPtr2 sta (ZPPtr2)
|
||||||
bne .8
|
bne .8
|
||||||
inc ZPPtr2+1
|
inc ZPPtr2+1
|
||||||
.8 rts
|
.8 rts
|
||||||
*/--------------------------------------
|
|
||||||
* # GetPSStat
|
|
||||||
* **In:**
|
|
||||||
* Y,A = Ptr to K.PS.MAX*2+1 bytes buffer
|
|
||||||
* ## RETURN VALUE
|
|
||||||
* Buffer filled with PS stats
|
|
||||||
*\--------------------------------------
|
|
||||||
K.GetPSStat >STYA ZPPtr1
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
|
|
||||||
ldy #1
|
|
||||||
lda CORE.InKernelStats
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
|
|
||||||
iny
|
|
||||||
|
|
||||||
.1 lda PS.Table.PID,x
|
|
||||||
beq .2
|
|
||||||
|
|
||||||
lda PS.Table.hPS,x
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
iny
|
|
||||||
|
|
||||||
lda PS.Table.Stats,x
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
iny
|
|
||||||
|
|
||||||
.2 inx
|
|
||||||
cpx #K.PS.MAX
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
.9 tya
|
|
||||||
lsr
|
|
||||||
dec
|
|
||||||
sta (ZPPtr1)
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* 6502/65C02/65816 OPCODES
|
* 6502/65C02/65816 OPCODES
|
||||||
* Bit 3 : 1 = absolute addressing
|
* Bit 3 : 1 = absolute addressing
|
||||||
|
|
|
@ -565,10 +565,6 @@ K.Kill cmp #0
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.99 >RET 1
|
.99 >RET 1
|
||||||
*--------------------------------------
|
|
||||||
K.Kill.0 clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.Kill.1 lda (ZPPtr1)
|
K.Kill.1 lda (ZPPtr1)
|
||||||
|
|
||||||
|
@ -576,21 +572,9 @@ K.Kill.1 lda (ZPPtr1)
|
||||||
ora #S.PS.F.QUIT
|
ora #S.PS.F.QUIT
|
||||||
sta (ZPPtr1)
|
sta (ZPPtr1)
|
||||||
|
|
||||||
|
K.Kill.0
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
*/--------------------------------------
|
|
||||||
* # GetPSStatus
|
|
||||||
* **In:**
|
|
||||||
* A = PID
|
|
||||||
* ## RETURN VALUE
|
|
||||||
* A = Status Byte
|
|
||||||
*\--------------------------------------
|
|
||||||
K.GetPSStatus jsr CORE.GetPSByID
|
|
||||||
bcs .9
|
|
||||||
>STYA ZPPtr1
|
|
||||||
lda (ZPPtr1)
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE USR/SRC/SYS/KERNEL.S.PS
|
SAVE USR/SRC/SYS/KERNEL.S.PS
|
||||||
|
|
|
@ -544,7 +544,7 @@ PrintF.F clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
PrintF.H.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintF.HH jsr PrintF.GetByte
|
PrintF.HH jsr PrintF.GetByte
|
||||||
bcs PrintF.H.9
|
bcs PrintF.H.9
|
||||||
|
@ -559,7 +559,6 @@ PrintF.H.1 pha
|
||||||
jsr PrintF.NN.1
|
jsr PrintF.NN.1
|
||||||
pla
|
pla
|
||||||
bra PrintF.N.1
|
bra PrintF.N.1
|
||||||
PrintF.H.9 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintF.N jsr PrintF.GetByte
|
PrintF.N jsr PrintF.GetByte
|
||||||
bcs PrintF.H.9
|
bcs PrintF.H.9
|
||||||
|
|
|
@ -709,36 +709,34 @@ DRV.TERM.IAC ldy #S.DCB.TTY.INBUFFER
|
||||||
bne Csi.Home.8 wait for ending SE....keep bIACMode
|
bne Csi.Home.8 wait for ending SE....keep bIACMode
|
||||||
|
|
||||||
.1 cmp #IAC
|
.1 cmp #IAC
|
||||||
beq .9
|
beq COUT.IAC.SB.9
|
||||||
|
|
||||||
sec
|
sec
|
||||||
sbc #SB
|
sbc #SB
|
||||||
bcc .9
|
bcc COUT.IAC.SB.9
|
||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
ldy #S.DCB.TTY.INBUFFER+2
|
ldy #S.DCB.TTY.INBUFFER+2
|
||||||
lda (ZPDCBPtr),y Get SUBCMD in A
|
lda (ZPDCBPtr),y Get SUBCMD in A
|
||||||
|
|
||||||
cpx #10
|
cpx #10
|
||||||
bcc .8
|
bcs COUT.IAC.SB.9
|
||||||
|
|
||||||
.9 bra RESET.MODE
|
|
||||||
|
|
||||||
.8 jmp (.80,x)
|
jmp (.8,x)
|
||||||
|
|
||||||
.80 .DA COUT.IAC.SB
|
.8 .DA COUT.IAC.SB
|
||||||
.DA COUT.IAC.WILL
|
.DA COUT.IAC.WILL
|
||||||
.DA COUT.IAC.WONT
|
.DA COUT.IAC.WONT
|
||||||
.DA COUT.IAC.DO
|
.DA COUT.IAC.DO
|
||||||
.DA COUT.IAC.DONT
|
.DA COUT.IAC.DONT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT.IAC.SB cmp #TELOPT.TTYPE
|
COUT.IAC.SB cmp #TELOPT.TTYPE
|
||||||
bne .9
|
bne COUT.IAC.SB.9
|
||||||
|
|
||||||
ldy #S.DCB.TTY.INBUFFER+2
|
ldy #S.DCB.TTY.INBUFFER+2
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
cmp #SB.SEND
|
cmp #SB.SEND
|
||||||
bne .9
|
bne COUT.IAC.SB.9
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
|
@ -748,7 +746,7 @@ COUT.IAC.SB cmp #TELOPT.TTYPE
|
||||||
cpx #SB.IS.TTYPE.LEN
|
cpx #SB.IS.TTYPE.LEN
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.9 bra RESET.MODE
|
COUT.IAC.SB.9 bra COUT.IAC.EXIT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT.IAC.WILL ldx #WILLDO.CNT-1
|
COUT.IAC.WILL ldx #WILLDO.CNT-1
|
||||||
|
|
||||||
|
@ -764,7 +762,7 @@ COUT.IAC.WILL ldx #WILLDO.CNT-1
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
bra .9
|
bra COUT.IAC.EXIT
|
||||||
|
|
||||||
.7 ldx #DO
|
.7 ldx #DO
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
|
@ -772,11 +770,6 @@ COUT.IAC.WILL ldx #WILLDO.CNT-1
|
||||||
.8 ldx #DONT
|
.8 ldx #DONT
|
||||||
|
|
||||||
bra COUT.IAC.SendAX
|
bra COUT.IAC.SendAX
|
||||||
|
|
||||||
.9 bra RESET.MODE
|
|
||||||
*--------------------------------------
|
|
||||||
COUT.IAC.WONT
|
|
||||||
bra RESET.MODE
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COUT.IAC.DO ldx #DOWILL.CNT-1
|
COUT.IAC.DO ldx #DOWILL.CNT-1
|
||||||
|
|
||||||
|
@ -792,7 +785,7 @@ COUT.IAC.DO ldx #DOWILL.CNT-1
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
bra COUT.IAC.SendAX.9
|
bra COUT.IAC.EXIT
|
||||||
|
|
||||||
.7 ldx #WILL
|
.7 ldx #WILL
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
|
@ -809,11 +802,10 @@ COUT.IAC.SendAX
|
||||||
pla
|
pla
|
||||||
jsr Char.Out.Put
|
jsr Char.Out.Put
|
||||||
|
|
||||||
COUT.IAC.SendAX.9
|
COUT.IAC.WONT
|
||||||
bra RESET.MODE
|
|
||||||
*--------------------------------------
|
|
||||||
COUT.IAC.DONT
|
COUT.IAC.DONT
|
||||||
bra RESET.MODE
|
|
||||||
|
COUT.IAC.EXIT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RESET.MODE lda #0
|
RESET.MODE lda #0
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user