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.hFILE .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 : Z80 I/O * Main $3F0 -> 3FF : SYS Vectors (reset,IRQ...) * Aux $200 -> 3FD : /RAM Driver * Aux $3FE -> 3FF : IRQ Vector *-------------------------------------- *** $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 *-------------------------------------- K.S.STAT .EQ $1C00 S.STAT for internal kernel operations K.S.EVT .EQ $1C40 K.EVT.MAX*S.EVT=4*8=32b K.S.IOCTL .EQ $1C60 9 bytes K.MLI.PATH .EQ $1C69 64+1 K.MLI.PARAMS .EQ $1CAA Main, 18 bytes min for GetFileInfo * GetFileInfoEx/SetFileInfoEx need 1 + 2 + 48 = 51 ->$1CDD *-------------------------------------- K.STACKTOP .EQ $1CFF *-------------------------------------- K.Buf256 .EQ $1E00 512 bytes.... *-------------------------------------- K.IOBuf .EQ $1F00 ....for ReadDir *-------------------------------------- Mem.MLoMem .EQ $2000 Mem.MHiMem .EQ $BF00 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.bDECAWM .EQ 12 S.DCB.TTY.bLNM .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