A2osX/SYS/KERNEL.S.DEF.txt

184 lines
5.1 KiB
Plaintext
Raw Normal View History

2018-11-23 16:20:19 +00:00
NEW
PREFIX
AUTO 4,1
*--------------------------------------
ZPKERNEL .EQ $0
*--------------------------------------
ZPPtr1 .EQ ZPKERNEL
ZPPtr2 .EQ ZPKERNEL+2
ZPPtr3 .EQ ZPKERNEL+4
ZPPtr4 .EQ ZPKERNEL+6
2018-12-11 16:41:25 +00:00
pFD .EQ ZPKERNEL+8
pDRV .EQ ZPKERNEL+10
2018-11-23 16:20:19 +00:00
pIOCTL .EQ ZPKERNEL+12
pIOBuf .EQ ZPKERNEL+14
*--------------------------------------
2019-01-04 13:17:31 +00:00
ZPMEMMGR .EQ $10
*--------------------------------------
SIGNFLG .EQ $16 COS,SIN,TAN
2018-11-23 16:20:19 +00:00
*--------------------------------------
* 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)
*--------------------------------------
INDEX .EQ $5E ->$5F
2019-01-04 13:17:31 +00:00
RESULT .EQ $62 ->$66 used in FMULT FDIV
*--------------------------------------
ZPTMP .EQ $67 ->$84 29 bytes
*--------------------------------------
2018-11-23 16:20:19 +00:00
FORPNT .EQ $85 ->$86
FAC .EQ $9D ->$A1
FAC.SIGN .EQ $A2
ARG .EQ $A5 -> $A9 (5 bytes)
ARG.SIGN .EQ $AA
2019-01-04 13:17:31 +00:00
* FAC.EXTENSION .EQ $AC
* CHARGET .EQ $B1
* CHARGOT .EQ $B7
2018-11-23 16:20:19 +00:00
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
2018-12-21 14:32:45 +00:00
Evt.Table .EQ $0340 K.EVT.MAX*S.EVT=4*8=32b
2018-11-23 16:20:19 +00:00
K.S.IOCTL .EQ $0360 9 bytes
K.MLI.PATH .EQ $0369 64+1
K.MLI.PARAMS .EQ $03AA Main, 18 bytes min for GetFileInfo (ATLK needs MORE!!!...32 max for now)
*--------------------------------------
K.STACKTOP .EQ $03ED XFer !!! down to $3E0
*--------------------------------------
2018-12-17 07:02:03 +00:00
*** $3F0-$3FF IRQ Handler.... ***
2018-11-23 16:20:19 +00:00
*--------------------------------------
2019-01-04 13:17:31 +00:00
SYS.BASL0 .EQ $400
*--------------------------------------
2018-12-17 07:02:03 +00:00
* Main/Aux $400 -> $7FF : TXT PAGE1 Screens
*--------------------------------------
* MemMgr : $0800->$0FFF MAIN/AUX (2 kBytes)
*--------------------------------------
Mem.Table .EQ $0800 Slot 0 is Reserved
Mem.LoMem .EQ $0800
Mem.Free .EQ $0802
Mem.HiMem .EQ $0804
Mem.LastSlot .EQ $0806
*--------------------------------------
* free $1000->$1FFF = $1000 (4096) Aux
2018-11-23 16:20:19 +00:00
*--------------------------------------
*** Z80 Reserved $1000-10FF***
*--------------------------------------
Z80CODE .EQ $1000 (00000h) Up To $10FF
Z80STACK .EQ $10FF (000FFh) Down to $1000
*--------------------------------------
2018-12-17 07:02:03 +00:00
K.Buf256 .EQ $1100
2018-11-23 16:20:19 +00:00
*--------------------------------------
2018-12-17 07:02:03 +00:00
K.IOBuf .EQ $1200
2018-11-23 16:20:19 +00:00
*--------------------------------------
Mem.MHiMem .EQ $BD00
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
*--------------------------------------
2018-12-17 14:24:39 +00:00
TTY.BUF.SIZE .EQ 80*24
*--------------------------------------
2018-12-13 16:39:24 +00:00
S.DCB.TTY.DEVID .EQ 0
S.DCB.TTY.STATUS .EQ 1
S.DCB.TTY.MODE .EQ 2
S.DCB.TTY.MODE.ESC .EQ 2
S.DCB.TTY.MODE.CSI .EQ 4
S.DCB.TTY.MODE.IAC .EQ 6
S.DCB.TTY.CH .EQ 3
S.DCB.TTY.CV .EQ 4
S.DCB.TTY.SCROLLTOP .EQ 5
S.DCB.TTY.SCROLLBOT .EQ 6
S.DCB.TTY.bCURON .EQ 7
2018-12-17 10:40:00 +00:00
S.DCB.TTY.bINVERSE .EQ 8
S.DCB.TTY.bLINEWRAP .EQ 9
S.DCB.TTY.bTITLE .EQ 10
*
*
*
2018-12-13 16:39:24 +00:00
S.DCB.TTY.OUTTAIL .EQ 14
S.DCB.TTY.OUTHEAD .EQ 15
S.DCB.TTY.INBUFFER .EQ 16
2018-12-21 14:32:45 +00:00
S.DCB.TTY.INBUFFER.MAX .EQ 32
S.DCB.TTY.OUTBUFFER .EQ 32
S.DCB.TTY.OUTBUFFER.MAX .EQ 48
2018-12-10 16:45:37 +00:00
*
2018-12-21 14:32:45 +00:00
S.DCB.TTY .EQ 48
2018-12-13 16:39:24 +00:00
*--------------------------------------
2018-11-23 16:20:19 +00:00
MAN
2018-12-03 06:59:30 +00:00
SAVE USR/SRC/SYS/KERNEL.S.DEF
2018-11-23 16:20:19 +00:00
LOAD USR/SRC/SYS/KERNEL.S
ASM