A2osX/SYS/KERNEL.S.DEF.txt

194 lines
5.5 KiB
Plaintext
Raw Normal View History

2018-11-23 17:20:19 +01:00
NEW
2019-05-15 07:46:12 +02:00
AUTO 3,1
2018-11-23 17:20:19 +01:00
*--------------------------------------
2019-05-24 08:09:19 +02:00
AUXPIPE .EQ 1
2019-05-23 17:38:32 +02:00
*--------------------------------------
2018-11-23 17:20:19 +01:00
ZPKERNEL .EQ $0
*--------------------------------------
ZPPtr1 .EQ ZPKERNEL
ZPPtr2 .EQ ZPKERNEL+2
ZPPtr3 .EQ ZPKERNEL+4
ZPPtr4 .EQ ZPKERNEL+6
2018-12-11 17:41:25 +01:00
pFD .EQ ZPKERNEL+8
pDRV .EQ ZPKERNEL+10
2018-11-23 17:20:19 +01: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 17:20:19 +01: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
2019-07-28 22:39:30 +02:00
DRV.BLK.BlkNum .EQ $46
2018-11-23 17:20:19 +01:00
*--------------------------------------
* $5E-$C8 RESERVED APPLESOFT Main/Aux (ROM Call, no need to switch back MainZP)
*--------------------------------------
2019-06-28 17:15:58 +02:00
*INDEX .EQ $5E ->$5F LOAD.FAC.FROM.YA
2019-08-01 16:59:15 +02:00
*DEST .EQ $60 ->$61 used in FCOMP
2019-01-04 13:17:31 +00:00
RESULT .EQ $62 ->$66 used in FMULT FDIV
2019-07-03 17:25:07 +02:00
TMP32.Sign .EQ RESULT
TMP32 .EQ RESULT+1
2019-01-04 13:17:31 +00:00
*--------------------------------------
ZPTMP .EQ $67 ->$84 29 bytes
*--------------------------------------
2019-10-28 07:32:12 +01:00
* X.UNPAK temp ZP (with ZPPtr1 &ZPPtr2)
*--------------------------------------
.DUMMY
.OR ZPTMP
ZPInBufPtr .BS 2
ZPOutBufPtr .BS 2
ZPnCnt .BS 2
ZPInMask .BS 1
ZPBLOfsLBits .BS 1
ZPBLOfsHBits .BS 1
ZPBLLenBits .BS 1
.ED
*--------------------------------------
2019-08-01 16:59:15 +02:00
FORPNT .EQ $85 ->$86 Used in GETFAC
2018-11-23 17:20:19 +01:00
FAC .EQ $9D ->$A1
FAC.SIGN .EQ $A2
2019-07-03 17:25:07 +02:00
* FAC.EXTENSION .EQ $AC
*--------------------------------------
ACC32.Sign .EQ FAC
ACC32 .EQ FAC+1
*--------------------------------------
2018-11-23 17:20:19 +01:00
ARG .EQ $A5 -> $A9 (5 bytes)
ARG.SIGN .EQ $AA
2019-07-03 17:25:07 +02:00
*--------------------------------------
ARG32.Sign .EQ ARG
ARG32 .EQ ARG+1
*--------------------------------------
2019-01-04 13:17:31 +00:00
* CHARGET .EQ $B1
* CHARGOT .EQ $B7
2018-11-23 17:20:19 +01:00
TXTPTR .EQ $B8
*--------------------------------------
* Memory Map
*--------------------------------------
A2osX.SaveSM .EQ $100 Aux
A2osX.SaveSX .EQ $101 Aux
2019-07-03 17:25:07 +02:00
A2osX.NumStrLen .EQ $102 Aux
A2osX.NumStrBuf .EQ $103 Aux
2018-11-23 17:20:19 +01:00
*--------------------------------------
* 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 15:32:45 +01:00
Evt.Table .EQ $0340 K.EVT.MAX*S.EVT=4*8=32b
2018-11-23 17:20:19 +01: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 08:02:03 +01:00
*** $3F0-$3FF IRQ Handler.... ***
2018-11-23 17:20:19 +01:00
*--------------------------------------
2019-01-04 13:17:31 +00:00
SYS.BASL0 .EQ $400
*--------------------------------------
2018-12-17 08:02:03 +01:00
* 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
*--------------------------------------
* free $1000->$1FFF = $1000 (4096) Aux
2018-11-23 17:20:19 +01:00
*--------------------------------------
*** Z80 Reserved $1000-10FF***
*--------------------------------------
Z80CODE .EQ $1000 (00000h) Up To $10FF
Z80STACK .EQ $10FF (000FFh) Down to $1000
*--------------------------------------
2018-12-17 08:02:03 +01:00
K.Buf256 .EQ $1100
2018-11-23 17:20:19 +01:00
*--------------------------------------
2018-12-17 08:02:03 +01:00
K.IOBuf .EQ $1200
2018-11-23 17:20:19 +01:00
*--------------------------------------
2019-07-26 16:23:07 +02:00
Mem.MHiMem .EQ A2osX.SYSCALL
2019-10-28 07:32:12 +01:00
Mem.XHiMem .EQ $C000
2018-11-23 17:20:19 +01:00
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 15:24:39 +01:00
TTY.BUF.SIZE .EQ 80*24
*--------------------------------------
2018-12-13 17:39:24 +01: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
2019-05-12 22:45:11 +02:00
S.DCB.TTY.MODE.G0 .EQ 8
S.DCB.TTY.MODE.G1 .EQ 10
2018-12-13 17:39:24 +01:00
S.DCB.TTY.CH .EQ 3
2019-12-04 14:46:58 +01:00
S.DCB.TTY.CH.SAVE .EQ 4
S.DCB.TTY.CV .EQ 5
S.DCB.TTY.CV.SAVE .EQ 6
2019-05-14 18:04:16 +02:00
2019-12-04 14:46:58 +01:00
S.DCB.TTY.SCROLLTOP .EQ 7
S.DCB.TTY.SCROLLBOT .EQ 8
S.DCB.TTY.bCURON .EQ 9
S.DCB.TTY.bTITLE .EQ 10
2019-05-14 18:04:16 +02:00
2019-12-04 14:46:58 +01:00
S.DCB.TTY.bNORMAL .EQ 11
S.DCB.TTY.bLINEWRAP .EQ 12
S.DCB.TTY.bCRLF .EQ 13
2019-05-25 21:24:07 +02:00
2019-12-04 14:46:58 +01:00
S.DCB.TTY.bG0G1 .EQ 14
S.DCB.TTY.bG0G1ALT .EQ 15
2019-05-25 21:24:07 +02:00
S.DCB.TTY.OUTTAIL .EQ 16
S.DCB.TTY.OUTHEAD .EQ 17
2019-06-10 10:19:13 +02:00
S.DCB.TTY.INBUFFER .EQ 18
2019-06-11 07:52:24 +02:00
S.DCB.TTY.INBUFFER.MAX .EQ 31
S.DCB.TTY.OUTBUFFER .EQ 32
2019-06-10 10:19:13 +02:00
S.DCB.TTY.OUTBUFFER.MAX .EQ 64
2018-12-10 17:45:37 +01:00
*
2019-06-10 10:19:13 +02:00
S.DCB.TTY .EQ 64
2018-12-13 17:39:24 +01:00
*--------------------------------------
2018-11-23 17:20:19 +01:00
MAN
2018-12-03 07:59:30 +01:00
SAVE USR/SRC/SYS/KERNEL.S.DEF
2018-11-23 17:20:19 +01:00
LOAD USR/SRC/SYS/KERNEL.S
ASM