A2osX/SYS/KERNEL.S.DEF.txt
2023-10-18 07:41:12 +02:00

233 lines
5.9 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
*--------------------------------------
ZPPtr1 .EQ 0
ZPPtr2 .EQ 2
ZPPtr3 .EQ 4
ZPPtr4 .EQ 6
pFD .EQ 8
pDRV .EQ 10
pIOCTL .EQ 12
pIOBuf .EQ 14
*--------------------------------------
ZPMEMMGR .EQ $10
*--------------------------------------
*SIGNFLG .EQ $16 COS,SIN,TAN
*--------------------------------------
* XMov / XFer
*--------------------------------------
A1L .EQ $3C
A2L .EQ $3E
A4L .EQ $42
*XFer.JMP .EQ $3ED
XMov .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 $46
*--------------------------------------
* $5E-$C8 RESERVED APPLESOFT Main/Aux (ROM Call, no need to switch back MainZP)
*--------------------------------------
*INDEX .EQ $5E ->$5F LOAD.FAC.FROM.YA
*DEST .EQ $60 ->$61 used in FCOMP
RESULT .EQ $62 ->$66 used in FMULT FDIV
TMP32.Sign .EQ RESULT
TMP32 .EQ RESULT+1
*--------------------------------------
ZPTMP .EQ $67 ->$84 29 bytes
*--------------------------------------
* X.UNPAK temp ZP (with ZPPtr1 &ZPPtr2)
*--------------------------------------
.DUMMY UNPAK
.OR ZPTMP
ZPInBufPtr .BS 2
ZPOutBufPtr .BS 2
ZPnCnt .BS 2
ZPInMask .BS 1
ZPBLOfsLBits .BS 1
ZPBLOfsHBits .BS 1
ZPBLLenBits .BS 1
.ED
*--------------------------------------
FORPNT .EQ $85 ->$86 Used in GETFAC
FAC .EQ $9D ->$A1
FAC.SIGN .EQ $A2
* FAC.EXTENSION .EQ $AC
*--------------------------------------
ACC32.Sign .EQ FAC
ACC32 .EQ FAC+1
*--------------------------------------
ARG .EQ $A5 -> $A9 (5 bytes)
ARG.SIGN .EQ $AA
*--------------------------------------
ARG32.Sign .EQ ARG
ARG32 .EQ ARG+1
*--------------------------------------
* CHARGET .EQ $B1
* CHARGOT .EQ $B7
TXTPTR .EQ $B8
*--------------------------------------
.DUMMY
.OR FAC 12 Bytes
BIN.R.CS.Start .BS 2
BIN.R.CS.End .BS 2
BIN.R.End .BS 2
BIN.R.Size .BS 2
BIN.R.Offset .BS 2
BIN.R.Stop .BS 2
.ED
*--------------------------------------
.DUMMY
.OR ZPDRV
ENV.BufPtr .BS 1
ENV.VarEndChar .BS 1
ENV.bNoExp .BS 1
ENV.bExp .BS 1
.ED
*--------------------------------------
.DUMMY
.OR ZPTMP 6 Bytes
BIN.hMem .BS 1
PS.bTXT .BS 1
PS.hMem .BS 1
PS.MemPtr .BS 2
PS.hFILE .BS 1
.ED
*--------------------------------------
.DUMMY
.OR ZPTMP+8 7 Bytes
PS.Flags .BS 1
PS.ArgV .BS 2
PS.ArgSize .BS 2
PS.NewPSPtr .BS 2
.ED
*--------------------------------------
.DUMMY
.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.hFILE .BS 1
.ED
*--------------------------------------
SaveSM .EQ $100 Aux
SaveSX .EQ $101 Aux
*FOUTBufPtr .EQ $102 Aux
FOUTBuf .EQ $103 Aux
*--------------------------------------
* Main $200 -> 2FF : (Used By ProDOS,Clock DRV....)
* Main $300 -> 3EF : Z80 I/O
* Main $3F0 -> 3FF : SYS Vectors (reset,IRQ...)
* Aux $200 -> 3FD : /RAM Driver
* Aux $3FE -> 3FF : IRQ Vector
*--------------------------------------
*** $3F0-$3FF IRQ Handler.... ***
*--------------------------------------
SYS.BASL0 .EQ $400
*--------------------------------------
* Main/Aux $400 -> $7FF : TXT PAGE1 Screens
*--------------------------------------
* MemMgr : $0800->$0FFF MAIN/AUX (2 kBytes)
*--------------------------------------
Mem.LoMem .EQ $0800
Mem.Free .EQ $0802
Mem.HiMem .EQ $0804
Mem.LastSlot .EQ $0806
*--------------------------------------
K.S.STAT .EQ $1C00 S.STAT for internal kernel operations
K.S.EVT .EQ $1C40 K.EVT.MAX*S.EVT=4*8=32b
K.S.IOCTL .EQ $1C60 9 bytes
K.MLI.PATH .EQ $1C69 64+1
K.MLI.PARAMS .EQ $1CAA Main, 18 bytes min for GetFileInfo
* GetFileInfoEx/SetFileInfoEx need 1 + 2 + 48 = 51 ->$1CDD
*--------------------------------------
K.STACKTOP .EQ $1CFF
*--------------------------------------
K.Buf256 .EQ $1E00 512 bytes....
*--------------------------------------
K.IOBuf .EQ $1F00 ....for ReadDir
*--------------------------------------
Mem.MLoMem .EQ $2000
Mem.MHiMem .EQ $BF00
Mem.XLoMem .EQ $1000
Mem.XHiMem .EQ $A000
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
*--------------------------------------
S.DCB.TTY.DEVID .EQ 0
S.DCB.TTY.S .EQ 1
S.DCB.TTY.M .EQ 2
S.DCB.TTY.M.ESC .EQ 2
S.DCB.TTY.M.CSI .EQ 4
S.DCB.TTY.M.IAC .EQ 6
S.DCB.TTY.M.G0 .EQ 8
S.DCB.TTY.M.G1 .EQ 10
S.DCB.TTY.CH .EQ 3
S.DCB.TTY.CH.SAVE .EQ 4
S.DCB.TTY.CV .EQ 5
S.DCB.TTY.CV.SAVE .EQ 6
S.DCB.TTY.SCROLLTOP .EQ 7
S.DCB.TTY.SCROLLBOT .EQ 8
S.DCB.TTY.bCURON .EQ 9
S.DCB.TTY.bTITLE .EQ 10
S.DCB.TTY.bNORMAL .EQ 11
S.DCB.TTY.bDECAWM .EQ 12
S.DCB.TTY.bLNM .EQ 13
S.DCB.TTY.bG0G1 .EQ 14
S.DCB.TTY.bG0G1ALT .EQ 15
S.DCB.TTY.OUTTAIL .EQ 16
S.DCB.TTY.OUTHEAD .EQ 17
S.DCB.TTY.INBUF .EQ 18
S.DCB.TTY.INBUF.MAX .EQ 31
S.DCB.TTY.OUTBUF .EQ 32
S.DCB.TTY.OUTBUF.MAX .EQ 64
*
S.DCB.TTY .EQ 64
*--------------------------------------
S.MD5.ABCD0 .EQ 0
S.MD5.A0 .EQ 0
S.MD5.B0 .EQ 4
S.MD5.C0 .EQ 8
S.MD5.D0 .EQ 12
S.MD5.BITCOUNT .EQ 16
S.MD5.EXTRABIT .EQ 24
S.MD5.FINALIZED .EQ 25
*
S.MD5 .EQ 26
*--------------------------------------
MAN
SAVE usr/src/sys/kernel.s.def
LOAD usr/src/sys/kernel.s
ASM