NEW AUTO 3,1 *-------------------------------------- AUXPIPE .EQ 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 LOAD.FAC.FROM.YA RESULT .EQ $62 ->$66 used in FMULT FDIV TMP32.Sign .EQ RESULT TMP32 .EQ RESULT+1 *-------------------------------------- ZPTMP .EQ $67 ->$84 29 bytes *-------------------------------------- FORPNT .EQ $85 ->$86 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 *-------------------------------------- * 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 A2osX.NumStrLen .EQ $102 Aux A2osX.NumStrBuf .EQ $103 Aux *-------------------------------------- * Main $200 -> 2FF : (Used By ProDOS,Clock DRV....) * Main $300 -> 3EF : * 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.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.MODE.G0 .EQ 8 S.DCB.TTY.MODE.G1 .EQ 10 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.bTITLE .EQ 8 S.DCB.TTY.bNORMAL .EQ 9 S.DCB.TTY.bLINEWRAP .EQ 10 S.DCB.TTY.bCRLF .EQ 11 * .EQ 12 S.DCB.TTY.bG0G1 .EQ 13 S.DCB.TTY.bG0ALT .EQ 14 S.DCB.TTY.bG1ALT .EQ 15 S.DCB.TTY.OUTTAIL .EQ 16 S.DCB.TTY.OUTHEAD .EQ 17 S.DCB.TTY.INBUFFER .EQ 18 S.DCB.TTY.INBUFFER.MAX .EQ 31 S.DCB.TTY.OUTBUFFER .EQ 32 S.DCB.TTY.OUTBUFFER.MAX .EQ 64 * S.DCB.TTY .EQ 64 *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.DEF LOAD USR/SRC/SYS/KERNEL.S ASM