A2osX/SYS/KERNEL.S.DEF.txt
2019-01-04 13:17:31 +00:00

184 lines
5.1 KiB
Plaintext
Raw 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
PREFIX
AUTO 4,1
*--------------------------------------
ZPKERNEL .EQ $0
*--------------------------------------
ZPPtr1 .EQ ZPKERNEL
ZPPtr2 .EQ ZPKERNEL+2
ZPPtr3 .EQ ZPKERNEL+4
ZPPtr4 .EQ ZPKERNEL+6
pFD .EQ ZPKERNEL+8
pDRV .EQ ZPKERNEL+10
pIOCTL .EQ ZPKERNEL+12
pIOBuf .EQ ZPKERNEL+14
*--------------------------------------
ZPMEMMGR .EQ $10
*--------------------------------------
SIGNFLG .EQ $16 COS,SIN,TAN
*--------------------------------------
* 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
RESULT .EQ $62 ->$66 used in FMULT FDIV
*--------------------------------------
ZPTMP .EQ $67 ->$84 29 bytes
*--------------------------------------
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
* CHARGET .EQ $B1
* CHARGOT .EQ $B7
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
Evt.Table .EQ $0340 K.EVT.MAX*S.EVT=4*8=32b
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
*--------------------------------------
*** $3F0-$3FF IRQ Handler.... ***
*--------------------------------------
SYS.BASL0 .EQ $400
*--------------------------------------
* 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
*--------------------------------------
*** Z80 Reserved $1000-10FF***
*--------------------------------------
Z80CODE .EQ $1000 (00000h) Up To $10FF
Z80STACK .EQ $10FF (000FFh) Down to $1000
*--------------------------------------
K.Buf256 .EQ $1100
*--------------------------------------
K.IOBuf .EQ $1200
*--------------------------------------
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
*--------------------------------------
TTY.BUF.SIZE .EQ 80*24
*--------------------------------------
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
S.DCB.TTY.bINVERSE .EQ 8
S.DCB.TTY.bLINEWRAP .EQ 9
S.DCB.TTY.bTITLE .EQ 10
*
*
*
S.DCB.TTY.OUTTAIL .EQ 14
S.DCB.TTY.OUTHEAD .EQ 15
S.DCB.TTY.INBUFFER .EQ 16
S.DCB.TTY.INBUFFER.MAX .EQ 32
S.DCB.TTY.OUTBUFFER .EQ 32
S.DCB.TTY.OUTBUFFER.MAX .EQ 48
*
S.DCB.TTY .EQ 48
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.DEF
LOAD USR/SRC/SYS/KERNEL.S
ASM