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

View File

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

View File

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

View File

@ -166,24 +166,50 @@ J.CMD.Eval.TOKEN4 .DA M32.Add
L.M32.Printf .DA M32.Printf
L.ERR.Codes .DA ERR.Codes
L.ERR.Messages .DA ERR.Messages
L.MSG.DEBUG .DA MSG.DEBUG
.DO CSH=1
.INB USR/SRC/BIN/SHELL.R.CSH
.FIN
.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.RTS rts
*--------------------------------------
CS.RUN jsr CMD.Init
CS.RUN lda #"I"
sta $819
sta $817
jsr CMD.Init
bcs CS.INIT.RTS
ldy #S.PS.ARGC
lda (pPS),y
beq .1 no arg, continue starting interactive
jsr CS.DEBUG
lda #1
>SYSCALL ArgV
>SYSCALL LoadTxtFile
bcs CS.INIT.RTS
@ -209,7 +235,7 @@ CS.RUN jsr CMD.Init
>PUSHBI 2
>LDYA L.MSG.GREETINGS
>SYSCALL printf
bcs CS.INIT.RTS
* bcs CS.INIT.RTS
*--------------------------------------
CS.RUN.LOOP jsr CL.Reset
jsr IO.Reset
@ -259,7 +285,7 @@ CS.RUN.LOOP jsr CL.Reset
bne .7
.62 >LDA.G hFileBuf batch mode ?
beq CS.RUN.INTERCATIVE
beq CS.RUN.INTERACTIVE
jmp CS.RUN.BATCH
.7 jmp CS.RUN.READ
@ -267,7 +293,7 @@ CS.RUN.LOOP jsr CL.Reset
.9 sec
rts
*--------------------------------------
CS.RUN.INTERCATIVE
CS.RUN.INTERACTIVE
jsr CL.PrintPrompt
bcs .9
@ -356,10 +382,13 @@ CS.RUN.BATCH >SYSCALL GetChar
jsr CL.GetLine
.FIN
bcc .7
cmp #C.EOF
bne .3
lda #"\"
sta $819
lda #$ff
>STA.G bExit
inc
@ -369,7 +398,8 @@ CS.RUN.BATCH >SYSCALL GetChar
.3 sec
bra CS.RUN.LOOP.END
.7 >LDA.G CL.bExec
.7 inc $817
>LDA.G CL.bExec
bpl CS.RUN.LOOP.80
lda (ZPCLBuf)
@ -564,6 +594,7 @@ ENV.PATH .AZ "PATH"
ENV.PWD .AZ "PWD"
ENV.PS1 .AZ "PS1"
ENV.HOME .AZ "HOME"
MSG.DEBUG .AZ "{%s}\r\n"
*--------------------------------------
* 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
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 OutCnt
@ -163,6 +168,9 @@ CONTROL sta SETTEXT
sta CLRPAGE2
lda #1
sta A2osX.ASCREEN
lda #"c"
sta $417
sta $817
clc
rts
*--------------------------------------

View File

@ -3,94 +3,6 @@ PREFIX
AUTO 4,1
.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.... ***
*--------------------------------------
* 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.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
*--------------------------------------
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
Flt.Table .EQ $0D60 K.FLT.MAX*S.FLT=4*32=128b
*--------------------------------------
MAN
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
*--------------------------------------
*** $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.IOBuf .EQ $0F00
@ -166,6 +141,6 @@ H.BIN.EXE.REL.TABLE .EQ 16
H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp
*--------------------------------------
MAN
SAVE INC/KERNEL.I
SAVE USR/SRC/SYS/KERNEL.S.DEF
LOAD USR/SRC/SYS/KERNEL.S
ASM

View File

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

View File

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

View File

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

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

View File

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

View File

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