2015-03-14 21:48:35 +00:00
|
|
|
|
PR#3
|
2015-06-03 18:30:57 +00:00
|
|
|
|
PREFIX /A2OSX.SRC
|
2015-03-14 21:48:35 +00:00
|
|
|
|
NEW
|
|
|
|
|
INC 1
|
|
|
|
|
AUTO 6
|
|
|
|
|
.LIST OFF
|
|
|
|
|
*--------------------------------------
|
2016-03-13 21:50:43 +00:00
|
|
|
|
* KERNEL CONSTANTS DEFINITON
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
K.ENV.SIZE .EQ $100
|
|
|
|
|
K.EVT.MAX .EQ 16
|
|
|
|
|
K.DEV.MAX .EQ 32
|
|
|
|
|
K.PS.MAX .EQ 64
|
|
|
|
|
*--------------------------------------
|
2015-06-03 18:30:57 +00:00
|
|
|
|
* Aux ZP
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2016-03-13 21:50:43 +00:00
|
|
|
|
ZPKERNEL .EQ $0
|
|
|
|
|
*--------------------------------------
|
2015-06-03 18:30:57 +00:00
|
|
|
|
pCode .EQ $10
|
|
|
|
|
pData .EQ $12
|
|
|
|
|
pStack .EQ $14
|
2015-03-14 21:48:35 +00:00
|
|
|
|
|
2015-06-03 18:30:57 +00:00
|
|
|
|
pLib .EQ $16
|
|
|
|
|
pDev .EQ $18
|
2015-03-14 21:48:35 +00:00
|
|
|
|
|
2015-06-03 18:30:57 +00:00
|
|
|
|
pEvent .EQ $1A
|
|
|
|
|
pPs .EQ $1C
|
2015-03-14 21:48:35 +00:00
|
|
|
|
|
2015-06-03 18:30:57 +00:00
|
|
|
|
ZPDRV .EQ $80
|
|
|
|
|
ZPBIN .EQ $90
|
2016-01-16 22:06:36 +00:00
|
|
|
|
ZPLIB .EQ $A0 32 bytes for TCPIP
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2015-11-22 22:30:06 +00:00
|
|
|
|
* !!!!!!! RESERVED APPLESOFT.I !!!!!!!
|
|
|
|
|
* $5E -> $C8
|
|
|
|
|
*--------------------------------------
|
2015-11-10 20:48:42 +00:00
|
|
|
|
* $B0 -> $FF KERNEL RESERVED
|
|
|
|
|
*--------------------------------------
|
2015-11-22 22:30:06 +00:00
|
|
|
|
ZPMemMgr .EQ $E0
|
2015-11-10 20:48:42 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
R.VCPU16 .EQ $F0
|
|
|
|
|
R.AX .EQ R.VCPU16
|
|
|
|
|
R.AL .EQ R.VCPU16
|
|
|
|
|
R.AH .EQ R.VCPU16+$1
|
|
|
|
|
R.BX .EQ R.VCPU16+$2
|
|
|
|
|
R.BL .EQ R.VCPU16+$2
|
|
|
|
|
R.BH .EQ R.VCPU16+$3
|
|
|
|
|
R.CX .EQ R.VCPU16+$4
|
|
|
|
|
R.CL .EQ R.VCPU16+$4
|
|
|
|
|
R.CH .EQ R.VCPU16+$5
|
|
|
|
|
R.DX .EQ R.VCPU16+$6
|
|
|
|
|
R.DL .EQ R.VCPU16+$6
|
|
|
|
|
R.DH .EQ R.VCPU16+$7
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* Memory Map
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2015-06-03 18:30:57 +00:00
|
|
|
|
A2osX.SaveSM .EQ $100 Aux
|
2015-03-14 21:48:35 +00:00
|
|
|
|
A2osX.SaveSX .EQ $101 Aux
|
|
|
|
|
*--------------------------------------
|
2015-06-03 18:30:57 +00:00
|
|
|
|
* 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
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2015-06-03 18:30:57 +00:00
|
|
|
|
TmpBuffer256 .EQ $0200 Main
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2015-06-03 18:30:57 +00:00
|
|
|
|
D.STACK.BASE .EQ $0300 $03EF...
|
|
|
|
|
D.STACK.TOP .EQ $03F0 ...Down to $0300
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2015-11-10 20:48:42 +00:00
|
|
|
|
*** IRQ Handler ***
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* Main/Aux $400 -> $7FF : Console Screen
|
|
|
|
|
* Main/Aux $800 -> $BFF : System Screen
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
*** Z80 Reserved ***
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
Z80STACK .EQ $0FFF (0FFFFh) Down to $0F00
|
|
|
|
|
Z80JMP .EQ $1000
|
|
|
|
|
*--------------------------------------
|
2016-03-13 21:50:43 +00:00
|
|
|
|
EvtMgr.Table .EQ $1100 K.EVT.MAX*S.EVT.SIZE=32*8=256b
|
|
|
|
|
*--------------------------------------
|
2015-11-10 20:48:42 +00:00
|
|
|
|
DevMgr.Table .EQ $1200 K.DEV.MAX*S.DEV.SIZE=32*16=512b
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
TskMgr.Table .EQ $1400 K.PS.MAX*S.PS.SIZE=64*16=1k
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* MemMgr : $1800->$1FFF MAIN/AUX (2 kBytes)
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
MemMgr.Table .EQ $1800
|
|
|
|
|
MemMgr.HiMem .EQ $1800 Slot 0 is Reserved
|
|
|
|
|
MemMgr.Free .EQ $1802
|
|
|
|
|
MemMgr.LoMem .EQ $1804
|
|
|
|
|
MemMgr.LastSlot .EQ $1806
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
MemMgr.MLoMem .EQ $2000
|
|
|
|
|
MemMgr.MHiMem .EQ $BE00
|
|
|
|
|
MemMgr.XLoMem .EQ $2000
|
|
|
|
|
MemMgr.XHiMem .EQ $C000
|
|
|
|
|
*--------------------------------------
|
2015-03-14 21:48:35 +00:00
|
|
|
|
* A2osX GLOBAL PAGE
|
2015-06-03 18:30:57 +00:00
|
|
|
|
* $BE00->$BE0F : Public Vetors
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
A2osX.SYSCALL .EQ $BE00
|
2015-11-10 20:48:42 +00:00
|
|
|
|
A2osX.LIBCALL .EQ $BE03
|
2015-06-03 18:30:57 +00:00
|
|
|
|
A2osX.MLICALL .EQ $BE06
|
2015-11-10 20:48:42 +00:00
|
|
|
|
A2osX.ROMCALL .EQ $BE09
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
pDevJmp .EQ $BE10
|
|
|
|
|
pCodeJmp .EQ $BE13
|
|
|
|
|
pLibJmp .EQ $BE16
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2015-11-22 22:30:06 +00:00
|
|
|
|
* $11 bytes min !!!!
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
MLICALL.PARAMS .EQ $BEC0
|
|
|
|
|
*--------------------------------------
|
2015-06-03 18:30:57 +00:00
|
|
|
|
* $BEE0->$BEFF : Public Variables
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
A2osX.SCREENS .EQ $BEE0
|
|
|
|
|
A2osX.SCREENS.S .EQ %00000001 System Screen
|
|
|
|
|
A2osX.SCREENS.C .EQ %00000010 Console Screen
|
|
|
|
|
A2osX.SCREENS.G .EQ %00000100 Graphic Screen
|
2016-03-13 21:50:43 +00:00
|
|
|
|
A2osX.SCREENS.2 .EQ %00001000 Graphic Screen2
|
2015-06-03 18:30:57 +00:00
|
|
|
|
A2osX.ASCREEN .EQ $BEE1 Active Screen
|
2015-03-14 21:48:35 +00:00
|
|
|
|
|
2016-03-13 21:50:43 +00:00
|
|
|
|
A2osX.SCRNDEVS .EQ $BEE2 -> $BEE5 (4 devices)
|
|
|
|
|
A2osX.CPUTYPE .EQ $BEE6
|
|
|
|
|
A2osX.CPUSPEED .EQ $BEE7 (->255.99 Mhz)
|
2015-03-14 21:48:35 +00:00
|
|
|
|
|
2015-06-03 18:30:57 +00:00
|
|
|
|
A2osX.Z80SLOT .EQ $BEEA
|
2016-03-13 21:50:43 +00:00
|
|
|
|
|
|
|
|
|
A2osX.HZ .EQ $BEEB
|
|
|
|
|
|
|
|
|
|
A2osX.TIMER16 .EQ $BEEC
|
|
|
|
|
A2osX.RANDOM16 .EQ $BEEE
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
2015-11-10 20:48:42 +00:00
|
|
|
|
* Kernel Entry Point
|
2015-03-23 07:28:03 +00:00
|
|
|
|
*--------------------------------------
|
2015-11-10 20:48:42 +00:00
|
|
|
|
KERNEL.SYSCALL .EQ $D000
|
|
|
|
|
KERNEL.COLDBOOT .EQ $D100
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
H.BIN.HEADER .EQ 0
|
2016-03-13 21:50:43 +00:00
|
|
|
|
H.BIN.HEADER.DRV65 .EQ $4CD8 6502:cld,jmp abs
|
|
|
|
|
H.BIN.HEADER.LIB65 .EQ $7CD8 6502:cld,jmp (abs,x)
|
|
|
|
|
H.BIN.HEADER.BIN65 .EQ $7CD8 6502:cld,jmp (abs,x)
|
2015-11-10 20:48:42 +00:00
|
|
|
|
H.BIN.HEADER.LIB80 .EQ $A28D Z80:
|
|
|
|
|
H.BIN.HEADER.BIN80 .EQ $A28D Z80:
|
|
|
|
|
H.BIN.JMP .EQ 2
|
|
|
|
|
H.BIN.CODE.TYPE .EQ 4
|
|
|
|
|
H.BIN.VERSION .EQ 5
|
|
|
|
|
H.BIN.CODE.LEN .EQ 8
|
|
|
|
|
H.BIN.BIN.DS.SIZE .EQ 10
|
|
|
|
|
H.BIN.DEV.HEADER.O .EQ 10
|
|
|
|
|
H.BIN.DRV.CODE.O .EQ 12
|
|
|
|
|
H.BIN.DRV.CODE.LEN .EQ 14
|
|
|
|
|
H.BIN.RELOC.TABLE .EQ 16
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* A2osX.SYSCALL Functions Indexes
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SYS.GetMem .EQ $00
|
|
|
|
|
SYS.FreeMemA .EQ $02
|
|
|
|
|
SYS.GetMemPtrA .EQ $04
|
|
|
|
|
SYS.GetMemByIDA .EQ $06
|
|
|
|
|
|
|
|
|
|
SYS.GetMemByNameA .EQ $08
|
|
|
|
|
SYS.GetMemByNameYA .EQ $0A
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SYS.NewPStrYA .EQ $10
|
|
|
|
|
SYS.PStrCpyA .EQ $12
|
|
|
|
|
SYS.PStrCat .EQ $14
|
|
|
|
|
SYS.PStrCmp .EQ $16
|
|
|
|
|
|
|
|
|
|
SYS.PStrGetTkn .EQ $18
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SYS.LoadBinA .EQ $20
|
|
|
|
|
SYS.LoadLibYA .EQ $22
|
|
|
|
|
SYS.UnloadLibA .EQ $24
|
|
|
|
|
SYS.LoadDrvA .EQ $26
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SYS.ExpandPStrA .EQ $30
|
|
|
|
|
SYS.ExpandPStrYA .EQ $32
|
2015-11-22 22:30:06 +00:00
|
|
|
|
SYS.GetEnvVarA .EQ $34
|
|
|
|
|
SYS.GetEnvVarYA .EQ $36
|
2015-11-10 20:48:42 +00:00
|
|
|
|
|
|
|
|
|
SYS.SetEnvVarH .EQ $38
|
|
|
|
|
SYS.SetEnvVarP .EQ $3A
|
2015-11-22 22:30:06 +00:00
|
|
|
|
SYS.DelEnvVarA .EQ $3C
|
|
|
|
|
SYS.DelEnvVarYA .EQ $3E
|
2015-11-10 20:48:42 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
SYS.MLICreateFile .EQ $40
|
|
|
|
|
SYS.MLICreateDirA .EQ $42
|
|
|
|
|
SYS.MLICreateDirYA .EQ $44
|
|
|
|
|
SYS.MLIDestroyA .EQ $46
|
|
|
|
|
|
|
|
|
|
SYS.MLIDestroyYA .EQ $48
|
|
|
|
|
SYS.MLIRename .EQ $4A
|
|
|
|
|
SYS.MLISetFileInfo .EQ $4C
|
|
|
|
|
SYS.MLIGetFileInfoA .EQ $4E
|
|
|
|
|
|
|
|
|
|
SYS.MLIGetFileInfoYA .EQ $50
|
|
|
|
|
SYS.MLIOnline .EQ $52
|
|
|
|
|
SYS.MLISetPrefixA .EQ $54
|
|
|
|
|
SYS.MLISetPrefixYA .EQ $56
|
|
|
|
|
|
|
|
|
|
SYS.MLIGetPrefixA .EQ $58
|
|
|
|
|
SYS.MLIGetPrefixYA .EQ $5A
|
|
|
|
|
SYS.MLIOpenA .EQ $5C
|
|
|
|
|
SYS.MLIOpenYA .EQ $5E
|
|
|
|
|
|
|
|
|
|
SYS.MLINewLine .EQ $60
|
|
|
|
|
SYS.MLIRead .EQ $62
|
|
|
|
|
SYS.MLIWrite .EQ $64
|
|
|
|
|
SYS.MLICloseA .EQ $66
|
|
|
|
|
|
|
|
|
|
SYS.MLIFlushA .EQ $68
|
|
|
|
|
SYS.MLISetMark .EQ $6A
|
|
|
|
|
SYS.MLIGetMarkA .EQ $6A
|
|
|
|
|
SYS.MLISetEOF .EQ $6C
|
|
|
|
|
|
|
|
|
|
SYS.MLIGetEOFA .EQ $70
|
|
|
|
|
SYS.MLISetBuf .EQ $72
|
|
|
|
|
SYS.MLIGetBuf .EQ $74
|
|
|
|
|
SYS.MLIGetTime .EQ $76
|
|
|
|
|
|
|
|
|
|
SYS.MLIAllocIRQ .EQ $78
|
|
|
|
|
SYS.MLIDeallocIRQ .EQ $7A
|
|
|
|
|
SYS.MLIReadBlock .EQ $7C
|
|
|
|
|
SYS.MLIWriteBlock .EQ $7E
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SYS.GetDevByIDA .EQ $80
|
|
|
|
|
SYS.GetDevByNameA .EQ $82
|
|
|
|
|
SYS.GetDevByNameYA .EQ $84
|
2016-02-24 20:02:16 +00:00
|
|
|
|
SYS.GetDevInfoA .EQ $86
|
2015-11-10 20:48:42 +00:00
|
|
|
|
|
|
|
|
|
SYS.GetKeyboardEvent .EQ $88
|
|
|
|
|
*--------------------------------------
|
2015-11-22 22:30:06 +00:00
|
|
|
|
SYS.ExecProcessNewEnvYA .EQ $90
|
|
|
|
|
SYS.ExecProcessYA .EQ $92
|
|
|
|
|
SYS.CreateProcessNewEnvYA .EQ $94
|
|
|
|
|
SYS.CreateProcessYA .EQ $96
|
2015-11-10 20:48:42 +00:00
|
|
|
|
|
|
|
|
|
SYS.GetPSByIDA .EQ $98
|
|
|
|
|
|
|
|
|
|
SYS.Sleep .EQ $9C
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SYS.CheckPrefixA .EQ $A0
|
|
|
|
|
SYS.FileSearch .EQ $A2
|
|
|
|
|
SYS.LoadFileA .EQ $A4
|
|
|
|
|
SYS.LoadFileYA .EQ $A6
|
|
|
|
|
|
|
|
|
|
SYS.ListDirInitA .EQ $A8
|
|
|
|
|
SYS.ListDirNextA .EQ $AA
|
|
|
|
|
SYS.ListDirCloseA .EQ $AC
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SYS.AddNetCfg .EQ $B0
|
|
|
|
|
SYS.SetNetCfg .EQ $B2
|
|
|
|
|
SYS.GetNetCfgA .EQ $B4
|
|
|
|
|
SYS.ClrNetCfgA .EQ $B6
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SYS.ScreenSelectA .EQ $C0
|
2015-11-22 22:30:06 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
SYS.COutA .EQ $D0
|
|
|
|
|
SYS.PSTROutA .EQ $D2
|
|
|
|
|
SYS.PSTROutYA .EQ $D4
|
2015-11-10 20:48:42 +00:00
|
|
|
|
|
2015-11-22 22:30:06 +00:00
|
|
|
|
SYS.HexOutA .EQ $D8
|
|
|
|
|
SYS.HexOutYA .EQ $DA
|
|
|
|
|
SYS.DecOutA .EQ $DC
|
|
|
|
|
SYS.DecOutYA .EQ $DE
|
2015-11-10 20:48:42 +00:00
|
|
|
|
*--------------------------------------
|
2016-01-16 22:06:36 +00:00
|
|
|
|
* ProDOS ERROR CODES : $00->$5F
|
|
|
|
|
* Lib ERROR CODES : $80->$BF
|
|
|
|
|
* Kernel ERROR CODES : $C0->$FF
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
*$00 - No Error
|
|
|
|
|
*$01 - Bad Call Number
|
|
|
|
|
*$04 - Bad Parameter Count
|
|
|
|
|
*$25 - Interrupt Table Full
|
|
|
|
|
*$27 - I/O Error
|
|
|
|
|
*$28 - No Device Connected
|
|
|
|
|
*$2B - Write Protected
|
|
|
|
|
*$2E - Disk Switched
|
|
|
|
|
*$40 - Invalid Pathname
|
|
|
|
|
*$42 - Maximum Number of Files Open
|
|
|
|
|
*$43 - Invalid Reference Number
|
|
|
|
|
*$44 - Directory Not Found
|
|
|
|
|
*$45 - Volume Not Found
|
|
|
|
|
*$46 - File Not Found
|
|
|
|
|
*$47 - Duplicate File Name
|
|
|
|
|
*$48 - Volume Full
|
|
|
|
|
*$49 - Directory Full
|
|
|
|
|
*$4A - Incompatible File Format
|
|
|
|
|
*$4B - Unsupported Storage Type
|
|
|
|
|
*$4C - End of File, No More Data
|
|
|
|
|
*$4D - Beyond EOF
|
|
|
|
|
*$4E - File Access Error, File Locked
|
|
|
|
|
*$50 - File Already Open
|
|
|
|
|
*$51 - Directory Structure Damaged
|
|
|
|
|
*$53 - Invalid Parameter
|
|
|
|
|
*$55 - Too Many Volumes
|
|
|
|
|
*$56 - Bad Buffer Address
|
|
|
|
|
*$57 - Duplicate Volume
|
|
|
|
|
*$5A - File Structure Damaged
|
2015-11-10 20:48:42 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
MEMMGR.ERROOM .EQ $FF Out Of Memory Error
|
|
|
|
|
MEMMGR.ERROOH .EQ $FE Out Of Handle Error
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
DEVMGR.ERROOM .EQ $EF Out Of Memory Error
|
|
|
|
|
DEVMGR.ERROOH .EQ $EE Out Of Handle Error
|
2016-01-04 07:17:33 +00:00
|
|
|
|
DEVMGR.ERRICL .EQ $ED Invalid Command Line
|
2015-11-10 20:48:42 +00:00
|
|
|
|
DEVMGR.ERRNOHW .EQ $EC No Hardware
|
|
|
|
|
DEVMGR.ERRDNF .EQ $EB Device Not Found Error
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
TSKMGR.ERROOH .EQ $DF Out Of Handle Error
|
|
|
|
|
TSKMGR.ERRNSP .EQ $DD No Such Process Error
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
SYSMGR.ERRSYN .EQ $CF Syntax Error
|
|
|
|
|
SYSMGR.ERRENVF .EQ $CE Env is Full
|
|
|
|
|
SYSMGR.ERRIDIR .EQ $CD Invalid Directory
|
|
|
|
|
SYSMGR.ERRFTB .EQ $CC File Too Big Error
|
|
|
|
|
SYSMGR.ERRFNF .EQ $CB File Not Found Error
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* MEM STRUCT
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
S.MEM.F .EQ 0
|
|
|
|
|
S.MEM.F.AUX .EQ %10000000 Request Stock Object
|
|
|
|
|
S.MEM.F.INIT0 .EQ %01000000 Fill with "0"
|
|
|
|
|
S.MEM.F.CODE .EQ %00100000
|
|
|
|
|
S.MEM.F.NOMOVE .EQ %00010000
|
|
|
|
|
S.MEM.F.ALIGN .EQ %00001000
|
|
|
|
|
S.MEM.F.INUSE .EQ %10000000 (Internal Flag)
|
|
|
|
|
S.MEM.REFCNT .EQ 1
|
|
|
|
|
S.MEM.OWNERPID .EQ 2
|
|
|
|
|
S.MEM.BIN .EQ 3
|
|
|
|
|
S.MEM.PTR .EQ 4
|
|
|
|
|
S.MEM.LEN .EQ 6
|
|
|
|
|
*
|
|
|
|
|
S.MEM.SIZE .EQ 8
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* BIN STRUCT
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
S.BIN.CODE .EQ 0
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* DEV STRUCT
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
S.DEV.CODE .EQ 0
|
|
|
|
|
S.DEV.JMP .EQ 2
|
|
|
|
|
S.DEV.F .EQ 4
|
|
|
|
|
S.DEV.F.INUSE .EQ %10000000
|
|
|
|
|
S.DEV.F.BUSY .EQ %01000000
|
|
|
|
|
S.DEV.F.SHARE .EQ %00100000 Device is shareable
|
|
|
|
|
S.DEV.F.IRQ .EQ %00010000 Device is irq driven
|
|
|
|
|
S.DEV.F.EVENT .EQ %00001000 Device is event driven
|
|
|
|
|
S.DEV.F.COUT .EQ %00000100 Device supports Char OUT
|
|
|
|
|
S.DEV.F.BLOCK .EQ %00000010
|
|
|
|
|
S.DEV.F.CHAR .EQ %00000001
|
|
|
|
|
S.DEV.NAME .EQ 5 5 Bytes : LEN+NUL KBD CON COMx LPTx ETHx
|
|
|
|
|
*
|
|
|
|
|
S.DEV.SIZE .EQ 16
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
S.DEVINFO.TYPE .EQ 0
|
|
|
|
|
S.DEVINFO.TYPE.CHAR .EQ %00000001
|
|
|
|
|
S.DEVINFO.TYPE.XY .EQ %00000010
|
|
|
|
|
S.DEVINFO.TYPE.NET .EQ %00000011
|
|
|
|
|
S.DEVINFO.TYPE.GFX .EQ %00000100
|
2016-01-10 22:16:56 +00:00
|
|
|
|
S.DEVINFO.FLAGS .EQ 1
|
2016-02-24 20:02:16 +00:00
|
|
|
|
S.DEVINFO.NET.FLAGS.ARPOFFLOAD .EQ 1
|
|
|
|
|
S.DEVINFO.NET.MAC .EQ 2
|
|
|
|
|
S.DEVINFO.NET.STATUS .EQ 8
|
|
|
|
|
S.DEVINFO.NET.STATUS.OK .EQ $80
|
|
|
|
|
S.DEVINFO.NET.STATUS.FD .EQ $40
|
2016-03-13 21:50:43 +00:00
|
|
|
|
S.DEVINFO.NET.STATUS.10 .EQ $01
|
2016-02-24 20:02:16 +00:00
|
|
|
|
S.DEVINFO.NET.STATUS.100 .EQ $02
|
|
|
|
|
S.DEVINFO.NET.STATUS.1000 .EQ $03
|
2015-11-10 20:48:42 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
* Generic Driver Functions
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
DEVMGR.OPEN .EQ 0
|
|
|
|
|
DEVMGR.GETEVENT .EQ 2
|
|
|
|
|
DEVMGR.COUT .EQ 4
|
|
|
|
|
DEVMGR.CLOSE .EQ 6
|
|
|
|
|
DEVMGR.GETINFO .EQ 8
|
|
|
|
|
DEVMGR.IRQ .EQ 10
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* 'XY' Class Driver Functions
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
DEVMGR.XY.SETPOS .EQ 12
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* 'NET' Class Driver Functions
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
DEVMGR.NET.SEND .EQ 12
|
2016-01-10 22:16:56 +00:00
|
|
|
|
DEVMGR.SETIPCFG .EQ 14
|
2015-11-10 20:48:42 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
* 'GFX' Class Driver Functions
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
DEVMGR.GFX.SETPIXEL .EQ 12
|
|
|
|
|
DEVMGR.GFX.GETPIXEL .EQ 14
|
|
|
|
|
DEVMGR.GFX.HLINE .EQ 16
|
|
|
|
|
DEVMGR.GFX.VLINE .EQ 18
|
|
|
|
|
DEVMGR.GFX.BITBLT .EQ 20
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* PS STRUCT
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
S.PS.F .EQ 0
|
|
|
|
|
S.PS.F.INUSE .EQ %10000000
|
|
|
|
|
S.PS.F.HOLD .EQ %01000000
|
|
|
|
|
S.PS.F.EVENT .EQ %00100000
|
|
|
|
|
S.PS.F.ENV .EQ %00010000
|
|
|
|
|
S.PS.ID .EQ 1
|
|
|
|
|
S.PS.PID .EQ 2
|
|
|
|
|
S.PS.hCS .EQ 3
|
|
|
|
|
S.PS.hDS .EQ 4
|
|
|
|
|
S.PS.hPREFIX .EQ 5
|
|
|
|
|
S.PS.hENV .EQ 6
|
|
|
|
|
S.PS.hCMD .EQ 7
|
|
|
|
|
S.PS.hARGS .EQ 8
|
|
|
|
|
S.PS.hINDEV .EQ 9
|
|
|
|
|
S.PS.hOUTDEV .EQ 10
|
|
|
|
|
S.PS.hERRDEV .EQ 11
|
|
|
|
|
S.PS.CID .EQ 12
|
|
|
|
|
S.PS.LASTERROR .EQ 13
|
|
|
|
|
S.PS.PC .EQ 14
|
|
|
|
|
*
|
|
|
|
|
S.PS.SIZE .EQ 16
|
2015-03-14 21:48:35 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
* LIB Function Indexes
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
LIBMGR.LOAD .EQ 0
|
|
|
|
|
LIBMGR.UNLOAD .EQ 2
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
* Task Function Indexes
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
TSKMGR.INIT .EQ 0
|
|
|
|
|
TSKMGR.RUN .EQ 2
|
|
|
|
|
TSKMGR.DOEVENT .EQ 4
|
|
|
|
|
TSKMGR.QUIT .EQ 6
|
|
|
|
|
*--------------------------------------
|
2015-11-10 20:48:42 +00:00
|
|
|
|
* EVENT STRUCT
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
S.EVT.F .EQ 0
|
2016-03-13 21:50:43 +00:00
|
|
|
|
S.EVT.F.T10TH .EQ %10000000
|
|
|
|
|
S.EVT.F.T1SEC .EQ %01000000
|
2015-11-10 20:48:42 +00:00
|
|
|
|
S.EVT.F.hMEM2 .EQ %00100000 Indicates That S.EVT.DATAHI is a hMem
|
|
|
|
|
S.EVT.F.hMEM1 .EQ %00010000 Indicates That S.EVT.DATALO is a hMem
|
2016-03-13 21:50:43 +00:00
|
|
|
|
|
2015-11-10 20:48:42 +00:00
|
|
|
|
S.EVT.F.NET .EQ %00000100
|
|
|
|
|
S.EVT.F.MOUSE .EQ %00000010
|
|
|
|
|
S.EVT.F.KEY .EQ %00000001
|
|
|
|
|
S.EVT.hDEV .EQ 1
|
|
|
|
|
S.EVT.DATA .EQ 2
|
|
|
|
|
S.EVT.DATALO .EQ 2
|
|
|
|
|
S.EVT.DATAHI .EQ 3
|
|
|
|
|
S.EVT.DATAW1 .EQ 4
|
|
|
|
|
S.EVT.DATAW2 .EQ 6
|
|
|
|
|
*
|
2016-03-13 21:50:43 +00:00
|
|
|
|
S.EVT .EQ 8
|
2015-11-10 20:48:42 +00:00
|
|
|
|
*--------------------------------------
|
|
|
|
|
* S.LISTDIR STRUCT
|
|
|
|
|
*--------------------------------------
|
|
|
|
|
S.LISTDIR.hONLINE .EQ 0
|
|
|
|
|
S.LISTDIR.ONLINEPTR .EQ 1
|
|
|
|
|
S.LISTDIR.REFNUM .EQ 2 ref_num file
|
|
|
|
|
S.LISTDIR.hIOBUF .EQ 3 hMem to ProDOS IO buffer
|
|
|
|
|
S.LISTDIR.hREADBUF .EQ 4 hMem to 512 Read Buffer
|
|
|
|
|
S.LISTDIR.EL .EQ 5 entry_length
|
|
|
|
|
S.LISTDIR.EIB .EQ 6 ENTRY_INDEX in block
|
|
|
|
|
S.LISTDIR.EPB .EQ 7 entry_per_block
|
|
|
|
|
S.LISTDIR.BLKPTR .EQ 8 entry PTR in block
|
|
|
|
|
S.LISTDIR.FI .EQ 10 FILE_INDEX in DIR
|
|
|
|
|
S.LISTDIR.FC .EQ 12 file_count
|
|
|
|
|
S.LISTDIR.hPATH .EQ 14 Pattern for file filtering
|
|
|
|
|
S.LISTDIR.hPATTERN .EQ 15 Pattern for file filtering
|
|
|
|
|
*
|
|
|
|
|
S.LISTDIR.SIZE .EQ 16
|
|
|
|
|
*--------------------------------------
|
2015-03-14 21:48:35 +00:00
|
|
|
|
MAN
|
|
|
|
|
SAVE INC/A2OSX.I
|