NEW AUTO 3,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 $46 *-------------------------------------- * $5E-$C8 RESERVED APPLESOFT Main/Aux (ROM Call, no need to switch back MainZP) *-------------------------------------- *INDEX .EQ $5E ->$5F LOAD.FAC.FROM.YA *DEST .EQ $60 ->$61 used in FCOMP RESULT .EQ $62 ->$66 used in FMULT FDIV TMP32.Sign .EQ RESULT TMP32 .EQ RESULT+1 *-------------------------------------- ZPTMP .EQ $67 ->$84 29 bytes *-------------------------------------- * 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 *-------------------------------------- FORPNT .EQ $85 ->$86 Used in GETFAC 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 *-------------------------------------- * 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 * GetFileInfoEx/SetFileInfoEx need 1 + 2 + 48 = 51 *-------------------------------------- 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 A2osX.SYSCALL Mem.XLoMem .EQ $1000 Mem.XHiMem .EQ $A000 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.CH.SAVE .EQ 4 S.DCB.TTY.CV .EQ 5 S.DCB.TTY.CV.SAVE .EQ 6 S.DCB.TTY.SCROLLTOP .EQ 7 S.DCB.TTY.SCROLLBOT .EQ 8 S.DCB.TTY.bCURON .EQ 9 S.DCB.TTY.bTITLE .EQ 10 S.DCB.TTY.bNORMAL .EQ 11 S.DCB.TTY.bLINEWRAP .EQ 12 S.DCB.TTY.bCRLF .EQ 13 S.DCB.TTY.bG0G1 .EQ 14 S.DCB.TTY.bG0G1ALT .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 *-------------------------------------- S.MD5.ABCD0 .EQ 0 S.MD5.A0 .EQ 0 S.MD5.B0 .EQ 4 S.MD5.C0 .EQ 8 S.MD5.D0 .EQ 12 S.MD5.BITCOUNT .EQ 16 S.MD5.EXTRABIT .EQ 24 S.MD5.FINALIZED .EQ 25 * S.MD5 .EQ 26 *-------------------------------------- MAN SAVE USR/SRC/SYS/KERNEL.S.DEF LOAD USR/SRC/SYS/KERNEL.S ASM