mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-29 17:50:18 +00:00
184 lines
5.1 KiB
Plaintext
184 lines
5.1 KiB
Plaintext
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
|