NEW AUTO 3,1 *-------------------------------------- ZPPtr1 .EQ 0 ZPPtr2 .EQ 2 ZPPtr3 .EQ 4 ZPPtr4 .EQ 6 pFD .EQ 8 pDRV .EQ 10 pIOCTL .EQ 12 pIOBuf .EQ 14 *-------------------------------------- ZPMEMMGR .EQ $10 *-------------------------------------- *SIGNFLG .EQ $16 COS,SIN,TAN *-------------------------------------- * XMov / XFer *-------------------------------------- A1L .EQ $3C A2L .EQ $3E A4L .EQ $42 *XFer.JMP .EQ $3ED XMov .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 UNPAK .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 *-------------------------------------- .DUMMY .OR FAC 12 Bytes BIN.R.CS.Start .BS 2 BIN.R.CS.End .BS 2 BIN.R.End .BS 2 BIN.R.Size .BS 2 BIN.R.Offset .BS 2 BIN.R.Stop .BS 2 .ED *-------------------------------------- .DUMMY .OR ZPDRV ENV.BufPtr .BS 1 ENV.VarEndChar .BS 1 ENV.bNoExp .BS 1 ENV.bExp .BS 1 .ED *-------------------------------------- .DUMMY .OR ZPTMP 6 Bytes BIN.hMem .BS 1 PS.bTXT .BS 1 PS.hMem .BS 1 PS.MemPtr .BS 2 PS.hFILE .BS 1 .ED *-------------------------------------- .DUMMY .OR ZPTMP+8 7 Bytes PS.Flags .BS 1 PS.ArgV .BS 2 PS.ArgSize .BS 2 PS.NewPSPtr .BS 2 .ED *-------------------------------------- .DUMMY .OR ZPTMP+20 6 Bytes IO.Open.FLAGS .BS 1 IO.Open.TYPE .BS 1 IO.Open.AUXTYPE .BS 2 IO.hFD .BS 1 IO.hDevNod .BS 1 .ED *-------------------------------------- SaveSM .EQ $100 Aux SaveSX .EQ $101 Aux *FOUTBufPtr .EQ $102 Aux FOUTBuf .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 *-------------------------------------- S.DCB.TTY.DEVID .EQ 0 S.DCB.TTY.S .EQ 1 S.DCB.TTY.M .EQ 2 S.DCB.TTY.M.ESC .EQ 2 S.DCB.TTY.M.CSI .EQ 4 S.DCB.TTY.M.IAC .EQ 6 S.DCB.TTY.M.G0 .EQ 8 S.DCB.TTY.M.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.INBUF .EQ 18 S.DCB.TTY.INBUF.MAX .EQ 31 S.DCB.TTY.OUTBUF .EQ 32 S.DCB.TTY.OUTBUF.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