Kernel 0.92 : DEBUG CODE

This commit is contained in:
Rémy GIBERT 2018-12-03 07:59:30 +01:00
parent 8363783920
commit 42d6f9f910
14 changed files with 102 additions and 192 deletions

Binary file not shown.

View File

@ -23,7 +23,7 @@ CS.START cld
.DA 0 .DA 0
.DA CS.END-CS.START CS .DA CS.END-CS.START CS
.DA DS.END-DS.START DS .DA DS.END-DS.START DS
.DA #16 SS .DA #32 SS
.DA #6 ZP .DA #6 ZP
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
@ -343,5 +343,5 @@ DIB .BS S.DIB
DS.END .ED DS.END .ED
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/BIN/FORMAT.S SAVE USR/SRC/BIN/FORMAT.S
ASM ASM

View File

@ -141,5 +141,5 @@ DS.END
.ED .ED
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/BIN/PS.S SAVE USR/SRC/BIN/PS.S
ASM ASM

View File

@ -264,16 +264,21 @@ CL.PrintCmdBuf >LDYA ZPCLBuf
CL.GetLine >LDYA ZPFileBufPtr CL.GetLine >LDYA ZPFileBufPtr
>STYA.G CMD.FileBufPtr >STYA.G CMD.FileBufPtr
lda #"a"
sta $815
lda (ZPFileBufPtr) lda (ZPFileBufPtr)
beq .9 beq .9
inc $815
ldx #0 not in " ldx #0 not in "
ldy #0 ldy #0
.1 lda (ZPFileBufPtr),y .1 lda (ZPFileBufPtr),y
beq .7 beq .7
inc $815
cmp #C.CR cmp #C.CR
beq .6 beq .6

View File

@ -166,24 +166,50 @@ J.CMD.Eval.TOKEN4 .DA M32.Add
L.M32.Printf .DA M32.Printf L.M32.Printf .DA M32.Printf
L.ERR.Codes .DA ERR.Codes L.ERR.Codes .DA ERR.Codes
L.ERR.Messages .DA ERR.Messages L.ERR.Messages .DA ERR.Messages
L.MSG.DEBUG .DA MSG.DEBUG
.DO CSH=1 .DO CSH=1
.INB USR/SRC/BIN/SHELL.R.CSH .INB USR/SRC/BIN/SHELL.R.CSH
.FIN .FIN
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.DEBUG >PUSHWI K.VER
>PUSHBI 2
>LDYA L.MSG.GREETINGS
>SYSCALL printf
lda #0
>SYSCALL ArgV
>PUSHYA
>PUSHBI 2
>LDYA L.MSG.DEBUG
>SYSCALL printf
lda #1
>SYSCALL ArgV
>PUSHYA
>PUSHBI 2
>LDYA L.MSG.DEBUG
>SYSCALL printf
rts
*--------------------------------------
CS.INIT clc CS.INIT clc
CS.INIT.RTS rts CS.INIT.RTS rts
*-------------------------------------- *--------------------------------------
CS.RUN jsr CMD.Init CS.RUN lda #"I"
sta $819
sta $817
jsr CMD.Init
bcs CS.INIT.RTS bcs CS.INIT.RTS
ldy #S.PS.ARGC ldy #S.PS.ARGC
lda (pPS),y lda (pPS),y
beq .1 no arg, continue starting interactive beq .1 no arg, continue starting interactive
jsr CS.DEBUG
lda #1 lda #1
>SYSCALL ArgV >SYSCALL ArgV
>SYSCALL LoadTxtFile >SYSCALL LoadTxtFile
bcs CS.INIT.RTS bcs CS.INIT.RTS
@ -209,7 +235,7 @@ CS.RUN jsr CMD.Init
>PUSHBI 2 >PUSHBI 2
>LDYA L.MSG.GREETINGS >LDYA L.MSG.GREETINGS
>SYSCALL printf >SYSCALL printf
bcs CS.INIT.RTS * bcs CS.INIT.RTS
*-------------------------------------- *--------------------------------------
CS.RUN.LOOP jsr CL.Reset CS.RUN.LOOP jsr CL.Reset
jsr IO.Reset jsr IO.Reset
@ -259,7 +285,7 @@ CS.RUN.LOOP jsr CL.Reset
bne .7 bne .7
.62 >LDA.G hFileBuf batch mode ? .62 >LDA.G hFileBuf batch mode ?
beq CS.RUN.INTERCATIVE beq CS.RUN.INTERACTIVE
jmp CS.RUN.BATCH jmp CS.RUN.BATCH
.7 jmp CS.RUN.READ .7 jmp CS.RUN.READ
@ -267,7 +293,7 @@ CS.RUN.LOOP jsr CL.Reset
.9 sec .9 sec
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.INTERCATIVE CS.RUN.INTERACTIVE
jsr CL.PrintPrompt jsr CL.PrintPrompt
bcs .9 bcs .9
@ -360,6 +386,9 @@ CS.RUN.BATCH >SYSCALL GetChar
cmp #C.EOF cmp #C.EOF
bne .3 bne .3
lda #"\"
sta $819
lda #$ff lda #$ff
>STA.G bExit >STA.G bExit
inc inc
@ -369,7 +398,8 @@ CS.RUN.BATCH >SYSCALL GetChar
.3 sec .3 sec
bra CS.RUN.LOOP.END bra CS.RUN.LOOP.END
.7 >LDA.G CL.bExec .7 inc $817
>LDA.G CL.bExec
bpl CS.RUN.LOOP.80 bpl CS.RUN.LOOP.80
lda (ZPCLBuf) lda (ZPCLBuf)
@ -564,6 +594,7 @@ ENV.PATH .AZ "PATH"
ENV.PWD .AZ "PWD" ENV.PWD .AZ "PWD"
ENV.PS1 .AZ "PS1" ENV.PS1 .AZ "PS1"
ENV.HOME .AZ "HOME" ENV.HOME .AZ "HOME"
MSG.DEBUG .AZ "{%s}\r\n"
*-------------------------------------- *--------------------------------------
* https://www.tldp.org/LDP/abs/html/io-redirection.html * https://www.tldp.org/LDP/abs/html/io-redirection.html
*-------------------------------------- *--------------------------------------

View File

@ -149,7 +149,12 @@ STATUS >STYA ZPIOCTL
OPEN sta A2osX.SCRNDEVS DEV.ID in A OPEN sta A2osX.SCRNDEVS DEV.ID in A
lda #S.DIB.S.OPENED lda #S.DIB.S.OPENED
tsb DIB+S.DIB.S ora DIB+S.DIB.S
sta DIB+S.DIB.S
lda #"C"
sta $417
sta $817
stz OutPtr stz OutPtr
stz OutCnt stz OutCnt
@ -163,6 +168,9 @@ CONTROL sta SETTEXT
sta CLRPAGE2 sta CLRPAGE2
lda #1 lda #1
sta A2osX.ASCREEN sta A2osX.ASCREEN
lda #"c"
sta $417
sta $817
clc clc
rts rts
*-------------------------------------- *--------------------------------------

View File

@ -3,94 +3,6 @@ PREFIX
AUTO 4,1 AUTO 4,1
.LIST OFF .LIST OFF
*-------------------------------------- *--------------------------------------
ZPKERNEL .EQ $0
ZPMEMMGR .EQ $10
*--------------------------------------
ZPPtr1 .EQ ZPKERNEL
ZPPtr2 .EQ ZPKERNEL+2
ZPPtr3 .EQ ZPKERNEL+4
ZPPtr4 .EQ ZPKERNEL+6
pFD .EQ ZPKERNEL+10
pDRV .EQ ZPKERNEL+12
pIOCTL .EQ ZPKERNEL+12
pIOBuf .EQ ZPKERNEL+14
*--------------------------------------
SYS.BASL0 .EQ $800
*--------------------------------------
* AuxMove / XFer
*--------------------------------------
A1L .EQ $3C
A2L .EQ $3E
A4L .EQ $42
XFer.JMP .EQ $3ED
AuxMove .EQ $C311
XFer .EQ $C314 CS:M->X, VS:Use Aux ZP
*--------------------------------------
* $42-$47 ProDOS Block Device Drivers Main
*--------------------------------------
DRV.BLK.Cmd .EQ $42
DRV.BLK.UnitNum .EQ $43
DRV.BLK.Buf .EQ $44
DRV.BLK.BlkNum .EQ $47
*--------------------------------------
* $5E-$C8 RESERVED APPLESOFT Main/Aux (ROM Call, no need to switch back MainZP)
*--------------------------------------
SIGNFLG .EQ $16 COS,SIN,TAN
INDEX .EQ $5E ->$5F
FORPNT .EQ $85 ->$86
FAC .EQ $9D ->$A1
FAC.SIGN .EQ $A2
ARG .EQ $A5 -> $A9 (5 bytes)
ARG.SIGN .EQ $AA
*FAC.EXTENSION .EQ $AC
TXTPTR .EQ $B8
*--------------------------------------
* ROM Entry Point
*--------------------------------------
ROM.FSUB .EQ 0
ROM.FADD .EQ 2
ROM.LTOF .EQ 4
ROM.LOG .EQ 6
ROM.FMULT .EQ 8
ROM.SETARG .EQ 10
ROM.FDIV .EQ 12
ROM.SETFAC .EQ 14
ROM.GETFAC .EQ 16 Copy FAC to (FORPNT)
ROM.FCOMP .EQ 18
ROM.QINT .EQ 20
ROM.FIN .EQ 22
ROM.FOUT .EQ 24
ROM.SQR .EQ 26
ROM.PWR .EQ 28
ROM.EXP .EQ 30
ROM.COS .EQ 32
ROM.SIN .EQ 34
ROM.TAN .EQ 36
ROM.ATAN .EQ 38
*--------------------------------------
* Memory Map
*--------------------------------------
A2osX.SaveSM .EQ $100 Aux
A2osX.SaveSX .EQ $101 Aux
*--------------------------------------
* Main $200 -> 2FF : (Used By ProDOS,Clock DRV....)
* Main $300 -> 3EF : <free>
* Main $3F0 -> 3FF : SYS Vectors (reset,IRQ...)
* Aux $200 -> 3FD : /RAM Driver
* Aux $3FE -> 3FF : IRQ Vector
*--------------------------------------
K.S.STAT .EQ $0300 S.STAT for internal kernel operations
K.S.IOCTL .EQ K.S.STAT+S.STAT 9 bytes
K.MLI.PATH .EQ K.S.IOCTL+S.IOCTL 64+1
K.MLI.PARAMS .EQ K.MLI.PATH+MLI.MAXPATH+1 Main, 18 bytes min for GetFileInfo (ATLK needs MORE!!!...32 max for now)
*--------------------------------------
K.STACKTOP .EQ $03ED XFer !!! down to $3E0
*--------------------------------------
*** $3F0-$3FF IRQ Handler.... *** *** $3F0-$3FF IRQ Handler.... ***
*-------------------------------------- *--------------------------------------
* Main/Aux $400 -> $7FF : TXT PAGE1 Console Screen * Main/Aux $400 -> $7FF : TXT PAGE1 Console Screen
@ -112,58 +24,9 @@ PS.Table.Stats .EQ $0CE0 K.PS.MAX
OF.Table.hPath .EQ $0D00 K.OF.MAX OF.Table.hPath .EQ $0D00 K.OF.MAX
OF.Table.hFD .EQ $0D20 K.OF.MAX OF.Table.hFD .EQ $0D20 K.OF.MAX
*-------------------------------------- *--------------------------------------
Evt.Table .EQ $0D40 K.EVT.MAX*S.EVT.SIZE=4*8=32b Evt.Table .EQ $0D40 K.EVT.MAX*S.EVT=4*8=32b
*-------------------------------------- *--------------------------------------
Flt.Table .EQ $0D60 K.FLT.MAX*S.FLT.SIZE=4*32=128b Flt.Table .EQ $0D60 K.FLT.MAX*S.FLT=4*32=128b
*--------------------------------------
K.Buf256 .EQ $0E00
*--------------------------------------
K.IOBuf .EQ $0F00
*--------------------------------------
*** Z80 Reserved $1000-10FF***
*--------------------------------------
Z80CODE .EQ $1000 (00000h) Up To $10FF
Z80STACK .EQ $10FF (000FFh) Down to $1000
*--------------------------------------
* CORE $1100->$17FF = $700 Main
*--------------------------------------
* MemMgr : $1800->$1FFF MAIN/AUX (2 kBytes)
*--------------------------------------
Mem.Table .EQ $1800 Slot 0 is Reserved
Mem.LoMem .EQ $1800
Mem.Free .EQ $1802
Mem.HiMem .EQ $1804
Mem.LastSlot .EQ $1806
*--------------------------------------
Mem.MLoMem .EQ $2000
Mem.MHiMem .EQ $BD00
Mem.XLoMem .EQ $2000
Mem.XHiMem .EQ $C000
*--------------------------------------
DevMgr.HiMem .EQ $FFFA Protect IRQ vectors in Aux LC
*--------------------------------------
H.BIN.T .EQ 0
H.BIN.T.DRV65 .EQ $4CD8 6502:cld,jmp abs
H.BIN.T.LIB65 .EQ $7CD8 6502:cld,jmp (abs,x)
H.BIN.T.BIN65 .EQ $7CD8 6502:cld,jmp (abs,x)
*H.BIN.T.LIB80 .EQ $A28D Z80:
*H.BIN.T.BIN80 .EQ $A28D Z80:
H.BIN.JMP .EQ 2
H.BIN.CPU .EQ 4
H.BIN.CPU.6502 .EQ $60
H.BIN.CPU.65C02 .EQ $61
H.BIN.CPU.65R02 .EQ $62
H.BIN.CPU.65816 .EQ $63
H.BIN.V .EQ 5
H.BIN.F .EQ 6
H.BIN.CS.SIZE .EQ 8
H.BIN.DS.SIZE .EQ 10
H.BIN.SS.SIZE .EQ 12
H.BIN.ZP.SIZE .EQ 13
*
H.BIN.EXE.REL.TABLE .EQ 16
*
H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE INC/KERNEL.I SAVE INC/KERNEL.I

View File

@ -91,31 +91,6 @@ K.MLI.PARAMS .EQ $03AA Main, 18 bytes min for GetFileInfo (ATLK needs MORE!!!
*-------------------------------------- *--------------------------------------
K.STACKTOP .EQ $03ED XFer !!! down to $3E0 K.STACKTOP .EQ $03ED XFer !!! down to $3E0
*-------------------------------------- *--------------------------------------
*** $3F0-$3FF IRQ Handler.... ***
*--------------------------------------
* Main/Aux $400 -> $7FF : TXT PAGE1 Console Screen
* Main/Aux $800 -> $BFF : TXT PAGE2 System Screen
*--------------------------------------
* free $0C00->$17FF = $C00 (3072) Aux
*--------------------------------------
Dev.Table.hPath .EQ $0C00 K.Dev.MAX
Dev.Table.hFD .EQ $0C20 K.Dev.MAX
*--------------------------------------
Nod.Table.hPath .EQ $0C40 K.NOD.MAX
Nod.Table.hFD .EQ $0C60 K.NOD.MAX
*--------------------------------------
PS.Table.PID .EQ $0C80 K.PS.MAX
PS.Table.hPS .EQ $0CA0 K.PS.MAX
PS.Table.Hits .EQ $0CC0 K.PS.MAX
PS.Table.Stats .EQ $0CE0 K.PS.MAX
*--------------------------------------
OF.Table.hPath .EQ $0D00 K.OF.MAX
OF.Table.hFD .EQ $0D20 K.OF.MAX
*--------------------------------------
Evt.Table .EQ $0D60 K.EVT.MAX*S.EVT.SIZE=4*8=32b
*--------------------------------------
Flt.Table .EQ $0D80 K.FLT.MAX*S.FLT.SIZE=4*32=128b
*--------------------------------------
K.Buf256 .EQ $0E00 K.Buf256 .EQ $0E00
*-------------------------------------- *--------------------------------------
K.IOBuf .EQ $0F00 K.IOBuf .EQ $0F00
@ -166,6 +141,6 @@ H.BIN.EXE.REL.TABLE .EQ 16
H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE INC/KERNEL.I SAVE USR/SRC/SYS/KERNEL.S.DEF
LOAD USR/SRC/SYS/KERNEL.S LOAD USR/SRC/SYS/KERNEL.S
ASM ASM

View File

@ -244,7 +244,9 @@ DRV.SYS cld
DRV.SYS.STATUS >LDYAI DRV.SYS.DIB DRV.SYS.STATUS >LDYAI DRV.SYS.DIB
jmp DRV.STATUS.YA jmp DRV.STATUS.YA
*-------------------------------------- *--------------------------------------
DRV.SYS.Open lda #DEVID.SYS DRV.SYS.Open lda #"S"
sta $423
lda #DEVID.SYS
sta A2osX.SCRNDEVS+1 sta A2osX.SCRNDEVS+1
jsr DRV.SYS.FF jsr DRV.SYS.FF
*-------------------------------------- *--------------------------------------

View File

@ -102,7 +102,7 @@ Kernel.Init3 sta SETALTZP
sta IRQ.InKernel sta IRQ.InKernel
jsr SysScrInit jsr SysScrInit
lda #"1" lda #"A"
sta $427 sta $427
jsr MemMgrInit jsr MemMgrInit
>LDYAI FD.NULL >LDYAI FD.NULL
@ -118,20 +118,24 @@ Kernel.Init3 sta SETALTZP
sta $427 sta $427
bra * bra *
.10 >LDYAI MSG.Init3 .10 inc $427
>LDYAI MSG.Init3
>SYSCALL puts >SYSCALL puts
inc $427
jsr CPU.Init.6502 jsr CPU.Init.6502
inc $427
jsr CPU.Init.Z80 jsr CPU.Init.Z80
inc $427
jsr DevMgrInit jsr DevMgrInit
inc $427
jsr IrqMgrInit jsr IrqMgrInit
bcs * bcs *
inc $427
jsr EvtMgrInit jsr EvtMgrInit
inc $427
jsr TskMgrInit jsr TskMgrInit
bcs * bcs *
inc $427
ldy #S.PS.hPREFIX ldy #S.PS.hPREFIX
lda (pPs),y lda (pPs),y
@ -142,6 +146,7 @@ Kernel.Init3 sta SETALTZP
>PUSHBI 2 >PUSHBI 2
>LDYAI MSG.Prefix >LDYAI MSG.Prefix
>SYSCALL printf >SYSCALL printf
inc $427
lda KBD lda KBD
bpl .1 bpl .1
@ -167,7 +172,7 @@ Kernel.Init3 sta SETALTZP
.8 >SYSCALL ExecL .8 >SYSCALL ExecL
bcs .9 bcs Kernel.Init3.Err
>PUSHBI 0 >PUSHBI 0
>LDYAI MSG.Init3.OK >LDYAI MSG.Init3.OK
@ -177,7 +182,8 @@ Kernel.Init3 sta SETALTZP
jmp CORE.Run jmp CORE.Run
.9 >PUSHA Kernel.Init3.Err
>PUSHA
>PUSHBI 1 >PUSHBI 1
>LDYAI MSG.StartupErr >LDYAI MSG.StartupErr
>SYSCALL printf >SYSCALL printf
@ -534,7 +540,12 @@ MemMgrInit >LDYAI Mem.MHiMem
dex dex
bpl .4 bpl .4
stz Evt.Table ldx #K.EVT.MAX*S.EVT-1
.5 stz Evt.Table,x
dex
bpl .5
stz Flt.Table stz Flt.Table
rts rts

View File

@ -186,11 +186,15 @@ K.IO.OPEN.REG.E >LDYAI S.FD.REG
IO.OPEN.CDEV sta .1+1 A=DEVID IO.OPEN.CDEV sta .1+1 A=DEVID
pha pha
jsr K.IOCTL.GetPDrv jsr K.IOCTL.GetPDrv
lda #"C"
sta $425
ldx #IOCTL.OPEN ldx #IOCTL.OPEN
pla pass A=DEVID To Driver pla pass A=DEVID To Driver
jsr K.IOCTL.pDrvJmp jsr K.IOCTL.pDrvJmp
inc $425
bcs .9 bcs .9
inc $425
.1 ldx #$ff SELF MODIFIED .1 ldx #$ff SELF MODIFIED
lda Dev.Table.hFD,x lda Dev.Table.hFD,x

View File

@ -60,10 +60,12 @@ K.ExecV >STYA PS.ArgV
PS.Exec jsr PS.CreateChild A=PID,Child S.PS at ZPPtr3,PS.Load.hMem PS.Exec jsr PS.CreateChild A=PID,Child S.PS at ZPPtr3,PS.Load.hMem
bcs .9 bcs .9
sta .8+1 sta .8+1
lda #"A"
sta $821
stz K.IOBuf stz K.IOBuf
jsr PS.Load jsr PS.Load
bcs .90 bcs .90
inc $821
jsr PS.AddArgV jsr PS.AddArgV
bcc .8 bcc .8
@ -76,6 +78,7 @@ PS.Exec jsr PS.CreateChild A=PID,Child S.PS at ZPPtr3,PS.Load.hMem
rts rts
.8 lda #$ff SELF MODIFIED .8 lda #$ff SELF MODIFIED
inc $821
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
* PS.CreateChild * PS.CreateChild

View File

@ -989,16 +989,21 @@ K.SScanF.Fwd tya Y=char count parsed
* CC : A = hFILE * CC : A = hFILE
* CS : A = EC * CS : A = EC
*\-------------------------------------- *\--------------------------------------
K.FOpen jsr PFT.CheckPathYA K.FOpen pha
lda #"O"
sta $426
pla
jsr PFT.CheckPathYA
inc $426
bcs .99 bcs .99
inc $426
>PULLB K.Open.FLAGS >PULLB K.Open.FLAGS
>PULLB K.Open.TYPE >PULLB K.Open.TYPE
>PULLW K.Open.AUXTYPE >PULLW K.Open.AUXTYPE
jsr IO.Open.I jsr IO.Open.I
bcs .9 bcs .9
inc $426
tax tax
stx .1+1 save hFD stx .1+1 save hFD
@ -1006,7 +1011,9 @@ K.FOpen jsr PFT.CheckPathYA
>LDYAI K.Buf256 >LDYAI K.Buf256
jsr STDIO.NewHFileYAX jsr STDIO.NewHFileYAX
inc $426
bcc .9 bcc .9
inc $426
pha save MLI error pha save MLI error
.1 lda #$ff SELF MODIFIED .1 lda #$ff SELF MODIFIED

View File

@ -16,6 +16,7 @@ AUTO 4,1
.INB INC/KERNEL.I .INB INC/KERNEL.I
.INB USR/SRC/SYS/KERNEL.S.DEF
.INB USR/SRC/SYS/KERNEL.S.INIT .INB USR/SRC/SYS/KERNEL.S.INIT
.INB USR/SRC/X.PRINTF.S .INB USR/SRC/X.PRINTF.S