Kernel 0.9.2

This commit is contained in:
Rémy GIBERT 2018-07-13 16:38:24 +02:00
parent b0bfcee198
commit eb30794b11
15 changed files with 137 additions and 127 deletions

Binary file not shown.

Binary file not shown.

View File

@ -29,7 +29,7 @@ L.MSG.DETECT .DA MSG.DETECT
L.INSDRV .DA DRV.CS.START L.INSDRV .DA DRV.CS.START
.DA DRV.CS.END .DA DRV.CS.END
.DA DRV.END .DA DRV.END
L.NODE .DA DEV.NODE L.NODE .DA NODE
.DA 0 End Of Reloc Table .DA 0 End Of Reloc Table
*-------------------------------------- *--------------------------------------
Dev.Detect >LDYA L.MSG.DETECT Dev.Detect >LDYA L.MSG.DETECT
@ -41,7 +41,7 @@ Dev.Detect >LDYA L.MSG.DETECT
>SYSCALL InsDrv >SYSCALL InsDrv
bcs .9 bcs .9
>STYA DEV.NODE+S.FD.DEV.DRVPTR >STYA NODE+S.FD.DEV.DRVPTR
>LDYA L.NODE >LDYA L.NODE
>SYSCALL MKNOD >SYSCALL MKNOD
@ -54,8 +54,8 @@ NODE .DA #S.FD.T.CDEV
.DA #0 HANDLER .DA #0 HANDLER
.DA #0 BUSID .DA #0 BUSID
.DA #0 DEVID .DA #0 DEVID
.DA 0 BUSPTR
.BS 2 DRVPTR .BS 2 DRVPTR
.DA 0 ROMPTR
.AZ "CON" NAME .AZ "CON" NAME
.HS 00000000 .HS 00000000
*-------------------------------------- *--------------------------------------
@ -907,7 +907,7 @@ DEVSTAT .DA #S.DSTAT.S.WRITE+S.DSTAT.S.READ
.DA #S.DSTAT.T.CHAR .DA #S.DSTAT.T.CHAR
.DA #0 .DA #0
.DA #0 .DA #0
.DA #91 .DA KVER
*-------------------------------------- *--------------------------------------
DRV.END DRV.END
MAN MAN

View File

@ -1,8 +1,6 @@
PR#3
PREFIX /A2OSX.BUILD
NEW NEW
INC 1 PREFIX /A2OSX.BUILD
AUTO 6 AUTO 4,1
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000
@ -19,7 +17,7 @@ ZPPTR3 .EQ ZPBIN+4
*-------------------------------------- *--------------------------------------
CS.START cld CS.START cld
jmp (.1,x) jmp (.1,x)
.DA #H.BIN.CPU.65C02 .DA #$61 6502,Level 1 (65c02)
.DA #1 .DA #1
.DA 0 .DA 0
.DA CS.END-CS.START Code Length To Relocate .DA CS.END-CS.START Code Length To Relocate
@ -44,14 +42,14 @@ CS.INIT ldy #S.PS.ARGC
beq .9 beq .9
lda #1 get PTR to ARG[1] (Driver name) lda #1 get PTR to ARG[1] (Driver name)
>SYSCALL GetArg.A >SYSCALL GetArg
>PUSHYA >PUSHYA
>LDYA L.MSG.LOAD >LDYA L.MSG.LOAD
>SYSCALL printf >SYSCALL printf
lda #1 get PTR to ARG[1] (Driver name) lda #1 get PTR to ARG[1] (Driver name)
>SYSCALL GetArg.A >SYSCALL GetArg
>SYSCALL LoadDrv YA = PTR to ARG[1...n] >SYSCALL LoadDrv YA = PTR to ARG[1...n]
bcs .99 bcs .99

View File

@ -4,8 +4,8 @@ AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
CL.PrintPrompt >LDYA L.ENV.PS1 CL.PrintPrompt >LDYA L.ENV.PS1
>SYSCALL GetEnv.YA >SYSCALL GetEnv
>SYSCALL ExpandStr.YA >SYSCALL ExpandStr
phx phx
>SYSCALL printf >SYSCALL printf
>LDYA L.MSG.PROMPT >LDYA L.MSG.PROMPT
@ -14,7 +14,7 @@ CL.PrintPrompt >LDYA L.ENV.PS1
php php
pha pha
txa txa
>SYSCALL FreeMem.A >SYSCALL FreeMem
pla pla
plp plp
rts rts
@ -61,9 +61,9 @@ CL.CHARIN.CTRL cpx #13 CR
bne .10 bne .10
txa txa
>SYSCALL PutChar.A >SYSCALL PutChar
lda #10 lda #10
>SYSCALL PutChar.A >SYSCALL PutChar
>LDA.G CmdBufPtr >LDA.G CmdBufPtr
tay tay
@ -125,7 +125,7 @@ CL.Insert >LDA.G CmdBuflen
txa txa
sta (ZPCMDBuf),y sta (ZPCMDBuf),y
>SYSCALL PutChar.A >SYSCALL PutChar
>INC.G CmdBufPtr >INC.G CmdBufPtr
@ -163,7 +163,7 @@ CL.BS >LDA.G CmdBufPtr
sta (pData),y sta (pData),y
lda #8 lda #8
>SYSCALL PutChar.A >SYSCALL PutChar
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CL.NAK >LDA.G CmdBufPtr CL.NAK >LDA.G CmdBufPtr
@ -174,7 +174,7 @@ CL.NAK >LDA.G CmdBufPtr
>STA.G CmdBufPtr >STA.G CmdBufPtr
lda #21 lda #21
>SYSCALL PutChar.A >SYSCALL PutChar
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
* Erase char UNDER cursor * Erase char UNDER cursor
@ -194,7 +194,7 @@ CL.DEL >LDA.G CmdBuflen
beq CL.PrintEOL.8 beq CL.PrintEOL.8
lda #8 lda #8
>SYSCALL PutChar.A >SYSCALL PutChar
>DEC.G CmdBufPtr >DEC.G CmdBufPtr
@ -224,13 +224,13 @@ CL.PrintEOL >LDA.G CmdBufPtr
pha pha
tay tay
lda (ZPCMDBuf),y lda (ZPCMDBuf),y
>SYSCALL PutChar.A >SYSCALL PutChar
pla pla
inc inc
bra .1 bra .1
.2 lda #' ' .2 lda #' '
>SYSCALL PutChar.A >SYSCALL PutChar
>LDA.G CmdBufPtr >LDA.G CmdBufPtr
@ -240,13 +240,13 @@ CL.PrintEOL >LDA.G CmdBufPtr
pha pha
lda #8 lda #8
>SYSCALL PutChar.A >SYSCALL PutChar
pla pla
inc inc
bra .3 bra .3
.4 lda #8 .4 lda #8
>SYSCALL PutChar.A >SYSCALL PutChar
CL.PrintEOL.8 clc CL.PrintEOL.8 clc
rts rts

View File

@ -4,7 +4,7 @@ AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
CMD.Init >LDYAI CmdLine.MAX+1 CMD.Init >LDYAI CmdLine.MAX+1
>SYSCALL GetMem.YA >SYSCALL GetMem
bcs .9 bcs .9
>STYA ZPCMDBuf >STYA ZPCMDBuf
txa txa
@ -13,7 +13,7 @@ CMD.Init >LDYAI CmdLine.MAX+1
*-------------------------------------- *--------------------------------------
CMD.Quit >LDA.G hCmdBuf CMD.Quit >LDA.G hCmdBuf
beq .9 beq .9
>SYSCALL FreeMem.A >SYSCALL FreeMem
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
* ZPCMDBuf : Remove extra SPACE & comment * ZPCMDBuf : Remove extra SPACE & comment
@ -76,7 +76,7 @@ Cmd.Exec lda #0
>STA.G CMD.hFullpath >STA.G CMD.hFullpath
>LDYA ZPCMDBuf >LDYA ZPCMDBuf
>SYSCALL ExpandStr.YA >SYSCALL ExpandStr
>STYA ZPPtr1 Ptr to CMD ARGS >STYA ZPPtr1 Ptr to CMD ARGS
txa txa
@ -135,11 +135,11 @@ Cmd.Exec lda #0
Cmd.Exec.Done php Cmd.Exec.Done php
pha pha
>LDA.G CMD.hCmdLine >LDA.G CMD.hCmdLine
>SYSCALL FreeMem.A >SYSCALL FreeMem
>LDA.G CMD.hFullpath >LDA.G CMD.hFullpath
beq .1 beq .1
>SYSCALL FreeMem.A >SYSCALL FreeMem
.1 pla .1 pla
plp plp
@ -160,7 +160,7 @@ Cmd.Exec.EXT jsr Cmd.Exec.Split
bra .4 bra .4
.1 >LDYA L.ENV.PATH push ENVNAME=PATH for search .1 >LDYA L.ENV.PATH push ENVNAME=PATH for search
>SYSCALL GetEnv.YA get value for ENV=PATH >SYSCALL GetEnv get value for ENV=PATH
bcs .2 No PATH, try in CD bcs .2 No PATH, try in CD
jsr Cmd.Exec.EXT.Search jsr Cmd.Exec.EXT.Search
@ -168,13 +168,13 @@ Cmd.Exec.EXT jsr Cmd.Exec.Split
.2 ldy #S.PS.hPREFIX not found, try in CD .2 ldy #S.PS.hPREFIX not found, try in CD
lda (pPs),y lda (pPs),y
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
jsr Cmd.Exec.EXT.Search jsr Cmd.Exec.EXT.Search
bcs .99 bcs .99
.3 >LDYA ZPCMDBuf .3 >LDYA ZPCMDBuf
.4 >SYSCALL NewStr.YA .4 >SYSCALL NewStr
bcs .99 bcs .99
txa txa
>STA.G CMD.hFullpath >STA.G CMD.hFullpath
@ -202,7 +202,7 @@ Cmd.Exec.EXT jsr Cmd.Exec.Split
Cmd.Exec.EXT.TXT Cmd.Exec.EXT.TXT
lda #0 Get arg[0] = /PATH/SHELL lda #0 Get arg[0] = /PATH/SHELL
>SYSCALL GetArg.A >SYSCALL GetArg
>PUSHYA >PUSHYA
>PUSHW ZPCMDBuf >PUSHW ZPCMDBuf
>SYSCALL StrCat >SYSCALL StrCat
@ -213,7 +213,7 @@ Cmd.Exec.EXT.TXT
*-------------------------------------- *--------------------------------------
Cmd.Exec.EXT.BIN Cmd.Exec.EXT.BIN
>LDA.G CMD.hFullpath >LDA.G CMD.hFullpath
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
>PUSHYA >PUSHYA
>PUSHW ZPCMDBuf >PUSHW ZPCMDBuf
>SYSCALL StrCat >SYSCALL StrCat
@ -232,10 +232,10 @@ Cmd.Exec.EXT.BIN
>LDYA ZPCMDBuf >LDYA ZPCMDBuf
bcs .2 startproc bcs .2 startproc
>SYSCALL ExecPSNewEnv.YA >SYSCALL ExecPSNewEnv
jmp Cmd.Exec.Done jmp Cmd.Exec.Done
.2 >SYSCALL CreatePSNewEnv.YA .2 >SYSCALL CreatePSNewEnv
jmp Cmd.Exec.Done jmp Cmd.Exec.Done
*-------------------------------------- *--------------------------------------
Cmd.Exec.EXT.Search Cmd.Exec.EXT.Search
@ -263,7 +263,7 @@ Cmd.Exec.EXT.SEP
*-------------------------------------- *--------------------------------------
Cmd.Exec.PWD ldy #S.PS.hPREFIX Cmd.Exec.PWD ldy #S.PS.hPREFIX
lda (pPs),y lda (pPs),y
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
>SYSCALL printf >SYSCALL printf
jmp Cmd.Exec.ECHO.CR jmp Cmd.Exec.ECHO.CR
*-------------------------------------- *--------------------------------------
@ -271,10 +271,10 @@ Cmd.Exec.CD lda (ZPPTR2)
bne .1 bne .1
>LDYA L.ENV.HOME >LDYA L.ENV.HOME
>SYSCALL GetEnv.YA >SYSCALL GetEnv
bcs Cmd.Exec.PWD bcs Cmd.Exec.PWD
>SYSCALL ExpandStr.YA >SYSCALL ExpandStr
bcs .9 bcs .9
bra .4 bra .4
@ -296,7 +296,7 @@ Cmd.Exec.CD lda (ZPPTR2)
sta (ZPPTR2),y sta (ZPPTR2),y
.3 >LDYA ZPPTR2 Get ARG .3 >LDYA ZPPTR2 Get ARG
>SYSCALL RealPath.YA >SYSCALL RealPath
bcs .9 bcs .9
.4 >STYA ZPPTR2 .4 >STYA ZPPTR2
@ -318,13 +318,13 @@ Cmd.Exec.CD lda (ZPPTR2)
bne Cmd.Exec.ERRSYN bne Cmd.Exec.ERRSYN
.8 >LDYA ZPPTR2 .8 >LDYA ZPPTR2
>SYSCALL NewStr.YA >SYSCALL NewStr
bcs .9 bcs .9
phx phx
ldy #S.PS.hPREFIX ldy #S.PS.hPREFIX
lda (pPs),y lda (pPs),y
>SYSCALL FreeMem.A >SYSCALL FreeMem
pla pla
@ -356,7 +356,7 @@ Cmd.Exec.SET lda (ZPPTR2)
ldy #S.PS.hENV ldy #S.PS.hENV
lda (pPs),y lda (pPs),y
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
>STYA ZPPTR1 >STYA ZPPTR1
.1 lda (ZPPTR1) .1 lda (ZPPTR1)
@ -420,19 +420,19 @@ Cmd.Exec.SETVAR ldy #0
beq .2 "VAR=" go UnsetEnv beq .2 "VAR=" go UnsetEnv
>LDYA ZPPTR2 String is VAR=VALUE... >LDYA ZPPTR2 String is VAR=VALUE...
>SYSCALL PutEnv.YA >SYSCALL PutEnv
jmp Cmd.Exec.Done jmp Cmd.Exec.Done
.2 dey String is "VAR=", Remove endig '=' .2 dey String is "VAR=", Remove endig '='
sta (ZPPTR2),y sta (ZPPTR2),y
>LDYA ZPPTR2 String is "VAR"... >LDYA ZPPTR2 String is "VAR"...
>SYSCALL UnsetEnv.YA >SYSCALL UnsetEnv
jmp Cmd.Exec.Done jmp Cmd.Exec.Done
* Print requested VAR * Print requested VAR
.3 >LDYA ZPPTR2 .3 >LDYA ZPPTR2
>SYSCALL GetEnv.YA >SYSCALL GetEnv
bcs .8 bcs .8
>PUSHYA push value >PUSHYA push value
@ -450,7 +450,7 @@ Cmd.Exec.DATE sec
Cmd.Exec.TIME clc Cmd.Exec.TIME clc
php php
>LEA.G CMD.Time >LEA.G CMD.Time
>SYSCALL Time.YA >SYSCALL Time
>PUSHW ZPCMDBuf >PUSHW ZPCMDBuf
plp plp
@ -475,11 +475,11 @@ Cmd.Exec.ECHO lda (ZPPtr2)
Cmd.Exec.ECHO.CR Cmd.Exec.ECHO.CR
lda #13 lda #13
>SYSCALL PutChar.A >SYSCALL PutChar
bcs Cmd.Exec.ECHO.END bcs Cmd.Exec.ECHO.END
lda #10 lda #10
>SYSCALL PutChar.A >SYSCALL PutChar
Cmd.Exec.ECHO.END Cmd.Exec.ECHO.END
jmp Cmd.Exec.Done jmp Cmd.Exec.Done
*-------------------------------------- *--------------------------------------
@ -539,7 +539,7 @@ Cmd.Exec.READ lda (ZPPtr2)
beq .1 beq .1
phy phy
>SYSCALL PutChar.A >SYSCALL PutChar
ply ply
bcs .99 bcs .99
bra .3 bra .3

View File

@ -31,37 +31,37 @@ CSH.Init lda #$0
>STA.G CSH.StackPtr >STA.G CSH.StackPtr
lda #1 lda #1
>SYSCALL GetArg.A >SYSCALL GetArg
>SYSCALL LoadTxtFile.YA >SYSCALL LoadTxtFile
bcs .9 bcs .9
txa txa
>STA.G CSH.hBuf >STA.G CSH.hBuf
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
>STYA ZPCSHBufPtr >STYA ZPCSHBufPtr
>LDYAI 256 >LDYAI 256
>SYSCALL GetMem0.YA >SYSCALL GetMem0
bcs .9 bcs .9
txa txa
>STA.G CSH.hSymbols >STA.G CSH.hSymbols
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
>STYA ZPCSHSymbols >STYA ZPCSHSymbols
>LDYAI 256 >LDYAI 256
>SYSCALL GetMem.YA >SYSCALL GetMem
bcs .9 bcs .9
txa txa
>STA.G CSH.hData >STA.G CSH.hData
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
>STYA ZPCSHData >STYA ZPCSHData
>LDYAI 256 >LDYAI 256
>SYSCALL GetMem.YA >SYSCALL GetMem
bcs .9 bcs .9
txa txa
>STA.G CSH.hStack >STA.G CSH.hStack
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
>STYA ZPCSHStack >STYA ZPCSHStack
* clc * clc
@ -179,19 +179,19 @@ CSH.Run jsr CL.RESET
*-------------------------------------- *--------------------------------------
CSH.Quit >LDA.G CSH.hBuf CSH.Quit >LDA.G CSH.hBuf
beq .1 beq .1
>SYSCALL FreeMem.A >SYSCALL FreeMem
.1 >LDA.G CSH.hStack .1 >LDA.G CSH.hStack
beq .2 beq .2
>SYSCALL FreeMem.A >SYSCALL FreeMem
.2 >LDA.G CSH.hData .2 >LDA.G CSH.hData
beq .3 beq .3
>SYSCALL FreeMem.A >SYSCALL FreeMem
.3 >LDA.G CSH.hSymbols .3 >LDA.G CSH.hSymbols
beq .8 beq .8
>SYSCALL FreeMem.A >SYSCALL FreeMem
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
@ -1138,7 +1138,7 @@ CSH.IsDigit10 cmp #'0'
rts rts
*-------------------------------------- *--------------------------------------
CSH.ErrorMsg >LDA.G CSH.hBuf CSH.ErrorMsg >LDA.G CSH.hBuf
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
>STYA ZPPtr1 >STYA ZPPtr1
lda #0 lda #0
@ -1174,14 +1174,14 @@ CSH.ErrorMsg >LDA.G CSH.hBuf
cmp #$0D cmp #$0D
beq .6 beq .6
phy phy
>SYSCALL PutChar.A >SYSCALL PutChar
ply ply
bra .5 bra .5
.6 lda #$0D .6 lda #$0D
>SYSCALL PutChar.A >SYSCALL PutChar
lda #$0A lda #$0A
>SYSCALL PutChar.A >SYSCALL PutChar
@ -1193,7 +1193,7 @@ CSH.ErrorMsg >LDA.G CSH.hBuf
.7 phy .7 phy
lda #'-' lda #'-'
>SYSCALL PutChar.A >SYSCALL PutChar
ply ply
dey dey
bne .7 bne .7

View File

@ -4,7 +4,7 @@ AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
HIS.Init >LDYAI History.MAX Get a buffer for History HIS.Init >LDYAI History.MAX Get a buffer for History
>SYSCALL GetMem0.YA >SYSCALL GetMem0
bcs .9 bcs .9
txa txa
@ -18,7 +18,7 @@ HIS.Init >LDYAI History.MAX Get a buffer for History
HIS.Add >LDA.G HIS.hBuf HIS.Add >LDA.G HIS.hBuf
beq .9 beq .9
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
>STYA ZPPTR1 >STYA ZPPTR1
.10 lda #$ff .10 lda #$ff
@ -86,7 +86,7 @@ HIS.Add >LDA.G HIS.hBuf
HIS.GetPrev >LDA.G HIS.hBuf HIS.GetPrev >LDA.G HIS.hBuf
beq HISTORY.RTS beq HISTORY.RTS
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
>STYA ZPPTR1 >STYA ZPPTR1
>LDA.G HIS.Count >LDA.G HIS.Count
@ -107,7 +107,7 @@ History.RTS rts
HIS.GetNext >LDA.G HIS.hBuf HIS.GetNext >LDA.G HIS.hBuf
beq HISTORY.RTS beq HISTORY.RTS
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
>STYA ZPPTR1 >STYA ZPPTR1
>LDA.G HIS.Count >LDA.G HIS.Count
@ -176,7 +176,7 @@ HIS.GetA ldy #0
*-------------------------------------- *--------------------------------------
HIS.Quit >LDA.G HIS.hBuf HIS.Quit >LDA.G HIS.hBuf
beq .9 beq .9
>SYSCALL FreeMem.A >SYSCALL FreeMem
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
MAN MAN

View File

@ -324,7 +324,7 @@ CheckSleep ldy #Sleep+3
*-------------------------------------- *--------------------------------------
SetPWD ldy #S.PS.hPREFIX SetPWD ldy #S.PS.hPREFIX
lda (pPs),y lda (pPs),y
>SYSCALL GetMemPtr.A >SYSCALL GetMemPtr
>PUSHYA >PUSHYA
>PUSHW L.ENV.PWD >PUSHW L.ENV.PWD
>SYSCALL SetEnv >SYSCALL SetEnv

View File

@ -218,7 +218,7 @@ BIN.Load.1 >PUSHWI K.S.STAT
tya tya
* clc CC from bcs .99 * clc CC from bcs .99
adc BIN.R.CS.Start Get AUXTYPE for actual Base Address adc BIN.R.CS.Start Get AUXTYPE for actual Base Address
sta BIN.R.End compute Range End=AUXTYPE+FILELEN sta BIN.R.End compute Range End=AUXTYPE+FILELEN
pla pla
adc BIN.R.CS.Start+1 adc BIN.R.CS.Start+1
@ -241,11 +241,11 @@ BIN.Load.1 >PUSHWI K.S.STAT
lda (ZPPtr1),y lda (ZPPtr1),y
clc clc
adc ZPPtr1 adc ZPPtr1
sta ZPPtr2 Make ZPPtr2 = ZPPtr1 + CodeLen sta BIN.R.CS.End ZPPtr1 + CodeLen
iny iny
lda (ZPPtr1),y lda (ZPPtr1),y
adc ZPPtr1+1 adc ZPPtr1+1
sta ZPPtr2+1 sta BIN.R.CS.End+1
jsr BIN.RelExe jsr BIN.RelExe

View File

@ -303,7 +303,7 @@ DRV.SYS.WRITE ldy #S.IOCTL.BUFPTR
clc clc
rts rts
.3 lda (ZPDRV) .3 lda (ZPDRV+4)
inc ZPDRV+4 inc ZPDRV+4
bne .4 bne .4
inc ZPDRV+5 inc ZPDRV+5

View File

@ -113,13 +113,11 @@ Kernel.Init3 sta SETALTZP
jsr PS0.Init jsr PS0.Init
>DEBUG
>LDYAI MSG.Init3 >LDYAI MSG.Init3
>SYSCALL printf >SYSCALL printf
>DEBUG
jsr CPU.Init
jsr CPU.Init.6502
jsr CPU.Init.Z80
jsr DevMgrInit jsr DevMgrInit
jsr IrqMgrInit jsr IrqMgrInit
@ -294,15 +292,17 @@ PS0.Init >LDYAI CORE.S.PS0 Select Process 0 (Kernel)
clc clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CPU.Init >LDYAI MSG.CPU CPU.Init.6502 >LDYAI MSG.CPU
>SYSCALL printf >SYSCALL printf
jsr Detect6502 A = CPU type jsr Detect6502 A = CPU type
sta A2osX.CPUTYPE sta A2osX.CPUTYPE
ldx MSG.CPUTYPEL,y and #$F
lda MSG.CPUTYPEH,y asl
tay tax
ldy MSG.CPUTYPE,x
lda MSG.CPUTYPE+1,x
>SYSCALL printf >SYSCALL printf
@ -368,19 +368,20 @@ CPU.Init >LDYAI MSG.CPU
.8 lda A2osX.RANDOM16 .8 lda A2osX.RANDOM16
sta A2osX.CPUSPEED+1 sta A2osX.CPUSPEED+1
pha push CPU speed LO >PUSHA push CPU speed LO
lda A2osX.CPUSPEED lda A2osX.CPUSPEED
pha push CPU speed HI >PUSHA push CPU speed HI
>LDYAI MSG.CPU.SPEEDOK >LDYAI MSG.CPU.SPEEDOK
>SYSCALL printf >SYSCALL printf
rts
*--------------------------------------
CPU.Init.Z80 >LDYAI MSG.Z80 CPU.Init.Z80 >LDYAI MSG.Z80
>SYSCALL printf >SYSCALL printf
jsr DetectZ80 jsr DetectZ80
bcs .9 bcs .9
sta A2osX.Z80SLOT sta A2osX.Z80SLOT
pha Push Z80Slot >PUSHA
tax tax
lda #A2osX.S.Z80 lda #A2osX.S.Z80
@ -855,6 +856,10 @@ DevMgrInit.AddBDev
ora #$30 ora #$30
sta FD.BDEV+S.FD.DEV.NAME+3 SxDn sta FD.BDEV+S.FD.DEV.NAME+3 SxDn
>PUSHWI FD.BDEV+S.FD.DEV.NAME
>LDYAI MSG.BLKDEV
>SYSCALL printf
>LDYAI FD.BDEV >LDYAI FD.BDEV
DevMgrInit.AddCDev DevMgrInit.AddCDev
@ -884,7 +889,6 @@ DevMgrInit.AddCDev
bpl .1 bpl .1
inc DevMgr.DevCnt inc DevMgr.DevCnt
clc
rts rts
*-------------------------------------- *--------------------------------------
EvtMgrInit >LDYAI MSG.EVT EvtMgrInit >LDYAI MSG.EVT
@ -997,10 +1001,14 @@ TClock.SIG .HS 0878282c58ff700538b00118b8087848
SYSSCREEN.TOP .AZ "A2osX System Screen" SYSSCREEN.TOP .AZ "A2osX System Screen"
MSG.Init2 .AZ "A2osX[Stage2]:Init\nRelocating Kernel...\n" MSG.Init2 .AZ "A2osX[Stage2]:Init\nRelocating Kernel...\n"
MSG.HZ .AZ "Kernel SYS Timer Set For %d0 hz Machine.\n" MSG.HZ .AZ "Kernel SYS Timer Set For %d0 hz Machine.\n"
MSG.KCREAD .AZ "Reading Kernel Config File..."
MSG.KCREAD.OK .AZ "OK\n"
MSG.KCREAD.KO .AZ "\nError While Reading Kernel Config File, Using Default.\n"
MSG.Init2.OK .AZ "A2osX[Stage2]:Complete.\n" MSG.Init2.OK .AZ "A2osX[Stage2]:Complete.\n"
*-------------------------------------- *--------------------------------------
MSG.Init3 .AZ "A2osX[Stage3]:Init\r\n" MSG.Init3 .AZ "A2osX[Stage3]:Init\r\n"
MSG.DEV .AZ "-Device Manager...\r\n" MSG.DEV .AZ "-Device Manager...\r\n"
MSG.BLKDEV .AZ " /DEV/%s\r\n"
MSG.IRQ .AZ "-Interrupt Manager..." MSG.IRQ .AZ "-Interrupt Manager..."
MSG.IRQ.VBL .AZ "Mouse VBL IRQ Activated.\r\n" MSG.IRQ.VBL .AZ "Mouse VBL IRQ Activated.\r\n"
MSG.IRQ.CLOCK .AZ "Clock Card IRQ Activated.\r\n" MSG.IRQ.CLOCK .AZ "Clock Card IRQ Activated.\r\n"
@ -1015,25 +1023,18 @@ MSG.Init3.OK .AZ "A2osX[Stage3]:Complete.\r\n"
*-------------------------------------- *--------------------------------------
MSG.CPU .AZ "Checking CPU..." MSG.CPU .AZ "Checking CPU..."
MSG.CPU.SPEED .AZ "Detecting CPU Speed..." MSG.CPU.SPEED .AZ "Detecting CPU Speed..."
MSG.CPUTYPEL .DA #MSG.6502 MSG.CPUTYPE .DA MSG.6502
.DA #MSG.65C02 .DA MSG.65C02
.DA #MSG.65R02 .DA MSG.65R02
.DA #MSG.65816 .DA MSG.65816
MSG.CPUTYPEH .DA /MSG.6502 MSG.6502 .AZ "6502.\r\n"
.DA /MSG.65C02 MSG.65C02 .AZ "65C02.\r\n"
.DA /MSG.65R02 MSG.65R02 .AZ "65R02.\r\n"
.DA /MSG.65816 MSG.65816 .AZ "65816.\r\n"
MSG.6502 .AZ "6502.\n" MSG.CPU.SPEEDOK .AZ "%d.%02d Mhz.\r\n"
MSG.65C02 .AZ "65C02.\n"
MSG.65R02 .AZ "65R02.\n"
MSG.65816 .AZ "65816.\n"
MSG.CPU.SPEEDOK .AZ "%d.%02d Mhz.\n"
MSG.Z80 .AZ "Detecting Z80 CPU..." MSG.Z80 .AZ "Detecting Z80 CPU..."
MSG.Z80.OK .AZ "Detected In Slot %d.\n" MSG.Z80.OK .AZ "Detected In Slot %d.\r\n"
MSG.Z80.KO .AZ "Not Detected.\n" MSG.Z80.KO .AZ "Not Detected.\r\n"
MSG.KCREAD .AZ "Reading Kernel Config File..."
MSG.KCREAD.OK .AZ "OK\n"
MSG.KCREAD.KO .AZ "\nError While Reading Kernel Config File, Using Default.\n"
*-------------------------------------- *--------------------------------------
DEV.SYS .AZ "/DEV/SYS" DEV.SYS .AZ "/DEV/SYS"
I.ENV.A2osX .AZ "A2OSX" I.ENV.A2osX .AZ "A2OSX"

View File

@ -94,10 +94,13 @@ K.Read
*-------------------------------------- *--------------------------------------
* int write(int fd, const void *buf, size_t count); * int write(int fd, const void *buf, size_t count);
*-------------------------------------- *--------------------------------------
K.Write jsr K.GetMemPtr K.Write jsr IO.SELECT
>STYA pFD bcs K.Write.9
lda (pFD) #S.FD.T >PULLW K.S.IOCTL+S.IOCTL.BUFPTR
>PULLW K.S.IOCTL+S.IOCTL.BYTECNT
K.Write.I lda (pFD) #S.FD.T
tax tax
jmp (.1,x) jmp (.1,x)
@ -109,6 +112,7 @@ K.Write jsr K.GetMemPtr
.DA STDIO.IOERR DSOCK .DA STDIO.IOERR DSOCK
.DA IO.WRITE.SSOCK .DA IO.WRITE.SSOCK
.DA IO.WRITE.FIFO .DA IO.WRITE.FIFO
K.Write.9 >RET 4
*-------------------------------------- *--------------------------------------
IO.WRITE.REG >PUSHW K.S.IOCTL+S.IOCTL.BUFPTR IO.WRITE.REG >PUSHW K.S.IOCTL+S.IOCTL.BUFPTR
>PUSHW K.S.IOCTL+S.IOCTL.BYTECNT >PUSHW K.S.IOCTL+S.IOCTL.BYTECNT
@ -124,7 +128,7 @@ IO.WRITE.CDEV ldy #S.FD.DEV.DRVPTR
lda (pFD),y lda (pFD),y
sta .1+2 sta .1+2
lda K.IOBuf >LDYAI K.S.IOCTL
ldx #IOCTL.WRITE ldx #IOCTL.WRITE
.1 jmp $ffff .1 jmp $ffff
*-------------------------------------- *--------------------------------------

View File

@ -175,11 +175,15 @@ K.PrintF >STYA ZPPtr1 format
K.PrintF.0 >LDYAI K.IOBuf K.PrintF.0 >LDYAI K.IOBuf
>STYA pIOBuf >STYA pIOBuf
>STYA K.S.IOCTL+S.IOCTL.BUFPTR
K.PrintF.1 ldy #0 K.PrintF.1 stz K.S.IOCTL+S.IOCTL.BYTECNT
stz K.S.IOCTL+S.IOCTL.BYTECNT+1
ldy #0
.1 lda (ZPPtr1),y .1 lda (ZPPtr1),y
beq .99 beq .8 end of format..
iny iny
cmp #'%' cmp #'%'
bne .10 bne .10
@ -194,7 +198,7 @@ K.PrintF.1 ldy #0
iny iny
.3 cmp PrintFTBL1,x do we have a %x command? .3 cmp PrintFTBL1,x do we have a %x command?
beq .8 yes, jmp to it! beq .6 yes, jmp to it!
dex dex
bpl .3 no valid letter... bpl .3 no valid letter...
@ -225,7 +229,7 @@ K.PrintF.1 ldy #0
sta K.PrintF.PadL sta K.PrintF.PadL
bra .2 go get next char... bra .2 go get next char...
.8 phy .6 phy
txa txa
asl asl
tax tax
@ -234,6 +238,8 @@ K.PrintF.1 ldy #0
bcc .1 bcc .1
rts rts
.8 jmp PrintF.Flush
.10 cmp #'\' .10 cmp #'\'
bne .20 bne .20
@ -542,9 +548,9 @@ PrintF.SS ldy #$00 PSTR
*-------------------------------------- *--------------------------------------
PrintF.COut phy PrintF.COut phy
ldy S.IOCTL.BYTECNT ldy K.S.IOCTL+S.IOCTL.BYTECNT
sta (pIOBuf),y sta (pIOBuf),y
inc S.IOCTL.BYTECNT inc K.S.IOCTL+S.IOCTL.BYTECNT
bne .8 bne .8
lda pIOBuf+1 lda pIOBuf+1
@ -553,23 +559,25 @@ PrintF.COut phy
* we are printing to IObuf, flush! * we are printing to IObuf, flush!
lda S.IOCTL.BYTECNT+1 lda K.S.IOCTL+S.IOCTL.BYTECNT+1
pha pha
lda #1 Flush $100 bytes lda #1 Flush $100 bytes
sta S.IOCTL.BYTECNT+1 sta K.S.IOCTL+S.IOCTL.BYTECNT+1
pla pla
inc inc
sta S.IOCTL.BYTECNT+1 sta K.S.IOCTL+S.IOCTL.BYTECNT+1
.7 inc pIOBuf+1 .7 inc pIOBuf+1
inc S.IOCTL.BYTECNT+1 inc K.S.IOCTL+S.IOCTL.BYTECNT+1
.8 ply .8 ply
clc clc
rts rts
*--------------------------------------
PrintF.Flush jmp K.Write.I
*/-------------------------------------- */--------------------------------------
* # GetChar * # GetChar
* Get char from StdIn * Get char from StdIn
@ -593,8 +601,7 @@ K.GetChar ldy #S.PS.hStdIn
* CC = success * CC = success
* A = char * A = char
*\-------------------------------------- *\--------------------------------------
K.GetC jsr K.GetMemPtr K.GetC jsr IO.SELECT
>STYA pFD
ldy #S.FD.T ldy #S.FD.T
lda (pFD),y lda (pFD),y