DOS26pH,xC 0 a directory STRUCT fib_FileName,108 ; Null terminated. Max 30 chars used for now LONG fik$c6b_Protection ; bit mask of protection, rwxd are 3-0. LONG fib_EntryType LONG fib_Size ; Number of bytes in file LONG fib_NumBlocks ; Number of blocks in file STRUCT fib_DateStamp,ds_SIZEOF ; Date file last changed. STRUCT fib_Comment,116 ; Null terminated. Comment associated with file LABEL fib_SIZEOF ; FileInfoBlock ; FIB stands for FileInfoBlock ; FIBB are bit definitions, FIBF are field definitions k%; BITDEF FIB,ARCHIVE,4 ; cleared whenever file is changed FIBB_ARCHIVE = 4 ; cleared whenever file is changed FIBF_ARCHIVE = 1<<4 ; cleared whenever file is changed ; BITDEF FIB,READ,3 ; ignored by the system FIBB_READ = 3 ; ignored by the system FIBF_READ = 1<<3 ; ignored by the system ; BITDEF FIB,WRITE,2 ; ignored by the system FIBB_WRITE = 2 ; ignored by the system FIBF_WRITE = 1<<2 ; ignored by the k&Nsystem ; BITDEF FIB,EXECUTE,1 ; ignored by the system FIBB_EXECUTE = 1 ; ignored by the system FIBF_EXECUTE = 1<<1 ; ignored by the system ; BITDEF FIB,DELETE,0 ; prevent file from being deleted FIBB_DELETE = 0 ; prevent file from being deleted FIBF_DELETE = 1<<0 ; prevent file from being deleted ; All BCPL data must be long word aligned. BCPL pointers are the long word ; address (i.e byte address divided by 4 (>>2)) ; Macro to indick'6ate BCPL pointers BPTR MACRO $\1 ; Long word pointer LONG \1 ENDM BSTR MACRO $\1 ; Long word pointer to BCPL string. LONG \1 ENDM ; #define BADDR( bptr ) (bptr << 2) ; Convert BPTR to byte addressed pointer ; BCPL strings have a length in the first byte and then the characters. ; For example: s[0]=3 s[1]=S s[2]=Y s[3]=S ; returned by Info() STRUCTURE InfoData,0 LONG id_NumSoftErrors k (x ; number of soft errors on disk LONG id_UnitNumber ; Which unit disk is (was) mounted on LONG id_DiskState ; See defines below LONG id_NumBlocks ; Number of blocks on disk LONG id_NumBlocksUsed ; Number of block in use LONG id_BytesPerBlock LONG id_DiskType ; Disk Type code BPTR id_VolumeNode ; BCPL pointer to volume node LONG id_InUse ; Flag, zero if not in use LABEL k )oid_SIZEOF ; InfoData ; ID stands for InfoData ; Disk states ID_WRITE_PROTECTED EQU 80 ; Disk is write protected ID_VALIDATING EQU 81 ; Disk is currently being validated ID_VALIDATED EQU 82 ; Disk is consistent and writeable ; Disk types ID_NO_DISK_PRESENT EQU -1 ID_UNREADABLE_DISK EQU ('B'<<24)|('A'<<16)|('D'<<8) ID_NOT_REALLY_DOS EQU ('N'<<24)|('D'<<16)|('O'<<8)|('S') ID_DOk *S_DISK EQU ('D'<<24)|('O'<<16)|('S'<<8) ID_KICKSTART_DISK EQU ('K'<<24)|('I'<<16)|('C'<<8)|('K') ; Errors from IoErr(), etc. ERROR_NO_FREE_STORE EQU 103 ERROR_TASK_TABLE_FULL EQU 105 ERROR_LINE_TOO_LONG EQU 120 ERROR_FILE_NOT_OBJECT EQU 121 ERROR_INVALID_RESIDENT_LIBRARY EQU 122 ERROR_OBJECT_IN_USE EQU 202 ERROR_OBJECT_EXISTS EQU 203 ERROR_OBJECT_NOT_FOUND EQU 2k +05 ERROR_ACTION_NOT_KNOWN EQU 209 ERROR_INVALID_COMPONENT_NAME EQU 210 ERROR_INVALID_LOCK EQU 211 ERROR_OBJECT_WRONG_TYPE EQU 212 ERROR_DISK_NOT_VALIDATED EQU 213 ERROR_DISK_WRITE_PROTECTED EQU 214 ERROR_RENAME_ACROSS_DEVICES EQU 215 ERROR_DIRECTORY_NOT_EMPTY EQU 216 ERROR_DEVICE_NOT_MOUNTED EQU 218 ERROR_SEEK_ERROR EQU 219 ERROR_COMMENT_TOO_BIG EQU 220 ERROR_DISk ܬK_FULL EQU 221 ERROR_DELETE_PROTECTED EQU 222 ERROR_WRITE_PROTECTED EQU 223 ERROR_READ_PROTECTED EQU 224 ERROR_NOT_A_DOS_DISK EQU 225 ERROR_NO_DISK EQU 226 ERROR_NO_MORE_ENTRIES EQU 232 ; These are the return codes used by convention by AmigaDOS commands ; See FAILAT and IF for relvance to EXECUTE files RETURN_OK EQU 0 ; No problc- MTYPE_IOPROC EQU 6 ; ; workbench does different complement modes for its gadgets. ; It supports separate images, complement mode, and backfill mode. ; The first two are identical to intuitions GADGIMAGE and GADGHCOMP. ; backfill is similar to GADGHCOMP, but the region outside of the ; image (wX7&Zhich normally would be color three when complemented) ; is flood-filled to color zero. ; GADGBACKFILL EQU $0001 ; if an icon does not really live anywhere, set its current position ; to here ; NO_ICON_POSITION EQU ($80000000) END ort. These are the defines for this type ; MTYPE_PSTD EQU 1 ; a "standard Potion" message MTYPE_TOOLEXIT EQU 2 ; exit message from our tools MTYPE_DISKCHANGE EQU 3 Z=?Kdternal declarations for workbench support library ; ; SOURCE CONTROL ; ------ ------- ; $Header: icon.i,v 29.1 85/08/07 22:27:14 neil Exp $ ; ; $Locker: $ ; ;**************************************************************** ;******************************************************************** ; ; Library structures ; ;******************************************************************** ICONNAME MACRO DC.B 'icon.library',0 ENDM ENZTgs DIF END ORKBENCH_ICON_I@ WORKBENCH_ICON_I@ = 1 ;***************************************************************** ; ; ; Copyright (C) 1985, Commodore Amiga Inc. All rights reserved. ; ; ; ;***************************************************************** ;**************************************************************** ; ; icon.i -- ex\?>/ IFND LIBRARIES_DOS_I@ INCLUDE "libraries/dos.i" ENDIF STRUCTURE WBStartup,0 STRUCT sm_Message,MN_SIZE ; a standard message structure APTR sm_Process ; the process descriptor for you BPTR sm_Segment ; a descriptor for your code LONG sm_NumArgs ; the number of elements in ArgList APTR sm_ToolWindow ; description of window APTR sm_ArgList \ ; the arguments themselves LABEL sm_SIZEOF STRUCTURE WBArg,0 BPTR wa_Lock ; a lock descriptor APTR wa_Name ; a string relative to that lock LABEL wa_SIZEOF END $ ; ;*************************************************************************** IFND EXEC_TYPES_I@ INCLUDE "exec/types.i" ENDIF IFND EXEC_PORTS_I@ INCLUDE "exec/ports.i" ENDIF c,d********************* IFND EXEC_NODES_I@ INCLUDE "exec/nodes.i" ENDIF IFND EXEC_LISTS_I@ INCLUDE "exec/lists.i" ENDIF IFND GRAPHICS_TEXT_I@ INCLUDE "graphics/text.i" ENDIF MAXFONTPATH EQU 256 ; including null terminator STRUCTURE FC,0 STRUCT fc_FileName,MAXFONTPATH UWORD fc_YSize UBYTE fc_Style UBYTE fc_Flags LABEL fc_SIZEOF FCH_ID EQU $0f00 STRUCTURE FCH,0 UWORD fch_FileID ; FCH_ID UWORD f_kX********************************************************/ IFND LIBRARIES_EXPANSION_I@ LIBRARIES_EXPANSION_I@ = 1 EXPANSIONNAME MACRO dc.b 'expansion.library',0 ENDM ;; flags for the AddDosNode() call ;/ ; BITDEF ADN,STARTPROC,0 ADNB_STARTPROC = 0 ADNF_STARTPROC = 1<<0 ENDIF END IncludespQC=eDevice FUNCDEF DoIO FUNCDEF SendIO FUNCDEF CheckIO FUNCDEF WaitIO FUNCDEF AbortIO FUNCDEF AddResource FUNCDEF RemResource FUNCDEF OpenResource FUNCDEF RawIOInit FUNCDEF RawMayGetChar FUNCDEF RawPutChar FUNCDEF RawDoFmt FUNCDEF GetCC FUNCDEF TypeOfMem FUNCDEF Procure FUNCDEF Vacate FUNCDEF OpenLibrary FUNCDEF InitSemaphore FUNCDEF ObtQfhainSemaphore FUNCDEF ReleaseSemaphore FUNCDEF AttemptSemaphore FUNCDEF ObtainSemaphoreList FUNCDEF ReleaseSemaphoreList FUNCDEF FindSemaphore FUNCDEF AddSemaphore FUNCDEF RemSemaphore FUNCDEF SumKickData FUNCDEF AddMemList FUNCDEF CopyMem FUNCDEF CopyMemQuick END ion FUNCDEF SumLibrary FUNCDEF AddDevice FUNCDEF RemDevice FUNCDEF OpenDevice FUNCDEF ClosSaixQZSSR_SIZE APTR SS_OWNER SHORT SS_QUEUECOUNT LABEL SS_SIZE ENDIF END C_PORTS_I@ INCLUDE "exec/ports.i" ENDIF ;---------------------------------------------------------------- ; ; Semaphore Structure ; ;---------------------------------------------------------------- STRUCTURE SM,MP_SIZE WORD SM_BIDS ; number of bids for lock LABEL SM_SIZE ;------ unions: SM_LOCKMSG EQU MP_SIGTASK ;----------------------------UFF ENDIF ;--------------------------------------------------------------------- ; ; Memory List Structures ; ;--------------------------------------------------------------------- ; ; A memory list appears in two forms: One is a requirements list* ; the other is a list of already allocated memory. The format is ; the same, with the reqirements/address field occupying the same ; position. ; ; The format is a linked list of ML structures each of which has ; an array oUG|Df ME entries. ; ;--------------------------------------------------------------------- STRUCTURE ML,LN_SIZE UWORD ML_NUMENTRIES ; The number of ME structures that follow LABEL ML_ME ; where the ME structures begin LABEL ML_SIZE STRUCTURE ME,0 LABEL ME_REQS ; the AllocMem requirements APTR ME_ADDR ; the address of this block (an alias ; ; for the same locUHr ation as ME_REQS) ULONG ME_LENGTH ; the length of this region LABEL ME_SIZE ;------ memory options: ; BITDEF MEM,PUBLIC,0 MEMB_PUBLIC = 0 MEMF_PUBLIC = 1<<0 ; BITDEF MEM,CHIP,1 MEMB_CHIP = 1 MEMF_CHIP = 1<<1 ; BITDEF MEM,FAST,2 MEMB_FAST = 2 MEMF_FAST = 1<<2 ; BITDEF MEM,CLEAR,16 MEMB_CLEAR = 16 MEMF_CLEAR = 1<<16 ; BITDEF MEM,LARGEST,17 MEMB_LARGEST = 17 MEMF_LARGEST = 1<<17 ;------ alignment rules for a memory block: MEM_BLOCKSIZEUI_q EQU 8 MEM_BLOCKMASK EQU (MEM_BLOCKSIZE-1) ;--------------------------------------------------------------------- ; ; Memory Region Header ; ;--------------------------------------------------------------------- STRUCTURE MH,LN_SIZE UWORD MH_ATTRIBUTES ; characteristics of this region APTR MH_FIRST ; first free region APTR MH_LOWER ; lower memory bound APTR MH_UPPER ; upper memory bound+1 UwE ULONG MH_FREE ; number of free bytes LABEL MH_SIZE ;--------------------------------------------------------------------- ; ; Memory Chunk ; ;--------------------------------------------------------------------- STRUCTURE MC,0 APTR MC_NEXT ; ptr to next chunk ULONG MC_BYTES ; chunk byte size APTR MC_SIZE ENDIF END F_LARGEST = 1<<17 ;------ alignment rules for a memory block: MEM_BLOCKSIZEX7;t:ASKS_I@ INCLUDE "exec/tasks.i" ENDIF IFND INTUITION_INTUITION_I@ INCLUDE "intuition/intuition.i" ENDIF ; the Workbench object types WBDISK EQU 1 WBDRAWER EQU 2 WBTOOL EQU 3 WBPROJECT EQU 4 WBGARBAGE EQU 5 WBDEVICE EQU 6 WBKICK EQU 7 ; the main workbench object structure STRUCTURE DrawerData,0 STRUCT dd_NewWindow,nw_SIZE ; args to open window SLxec/nodes.i" ENDIF IFND EXEC_LISTS_I@ INCLUDE "exec/lists.i" ENDIF IFND EXEC_PORTS_I@ INCLUDE "exec/ports.i" ENDIF ;---------------------------------------------------------------- ; ; Semaphore Structure ; ;---------------------------------------------------------------- STRUCTURE SM,MP_SIZE WORD SM_BIDS ; number of bids for lock LABEL SM_SIZE ;------ unions: SM_LOCKMSG EQU MP_SIGTASK ;----------------------------SDʼ------------------------------------ ; ; Signal Semaphore Structure ; ;---------------------------------------------------------------- ; this is the structure used to request a signal semaphore -- allocated ; on the fly by ObtainSemaphore() STRUCTURE SSR,MLN_SIZE APTR SSR_WAITER LABEL SSR_SIZE ; this is the actual semaphore itself -- allocated statically STRUCTURE SS,LN_SIZE SHORT SS_NESTCOUNT STRUCT SS_WAITQUEUE,MLH_SIZE STRUCT SS_MULTIPLELINK,< NS STRUCT IntrList,LH_SIZE STRUCT LibList,LH_SIZE STRUCT PortList,LH_SIZE STRUCT TaskReady,LH_SIZE STRUCT TaskWait,LH_SIZE STRUCT SoftInts,SH_SIZE*5 STRUCT LastAlert,4*4 ;------ these next two variables are provided to allow ;------ system developers to have a rough idea of the ;------ period of two externally controlled signals -- < O^ ;------ the time between vertical blank interrupts and the ;------ external line rate (which is counted by CIA A's ;------ "time of day" clock). In general these values ;------ will be 50 or 60, and may or may not track each ;------ other. These values replace the obsolete AFB_PAL ;------ and AFB_50HZ flags. UBYTE VBlankFrequency UBYTE PowerSupplyFrequency STRUCT < PA SemaphoreList,LH_SIZE ;------ these next two are to be able to kickstart into user ram. ;------ KickMemPtr holds a singly linked list of MemLists which ;------ will be removed from the memory list via AllocAbs. If ;------ all the AllocAbs's succeeded, then the KickTagPtr will ;------ be added to the rom tag list. APTR KickMemPtr ; ptr to queue of mem lists APTR KickTagPtr < QPA{ ; ptr to rom tag queue APTR KickCheckSum ; checksum for mem and tags STRUCT ExecBaseReserved,10 STRUCT ExecBaseNewReserved,20 LABEL SYSBASESIZE ;*****; AttnFlags ; Processors and Co-processors: ; BITDEF AF,68010,0 ; also set for 68020 AFB_68010 = 0 ; also set for 68020 AFF_68010 = 1<<0 ; also set for 68020 ; BITDEF AF,68020,1 AFB_68020 = 1 AFF_68020 = 1<<1 ; BITDEF AF< R9 ,68881,4 AFB_68881 = 4 AFF_68881 = 1<<4 ; These two bits used to be AFB_PAL and AFB_50HZ. After some soul ; searching we realized that they were misnomers, and the information ; is now kept in VBlankFrequency and PowerSupplyFrequency above. ; To find out what sort of video conversion is done, look in the ; graphics subsytem. ; BITDEF AF,RESERVED8,8 AFB_RESERVED8 = 8 AFF_RESERVED8 = 1<<8 ; BITDEF AF,RESERVED9,9 AFB_RESERVED9 = 9 AFF_RESERVED9 = 1<<9 ENDIF EN<,rD tr to rom tag queue APTR KickCheckSum ; checksum for mem and tags STRUCT ExecBaseReserved,10 STRUCT ExecBaseNewReserved,20 LABEL SYSBASESIZE ;*****; AttnFlags ; Processors and Co-processors: ; BITDEF AF,68010,0 ; also set for 68020 AFB_68010 = 0 ; also set for 68020 AFF_68010 = 1<<0 ; also set for 68020 ; BITDEF AF,68020,1 AFB_68020 = 1 AFF_68020 = 1<<1 ; BITDEF AF>X]; 2 NT_DEVICE EQU 3 NT_MSGPORT EQU 4 NT_MESSAGE EQU 5 NT_FREEMSG EQU 6 NT_REPLYMSG EQU 7 NT_RESOURCE EQU 8 NT_LIBRARY EQU 9 NT_MEMORY EQU 10 NT_SOFTINT EQU 11 NT_FONT EQU 12 NT_PROCESS EQU 13 NT_SEMAPHORE EQU 14 NT_SIGNALSEM EQU 15 ; signal semaphores ENDIF END ************************************ ;---------------------------------------------------QU/"%Resident FUNCDEF Alert FUNCDEF Debug FUNCDEF Disable FUNCDEF Enable FUNCDEF Forbid FUNCDEF Permit FUNCDEF SetSR FUNCDEF SuperState FUNCDEF UserState FUNCDEF SetIntVector FUNCDEF AddIntServer FUNCDEF RemIntServer FUNCDEF Cause FUNCDEF Allocate FUNCDEF Deallocate FUNCDEF AllocMem FUNCDEF AllocAbs FUNCDEF FreeMem FUNCDEF AvailMem QVB| FUNCDEF AllocEntry FUNCDEF FreeEntry FUNCDEF Insert FUNCDEF AddHead FUNCDEF AddTail FUNCDEF Remove FUNCDEF RemHead FUNCDEF RemTail FUNCDEF Enqueue FUNCDEF FindName FUNCDEF AddTask FUNCDEF RemTask FUNCDEF FindTask FUNCDEF SetTaskPri FUNCDEF SetSignal FUNCDEF SetExcept FUNCDEF Wait FUNCDEF Signal FUNCDEF AllocSignal FUNCDEF FreeSignal QB FUNCDEF AllocTrap FUNCDEF FreeTrap FUNCDEF AddPort FUNCDEF RemPort FUNCDEF PutMsg FUNCDEF GetMsg FUNCDEF ReplyMsg FUNCDEF WaitPort FUNCDEF FindPort FUNCDEF AddLibrary FUNCDEF RemLibrary FUNCDEF OldOpenLibrary FUNCDEF CloseLibrary FUNCDEF SetFunction FUNCDEF SumLibrary FUNCDEF AddDevice FUNCDEF RemDevice FUNCDEF OpenDevice FUNCDEF Clos>SsO------------- ; ; List Node Structure ; ;---------------------------------------------------------------- STRUCTURE LN,0 APTR LN_SUCC APTR LN_PRED UBYTE LN_TYPE BYTE LN_PRI APTR LN_NAME LABEL LN_SIZE ; min node -- only has minimum necessary, no type checking possible STRUCTURE MLN,0 APTR MLN_SUCC APTR MLN_PRED LABEL MLN_SIZE ;------ Node Types: NT_UNKNOWN EQU 0 NT_TASK EQU 1 NT_INTERRUPT EQU3Y8Qec/nodes.i" ENDIF IFND EXEC_LISTS_I@ INCLUDE "exec/lists.i" ENDIF ;---------------------------------------------------------------- ; ; Interrupt Structure ; ;---------------------------------------------------------------- STRUCTURE IS,LN_SIZE APTR IS_DATA APTR IS_CODE LABEL IS_SIZE ;--------------------------------------------------------------------- ; ; Exec Internal Interrupt Vectors ; ;-------------------------------------3Z-------------------------------- STRUCTURE IV,0 APTR IV_DATA APTR IV_CODE APTR IV_NODE LABEL IV_SIZE ;------ System Flag bits (in SysBase.SysFlags ) ; BITDEF S,SAR,15 ; scheduling attention required SB_SAR = 15 ; scheduling attention required SF_SAR = 1<<15 ; scheduling attention required ; BITDEF S,TQE,14 ; time quantum expended -- time to resched SB_TQE = 14 ; time quantum expended -- time to resched SF_TQE3[bX = 1<<14 ; time quantum expended -- time to resched ; BITDEF S,SINT,13 SB_SINT = 13 SF_SINT = 1<<13 ;--------------------------------------------------------------------- ; ; Software Interrupt List Headers ; ;--------------------------------------------------------------------- STRUCTURE SH,LH_SIZE UWORD SH_PAD LABEL SH_SIZE SIH_PRIMASK EQU $0F0 SIH_QUEUES EQU 5 ;; this is a fake INT definition, used only for AddIntServer and the like3Q{ ; BITDEF INT,NMI,15 INTB_NMI = 15 INTF_NMI = 1<<15 ENDIF END IV_CODE APTR IV_NODE LABEL IV_SIZE ;------ System Flag bits (in SysBase.SysFlags ) ; BITDEF S,SAR,15 ; scheduling attention required SB_SAR = 15 ; scheduling attention required SF_SAR = 1<<15 ; scheduling attention required ; BITDEF S,TQE,14 ; time quantum expended -- time to resched SB_TQE = 14 ; time quantum expended -- time to resched SF_TQE<]wcTRUCT IVTBE,IV_SIZE STRUCT IVDSKBLK,IV_SIZE STRUCT IVSOFTINT,IV_SIZE STRUCT IVPORTS,IV_SIZE STRUCT IVCOPER,IV_SIZE STRUCT IVVERTB,IV_SIZE STRUCT IVBLIT,IV_SIZE STRUCT IVAUD0,IV_SIZE STRUCT IVAUD1,IV_SIZE STRUCT IVAUD2,IV_SIZE STRUCT IVAUD3,IV_SIZE STRUCT IVRBF,IV_SIZE STRUCT IVD<^5(+SKSYNC,IV_SIZE STRUCT IVEXTER,IV_SIZE STRUCT IVINTEN,IV_SIZE STRUCT IVNMI,IV_SIZE ;*****; Dynamic System Variables ;************************************ APTR ThisTask ; pointer to current task ULONG IdleCount ; idle counter ULONG DispCount ; dispatch counter UWORD Quantum ; time slice quantum UWORD Elapsed <_-; current quantum ticks UWORD SysFlags ; misc system flags BYTE IDNestCnt ; interrupt disable nesting count BYTE TDNestCnt ; task disable nesting count UWORD AttnFlags ; special attention flags UWORD AttnResched ; rescheduling attention APTR ResModules ; pointer to resident module array APTR TaskTrapCode ; default tas<Mk trap routine APTR TaskExceptCode ; default task exception code APTR TaskExitCode ; default task exit code ULONG TaskSigAlloc ; preallocated signal mask UWORD TaskTrapAlloc ; preallocated trap mask ;*****; System List Headers ;***************************************** STRUCT MemList,LH_SIZE STRUCT ResourceList,LH_SIZE STRUCT DeviceList,LH_SIZE <ax?es.i" ENDIF IFND EXEC_LISTS_I@ INCLUDE "exec/lists.i" ENDIF IFND EXEC_INTERRUPTS_I@ INCLUDE "exec/interrupts.i" ENDIF IFND EXEC_LIBRARIES_I@ INCLUDE "exec/libraries.i" ENDIF ;*****; Static System Variables ;************************************* STRUCTURE ExecBase,LIB_SIZE ; Standard library node UWORD SoftVer ; kickstart release number WORD LowMemChkSum ; checksum of 68000 trap <b2vectors ULONG ChkBase ; system base pointer complement APTR ColdCapture ; cold soft capture vector APTR CoolCapture ; cool soft capture vector APTR WarmCapture ; warm soft capture vector APTR SysStkUpper ; system stack base (upper bound) APTR SysStkLower ; top of system stack (lower bound) ULONG MaxLocMem ; last calcula<\%>ted local memory max APTR DebugEntry ; global debugger entry point APTR DebugData ; global debugger data segment APTR AlertData ; alert data segment APTR MaxExtMem ; top of extended mem, or null if none WORD ChkSum ; for all of the above ;*****; Interrupt Related ;******************************************* LABEL IntVects S& dE\able AN_MakeVPort equ $82010030 ; MakeVPort, no memory AN_GfxNoLCM equ $82011234 ; emergency memory not available ;------ layers.library AN_LayersLib equ $03000000 AN_LayersNoMem equ $83010000 ; layers out of memory ;------ intuition.library AN_Intuition equ $04000000 AN_GadgetType equ $84000001 ; unknown gadet type AN_BadGadget equ $04000001 ; Recovery form of AN_GadgetType AN_CreatePort equ $84010002 ; create port, no memory AN_ItemAlloc equ $0& eg#4010003 ; item plane alloc, no memory AN_SubAlloc equ $04010004 ; sub alloc, no memory AN_PlaneAlloc equ $84010005 ; plane alloc, no memory AN_ItemBoxTop equ $84000006 ; item box top < RelZero AN_OpenScreen equ $84010007 ; open screen, no memory AN_OpenScrnRast equ $84010008 ; open screen, raster alloc, no memory AN_SysScrnType equ $84000009 ; open sys screen, unknown type AN_AddSWGadget equ $8401000A ; add SW gadgets, no memory AN_OpenWindow equ $840100& fl@0B ; open window, no memory AN_BadState equ $8400000C ; Bad State Return entering Intuition AN_BadMessage equ $8400000D ; Bad Message received by IDCMP AN_WeirdEcho equ $8400000E ; Weird echo causing incomprehension AN_NoConsole equ $8400000F ; couldn't open the Console Device ;------ math.library AN_MathLib equ $05000000 ;------ clist.library AN_CListLib equ $06000000 ;------ dos.library AN_DOSLib equ $07000000 AN_StartMem equ $07010001 & gχc; no memory at startup AN_EndTask equ $07000002 ; EndTask didn't AN_QPktFail equ $07000003 ; Qpkt failure AN_AsyncPkt equ $07000004 ; Unexpected packet received AN_FreeVec equ $07000005 ; Freevec failed AN_DiskBlkSeq equ $07000006 ; Disk block sequence error AN_BitMap equ $07000007 ; Bitmap corrupt AN_KeyFree equ $07000008 ; Key already free AN_BadChkSum equ $07000009 ; Invalid checksum AN_DiskError equ $0700000A ; Disk &h%!Error AN_KeyRange equ $0700000B ; Key out of range AN_BadOverlay equ $0700000C ; Bad overlay ;------ ramlib.library AN_RAMLib equ $08000000 AN_BadSegList equ $08000001 ; overlays are illegal for library segments ;------ icon.library AN_IconLib equ $09000000 ;------ expansion.library AN_ExpansionLib equ $0A000000 AN_BadExpansionFree equ $0A000001 ;------ audio.device AN_AudioDev equ $10000000 ;------ console.device AN_ConsoleDev equ $11000000 &i, ;------ gameport.device AN_GamePortDev equ $12000000 ;------ keyboard.device AN_KeyboardDev equ $13000000 ;------ trackdisk.device AN_TrackDiskDev equ $14000000 AN_TDCalibSeek equ $14000001 ; calibrate: seek error AN_TDDelay equ $14000002 ; delay: error on timer wait ;------ timer.device AN_TimerDev equ $15000000 AN_TMBadReq equ $15000001 ; bad request AN_TMBadSupply equ $15000002 ; power supply does not supply ticks ;------ cia.resource AN_CIARsrc &9equ $20000000 ;------ disk.resource AN_DiskRsrc equ $21000000 AN_DRHasDisk equ $21000001 : get unit: already has disk AN_DRIntNoAct equ $21000002 ; interrupt: no active unit ;------ misc.resource AN_MiscRsrc equ $22000000 ;------ bootstrap AN_BootStrap equ $30000000 AN_BootError equ $30000001 ; boot code returned an error ;------ workbench AN_Workbench equ $31000000 ;------ DiskCopy AN_DiskCopy equ $32000000 ENDIF END v equ $11000000 /kN |; &offset,&value DC.B $e0 DC.B 0 DC.W \1 DC.B \2 DC.B 0 ENDM INITWORD MACRO $\1, $\2 ; &offset,&value DC.B $d0 DC.B 0 DC.W \1 DC.W \2 ENDM INITLONG MACRO $\1, $\2 ; &offset,&value DC.B $c0 DC.B 0 DC.W \1 /lt* DC.L \2 ENDM INITSTRUCT MACRO $\1,$\2,$\3,$\4 ; &size,&offset,&value,&count DS.W 0 IFND \4 COUNT\@ = 0 ELSE COUNT\@ = \4 ENDIF CMD\@ = (((\1)<<4)|COUNT\@) IFLE (\2)-255 DC.B (CMD\@)|$80 DC.B \2 MEXIT ENDIF DC.B CMD\@|$0C0 DC.B (((\2)>>16)&$0FF) DC.W /5= ((\2)&$0FFFF) ENDM ENDIF END DC.B 0 DC.W \1 DC.B \2 DC.B 0 ENDM INITWORD MACRO $\1, $\2 ; &offset,&value DC.B $d0 DC.B 0 DC.W \1 DC.W \2 ENDM INITLONG MACRO $\1, $\2 ; &offset,&value DC.B $c0 DC.B 0 DC.W \1 (2 1 -1 ; device/unit failed to open IOERR_ABORTED EQU -2 ; request aborted IOERR_NOCMD EQU -3 ; command not supported IOERR_BADLENGTH EQU -4 ; not a valid length ERR_OPENDEVICE EQU IOERR_OPENFAIL ; REMOVE ||| ENDIF END CODERS PACK V1.5  $oJD--------------------- ; ; Resident Module Tag ; ;---------------------------------------------------------------- STRUCTURE RT,0 UWORD RT_MATCHWORD ; word to match APTR RT_MATCHTAG ; pointer to structure base APTR RT_ENDSKIP ; address to continue scan UBYTE RT_FLAGS ; various tag flags UBYTE RT_VERSION ; release version number UBYTE RT_TYPE $p뜃 ; type of module BYTE RT_PRI ; initialization priority APTR RT_NAME ; pointer to node name APTR RT_IDSTRING ; pointer to id string APTR RT_INIT ; pointer to init code LABEL RT_SIZE ;------ Match word definition: RTC_MATCHWORD EQU $4AFC ; (ILLEGAL instruction) ;------ RT_FLAGS bit and field definitions: ; BITDEF RT,COLDSTART,0 RTB_COLDSTART = 0 RTF_CO$KLDSTART = 1<<0 ; BITDEF RT,AUTOINIT,7 ; RT_INIT points to data RTB_AUTOINIT = 7 ; RT_INIT points to data RTF_AUTOINIT = 1<<7 ; RT_INIT points to data ; Compatibility: RTM_WHEN EQU 1 ; field position in RT_FLAGS RTW_NEVER EQU 0 ; never ever init RTW_COLDSTART EQU 1 ; init at coldstart time ENDIF END lease version number UBYTE RT_TYPE &rɐG_OpenLib|AO_MathLib),(A0),A1 ; ;********************************************************************* ;------ alert types AT_DeadEnd equ $80000000 AT_Recovery equ $00000000 ;------ general purpose alert codes AG_NoMemory equ $00010000 AG_MakeLib equ $00020000 AG_OpenLib equ $00030000 AG_OpenDev equ $00040000 AG_OpenRes equ $00050000 AG_IOError equ $00060000 AG_NoSignal equ $00070000 ;------ alert objects: AO_ExecLib equ $00008001 AO_&s;,GraphicsLib equ $00008002 AO_LayersLib equ $00008003 AO_Intuition equ $00008004 AO_MathLib equ $00008005 AO_CListLib equ $00008006 AO_DOSLib equ $00008007 AO_RAMLib equ $00008008 AO_IconLib equ $00008009 AO_ExpansionLib equ $0000800A AO_AudioDev equ $00008010 AO_ConsoleDev equ $00008011 AO_GamePortDev equ $00008012 AO_KeyboardDev equ $00008013 AO_TrackDiskDev equ $00008014 AO_TimerDev equ $00008015 AO_CIARsrc equ $00008020 AO_DiskRsrc&t7 @ equ $00008021 AO_MiscRsrc equ $00008022 AO_BootStrap equ $00008030 AO_Workbench equ $00008031 ;********************************************************************* ; ; Specific Dead-End Alerts: ; ; For example: exec.library -- corrupted memory list ; ; ALERT AN_MemCorrupt,(A0),A1 ; ;********************************************************************* ;------ exec.library AN_ExecLib equ $01000000 AN_ExcptVect equ $81000001 ; 68000 excepti&u܉)on vector checksum AN_BaseChkSum equ $81000002 ; execbase checksum AN_LibChkSum equ $81000003 ; library checksum failure AN_LibMem equ $81000004 ; no memory to make library AN_MemCorrupt equ $81000005 ; corrupted memory list AN_IntrMem equ $81000006 ; no memory for interrupt servers AN_InitAPtr equ $81000007 ; InitStruct() of an APTR source AN_SemCorrupt equ $81000008 ; a semaphore is in illegal state AN_FreeTwice equ $81000009 ; freeing mem& c1ory that is already free AN_BogusExcpt equ $8100000A ; illegal 68k exception taken ;------ graphics.library AN_GraphicsLib equ $02000000 AN_GfxNoMem equ $82010000 ; graphics out of memory AN_LongFrame equ $82010006 ; long frame, no memory AN_ShortFrame equ $82010007 ; short frame, no memory AN_TextTmpRas equ $02010009 ; text, no memory for TmpRas AN_BltBitMap equ $8201000A ; BltBitMap, no memory AN_RegionMemory equ $8201000B ; regions, memory not avail&wFlags SB_ALERTWACK = 1 ; in ExecBase.SysFlags SF_ALERTWACK = 1<<1 ; in ExecBase.SysFlags ;********************************************************************* ; ; Format of the alert error number: ; ; +---------------+----------------+--------------------------------+ ; |D| SubSysId | General Error | SubSystem Specific Error | ; +---------------+----------------+--------------------------------+ ; ; D: DeadEnd alert ; &xqB SubSysId: indicates ROM subsystem number. ; General Error: roughly indicates what the error was ; Specific Error: indicates more detail ;********************************************************************** ; ; Use this macro for causing an alert. THIS MACRO MAY CHANGE| ; It is very sensitive to memory corruption.... like stepping on ; location 4| But it should work for now. ; ALERT macro $\1, $\2 ; (alertNumber, paramArray, scratch) &qk ; movem.l d7/a5/a6,-(sp) move.l #\1,d7 IFD \2 lea \2,a5 ENDIF move.l 4,a6 ; (use proper name|||) jsr _LVOAlert(a6) movem.l (sp)+,d7/a5/a6 endm ;********************************************************************* ; ; General Dead-End Alerts ; ; For example: timer.device cannot open math.library: ; ; ALERT (AN_TimerDev|A z$Z DEVCMD CMD_RESET ; reset as if just inited DEVCMD CMD_READ ; standard read DEVCMD CMD_WRITE ; standard write DEVCMD CMD_UPDATE ; write out all buffers DEVCMD CMD_CLEAR ; clear all buffers DEVCMD CMD_STOP ; hold current and queued DEVCMD CMD_START ; restart after stop DEVCMD CMD_FLUSH ; abort entire queue ;---- a׭-- First non-standard device command value: DEVCMD CMD_NONSTD ENDIF END ; [baseOffset] IFND \1 CMD_COUNT@ = CMD_NONSTD ELSE CMD_COUNT@ = \1 ENDIF ENDM DEVCMD MACRO $\1 ; cmdname $\1 EQU CMD_COUNT@ CMD_COUNT@ = CMD_COUNT@+1 ENDM ;------ Standard device commands: DEVINIT 0 DEVCMD CMD_INVALID ; invalid command siFLAGS rs.l 1 IO_PARSTATUS rs.b 1 IO_PARFLAGS rs.b 1 IO_PTERMARRAY rs.b PTERMARRAY_SIZE IOEXTPar_SIZE rs.w 0 ENDC O_I INCLUDE 'exec/io.i' ENDC ParErr_DevBusy EQU 1 ParErr_BufTooBig EQU 2 ParErr_InvParam EQU 3 ParErr_LineErr EQU 4 ParErr_NotOpen EQU 5 ParErr_PortReset EQU 6 ParErr_InitErr EQU 7 PDCMD_QUERY EQU CMD_NONSTD PDCMD_SETPARAMS EQU CMD_NONSTD+1 Par_DEVFINISH EQU 10 PARALLELNAME: MACRO STRING 'parallel.device' ENDM PARB_SHARED equ 5 PARF_SHARED equ 1<<5 PARB_RAD_BOOGIE eq(zo_Unit rs.l 1 io_Command rs.w 1 io_Flags rs.b 1 io_Error rs.b 1 io_Actual rs.l 1 io_Length rs.l 1 io_Data rs.l 1 io_Offset rs.l 1 io_ClipID rs.l 1 iocr_SIZEOF rs.w 0 PRIMARY_CLIP EQU 0 rsreset SatisfyMsg rs.b 0 sm_Msg rs.b MN_SIZE sm_Unit rs.w 1 sm_ClipID rs.l 1 satisfyMsg_SIZEOF rs.w 0 ENDC CODERS PACK V1.5  "~Vh ENDIF ;--------------------------------------------------------------------- ; ; List Structures ; ;--------------------------------------------------------------------- ; normal, full featured list STRUCTURE LH,0 APTR LH_HEAD APTR LH_TAIL APTR LH_TAILPRED UBYTE LH_TYPE UBYTE LH_pad LABEL LH_SIZE ; minimal list, no type checking possible STRUCTURE MLH,0 APTR MLH_HEAD APTR MLH_TAIL APTR MLH_TAILPRED LABEL MLH",_SIZE NEWLIST MACRO $\1 ; list MOVE.L \1,(\1) ADDQ.L #LH_TAIL,(\1) CLR.L LH_TAIL(\1) MOVE.L \1,(LH_TAIL+LN_PRED)(\1) ENDM TSTLIST MACRO $\1 ; [list] IFND \1 CMP.L LH_TAIL+LN_PRED(A0),A0 ELSE CMP.L LH_TAIL+LN_PRED(\1),\1 ENDIF ENDM SUCC MACRO $\1,$\2 ; node,succ MOVE.L (\1),\2 ENDM PRED "o"k MACRO $\1,$\2 ; node,pred MOVE.L LN_PRED(\1),\2 ENDM IFEMPTY MACRO $\1,$\2 ; list,label CMP.L LH_TAIL+LN_PRED(\1),\1 BEQ \2 ENDM IFNOTEMPTY MACRO $\1,$\2 ; list,label CMP.L LH_TAIL+LN_PRED(\1),\1 BNE \2 ENDM TSTNODE MACRO $\1,$\2 ; node,next MOVE.L (\1),\2 TST.L (\2) ENDM NEXTNODE MACRO $\1,$\2,$\3 ; ne"B?xt,current,exit_label (DX,AX,DISP16) MOVE.L \1,\2 MOVE.L (\2),\1 BEQ \3 ENDM ADDHEAD MACRO MOVE.L (A0),D0 MOVE.L A1,(A0) MOVEM.L D0/A0,(A1) MOVE.L D0,A0 MOVE.L A1,LN_PRED(A0) ENDM ADDTAIL MACRO LEA LH_TAIL(A0),A0 MOVE.L LN_PRED(A0),D0 MOVE.L A1,LN_PRED(A0) MOVE.L A0,(A1) MOVE.L D"!.C0,LN_PRED(A1) MOVE.L D0,A0 MOVE.L A1,(A0) ENDM REMOVE MACRO MOVE.L (A1),A0 MOVE.L LN_PRED(A1),A1 MOVE.L A0,(A1) MOVE.L A1,LN_PRED(A0) ENDM REMHEAD MACRO MOVE.L (A0),A1 MOVE.L (A1),D0 BEQ.S \A MOVE.L D0,(A0) EXG.L D0,A1 MOVE.L A0,LN_PRED(A1) \A: ENDM ;-------------------------------"|6;--------------------------------- ; ; REMHEADQ -- remove-head quickly ; ; Useful when a scratch register is available, and ; list is known to contain at least one node. ; ;---------------------------------------------------------------- REMHEADQ MACRO $\1,$\2,$\3 ; head,node,scratchReg MOVE.L (\1),\2 MOVE.L (\2),\3 MOVE.L \3,(\1) MOVE.L \1,LN_PRED(\3) ENDM REMTAIL MACRO MOVE.L LH_TAI"=#L+LN_PRED(A0),A1 MOVE.L LN_PRED(A1),D0 BEQ.S \A MOVE.L D0,LH_TAIL+LN_PRED(A0) EXG.L D0,A1 MOVE.L A0,(A1) ADDQ.L #4,(A1) \A: ENDM ENDIF END ENDM REMHEAD MACRO MOVE.L (A0),A1 MOVE.L (A1),D0 BEQ.S \A MOVE.L D0,(A0) EXG.L D0,A1 MOVE.L A0,LN_PRED(A1) \A: ENDM ;-------------------------------^" ENDIF IFND EXEC_EXECBASE_I@ INCLUDE "exec/execbase.i" ENDIF ;---------------------------------------------------------------- ; ; Interrupt Exclusion Macros ; ;---------------------------------------------------------------- INT_ABLES MACRO ; externals for dis/enable ; XREF _intena ENDM DISABLE MACRO $\1 ; [scratchReg] IFND \1 MOVE.W #$04000,_intena ;(NOT IF_SETCLR)+IF_INCTEN ADDQ.B #1,IDNestCnt(A6) ELSE MOVE.L 4,\1 MOVE.W #$04000,_intena ;(NOT IF_SETCLR)+IF_INTEN ADDQ.B #1,IDNestCnt(\1) ENDIF ENDM ENABLE MACRO $\1 ; [scratchReg] IFND \1 SUBQ.B #1,IDNestCnt(A6) BGE.S ENABLE\@ MOVE.W #$0C000,_intena ;IF_SETCLR+IF_INTEN ENABLE\@: ELSE MOVE.L 4,\1 SUBQ.B #1,IBDNestCnt(\1) BGE.S ENABLE\@ MOVE.W #$0C000,_intena ENABLE\@: ENDIF ENDM ;---------------------------------------------------------------- ; ; Tasking Exclusion Macros ; ;---------------------------------------------------------------- TASK_ABLES MACRO ; INCLUDE 'execbase.i' for TDNestCnt offset ; XREF _LVOPermit ENDM FORBID MACRO $\1 IFND \1 ADDQ.B #1,TDN8=estCnt(A6) ELSE MOVE.L 4,\1 ADDQ.B #1,TDNestCnt(\1) ENDIF ENDM PERMIT MACRO $\1 IFND \1 JSR _LVOPermit(A6) ELSE MOVE.L A6,-(SP) MOVE.L 4,A6 JSR _LVOPermit(A6) MOVE.L (SP)+,A6 ENDIF ENDM ENDIF END R+IF_INTEN ENABLE\@: ELSE MOVE.L 4,\1 SUBQ.B #1,I`Zg 0 BELL EQU 7 LF EQU 10 CR EQU 13 BS EQU 8 DEL EQU $7F NL EQU LF ;---------------------------------------------------------------- ; ; String Support Macros ; ;---------------------------------------------------------------- STRING MACRO $\1 DC.B \1 DC.B 0 CNOP 0,2 ENDM STRINGL MACRO $\1 DC.B wSe13,10 DC.B \1 DC.B 0 CNOP 0,2 ENDM STRINGR MACRO $\1 DC.B \1 DC.B 13,10,0 CNOP 0,2 ENDM STRINGLR MACRO $\1 DC.B 13,10 DC.B \1 DC.B 13,10,0 CNOP 0,2 ENDM ENDIF END *************************************************************** ;------ Terminal Control: EOS EQU  e; IFND EXEC_LIBRARIES_I@ INCLUDE "exec/libraries.i" ENDIF ;---------------------------------------------------------------- ; ; IO Request Structures ; ;---------------------------------------------------------------- ;------ Required portion of IO request: STRUCTURE IO,MN_SIZE APTR IO_DEVICE ; device node pointer APTR IO_UNIT ; unit (driver private) UWORD IO_COMMAND ; device command UBYTE vJ IO_FLAGS ; special flags BYTE IO_ERROR ; error or warning code LABEL IO_SIZE ;------ Standard IO request extension: ULONG IO_ACTUAL ; actual # of bytes transfered ULONG IO_LENGTH ; requested # of bytes transfered APTR IO_DATA ; pointer to data area ULONG IO_OFFSET ; offset for seeking devices LABEL IOSTD_SIZE ;------ IO_FL g iAGS bit definitions: ; BITDEF IO,QUICK,0 ; complete IO quickly IOB_QUICK = 0 ; complete IO quickly IOF_QUICK = 1<<0 ; complete IO quickly ;---------------------------------------------------------------- ; ; Standard Device Library Functions ; ;---------------------------------------------------------------- LIBINIT LIBDEF DEV_BEGINIO ; process IO request LIBDEF DEV_ABORTIO  4 ; abort IO request ;---------------------------------------------------------------- ; ; IO Function Macros ; ;---------------------------------------------------------------- BEGINIO MACRO LINKLIB DEV_BEGINIO,IO_DEVICE(A1) ENDM ABORTIO MACRO LINKLIB DEV_ABORTIO,IO_DEVICE(A1) ENDM ;---------------------------------------------------------------- ; ; Standard Device Command Definitions ; ;-------------------------- y~-------------------------------------- ;------ Command definition macro: DEVINIT MACRO $\1 ; [baseOffset] IFND \1 CMD_COUNT@ = CMD_NONSTD ELSE CMD_COUNT@ = \1 ENDIF ENDM DEVCMD MACRO $\1 ; cmdname $\1 EQU CMD_COUNT@ CMD_COUNT@ = CMD_COUNT@+1 ENDM ;------ Standard device commands: DEVINIT 0 DEVCMD CMD_INVALID ; invalid command h\ $01 SHSHAKE_NONE EQU $02 ; ======================================================================== ; === Remember =========================================================== ; ======================================================================== ; this structure is used for remembering what memory has been allocated to ; date by a given routine, so that a premature abort or systematic exit ; can deallocate memory cleanly, easily, and completely STRUCTURE Remember,0 ic=? APTR rm_NextRemember LONG rm_RememberSize APTR rm_Memory LABEL rm_SIZEOF ; ======================================================================== ; === Miscellaneous ====================================================== ; ======================================================================== ; = MACROS ============================================================== ;#define MENUNUM(n) (n & 0x1F) ;#define ITEMNUM(n) ((n >> 5) & 0x003F) ;#define SUBNUM(n) (jdck(n >> 11) & 0x001F) ; ;#define SHIFTMENU(n) (n & 0x1F) ;#define SHIFTITEM(n) ((n & 0x3F) << 5) ;#define SHIFTSUB(n) ((n & 0x1F) << 11) ; ;#define SRBNUM(n) (0x08 - (n >> 4)) /; SerRWBits -> read bits per char ;/ ;#define SWBNUM(n) (0x08 - (n & 0x0F))/; SerRWBits -> write bits per chr ;/ ;#define SSBNUM(n) (0x01 + (n >> 4)) /; SerStopBuf -> stop bits per chr ;/ ;#define SPARNUM(n) (n >> 4) /; SerParShk -> parity setting ;/ ;#define SHAKNUM(n) (n & 0x0F) /; Sek=rParShk -> handshake mode ;/ ; ; = MENU STUFF =========================================================== NOMENU EQU $001F NOITEM EQU $003F NOSUB EQU $001F MENUNULL EQU $FFFF ; = =RJ='s peculiarities ================================================= ;#define FOREVER for(;;) ;#define SIGN(x) ( ((x) > 0) - ((x) < 0) ) ; these defines are for the COMMSEQ and CHECKIT menu stuff. If CHECKIT, ; I'll use a generic Width (for all resolutions) for the CheckMark. ;l If COMMSEQ, likewise I'll use this generic stuff CHECKWIDTH EQU 19 COMMWIDTH EQU 27 LOWCHECKWIDTH EQU 13 LOWCOMMWIDTH EQU 16 ; these are the AlertNumber defines. if you are calling DisplayAlert() ; the AlertNumber you supply must have the ALERT_TYPE bits set to one ; of these patterns ALERT_TYPE EQU $80000000 RECOVERY_ALERT EQU $00000000 ; the system can recover from this DEADEND_ALERT EQU $80000000 ; no recovery pomG}ssible, this is it ; When you're defining IntuiText for the Positive and Negative Gadgets ; created by a call to AutoRequest(), these defines will get you ; reasonable-looking text. The only field without a define is the IText ; field; you decide what text goes with the Gadget AUTOFRONTPEN EQU 0 AUTOBACKPEN EQU 1 AUTODRAWMODE EQU RP_JAM2 AUTOLEFTEDGE EQU 6 AUTOTOPEDGE EQU 3 AUTOITEXTFONT EQU 0 AUTONEXTTEXT EQU 0 ;; --- RAWMOUnRэASE Codes and Qualifiers (Console OR IDCMP) ------------------- SELECTUP EQU (IECODE_LBUTTON+IECODE_UP_PREFIX) SELECTDOWN EQU (IECODE_LBUTTON) MENUUP EQU (IECODE_RBUTTON+IECODE_UP_PREFIX) MENUDOWN EQU (IECODE_RBUTTON) ALTLEFT EQU (IEQUALIFIER_LALT) ALTRIGHT EQU (IEQUALIFIER_RALT) AMIGALEFT EQU (IEQUALIFIER_LCOMMAND) AMIGARIGHT EQU (IEQUALIFIER_RCOMMAND) AMIGAKEYS EQU (AMIGALEFT+AMIGARIGHT) oA CURSORUP EQU $4C CURSORLEFT EQU $4F CURSORRIGHT EQU $4E CURSORDOWN EQU $4D KEYCODE_Q EQU $10 KEYCODE_X EQU $32 KEYCODE_N EQU $36 KEYCODE_M EQU $37 KEYCODE_V EQU $34 KEYCODE_B EQU $35 IFND INTUITION_INTUITIONBASE_I@ include 'intuition/intuitionbase.i' ENDIF ENDIF END e a generic Width (for all resolutions) for the CheckMark. ;tS ENDIF IFND EXEC_LISTS_I@ INCLUDE "exec/lists.i" ENDIF ;---------------------------------------------------------------- ; ; Message Port Structure ; ;---------------------------------------------------------------- STRUCTURE MP,LN_SIZE UBYTE MP_FLAGS UBYTE MP_SIGBIT ; signal bit number APTR MP_SIGTASK ; task to be signalled STRUCT MP_MSGLIST,LH_SIZE ; message linked list LABEL MP_SIZE ;------ unions:T~ MP_SOFTINT EQU MP_SIGTASK ;------ flags fields: PF_ACTION EQU 3 ;------ PutMsg actions: PA_SIGNAL EQU 0 PA_SOFTINT EQU 1 PA_IGNORE EQU 2 ;---------------------------------------------------------------- ; ; Message Structure ; ;---------------------------------------------------------------- STRUCTURE MN,LN_SIZE APTR MN_REPLYPORT ; message reply port UWORD MN_LENGTH ; message len in bytes LABEL  ~ MN_SIZE ENDIF END INCLUDE "exec/lists.i" ENDIF ;---------------------------------------------------------------- ; ; Message Port Structure ; ;---------------------------------------------------------------- STRUCTURE MP,LN_SIZE UBYTE MP_FLAGS UBYTE MP_SIGBIT ; signal bit number APTR MP_SIGTASK ; task to be signalled STRUCT MP_MSGLIST,LH_SIZE ; message linked list LABEL MP_SIZE ;------ unions:]C ; baud rate for the serial port ; various timing rates STRUCT pf_KeyRptSpeed,TV_SIZE ; repeat speed for keyboard STRUCT pf_KeyRptDelay,TV_SIZE ; Delay before keys repeat STRUCT pf_DoubleClick,TV_SIZE ; Interval allowed between clicks ; Intuition Pointer data STRUCT pf_PointerMatrix,POINTERSIZE*2 ; Definition of pointer sprite BYTE pf_XOffset ; X-Offset for active 'bit' BYTE pf_YOffset ; Y-Offset for active 'bit' ^sB WORD pf_color17 ;******************************** WORD pf_color18 ; Colours for sprite pointer WORD pf_color19 ;******************************** WORD pf_PointerTicks ; Sensitivity of the pointer ; Workbench Screen colors WORD pf_color0 ;******************************** WORD pf_color1 ; Standard default colours WORD pf_color2 ; Used in the Workbench WORD pf_color3_FL ;******************************** ; positioning data for the Intuition View BYTE pf_ViewXOffset ; Offset for top lefthand corner BYTE pf_ViewYOffset ; X and Y dimensions WORD pf_ViewInitX ; View initial offsets at startup WORD pf_ViewInitY ; View initial offsets at startup BOOL EnableCLI ; CLI availability switch ; printer configurations WORD pf_PrinterType ; printer type STR`"UCT pf_PrinterFilename,FILENAME_SIZE ; file for printer ; print format and quality configurations WORD pf_PrintPitch ; print pitch WORD pf_PrintQuality ; print quality WORD pf_PrintSpacing ; number of lines per inch WORD pf_PrintLeftMargin ; left margin in characters WORD pf_PrintRightMargin ; right margin in characters WORD pf_PrintImage ; positive or negative WORD pf_PrintAspect ; horizontal or verticalaE WORD pf_PrintShade ; b&w, half-tone, or color WORD pf_PrintThreshold ; darkness ctrl for b/w dumps ; print paper description WORD pf_PaperSize ; paper size WORD pf_PaperLength ; paper length in lines WORD pf_PaperType ; continuous or single sheet ; Serial device settings: These are six nibble-fields in three bytes ; (these look a little strange so the defaults will map out to zero) BYTE pf_SerRWBits b^ ; upper nibble = (8-number of read bits) ; lower nibble = (8-number of write bits) BYTE pf_SerStopBuf ; upper nibble = (number of stop bits - 1) ; lower nibble = (table value for BufSize) BYTE pf_SerParShk ; upper nibble = (value for Parity setting) ; lower nibble = (value for Handshake mode) BYTE pf_LaceWB ; if workbench is to be interlacedcˈR STRUCT pf_WorkName,FILENAME_SIZE ; temp file for printer STRUCT pf_padding,16 ; For further system expansion LABEL pf_SIZEOF ; === Preferences definitions =========================================== ; Workbench Interlace (use one bit) LACEWB EQU $01 ; PrinterPort PARALLEL_PRINTER EQU $00 SERIAL_PRINTER EQU $01 ; BaudRate BAUD_110 EQU $00 BAUD_300 EQU $01 BAUD_1200 EQU $02 BAUD_2400 EQU $03 BAUDd=$_4800 EQU $04 BAUD_9600 EQU $05 BAUD_19200 EQU $06 BAUD_MIDI EQU $07 ; PaperType FANFOLD EQU $00 SINGLE EQU $80 ; PrintPitch PICA EQU $000 ELITE EQU $400 FINE EQU $800 ; PrintQuality DRAFT EQU $000 LETTER EQU $100 ; PrintSpacing SIX_LPI EQU $000 EIGHT_LPI EQU $200 ; Print Image IMAGE_POSITIVE EQU $00 IMAGE_NEGATIVE EQUen $01 ; PrintAspect ASPECT_HORIZ EQU $00 ASPECT_VERT EQU $01 ; PrintShade SHADE_BW EQU $00 SHADE_GREYSCALE EQU $01 SHADE_COLOR EQU $02 ; PaperSize US_LETTER EQU $00 US_LEGAL EQU $10 N_TRACTOR EQU $20 W_TRACTOR EQU $30 CUSTOM EQU $40 ; PrinterType CUSTOM_NAME EQU $00 ALPHA_P_101 EQU $01 BROTHER_15XL EQU $02 CBM_MPS1000 EQU $03 DIAB_630 EQU $04 DIfsM%AB_ADV_D25 EQU $05 DIAB_C_150 EQU $06 EPSON EQU $07 EPSON_JX_80 EQU $08 OKIMATE_20 EQU $09 QUME_LP_20 EQU $0A ; new printer entries, 3 October 1985 HP_LASERJET EQU $0B HP_LASERJET_PLUS EQU $0C ; Serial Input Buffer Sizes SBUF_512 EQU $00 SBUF_1024 EQU $01 SBUF_2048 EQU $02 SBUF_4096 EQU $03 SBUF_8000 EQU $04 SBUF_16000 EQU $05 ; Serial Bit Masks SREAD_BITSgHfJ EQU $F0 ; pf_SerRWBits SWRITE_BITS EQU $0F SSTOP_BITS EQU $F0 ; pf_SerStopBuf SBUFSIZE_BITS EQU $0F SPARITY_BITS EQU $F0 ; pf_SerParShk SHSHAKE_BITS EQU $0F ; Serial Parity (high nibble, but here shifted right, as by C-macro SPARNUM) SPARITY_NONE EQU $00 SPARITY_EVEN EQU $01 SPARITY_ODD EQU $02 ; Serial Handshake Mode (low nibble, mask by SHSHAKE_BITS) SHSHAKE_XON EQU $00 SHSHAKE_RTS EQU RgOive to upper-left WORD sc_Flags ; see definitions below APTR sc_Title APTR sc_DefaultTitle ; Bar sizes for this Screen and all Window's in this Screen BYTE sc_BarHeight BYTE sc_BarVBorder BYTE sc_BarHBorder BYTE sc_MenuVBorder BYTE sc_MenuHBorder BYTE sc_WBorTop BYTE sc_WBorLeft BYTE sc_WBorRight BYTE sc_WBorBottom BYTE sc_KludgeFill00 ; This is strictly for word-alignment ; the display data structSures for this Screen APTR sc_Font ; this screen's default font STRUCT sc_ViewPort,vp_SIZEOF ; describing the Screen's display STRUCT sc_RastPort,rp_SIZEOF ; describing Screen rendering STRUCT sc_BitMap,bm_SIZEOF ; auxiliary graphexcess baggage STRUCT sc_LayerInfo,li_SIZEOF ; each screen gets a LayerInfo ; You supply a linked-list of Gadgets for your Screen. ; This list DOES NOT include system Gadgets. YTȾou get the standard ; system Screen Gadgets by default APTR sc_FirstGadget BYTE sc_DetailPen ; for bar/border/gadget rendering BYTE sc_BlockPen ; for bar/border/gadget rendering ; the following variable(s) are maintained by Intuition to support the ; DisplayBeep() color flashing technique WORD sc_SaveColor0 ; This layer is for the Screen and Menu bars APTR sc_BarLayer ; was "BarLayer" APTR sc_ExtData APTUMBR sc_UserData ; general-purpose pointer to User data LABEL sc_SIZEOF ; --- FLAGS SET BY INTUITION ------------------------------------------------- ; The SCREENTYPE bits are reserved for describing various Screen types ; available under Intuition. SCREENTYPE EQU $000F ; all the screens types available ; --- the definitions for the Screen Type ------------------------------------ WBENCHSCREEN EQU $0001 ; Ta Da| The Workbench CUSTOMSCREEN EVQU $000F ; for that special look SHOWTITLE EQU $0010 ; this gets set by a call to ShowTitle() BEEPING EQU $0020 ; set when Screen is beeping CUSTOMBITMAP EQU $0040 ; if you are supplying your own BitMap SCREENBEHIND EQU $0080 ; if you want your screen to open behind ; already open screens SCREENQUIET EQU $0100 ; if you do not want Intuition to render ; inW)to your screen (gadgets, title) STDSCREENHEIGHT EQU -1 ; supply in NewScreen.Height ; ======================================================================== ; === NewScreen ========================================================== ; ======================================================================== STRUCTURE NewScreen,0 WORD ns_LeftEdge ; initial Screen dimensions WORD ns_TopEdge ; initial Screen dimensions WORD ns_Width X ; initial Screen dimensions WORD ns_Height ; initial Screen dimensions WORD ns_Depth ; initial Screen dimensions BYTE ns_DetailPen ; default rendering pens (for Windows too) BYTE ns_BlockPen ; default rendering pens (for Windows too) WORD ns_ViewModes ; display "modes" for this Screen WORD ns_Type ; Intuition Screen Type specifier APTR ns_Font ; default fYH ont for Screen and Windows APTR ns_DefaultTitle ; Title when Window doesn't care APTR ns_Gadgets ; Your own initial Screen Gadgets ; if you are opening a CUSTOMSCREEN and already have a BitMap ; that you want used for your Screen, you set the flags CUSTOMBITMAP in ; the Types variable and you set this variable to point to your BitMap ; structure. The structure will be copied into your Screen structure, ; after which you may discard Z?your own BitMap if you want APTR ns_CustomBitMap LABEL ns_SIZEOF ; ======================================================================== ; === Preferences ======================================================== ; ======================================================================== ; these are the definitions for the printer configurations FILENAME_SIZE EQU 30 ; Filename size POINTERSIZE EQU (1+16+1)*2 ; Size of Pointer data buffer ;[5 These defines are for the default font size. These actually describe the ; height of the defaults fonts. The default font type is the topaz ; font, which is a fixed width font that can be used in either ; eighty-column or sixty-column mode. The Preferences structure reflects ; which is currently selected by the value found in the variable FontSize, ; which may have either of the values defined below. These values actually ; are used to select the height of the default font. By\w changing the ; height, the resolution of the font changes as well. TOPAZ_EIGHTY EQU 8 TOPAZ_SIXTY EQU 9 ; ------------------------------------------------------------------------ STRUCTURE Preferences,0 ; the default font height BYTE pf_FontHeight ; height for system default font ; constant describing what's hooked up to the port BYTE pf_PrinterPort ; printer port connection ; the baud rate of the port WORD pf_BaudRate GOWCLOSE EQU $0008 ; include close-box system-gadget? SIZEBRIGHT EQU $0010 ; size gadget uses right border SIZEBBOTTOM EQU $0020 ; size gadget uses bottom border ; --- refresh modes ---------------------------------------------------------- ; combinations of the REFRESHBITS select the refresh type REFRESHBITS EQU $00C0 SMART_REFRESH EQU $0000 SIMPLE_REFRESH EQU $0040 SUPER_BITMAP EQU $0080 OTHER_REFRESH EQU $00C0 BACKDROP EQU $0Hc100 ; this is an ever-popular BACKDROP window REPORTMOUSE EQU $0200 ; set this to hear about every mouse move GIMMEZEROZERO EQU $0400 ; make extra border stuff BORDERLESS EQU $0800 ; set this to get a Window sans border ACTIVATE EQU $1000 ; when Window opens, it's the Active one ; FLAGS SET BY INTUITION WINDOWACTIVE EQU $2000 ; this window is the active one INREQUEST EQU $4000 ; this window is in requestIz mode MENUSTATE EQU $8000 ; this Window is active with its Menus on ; --- Other User Flags ------------------------------------------------------- RMBTRAP EQU $00010000 ; Catch RMB events for your own NOCAREREFRESH EQU $00020000 ; not to be bothered with REFRESH ; --- Other Intuition Flags ---------------------------------------------- WINDOWREFRESH EQU $01000000 ; Window is currently refreshing WBENCHWINDOW EQU $02000000 ; WorkBench Window WINJHDOWTICKED EQU $04000000 ; only one timer tick at a time SUPER_UNUSED EQU $FCFC0000 ;bits of Flag unused yet ; --- see struct IntuiMessage for the IDCMP Flag definitions ----------------- ; ======================================================================== ; === NewWindow ========================================================== ; ======================================================================== STRUCTURE NewWindow,0 WORD nw_LeftEdge ; K]yinitial Window dimensions WORD nw_TopEdge ; initial Window dimensions WORD nw_Width ; initial Window dimensions WORD nw_Height ; initial Window dimensions BYTE nw_DetailPen ; for rendering the detail bits of the Window BYTE nw_BlockPen ; for rendering the block-fill bits LONG nw_IDCMPFlags ; initial IDCMP state LONG nw_Flags ; see the Flag definition under Window ; LIwYou supply a linked-list of Gadgets for your Window. ; This list DOES NOT include system Gadgets. You get the standard ; system Window Gadgets by setting flag-bits in the variable Flags (see ; the bit definitions under the Window structure definition) APTR nw_FirstGadget ; the CheckMark is a pointer to the imagery that will be used when ; rendering MenuItems of this Window that want to be checkmarked ; if this is equal to NULL, you'll get the defMyault imagery APTR nw_CheckMark APTR nw_Title ; title text for the Window ; the Screen pointer is used only if you've defined a CUSTOMSCREEN and ; want this Window to open in it. If so, you pass the address of the ; Custom Screen structure in this variable. Otherwise, this variable ; is ignored and doesn't have to be initialized. APTR nw_Screen ; SUPER_BITMAP Window? If so, put the address of your BitMap structure ; in thNݤis variable. If not, this variable is ignored and doesn't have ; to be initialized APTR nw_BitMap ; the values describe the minimum and maximum sizes of your Windows. ; these matter only if you've chosen the WINDOWSIZING Gadget option, ; which means that you want to let the User to change the size of ; this Window. You describe the minimum and maximum sizes that the ; Window can grow by setting these variables. You can initialize ; any one these Oto zero, which will mean that you want to duplicate ; the setting for that dimension (if MinWidth == 0, MinWidth will be ; set to the opening Width of the Window). ; You can change these settings later using SetWindowLimits(). ; If you haven't asked for a SIZING Gadget, you don't have to ; initialize any of these variables. WORD nw_MinWidth WORD nw_MinHeight WORD nw_MaxWidth WORD nw_MaxHeight ; the type variable describes the Screen in which yPʾXou want this Window to ; open. The type value can either be CUSTOMSCREEN or one of the ; system standard Screen Types such as WBENCHSCREEN. See the ; type definitions under the Screen structure WORD nw_Type LABEL nw_SIZE ; ======================================================================== ; === Screen ============================================================= ; ======================================================================== STRUCTURE ScreQ)!+3en,0 APTR sc_NextScreen ; linked list of screens APTR sc_FirstWindow ; linked list Screen's Windows WORD sc_LeftEdge ; parameters of the screen WORD sc_TopEdge ; parameters of the screen WORD sc_Width ; null-terminated Title text WORD sc_Height ; for Windows without ScreenTitle WORD sc_MouseY ; position relative to upper-left WORD sc_MouseX ; position relat<>by IDCMP ; the IDCMP Flags do not use this special bit, which is cleared when ; Intuition sends its special message to the Task, and set when Intuition ; gets its Message back from the Task. Therefore, I can check here to ; find out fast whether or not this Message is available for me to send LONELYMESSAGE EQU $80000000 ; --- IDCMP Codes -------------------------------------------------------- ; This group of codes is for the MENUVERIFY function MENUHOT EQU $=)0001 ; IntuiWants verification or MENUCANCEL MENUCANCEL EQU $0002 ; HOT Reply of this cancels Menu operation MENUWAITING EQU $0003 ; Intuition simply wants a ReplyMsg() ASAP ; These are internal tokens to represent state of verification attempts ; shown here as a clue. OKOK EQU MENUHOT ; guy didn't care OKABORT EQU $0004 ; window rendered question moot OKCANCEL EQU MENUCANCEL ; window sent canc>kel reply ; This group of codes is for the WBENCHMESSAGE messages WBENCHOPEN EQU $0001 WBENCHCLOSE EQU $0002 ; ======================================================================== ; === Window ============================================================= ; ======================================================================== STRUCTURE Window,0 APTR wd_NextWindow ; for the linked list of a Screen WORD wd_LeftEdge ; screen dimension?m4s WORD wd_TopEdge ; screen dimensions WORD wd_Width ; screen dimensions WORD wd_Height ; screen dimensions WORD wd_MouseY ; relative top top-left corner WORD wd_MouseX ; relative top top-left corner WORD wd_MinWidth ; minimum sizes WORD wd_MinHeight ; minimum sizes WORD wd_MaxWidth ; maximum sizes WORD wd_MaxHeight ; maximum sizes LON@TG wd_Flags ; see below for definitions APTR wd_MenuStrip ; first in a list of menu headers APTR wd_Title ; title text for the Window APTR wd_FirstRequest ; first in linked list of active Requesters APTR wd_DMRequest ; the double-menu Requester WORD wd_ReqCount ; number of Requesters blocking this Window APTR wd_WScreen ; this Window's Screen APTR wd_RPort ; thiAs Window's very own RastPort ; the border variables describe the window border. If you specify ; GIMMEZEROZERO when you open the window, then the upper-left of the ; ClipRect for this window will be upper-left of the BitMap (with correct ; offsets when in SuperBitMap mode; you MUST select GIMMEZEROZERO when ; using SuperBitMap). If you don't specify ZeroZero, then you save ; memory (no allocation of RastPort, Layer, ClipRect and associated ; Bitmaps), bBdut you also must offset all your writes by BorderTop, ; BorderLeft and do your own mini-clipping to prevent writing over the ; system gadgets BYTE wd_BorderLeft BYTE wd_BorderTop BYTE wd_BorderRight BYTE wd_BorderBottom APTR wd_BorderRPort ; You supply a linked-list of gadget that you want for your Window. ; This list DOES NOT include system Gadgets. You get the standard ; window system Gadgets by setting flag-bits in the variable Flags (see CnF ; the bit definitions below) APTR wd_FirstGadget ; these are for opening/closing the windows APTR wd_Parent APTR wd_Descendant ; sprite data information for your own Pointer ; set these AFTER you Open the Window by calling SetPointer() APTR wd_Pointer BYTE wd_PtrHeight BYTE wd_PtrWidth BYTE wd_XOffset BYTE wd_YOffset ; the IDCMP Flags and User's and Intuition's Message Ports ULONG wd_IDCMPFlags APTR wd_UserPort APTRDćޔ wd_WindowPort APTR wd_MessageKey BYTE wd_DetailPen BYTE wd_BlockPen ; the CheckMark is a pointer to the imagery that will be used when ; rendering MenuItems of this Window that want to be checkmarked ; if this is equal to NULL, you'll get the default imagery APTR wd_CheckMark ; if non-null, Screen title when Window is active APTR wd_ScreenTitle ; These variables have the mouse coordinates relative to the ; inner-Window of GIMMEZEROZEŇERO Windows. This is compared with the ; MouseX and MouseY variables, which contain the mouse coordinates ; relative to the upper-left corner of the Window, GIMMEZEROZERO ; notwithstanding WORD wd_GZZMouseX WORD wd_GZZMouseY ; these variables contain the width and height of the inner-Window of ; GIMMEZEROZERO Windows WORD wd_GZZWidth WORD wd_GZZHeight APTR wd_ExtData ; general-purpose pointer to User data extension APTR wd_UserData Fq APTR wd_WLayer ; stash of Window.RPort->Layer ; NEW 1.2: need to keep track of the font that OpenWindow opened, ; in case user SetFont's into RastPort APTR IFont LABEL wd_Size ; --- FLAGS REQUESTED (NOT DIRECTLY SET THOUGH) BY THE APPLIPROG ------------- WINDOWSIZING EQU $0001 ; include sizing system-gadget? WINDOWDRAG EQU $0002 ; include dragging system-gadget? WINDOWDEPTH EQU $0004 ; include depth arrangement gadget? WIND16>ig_TopEdge ; starting offset relative to something WORD ig_Width ; pixel size (though data is word-aligned) WORD ig_Height ; pixel size WORD ig_Depth ; pixel size APTR ig_ImageData ; pointer to the actual image bits ; the PlanePick and PlaneOnOff variables work much the same way as the ; equivalent GELS Bob variables. It's a space-saving ; mechanism for image data. Rather than defining t2>nhe image data ; for every plane of the RastPort, you need define data only for planes ; that are not entirely zero or one. As you define your Imagery, you will ; often find that most of the planes ARE just as color selectors. For ; instance, if you're designing a two-color Gadget to use colors two and ; three, and the Gadget will reside in a five-plane display, plane zero ; of your imagery would be all ones, bit plane one would have data that ; describe3(ys the imagery, and bit planes two through four would be ; all zeroes. Using these flags allows you to avoid wasting all that ; memory in this way: ; first, you specify which planes you want your data to appear ; in using the PlanePick variable. For each bit set in the variable, the ; next "plane" of your image data is blitted to the display. For each bit ; clear in this variable, the corresponding bit in PlaneOnOff is examined. ; If that bit is cle4Kar, a "plane" of zeroes will be used. If the bit is ; set, ones will go out instead. So, for our example: ; Gadget.PlanePick = 0x02; ; Gadget.PlaneOnOff = 0x01; ; Note that this also allows for generic Gadgets, like the System Gadgets, ; which will work in any number of bit planes ; Note also that if you want an Image that is only a filled rectangle, ; you can get this by setting PlanePick to zero (pick no planes of data) ; and set PlaneOnOff to5] describe the pen color of the rectangle. BYTE ig_PlanePick BYTE ig_PlaneOnOff ; if the NextImage variable is not NULL, Intuition presumes that ; it points to another Image structure with another Image to be ; rendered APTR ig_NextImage LABEL ig_SIZEOF ; ======================================================================== ; === IntuiMessage ======================================================= ; ============================================6=(*============================ STRUCTURE IntuiMessage,0 STRUCT im_ExecMessage,MN_SIZE ; the Class bits correspond directly with the IDCMP Flags, except for the ; special bit LONELYMESSAGE (defined below) LONG im_Class ; the Code field is for special values like MENU number WORD im_Code ; the Qualifier field is a copy of the current InputEvent's Qualifier WORD im_Qualifier ; IAddress contains particular addresses for Intuition functions, like7Yn ; the pointer to the Gadget or the Screen APTR im_IAddress ; when getting mouse movement reports, any event you get will have the ; the mouse coordinates in these variables. the coordinates are relative ; to the upper-left corner of your Window (GIMMEZEROZERO notwithstanding) WORD im_MouseX WORD im_MouseY ; the time values are copies of the current system clock time. Micros ; are in units of microseconds, Seconds in seconds. LONG im_Second8β s LONG im_Micros ; the IDCMPWindow variable will always have the address of the Window of ; this IDCMP APTR im_IDCMPWindow ; system-use variable APTR im_SpecialLink LABEL im_SIZEOF ; --- IDCMP Classes ------------------------------------------------------ SIZEVERIFY EQU $00000001 ; See the Programmer's Guide NEWSIZE EQU $00000002 ; See the Programmer's Guide REFRESHWINDOW EQU $00000004 ; See the Progr9sCzammer's Guide MOUSEBUTTONS EQU $00000008 ; See the Programmer's Guide MOUSEMOVE EQU $00000010 ; See the Programmer's Guide GADGETDOWN EQU $00000020 ; See the Programmer's Guide GADGETUP EQU $00000040 ; See the Programmer's Guide REQSET EQU $00000080 ; See the Programmer's Guide MENUPICK EQU $00000100 ; See the Programmer's Guide CLOSEWINDOW EQU $00000200 ; See the Program:mer's Guide RAWKEY EQU $00000400 ; See the Programmer's Guide REQVERIFY EQU $00000800 ; See the Programmer's Guide REQCLEAR EQU $00001000 ; See the Programmer's Guide MENUVERIFY EQU $00002000 ; See the Programmer's Guide NEWPREFS EQU $00004000 ; See the Programmer's Guide DISKINSERTED EQU $00008000 ; See the Programmer's Guide DISKREMOVED EQU $00010000 ; See the Programme;; r's Guide WBENCHMESSAGE EQU $00020000 ; See the Programmer's Guide ACTIVEWINDOW EQU $00040000 ; See the Programmer's Guide INACTIVEWINDOW EQU $00080000 ; See the Programmer's Guide DELTAMOVE EQU $00100000 ; See the Programmer's Guide VANILLAKEY EQU $00200000 ; See the Programmer's Guide INTUITICKS EQU $00400000 ; See the Programmer's Guide ; NOTEZ-BIEN: $80000000 is reserved for internal use &D pi_TopBorder ; Container borders LABEL pi_SIZEOF ; --- FLAG BITS -------------------------------------------------------------- AUTOKNOB EQU $0001 ; this flag sez: gimme that old auto-knob FREEHORIZ EQU $0002 ; if set, the knob can move horizontally FREEVERT EQU $0004 ; if set, the knob can move vertically PROPBORDERLESS EQU $0008 ; if set, no border will be rendered KNOBHIT EQU $0100 ; set when this Knob is hit '_WFKNOBHMIN EQU 6 ; minimum horizontal size of the knob KNOBVMIN EQU 4 ; minimum vertical size of the knob MAXBODY EQU $FFFF ; maximum body value MAXPOT EQU $FFFF ; maximum pot value ; ======================================================================== ; === StringInfo ========================================================= ; ======================================================================== ; this is the spec(Nial data required by the string Gadget ; typically, this data will be pointed to by the Gadget variable SpecialInfo STRUCTURE StringInfo,0 ; you initialize these variables, and then Intuition maintains them APTR si_Buffer ; the buffer containing the start and final string APTR si_UndoBuffer ; optional buffer for undoing current entry WORD si_BufferPos ; character position in Buffer WORD si_MaxChars ; max number of chars in Buffer (including NULL) )յZ'vWORD si_DispPos ; Buffer position of first displayed character ; Intuition initializes and maintains these variables for you WORD si_UndoPos ; character position in the undo buffer WORD si_NumChars ; number of characters currently in Buffer WORD si_DispCount ; number of whole characters visible in Container WORD si_CLeft ; topleft offset of the container WORD si_CTop ; topleft offset of the container APTR si_LayerPtr ; the Ras*֏-tPort containing this Gadget ; you can initialize this variable before the gadget is submitted to ; Intuition, and then examine it later to discover what integer ; the user has entered (if the user never plays with the gadget, ; the value will be unchanged from your initial setting) LONG si_LongInt ; the LONG return value of a LONGINT String Gadget ; If you want this Gadget to use your own Console keymapping, you ; set the ALTKEYMAP bit in the Acti+|OWvation flags of the Gadget, and then ; set this variable to point to your keymap. If you don't set the ; ALTKEYMAP, you'll get the standard ASCII keymapping. APTR si_AltKeyMap LABEL si_SIZEOF ; ======================================================================== ; === IntuiText ========================================================== ; ======================================================================== ; IntuiText is a series of strings that start wit," ; The NextSelect field represents the menu number of next selected ; item (when user has drag-selected several items) WORD mi_NextSelect LABEL mi_SIZEOF ; --- FLAGS SET BY THE APPLIPROG -------------------------------------------- CHECKIT EQU $0001 ; whether to check this item if selected ITEMTEXT  ۇ EQU $0002 ; set if textual, clear if graphical item COMMSEQ EQU $0004 ; set if there's an command sequence MENUTOGGLE EQU $0008 ; set to toggle the check of a menu item ITEMENABLED EQU $0010 ; set if this item is enabled ; these are the SPECIAL HIGHLIGHT FLAG state meanings HIGHFLAGS EQU $00C0 ; see definitions below for these bits HIGHIMAGE EQU $0000 ; use the user's "select image" HIGHCOMP EQU $0040   ; highlight by complementing the select box HIGHBOX EQU $0080 ; highlight by drawing a box around the image HIGHNONE EQU $00C0 ; don't highlight ; --- FLAGS SET BY BOTH APPLIPROG AND INTUITION ----------------------------- CHECKED EQU $0100 ; if CHECKIT, then set this when selected ; --- FLAGS SET BY INTUITION ------------------------------------------------ ISDRAWN EQU $1000 ; this item's subs are currently drawn HIGHITEM   EQU $2000 ; this item is currently highlighted MENUTOGGLED EQU $4000 ; this item was already toggled ; ======================================================================== ; === Requester ========================================================== ; ======================================================================== STRUCTURE Requester,0 ; the ClipRect and BitMap and used for rendering the requester APTR rq_OlderRequest WORD rq_LeftE dge ; dimensions of the entire box WORD rq_TopEdge ; dimensions of the entire box WORD rq_Width ; dimensions of the entire box WORD rq_Height ; dimensions of the entire box WORD rq_RelLeft ; get POINTREL Pointer relativity offsets WORD rq_RelTop ; get POINTREL Pointer relativity offsets APTR rq_ReqGadget ; pointer to the first of a list of gadgets APTR rq_ReqBorder n( ; the box's border APTR rq_ReqText ; the box's text WORD rq_Flags ; see definitions below UBYTE rq_BackFill ; pen number for back-plane fill before draws BYTE rq_KludgeFill00 ; This is strictly for word-alignment APTR rq_ReqLayer ; layer in which requester rendered STRUCT rq_ReqPad1,32 ; for backwards compatibility (reserved) ; If the BitMap plane pointers are non-zero, this tells the s ystem ; that the image comes pre-drawn (if the appliprog wants to define ; it's own box, in any shape or size it wants|); this is OK by ; Intuition as long as there's a good correspondence between the image ; and the specified Gadgets APTR rq_ImageBMap ; points to the BitMap of PREDRAWN imagery APTR rq_RWindow ; points back to requester's window STRUCT rq_ReqPad2,36 ; for backwards compatibility (reserved) LABEL rq_SI************************************************************* ;-- DR_NAME is a generic macro to get the name of the resource. This ;-- way if the name is ever changed you will pick up the change ;-- automatically. ;-- ;-- Normal usage would be: ;-- ;-- internalName: DISKNAME ;-- DISKNAME: MACRO DC.B 'disk.resource',0 DS.W 0 ENDM LIBINIT LIB_BASE LIBDEF DR_ALLOCUNIT LIBDEF DR_FREEUNIT  N: LIBDEF DR_GETUNIT LIBDEF DR_GIVEUNIT LIBDEF DR_GETUNITID DR_LASTCOMM EQU DR_GIVEUNIT ;******************************************************************** ; ; drive types ; ;******************************************************************** DRT_AMIGA EQU $00000000 DRT_37422D2S EQU $55555555 DRT_EMPTY EQU $FFFFFFFF ENDIF END ************************************** ; ; Resource specific commands ; ;*******8j********************************************************* MR_SERIALPORT EQU 0 MR_SERIALBITS EQU 1 MR_PARALLELPORT EQU 2 MR_PARALLELBITS EQU 3 NUMMRTYPES EQU 4 STRUCTURE MiscResource,LIB_SIZE STRUCT mr_AllocArray,4*NUMMRTYPES LABEL mr_Sizeof LIBINIT LIB_BASE LIBDEF MR_ALLOCMISCRESOURCE LIBDEF MR_FREEMISCRESOURCE MISCNAME MACRO DC.B 'misc.resource',0 ENDM C^ ENDIF END @ INCLUDE "exec/libraries.i" ENDIF ;**************************************************************** ; ; misc.i -- external declarations for misc system resources ; ; SOURCE CONTROL ; ------ ------- ; $Header: misc.i,v 27.3 85/07/12 16:29:36 neil Exp $ ; ; $Locker: $ ; ;**************************************************************** ;******************************************************************** ; ; Resource structures ; ;***********g All Rights Reserved ;****************************************************************************/ IFND EXEC_TYPES_I@ INCLUDE "exec/types.i" ENDIF IFND GRAPHICS_GFX_I@ include 'graphics/gfx.i' ENDIF IFND GRAPHICS_CLIP_I@ include 'graphics/clip.i' ENDIF IFND GRAPHICS_VIEW_I@ include 'graphics/view.i' ENDIF IFND GRAPHICS_RASTPORT_I@ include 'graphics/rastporA_ xt.i' ENDIF IFND GRAPHICS_LAYERS_I@ include 'graphics/layers.i' ENDIF IFND GRAPHICS_TEXT_I@ include 'graphics/text.i' ENDIF IFND EXEC_PORTS_I@ include 'exec/ports.i' ENDIF IFND DEVICES_TIMER_I@ include 'devices/timer.i' ENDIF IFND DEVICES_INPUTEVENT_I@ include 'devices/inputevent.i' ENDIF ; ==================================================------ ------ ------------------------------------- ; 3-1-85 -jimm ; ;***************************************************************************/ IFND EXEC_TYPES_I@ INCLUDE "exec/types.i" ENDIF IFND EXEC_LIBRARIES_I@ INCLUDE "exec/libraries.i" ENDIF IFND GRAPHICS_VIEW_I@ INCLUDE "graphics/view.i" ENDIF ; Be sure to protect yourself against someone modifying these data E#as ; you look at them. This is done by calling: ; ; lock = LockIBase(0), which returns a ULONG. When done call ; D0 D0 ; UnlockIBase(lock) where lock is what LockIBase() returned. ; A0 ; NOTE: these library functions are simply stubs now, but should be called ; to be compatible with future releases. ; ======================================================================== ; ; === IntuitionBase ====================================================== ; ; ==ng====================================================================== ; STRUCTURE IntuitionBase,0 STRUCT ib_LibNode,LIB_SIZE STRUCT ib_ViewLord,v_SIZEOF APTR ib_ActiveWindow APTR ib_ActiveScreen ; the FirstScreen variable points to the frontmost Screen. Screens are ; then maintained in a front to back order using Screen.NextScreen APTR ib_FirstScreen ; there is not size here because... ; ; ENDIF END se data }Qents ;; ------ ------ ------------------------------------- ;; 1-30-85 -=RJ=- created this file| ;; 6-12-85 Dale and Carl translated this from the c version ;; 6-13-85 =VoodooDrRj= added back the comments ;; 4-07-86 Barry. Bring this file up to date with the .h file ;* ;**************************************************************************** ;; CONFIDENTIAL and PROPRIETARY ;; Copyright (C) 1985, COMMODORE-AMIGA, INC. ;;aDFND EXEC_LIBRARIES_I@ INCLUDE "exec/libraries.i" ENDIF ;**************************************************************** ; ; misc.i -- external declarations for misc system resources ; ; SOURCE CONTROL ; ------ ------- ; $Header: misc.i,v 27.3 85/07/12 16:29:36 neil Exp $ ; ; $Locker: $ ; ;**************************************************************** ;******************************************************************** ; ; Resource structures ; ;*********** T0dat EQU $00A joy1dat EQU $00C clxdat EQU $00E adkconr EQU $010 pot0dat EQU $012 pot1dat EQU $014 potinp EQU $016 serdatr EQU $018 dskbytr EQU $01A intenar EQU $01C intreqr EQU $01E dskpt EQU $020 dsklen EQU $024 dskdat EQU $026 refptr EQU $028 vposw EQU $02A vhposw EQU $02C copcon EQU $02E serdat EQU $030 serper EQU $032 potgo EQU $034 joytes IIt EQU $036 strequ EQU $038 strvbl EQU $03A strhor EQU $03C strlong EQU $03E bltcon0 EQU $040 bltcon1 EQU $042 bltafwm EQU $044 bltalwm EQU $046 bltcpt EQU $048 bltbpt EQU $04C bltapt EQU $050 bltdpt EQU $054 bltsize EQU $058 bltcmod EQU $060 bltbmod EQU $062 bltamod EQU $064 bltdmod EQU $066 bltcdat EQU $070 bltbdat EQU $072 bltadat EQU $074 dsksync 2_ EQU $07E cop1lc EQU $080 cop2lc EQU $084 copjmp1 EQU $088 copjmp2 EQU $08A copins EQU $08C diwstrt EQU $08E diwstop EQU $090 ddfstrt EQU $092 ddfstop EQU $094 dmacon EQU $096 clxcon EQU $098 intena EQU $09A intreq EQU $09C adkcon EQU $09E aud EQU $0A0 aud0 EQU $0A0 aud1 EQU $0B0 aud2 EQU $0C0 aud3 EQU $0D0 ; STRUCTURE AudChannel,0 ac_ptr  G EQU $00 ; ptr to start of waveform data ac_len EQU $04 ; length of waveform in words ac_per EQU $06 ; sample period ac_vol EQU $08 ; volume ac_dat EQU $0A ; sample pair ac_SIZEOF EQU $10 bplpt EQU $0E0 bplcon0 EQU $100 bplcon1 EQU $102 bplcon2 EQU $104 bpl1mod EQU $108 bpl2mod EQU $10A bpldat EQU $110 sprpt EQU $120 spr EQU $140 ; STRUCTURE SpriteDef sd_pos EQU qQ$00 sd_ctl EQU $02 sd_dataa EQU $04 sd_datab EQU $08 color EQU $180 ENDIF END ns EQU $08C diwstrt EQU $08E diwstop EQU $090 ddfstrt EQU $092 ddfstop EQU $094 dmacon EQU $096 clxcon EQU $098 intena EQU $09A intreq EQU $09C adkcon EQU $09E aud EQU $0A0 aud0 EQU $0A0 aud1 EQU $0B0 aud2 EQU $0C0 aud3 EQU $0D0 ; STRUCTURE AudChannel,0 ac_ptr 1y: APTR DR_CURRENT ; pointer to current unit structure UBYTE DR_FLAGS UBYTE DR_pad APTR DR_SYSLIB APTR DR_CIARESOURCE STRUCT DR_UNITID,4*4 STRUCT DR_WAITING,LH_SIZE STRUCT DR_DISCBLOCK,IS_SIZE STRUCT DR_DISCSYNC,IS_SIZE STRUCT DR_INDEX,IS_SIZE LABEL DR_SIZE ; BITDEF DR,ALLOC0,0 ; unit zero is allocated DRB_ALLOC0 = 0 ; unit zero is allocated DRF_ALLOC0 = 1<<0 ; +b)Uunit zero is allocated ; BITDEF DR,ALLOC1,1 ; unit one is allocated DRB_ALLOC1 = 1 ; unit one is allocated DRF_ALLOC1 = 1<<1 ; unit one is allocated ; BITDEF DR,ALLOC2,2 ; unit two is allocated DRB_ALLOC2 = 2 ; unit two is allocated DRF_ALLOC2 = 1<<2 ; unit two is allocated ; BITDEF DR,ALLOC3,3 ; unit three is allocated DRB_ALLOC3 = 3 ; unit three is allocated DRF_ALLOC3 = 1<<3 ; unit three is allocated ; BITDEF DR,AlCTIVE,7 ; is the disc currently busy? DRB_ACTIVE = 7 ; is the disc currently busy? DRF_ACTIVE = 1<<7 ; is the disc currently busy? ;******************************************************************** ; ; Hardware Magic ; ;******************************************************************** DSKDMAOFF EQU $4000 ; idle command for dsklen register ;******************************************************************** ; ; Resource specific commands ; ;*******;chanical, magnetic, optical, chemical, ; ; manual or otherwise, without the prior written permission of ; ; Commodore Amiga Incorporated, 3350 Scott Blvd, Bld #7, ; ; Santa Clara, CA 95051 ; ; ; ;**************************************************************** ;**************************************************************** ; ; discresource.i -- external declarations forZ disc resources ; ; SOURCE CONTROL ; ------ ------- ; $Header: disk.i,v 27.3 85/07/12 23:17:43 neil Exp $ ; ; $Locker: $ ; ;**************************************************************** IFND EXEC_TYPES_I@ INCLUDE "exec/types.i" ENDIF IFND EXEC_LISTS_I@ INCLUDE "exec/lists.i" ENDIF IFND EXEC_PORTS_I@ INCLUDE "exec/ports.i" ENDIF IFND EXEC_INTERRUPTS_I@ INCLUDE "exec/interrupts.i g߼" ENDIF IFND EXEC_LIBRARIES_I@ INCLUDE "exec/libraries.i" ENDIF ;******************************************************************** ; ; Resource structures ; ;******************************************************************** STRUCTURE DISCRESOURCEUNIT,MN_SIZE STRUCT DRU_DISCBLOCK,IS_SIZE STRUCT DRU_DISCSYNC,IS_SIZE STRUCT DRU_INDEX,IS_SIZE LABEL DRU_SIZE STRUCTURE DISCRESOURCE,LIB_SIZE fFILL_OR equ $8 FILL_XOR equ $10 FILL_CARRYIN equ $4 ONEDOT equ $2 OVFLAG equ $20 SIGNFLAG equ $40 BLITREVERSE equ $2 SUD equ $10 SUL equ $8 AUL equ $4 OCTANT8 equ 24 OCTANT7 equ 4 OCTANT6 equ 12 OCTANT5 equ 28 OCTANT4 equ 20 OCTANT3 equ 8 OCTANT2 equ 0 OCTANT1 equ 16 ENDIF END ABC equ $8 NABNC equ $4 NANBC equ $2 NANBNC equ $1 B%] EQU $0D00 ciacra EQU $0E00 ciacrb EQU $0F00 ; interrupt control register bit numbers CIAICRB_TA EQU 0 CIAICRB_TB EQU 1 CIAICRB_ALRM EQU 2 CIAICRB_SP EQU 3 CIAICRB_FLG EQU 4 CIAICRB_IR EQU 7 CIAICRB_SETCLR EQU 7 ; control register A bit numbers CIACRAB_START EQU 0 CIACRAB_PBON EQU 1 CIACRAB_OUTMODE EQU 2 CIACRAB_RUNMODE EQU 3 CIACRAB_LOAD EQU 4 CIACRAB_INMODE EQU 5 CDFiIACRAB_SPMODE EQU 6 CIACRAB_TODIN EQU 7 ; control register B bit numbers CIACRBB_START EQU 0 CIACRBB_PBON EQU 1 CIACRBB_OUTMODE EQU 2 CIACRBB_RUNMODE EQU 3 CIACRBB_LOAD EQU 4 CIACRBB_INMODE0 EQU 5 CIACRBB_INMODE1 EQU 6 CIACRBB_ALARM EQU 7 ; interrupt control register bit masks CIAICRF_TA EQU (1<<0) CIAICRF_TB EQU (1<<1) CIAICRF_ALRM EQU (1<<2) CIAICRF_SP EQU (1<<3) CIAICRF_FLG EQU (1<<4))uJ CIAICRF_IR EQU (1<<7) CIAICRF_SETCLR EQU (1<<7) ; control register A bit masks CIACRAF_START EQU (1<<0) CIACRAF_PBON EQU (1<<1) CIACRAF_OUTMODE EQU (1<<2) CIACRAF_RUNMODE EQU (1<<3) CIACRAF_LOAD EQU (1<<4) CIACRAF_INMODE EQU (1<<5) CIACRAF_SPMODE EQU (1<<6) CIACRAF_TODIN EQU (1<<7) ; control register B bit masks CIACRBF_START EQU (1<<0) CIACRBF_PBON EQU (1<<1) CIACRBF_OUTMODE EQU (1<<2) CIACRBF_RUNMODE EQ_U (1<<3) CIACRBF_LOAD EQU (1<<4) CIACRBF_INMODE0 EQU (1<<5) CIACRBF_INMODE1 EQU (1<<6) CIACRBF_ALARM EQU (1<<7) ; control register B INMODE masks CIACRBF_IN_PHI2 EQU 0 CIACRBF_IN_CNT EQU (CIACRBF_INMODE0) CIACRBF_IN_TA EQU (CIACRBF_INMODE1) CIACRBF_IN_CNT_TA EQU (CIACRBF_INMODE0|CIACRBF_INMODE1) ; ; Port definitions -- what each bit in a cia peripheral register is tied to ; ; ciaa port A (0xbfe001) CIAB_GAMEPORT1 EQU (7) ; gameport d)1, pin 6 (fire button*) CIAB_GAMEPORT0 EQU (6) ; gameport 0, pin 6 (fire button*) CIAB_DSKRDY EQU (5) ; disk ready* CIAB_DSKTRACK0 EQU (4) ; disk on track 00* CIAB_DSKPROT EQU (3) ; disk write protect* CIAB_DSKCHANGE EQU (2) ; disk change* CIAB_LED EQU (1) ; led light control (0==>bright) CIAB_OVERLAY EQU (0) ; memory overlay bit ; ciaa port B (0xbfe101) -- parallel port ; ciab port A (0xbfd000) -- serial and printer conܫZ~trol CIAB_COMDTR EQU (7) ; serial Data Terminal Ready* CIAB_COMRTS EQU (6) ; serial Request to Send* CIAB_COMCD EQU (5) ; serial Carrier Detect* CIAB_COMCTS EQU (4) ; serial Clear to Send* CIAB_COMDSR EQU (3) ; serial Data Set Ready* CIAB_PRTRSEL EQU (2) ; printer SELECT CIAB_PRTRPOUT EQU (1) ; printer paper out CIAB_PRTRBUSY EQU (0) ; printer busy ; ciab port B (0xbfd100) -- disk control CIAB_DSKMOTOR E MDrQU (7) ; disk motorr* CIAB_DSKSEL3 EQU (6) ; disk select unit 3* CIAB_DSKSEL2 EQU (5) ; disk select unit 2* CIAB_DSKSEL1 EQU (4) ; disk select unit 1* CIAB_DSKSEL0 EQU (3) ; disk select unit 0* CIAB_DSKSIDE EQU (2) ; disk side select* CIAB_DSKDIREC EQU (1) ; disk direction of seek* CIAB_DSKSTEP EQU (0) ; disk step heads* ; ciaa port A (0xbfe001) CIAF_GAMEPORT1 EQU (1<<7) CIAF_GAMEPORT0 EQU (1<<6) CIAF_DSKRDY .k EQU (1<<5) CIAF_DSKTRACK0 EQU (1<<4) CIAF_DSKPROT EQU (1<<3) CIAF_DSKCHANGE EQU (1<<2) CIAF_LED EQU (1<<1) CIAF_OVERLAY EQU (1<<0) ; ciaa port B (0xbfe101) -- parallel port ; ciab port A (0xbfd000) -- serial and printer control CIAF_COMDTR EQU (1<<7) CIAF_COMRTS EQU (1<<6) CIAF_COMCD EQU (1<<5) CIAF_COMCTS EQU (1<<4) CIAF_COMDSR EQU (1<<3) CIAF_PRTRSEL EQU (1<<2) CIAF_PRTRPOUT EQU (1<< W"1) CIAF_PRTRBUSY EQU (1<<0) ; ciab port B (0xbfd100) -- disk control CIAF_DSKMOTOR EQU (1<<7) CIAF_DSKSEL3 EQU (1<<6) CIAF_DSKSEL2 EQU (1<<5) CIAF_DSKSEL1 EQU (1<<4) CIAF_DSKSEL0 EQU (1<<3) CIAF_DSKSIDE EQU (1<<2) CIAF_DSKDIREC EQU (1<<1) CIAF_DSKSTEP EQU (1<<0) ENDIF END B_DSKSTEP EQU (0) ; disk step heads* ; ciaa port A (0xbfe001) CIAF_GAMEPORT1 EQU (1<<7) CIAF_GAMEPORT0 EQU (1<<6) CIAF_DSKRDYyte) -- $bfd000 ; ; do this to get the definitions: ; XREF _ciaa ; XREF _ciab ; ; cia register offsets ciapra EQU $0000 ciaprb EQU $0100 ciaddra EQU $0200 ciaddrb EQU $0300 ciatalo EQU $0400 ciatahi EQU $0500 ciatblo EQU $0600 ciatbhi EQU $0700 ciatodlow EQU $0800 ciatodmid EQU $0900 ciatodhi EQU $0A00 ciasdr EQU $0C00 ciaicr !********************************** IFND EXEC_PORTS_I@ INCLUDE "exec/ports.i" ENDIF IFND DEVICES_KEYMAP_I@ INCLUDE "devices/keymap.i" ENDIF PMB_ASM EQU M_LNM+1 ; internal storage bit for AS flag PMB_AWM EQU PMB_ASM+1 ; internal storage bit for AW flag MAXTABS EQU 80 STRUCTURE ConUnit,MP_SIZE ;------ read only variables APTR cu_Window ; intuition window bound to this unit WORD cu_XCP ; character p uAosition WORD cu_YCP WORD cu_XMax ; max character position WORD cu_YMax WORD cu_XRSize ; character raster size WORD cu_YRSize WORD cu_XROrigin ; raster origin WORD cu_YROrigin WORD cu_XRExtant ; raster maxima WORD cu_YRExtant WORD cu_XMinShrink ; smallest area intact from resize process WORD cu_YMinShrink WORD cu_XCCP ; cursor position WORD cu_YCCP ;------ read/write v!=Npariables (writes must must be protected) ;------ storage for AskKeyMap and SETKeyMap STRUCT cu_KeyMapStruct,km_SIZEOF ; ---- tab stops STRUCT cu_TabStops,2*MAXTABS ; 0 at start, 0xffff at end of list ;------ console rastport attributes BYTE cu_Mask ; these must appear as in RastPort BYTE cu_FgPen ; | BYTE cu_BgPen ; | BYTE cu_AOLPen ; + BYTE cu_DrawMode ; these must appear as in R"~^astPort BYTE cu_AreaPtSz ; + APTR cu_AreaPtrn ; cursor area pattern STRUCT cu_Minterms,8 ; console minterms APTR cu_Font ; UBYTE cu_AlgoStyle ; these must appear as in RastPort UBYTE cu_TxFlags ; + UWORD cu_TxHeight ; these must appear as in RastPort UWORD cu_TxWidth ; | UWORD cu_TxBaseline ; | UWORD cu_TxSpacing ; + ;------ console MODES and RAW EVEOJUuNTS switches STRUCT cu_Modes,<(PMB_AWM+7)/8> ; one bit per mode STRUCT cu_RawEvents,<(IECLASS_MAX+7)/8> ;------ ensure the ConsUnit structure is even ODDEVEN EQU ((PMB_AWM+7)/8)+((IECLASS_MAX+7)/8) IFNE ODDEVEN-((ODDEVEN/2)*2) UBYTE cu_pad ENDIF LABEL ConUnit_SIZEOF ENDIF END FgPen ; | BYTE cu_BgPen ; | BYTE cu_AOLPen ; + BYTE cu_DrawMode ; these must appear as in Rm~C0B_DEST equ 8 BC0B_SRCC equ 9 BC0B_SRCB equ 10 BC0B_SRCA equ 11 BC0F_DEST equ $100 BC0F_SRCC equ $200 BC0F_SRCB equ $400 BC0F_SRCA equ $800 BC1F_DESC equ 2 DEST equ $100 SRCC equ $200 SRCB equ $400 SRCA equ $800 ASHIFTSHIFT equ 12 /; bits to right align ashift value ;/ BSHIFTSHIFT equ 12 /; bits to right align bshift value ;/ ; definations for blitter control register 1 ;/ LINEMODE equ $1 %Yn EQU 12 ; use mfm style precompensation ADKB_UARTBRK EQU 11 ; force uart output to zero ADKB_WORDSYNC EQU 10 ; enable DSKSYNC register matching ADKB_MSBSYNC EQU 9 ; (Apple GCR Only) sync on MSB for reading ADKB_FAST EQU 8 ; 1 -> 2 us/bit (mfm), 2 -> 4 us/bit (gcr) ADKB_USE3PN EQU 7 ; use aud chan 3 to modulate period of ?? ADKB_USE2P3 EQU 6 ; use aud chan 2 to modulate period of 3 ADKB_USE1P2 EQU 5 ; use aud chan 1 to modulate period of 2 ADK& %B_USE0P1 EQU 4 ; use aud chan 0 to modulate period of 1 ADKB_USE3VN EQU 3 ; use aud chan 3 to modulate volume of ?? ADKB_USE2V3 EQU 2 ; use aud chan 2 to modulate volume of 3 ADKB_USE1V2 EQU 1 ; use aud chan 1 to modulate volume of 2 ADKB_USE0V1 EQU 0 ; use aud chan 0 to modulate volume of 1 ADKF_SETCLR EQU (1<<15) ADKF_PRECOMP1 EQU (1<<14) ADKF_PRECOMP0 EQU (1<<13) ADKF_MFMPREC EQU (1<<12) ADKF_UARTBRK EQU (1<<11) ADKF_WORDSYNC EQU '"N (1<<10) ADKF_MSBSYNC EQU (1<<9) ADKF_FAST EQU (1<<8) ADKF_USE3PN EQU (1<<7) ADKF_USE2P3 EQU (1<<6) ADKF_USE1P2 EQU (1<<5) ADKF_USE0P1 EQU (1<<4) ADKF_USE3VN EQU (1<<3) ADKF_USE2V3 EQU (1<<2) ADKF_USE1V2 EQU (1<<1) ADKF_USE0V1 EQU (1<<0) ADKF_PRE000NS EQU 0 ; 000 ns of precomp ADKF_PRE140NS EQU (ADKF_PRECOMP0) ; 140 ns of precomp ADKF_PRE280NS EQU (ADKF_PRECOMP1) ; 280 ns of precomp ADXKF_PRE560NS EQU (ADKF_PRECOMP0|ADKF_PRECOMP1) ; 560 ns of precomp ENDIF END use aud chan 3 to modulate volume of ?? ADKB_USE2V3 EQU 2 ; use aud chan 2 to modulate volume of 3 ADKB_USE1V2 EQU 1 ; use aud chan 1 to modulate volume of 2 ADKB_USE0V1 EQU 0 ; use aud chan 0 to modulate volume of 1 ADKF_SETCLR EQU (1<<15) ADKF_PRECOMP1 EQU (1<<14) ADKF_PRECOMP0 EQU (1<<13) ADKF_MFMPREC EQU (1<<12) ADKF_UARTBRK EQU (1<<11) ADKF_WORDSYNC EQU #used by blit queuer CLEANMEn equ 6 CLEANME equ 1<v.; BIT ACTIVE FUNCTION ; 0 low busy ; 1 low paper out ; 2 low select ; 3 low Data Set Ready ; 4 low Clear To Send ; 5 low Carrier Detect ; 6 low Ready To Send ; 7 low Data Terminal Ready ; 8 high read overrun ; 9 high break sent ; )q 10 high break received ; 11 high transmit x-OFF'ed ; 12 high receive x-OFF'ed ; 13-15 reserved ; LABEL IOEXTSER_SIZE ;******************************************************************************** ;-------------------------------------------------------------------- ; ; Driver error definitions ; ;-------------------------------------------------------------------- SerErr_De @ ; raster port APTR io_ColorMap ; color map ULONG io_Modes ; graphics viewport modes UWORD io_SrcX ; source x origin UWORD io_SrcY ; source y origin UWORD io_SrcWidth ; source x width UWORD io_SrcHeight ; source x height LONG io_DestCols ; destination x width LONG io_DestRows ; destination y height UWORD io_Special ; option flags LABEL iodrpr_SIZEOF SPECIAL_MILCOLS EQU $01 Aו ; DestCols specified in 1/1000" SPECIAL_MILROWS EQU $02 ; DestRows specified in 1/1000" SPECIAL_FULLCOLS EQU $04 ; make DestCols maximum possible SPECIAL_FULLROWS EQU $08 ; make DestRows maximum possible SPECIAL_FRACCOLS EQU $10 ; DestCols is fraction of FULLCOLS SPECIAL_FRACROWS EQU $20 ; DestRows is fraction of FULLROWS SPECIAL_ASPECT EQU $80 ; ensure correct aspect ratio SPECIAL_DENSITYMASK EQU $F00 ; masks out density bits SBmPECIAL_DENSITY1 EQU $100 ; lowest res SPECIAL_DENSITY2 EQU $200 ; next res SPECIAL_DENSITY3 EQU $300 ; next res SPECIAL_DENSITY4 EQU $400 ; highest res SPECIAL_CENTER EQU $40 ; center image PDERR_CANCEL EQU 1 ; user canceled a printer timeout PDERR_NOTGRAPHICS EQU 2 ; printer cannot output graphics PDERR_INVERTHAM EQU 3 ; cannot invert hold & modify print PDERR_BADDIMENSION EQU 4 ; print dimensions il0"legal PDERR_DIMENSIONOVFLOW EQU 5 ; print dimensions too large PDERR_INTERNALMEMORY EQU 6 ; no memory for internal variables PDERR_BUFFERMEMORY EQU 7 ; no memory for print buffer ENDIF END Rows maximum possible SPECIAL_FRACCOLS EQU $10 ; DestCols is fraction of FULLCOLS SPECIAL_FRACROWS EQU $20 ; DestRows is fraction of FULLROWS SPECIAL_ASPECT EQU $80 ; ensure correct aspect ratio SPECIAL_DENSITYMASK EQU $F00 ; masks out density bits SDXi,v 33.1 86/04/29 14:19:10 barry Exp $ ; ; $Locker: $ ; ;**************************************************************** IFND DEVICES_SERIAL_I@ DEVICES_SERIAL_I@ = 1 IFND EXEC_STRINGS_I@ include 'exec/strings.i' ENDIF IFND EXEC_IO_I@ include 'exec/io.i' ENDIF ;-------------------------------------------------------------------- ; ; Useful constants ; ;-------------------------------------------------------------------- ; SER_CTL EQU EZT $1113 ; default char's for xON,Xoff. SER_DBAUD EQU 9600 ; default baud ; ;-------------------------------------------------------------------- ; ; Driver Specific Commands SDCMD_QUERY EQU CMD_NONSTD SDCMD_BREAK EQU CMD_NONSTD+1 SDCMD_SETPARAMS EQU CMD_NONSTD+2 SER_DEVFINISH EQU CMD_NONSTD+2 ; number of device comands ;-------------------------------------------------------------------- ;-- SERIALNAME is a generic macro to get the Faname of the driver. This ;-- way if the name is ever changed you will pick up the change ;-- automatically. ;-- ;-- Normal usage would be: ;-- ;-- internalName: SERIALNAME ;-- SERIALNAME: MACRO STRING 'serial.device' ENDM ; BITDEF SER,XDISABLED,7 ; SERFLAGS xOn-xOff feature disabled bit SERB_XDISABLED = 7 ; SERFLAGS xOn-xOff feature disabled bit SERF_XDISABLED = 1<<7 ; SERFLAGS xOn-xOff feature disabled bit ; BITDEF 41ESER,EOFMODE,6 ; " EOF mode enabled bit SERB_EOFMODE = 6 ; " EOF mode enabled bit SERF_EOFMODE = 1<<6 ; " EOF mode enabled bit ; BITDEF SER,SHARED,5 ; " non-exclusive access SERB_SHARED = 5 ; " non-exclusive access SERF_SHARED = 1<<5 ; " non-exclusive access ; BITDEF SER,RAD_BOOGIE,4 ; " high-speed mode active SERB_RAD_BOOGIE = 4 ; " high-speed mode active SERF_RAD_BOOGIE = 1<<4 ; H/lExp $ ; ; $Locker: $ ; ;**************************************************************** IFND DEVICES_TIMER_I@ DEVICES_TIMER_I@ = 1 IFND EXEC_IO_I@ INCLUDE "exec/io.i" ENDIF ; unit definitions UNIT_MICROHZ EQU 0 UNIT_VBLANK EQU 1 TIMERNAME MACRO DC.B 'timer.device',0 DS.W 0 ENDM STRUCTURE TIMEVAL,0 ULONG TV_SECS ULONG TV_MICRO LABEL  TV_SIZE STRUCTURE TIMEREQUEST,IO_SIZE STRUCT IOTV_TIME,TV_SIZE LABEL IOTV_SIZE ; IO_COMMAND to use for adding a timer DEVINIT DEVCMD TR_ADDREQUEST DEVCMD TR_GETSYSTIME DEVCMD TR_SETSYSTIME ENDIF END ********************************************************** ;**************************************************************** ; ; SOURCE CONTROL ; ------ ------- ; $Header: timer.i,v 27.1 85/06/24 13:32:40 neil CK)thout the prior written permission of ; ; Commodore-Amiga Incorporated, 983 University Ave. Building #D,* ; Los Gatos, California, 95030 ; ; ; ;**************************************************************** ;**************************************************************** ; ; serial.i -- external declarations for Serial Port Driver ; ; SOURCE CONTROL ; ------ ------- ; $Header: serial.Kmder: printer.i,v 1.2 85/12/06 12:30:08 kodiak Exp $ ; ; $Locker: $ ; ;******************************************************************* IFND EXEC_NODES_I@ INCLUDE "exec/nodes.i" ENDIF IFND EXEC_LISTS_I@ INCLUDE "exec/lists.i" ENDIF IFND EXEC_PORTS_I@ INCLUDE "exec/ports.i" ENDIF IFND EXEC_IO_I@ INCLUDE "exec/io.i" ENDIF DEVINIT DEVCMD PRD_RAWWRITE DEVCMD PRD_PRTCOMMAND DEVCMD PRD_DUMPRPORT ;*****; printer definLtitions aRIS EQU 0 ; ESCc reset ISO aRIN EQU 1 ; ESC#1 initialize +++ aIND EQU 2 ; ESCD lf ISO aNEL EQU 3 ; ESCE return,lf ISO aRI EQU 4 ; ESCM reverse lf ISO aSGR0 EQU 5 ; ESC[0m normal char set ISO aSGR3 EQU 6 ; ESC[3m italics on ISO aSGR23 EQU 7 ; ESC[23m italics off ISO aSGRMc+4 EQU 8 ; ESC[4m underline on ISO aSGR24 EQU 9 ; ESC[24m underline off ISO aSGR1 EQU 10 ; ESC[1m boldface on ISO aSGR22 EQU 11 ; ESC[22m boldface off ISO aSFC EQU 12 ; SGR30-39 set foreground color ISO aSBC EQU 13 ; SGR40-49 set background color ISO aSHORP0 EQU 14 ; ESC[0w normal pitch DEC aSHORP2 EQU 15 ; ESC[2w elite on DEC aSHORP1 EQU 16 ; ESC[1w N elite off DEC aSHORP4 EQU 17 ; ESC[4w condensed fine on DEC aSHORP3 EQU 18 ; ESC[3w condensed off DEC aSHORP6 EQU 19 ; ESC[6w enlarged on DEC aSHORP5 EQU 20 ; ESC[5w enlarged off DEC aDEN6 EQU 21 ; ESC[6"z shadow print on DEC (sort of) aDEN5 EQU 22 ; ESC[5"z shadow print off DEC aDEN4 EQU 23 ; ESC[4"z doublestrike on DEC aDEN3 EQU 24 ; ESC[3"z doublestrikeOlhh off DEC aDEN2 EQU 25 ; ESC[2"z NLQ on DEC aDEN1 EQU 26 ; ESC[1"z NLQ off DEC aSUS2 EQU 27 ; ESC[2v superscript on +++ aSUS1 EQU 28 ; ESC[1v superscript off +++ aSUS4 EQU 29 ; ESC[4v subscript on +++ aSUS3 EQU 30 ; ESC[3v subscript off +++ aSUS0 EQU 31 ; ESC[0v normalize the line +++ aPLU EQU 32 ; ESCL partial line up ISO aPLD Ph EQU 33 ; ESCK partial line down ISO aFNT0 EQU 34 ; ESC(B US char set DEC aFNT1 EQU 35 ; ESC(R French char set DEC aFNT2 EQU 36 ; ESC(K German char set DEC aFNT3 EQU 37 ; ESC(A UK char set DEC aFNT4 EQU 38 ; ESC(E Danish I char set DEC aFNT5 EQU 39 ; ESC(H Sweden char set DEC aFNT6 EQU 40 ; ESC(Y Italian char set DEC aFNT7 EQU 41 ; ESC(Z SpQ"x+anish char set DEC aFNT8 EQU 42 ; ESC(J Japanese char set +++ aFNT9 EQU 43 ; ESC(6 Norweign char set DEC aFNT10 EQU 44 ; ESC(C Danish II char set +++ aPROP2 EQU 45 ; ESC[2p proportional on +++ aPROP1 EQU 46 ; ESC[1p proportional off +++ aPROP0 EQU 47 ; ESC[0p proportional clear +++ aTSS EQU 48 ; ESC[n E set proportional offset ISO aJFY5 EQU 49 ; E R"TSC[5 F auto left justify ISO aJFY7 EQU 50 ; ESC[7 F auto right justiy ISO aJFY6 EQU 51 ; ESC[6 F auto full justify ISO aJFY0 EQU 52 ; ESC[0 F auto justify off ISO aJFY2 EQU 53 ; ESC[2 F word space(auto center) ISO (special) aJFY3 EQU 54 ; ESC[3 F letter space (justify) ISO (special) aVERP0 EQU 55 ; ESC[0z 1/8" line spacing +++ aVERP1 EQU 56 ; ESC[1z 1/6" line spacing +++ aSLPP EQU 57 ; ESC[ S>=dnt set form length n DEC aPERF EQU 58 ; ESC[nq perf skip n (n>0) +++ aPERF0 EQU 59 ; ESC[0q perf skip off +++ aLMS EQU 60 ; ESC#9 Left margin set +++ aRMS EQU 61 ; ESC#0 Right margin set +++ aTMS EQU 62 ; ESC#8 Top margin set +++ aBMS EQU 63 ; ESC#2 Bottom marg set +++ aSTBM EQU 64 ; ESC[Pn1;Pn2r T&B margins DEC aSLRM EQU 65 ; ESC Tw_6[Pn1;Pn2s L&R margin DEC aCAM EQU 66 ; ESC#3 Clear margins +++ aHTS EQU 67 ; ESCH Set horiz tab ISO aVTS EQU 68 ; ESCJ Set vertical tabs ISO aTBC0 EQU 69 ; ESC[0g Clr horiz tab ISO aTBC3 EQU 70 ; ESC[3g Clear all h tab ISO aTBC1 EQU 71 ; ESC[1g Clr vertical tabs ISO aTBC4 EQU 72 ; ESC[4g Clr all v tabs ISO aTBCALL EQU 73 ; ESC#4 Clr all h & v tabs ?çL +++ aTBSALL EQU 74 ; ESC#5 Set default tabs +++ aEXTEND EQU 75 ; ESC[Pn"x extended commands +++ STRUCTURE IOPrtCmdReq,IO_SIZE UWORD io_PrtCommand ; printer command UBYTE io_Parm0 ; first command parameter UBYTE io_Parm1 ; second command parameter UBYTE io_Parm2 ; third command parameter UBYTE io_Parm3 ; fourth command parameter LABEL iopcr_SIZEOF STRUCTURE IODRPReq,IO_SIZE APTR io_RastPort V,*9 ; ; manual or otherwise, without the prior written permission of ; ; Commodore-Amiga Incorporated, 983 University Ave. Building #D, ; ; Los Gatos, California, 95030 ; ; ; ;********************************************************************* ; ; $Header: audio.i,v 32.1 86/01/14 21:21:51 sam Exp $ ; ; $Locker: $ ; ; $Log: audio.i,v $ ; Revision 32.1 86/01/14 21:2W 1:51 sam ; revision = to 32 ; ; Revision 1.1 86/01/14 20:29:21 sam ; Initial revision ; ; ;********************************************************************* IFND DEVICES_AUDIO_I@ DEVICES_AUDIO_I@ = 1 IFND EXEC_IO_I@ INCLUDE "exec/io.i" ENDIF AUDIONAME MACRO DC.B 'audio.device',0 ENDM ADHARD_CHXpANNELS EQU 4 ADALLOC_MINPREC EQU -128 ADALLOC_MAXPREC EQU 127 ADCMD_FREE EQU CMD_NONSTD+0 ADCMD_SETPREC EQU CMD_NONSTD+1 ADCMD_FINISH EQU CMD_NONSTD+2 ADCMD_PERVOL EQU CMD_NONSTD+3 ADCMD_LOCK EQU CMD_NONSTD+4 ADCMD_WAITCYCLE EQU CMD_NONSTD+5 ADCMDB_NOUNIT EQU 5 ADCMDF_NOUNIT EQU 1<<5 ADCMD_ALLOCATE EQU ADCMDF_NOUNIT+0Y:D ADIOB_PERVOL EQU 4 ADIOF_PERVOL EQU 1<<4 ADIOB_SYNCCYCLE EQU 5 ADIOF_SYNCCYCLE EQU 1<<5 ADIOB_NOWAIT EQU 6 ADIOF_NOWAIT EQU 1<<6 ADIOB_WRITEMESSAGE EQU 7 ADIOF_WRITEMESSAGE EQU 1<<7 ADIOERR_NOALLOCATION EQU -10 ADIOERR_ALLOCFAILED EQU -11 ADIOERR_CHANNELSTOLEN EQU -12 STRUCTURE IOAudio,IO_SIZE WORD ioa|LO9_AllocKey APTR ioa_Data ULONG ioa_Length UWORD ioa_Period UWORD ioa_Volume UWORD ioa_Cycles STRUCT ioa_WriteMsg,MN_SIZE LABEL ioa_SIZEOF ENDIF END NIT EQU 5 ADCMDF_NOUNIT EQU 1<<5 ADCMD_ALLOCATE EQU ADCMDF_NOUNIT+0[[V%DERSCORE EQU 4 SGR_NEGATIVE EQU 7 ; these names refer to the ANSI standard, not the implementation SGR_BLACK EQU 30 SGR_RED EQU 31 SGR_GREEN EQU 32 SGR_YELLOW EQU 33 SGR_BLUE EQU 34 SGR_MAGENTA EQU 35 SGR_CYAN EQU 36 SGR_WHITE EQU 37 SGR_DEFAULT EQU 39 SGR_BLACKBG EQU 40 SGR_REDBG EQU 41 SGR_GREENBG EQU 42 SGR_YELLOWBG EQU 43 SGR_BLUEBG EQU \ύ 44 SGR_MAGENTABG EQU 45 SGR_CYANBG EQU 46 SGR_WHITEBG EQU 47 SGR_DEFAULTBG EQU 49 ; these names refer to the implementation, they are the preferred ; names for use with the Amiga console device. SGR_CLR0 EQU 30 SGR_CLR1 EQU 31 SGR_CLR2 EQU 32 SGR_CLR3 EQU 33 SGR_CLR4 EQU 34 SGR_CLR5 EQU 35 SGR_CLR6 EQU 36 SGR_CLR7 EQU 37 SGR_CLR0BG EQU 40 SGR_CLR1BG ^[ EQU 41 SGR_CLR2BG EQU 42 SGR_CLR3BG EQU 43 SGR_CLR4BG EQU 44 SGR_CLR5BG EQU 45 SGR_CLR6BG EQU 46 SGR_CLR7BG EQU 47 ;****; DSR parameters DSR_CPR EQU 6 ;****; CTC parameters CTC_HSETTAB EQU 0 CTC_HCLRTAB EQU 2 CTC_HCLRTABSALL EQU 5 ;****; TBC parameters TBC_HCLRTAB EQU 0 TBC_HCLRTABSALL EQU 3 ;****; SM and RM parameters M_LNM EQU 20 ; linefeed newline mo #(************************* IFND EXEC_IO_I@ INCLUDE "exec/io.i" ENDIF DEVINIT DEVCMD KBD_READEVENT DEVCMD KBD_READMATRIX DEVCMD KBD_ADDRESETHANDLER DEVCMD KBD_REMRESETHANDLER DEVCMD KBD_RESETHANDLERDONE ENDIF END  audio.i de M_ASM MACRO DC.B '>1' ; auto scroll mode ENDM M_AWM MACRO DC.B '?7' ; auto wrap mode ENDM ENDIF END preferred ; names for use with the Amiga console device. SGR_CLR0 EQU 30 SGR_CLR1 EQU 31 SGR_CLR2 EQU 32 SGR_CLR3 EQU 33 SGR_CLR4 EQU 34 SGR_CLR5 EQU 35 SGR_CLR6 EQU 36 SGR_CLR7 EQU 37 SGR_CLR0BG EQU 40 SGR_CLR1BG Z} r: console.i,v 1.3 86/02/06 11:57:02 kodiak Exp $ ; ; $Locker: $ ; ;******************************************************************** IFND EXEC_IO_I@ INCLUDE "exec/io.i" ENDIF ;*****; Console commands ;****** DEVINIT DEVCMD CD_ASKKEYMAP DEVCMD CD_SETKEYMAP DEVCMD CD_ASKDEFAULTKEYMAP DEVCMD CD_SETDEFAULTKEYMAP ;*****; SGR parameters SGR_PRIMARY EQU 0 SGR_BOLD EQU 1 SGR_ITALIC EQU 3 SGR_UNa7Bֱ STRING 'parallel.device' ENDM ; BITDEF PAR,SHARED,5 ; PARFLAGS non-exclusive access PARB_SHARED = 5 ; PARFLAGS non-exclusive access PARF_SHARED = 1<<5 ; PARFLAGS non-exclusive access ; BITDEF PAR,RAD_BOOGIE,3 ; " (not yet implemented) PARB_RAD_BOOGIE = 3 ; " (not yet implemented) PARF_RAD_BOOGIE = 1<<3 ; " (not yet implemented) ; BITDEF PAR,EOFMODE,1 ; " EOF mode enabled bit PARBb=*2_EOFMODE = 1 ; " EOF mode enabled bit PARF_EOFMODE = 1<<1 ; " EOF mode enabled bit ; BITDEF IOPAR,QUEUED,6 ; IO_FLAGS rqst-queued bit IOPARB_QUEUED = 6 ; IO_FLAGS rqst-queued bit IOPARF_QUEUED = 1<<6 ; IO_FLAGS rqst-queued bit ; BITDEF IOPAR,ABORT,5 ; " rqst-aborted bit IOPARB_ABORT = 5 ; " rqst-aborted bit IOPARF_ABORT = 1<<5 ; " rqst-aborted bit ; BITDEF IOPAR,ACTIVE,4 ; " rqst-qued-orc%6-current bit IOPARB_ACTIVE = 4 ; " rqst-qued-or-current bit IOPARF_ACTIVE = 1<<4 ; " rqst-qued-or-current bit ; BITDEF IOPT,RWDIR,3 ; IO_STATUS read=0,write=1 IOPTB_RWDIR = 3 ; IO_STATUS read=0F_write=1 IOPT = 1< NUMUNITS TDERR_BadDriveType EQU 33 ; not a drive that trackdisk groks TDERR_DriveInUse EQU 34 ; someone else allocated the drive TDERR_PostReset EQU 35 ; user hit reset; awaiting doom ;------------------------z-------------------------------------------- ; ; Public portion of unit structure ; ;-------------------------------------------------------------------- STRUCTURE TDU_PUBLICUNIT,UNIT_SIZE UWORD TDU_COMP01TRACK ; track for first precomp UWORD TDU_COMP10TRACK ; track for second precomp UWORD TDU_COMP11TRACK ; track for third precomp ULONG TDU_STEPDELAY ; time to wait after stepping ULONG TDU_SETTLEDEX7LAY ; time to wait after seeking UBYTE TDU_RETRYCNT ; # of times to retry LABEL TDU_PUBLICUNITSIZE ENDIF DEVICE_TRACKDISK_I END EQU 32 ; asked for a unit > NUMUNITS TDERR_BadDriveType EQU 33 ; not a drive that trackdisk groks TDERR_DriveInUse EQU 34 ; someone else allocated the drive TDERR_PostReset EQU 35 ; user hit reset; awaiting doom ;------------------------|vTand is being performed IOF_CURRENT = 1<<5 ; command is being performed ; BITDEF IO,SERVICING,6 ; command is being actively performed IOB_SERVICING = 6 ; command is being actively performed IOF_SERVICING = 1<<6 ; command is being actively performed ; BITDEF IO,DONE,7 ; command is done IOB_DONE = 7 ; command is done IOF_DONE = 1<<7 ; command is done ;------ du_Flags ; BITDEF DU,STOPPED,0 ; commands are not to be performed DUB_STOP}C PED = 0 ; commands are not to be performed DUF_STOPPED = 1<<0 ; commands are not to be performed ;------ Constants ---------------------------------------------------- P_PRIORITY EQU 0 P_STKSIZE EQU $800 ;------ pd_Flags ------ ; BITDEF P,IOR0,0 ; IOR0 is in use PB_IOR0 = 0 ; IOR0 is in use PF_IOR0 = 1<<0 ; IOR0 is in use ; BITDEF P,IOR1,1 ; IOR1 is in use PB_IOR1 = 1 ; IOR1 is in use PF_IOR1 = 1<<1 kʺ ; IOR1 is in use ; BITDEF P,EXPUNGED,7 ; device to be expunged when all closed PB_EXPUNGED = 7 ; device to be expunged when all closed PF_EXPUNGED = 1<<7 ; device to be expunged when all closed STRUCTURE PrinterData,dd_SIZEOF STRUCT pd_Unit,MP_SIZE ; the one and only unit BPTR pd_PrinterSegment ; the printer specific segment UWORD pd_PrinterType ; the segment printer type APTR pd_SegmentData ; the segment data structure \_PRTBASE_I@ EQU 1 IFND EXEC_NODES_I@ INCLUDE "exec/nodes.i" ENDIF IFND EXEC_LISTS_I@ INCLUDE "exec/lists.i" ENDIF IFND EXEC_PORTS_I@ INCLUDE "exec/ports.i" ENDIF IFND EXEC_LIBRARIES_I@ INCLUDE "exec/libraries.i" ENDIF IFND EXEC_TASKS_I@ INCLUDE "exec/tasks.i" ENDIF IFND DEVICES_PARALLEL_I@ INCLUDE "devices/parallel.i" ENDIF IFND DEVICES_SERIAL_I@ INCLUDE "devices/serial.i" ENDIF IFND DEVICES_TIMER_I@wR INCLUDE "devices/timer.i" ENDIF IFND LIBRARIES_DOSEXTENS_I@ INCLUDE "libraries/dosextens.i" ENDIF IFND INTUITION_INTUITION_I@ INCLUDE "intuition/intuition.i" ENDIF STRUCTURE DeviceData,LIB_SIZE APTR dd_Segment ; A0 when initialized APTR dd_ExecBase ; A6 for exec APTR dd_CmdVectors ; command table for device commands APTR dd_CmdBytes ; bytes describing which command queue UWORD dd_NumCommands {[j ; the number of commands supported LABEL dd_SIZEOF ;------ ;------ device driver private variables ------------------------------ ;------ du_Flags EQU LN_PRI ; various unit flags ;------ IO_FLAGS ;; BITDEF IO,QUEUED,4 ; command is queued to be performed IOB_QUEUED = 4 ; command is queued to be performed IOF_QUEUED = 1<<4 ; command is queued to be performed ; BITDEF IO,CURRENT,5 ; command is being performed IOB_CURRENT = 5 ; comm neil ; Added BBNAME definitions ; ; Revision 26.1 85/06/17 20:08:25 neil ; ;*; empty log message ;** ; ; ;************************************************************************ ;*****; BootBlock definition: STRUCTURE BB,0 STRUCT BB_ID,4 ; 4 character identifier LONG BB_CHKSUM ; boot block checksum (balance) LONG BB_DOSBLOCK ; reserved for DOS patch LABEL BB_ENTRY ; bootstrap entry point LABEL BB_S TIZE BOOTSECTS equ 2 ; 1K bootstrap BBID_DOS macro ; something that is bootable dc.b 'DOS',0 endm BBID_KICK macro ; firmware image disk dc.b 'KICK' endm BBNAME_DOS EQU (('D'<<24)|('O'<<16)|('S'<<8)) BBNAME_KICK EQU (('K'<<24)|('I'<<16)|('C'<<8)|('K')) ENDIF END ; ;*; empty log message ;** ; ; Revision 26.2 85/06/18 23:55:38 Ats from the disk DEVCMD TD_RAWWRITE ; write raw bits to the disk DEVCMD TD_GETDRIVETYPE ; get the type of the disk drive DEVCMD TD_GETNUMTRACKS ; get the # of tracks on this disk DEVCMD TD_ADDCHANGEINT ; TD_REMOVE done right DEVCMD TD_REMCHANGEINT ; removes softint set by ADDCHANGEINT DEVCMD TD_LASTCOMM ; dummy placeholder for end of list ; ; ; The disk driver has an "exten];ded command" facility. These commands ; take a superset of the normal IO Request block. ; ETD_WRITE EQU (CMD_WRITE|TDF_EXTCOM) ETD_READ EQU (CMD_READ|TDF_EXTCOM) ETD_MOTOR EQU (TD_MOTOR|TDF_EXTCOM) ETD_SEEK EQU (TD_SEEK|TDF_EXTCOM) ETD_FORMAT EQU (TD_FORMAT|TDF_EXTCOM) ETD_UPDATE EQU (CMD_UPDATE|TDF_EXTCOM) ETD_CLEAR EQU (CMD_CLEAR|TDF_EXTCOM) ETD_RAWREAD EQU (TD_RAWREAD|TDF_EXTCOM) ETD_RAWWRITE EQU  07 (TD_RAWWRITE|TDF_EXTCOM) ; ; extended IO has a larger than normal io request block. ; STRUCTURE IOEXTTD,IOSTD_SIZE ULONG IOTD_COUNT ; removal/insertion count ULONG IOTD_SECLABEL ; sector label data region LABEL IOTD_SIZE ; ; raw read and write can be synced with the index pulse. This flag ; in io request's IO_FLAGS field tells the driver that you want this. ; ; BITDEF IOTD,INDEXSYNC,4 IOTDB_INDEXSYNC = 4 IOTDF_INDEXSYNC = 1<<4 ; la v,g^t<:d<0dd~af0CtRBa|gaf$`/ a"_gx(It`~`"~ g <>f~ ` ~`~ f~ R _L`NutS~`<0e޲<:dԂ ЀЀԀ0ԁ<:d<0d~`DHtpGN`v`,`N``p< gfg`Se`0ef<d`Ԃej0eJ<e`B0eB< dg<g~g4g>`a&aZJfJf*U`a`aa<`aJgRa*`aJfJfa*aJg@T܀Ra`aJg,&L(&ЀЀ(XS?a6(QaЍX'@`aja`"/,nN,_Nu"/,nN,_Nu"/,nN,_Nuav/"A $&</,nN,_JlpA "_ZQ180 _LVOastrncpy = -186 _LVOstrncpy = -192 _LVOasuffix = -198 _LVOsuffix = -204 END  t Amiga.ASMk9= -150 _LVOModifyProp = -156 _LVOMoveScreen = -162 _LVOMoveWindow = -168 _LVOOffGadget = -174 _LVOOffMenu = -180 _LVOOnGadget = -186 _LVOOnMenu = -192 _LVOOpenScreen = -198 _LVOOpenWindow = -204 _LVOOpenWorkBench = -210 _LVOPrintIText = -216 _LVORefreshGadgets = -222 _LVORemoveGadget = -228 _LVOReportMouse = -234 _LVORequest = -240 _LVOScreenToBack = -246 _LVOScreenToFront = -252 _LVOSetDMRequest = -258 _LVOSetMenuStrip = -264 _LVOSetPointer = -270 _LVOSetWindowTY  )0SundayMondayTuesdayWednesdayThursdayFridaySaturdayTodayYesterdayTomorrowFutureH04&HCHCBCԃH@H@B@ЂL Nu/BJjDRDJjD Da"JDgD(Nu/BJjDRDJjDa `H0HAJAf HA64B@H@"H@20BAHAL NuHA&"BAHAH@B@tЀӁbR@QL NuH 0$HGH`A"JNJg$ &@f "L Nu/aP"a$Jg gS` /a0"a`AH g @ fNu"Hg<:g</f I` NuH$a Baaj.g6a( Wf g R`"|A$$sA a<.fL`/H@aLa/"HpJWFf <X`N//a$Jg <`8 мN"fpg`$ @A "_f B /a _!@ $`O $Jg x h!@p/AL/,xN,_ NuAL/,xN,_Nu/ $Ha Jaa`Jg$@ *f"A""* Nd"JNp$_` @Ap`("H"(Q/|`ЙQ"`ЙЙЙЙYn"(gR A`NuHy>NU x h.(jp`\ Ox&<IaT g!Hּ QB&<Cm a0Ck a( G"OEB "JLD)gNNu A"jN` A,n8N`"A,xNb`"AN` A,xN`Nd`"AN&`"AN`B *g @fN`R) NuS)NuH?<,.*I(HBN2g @Rh!W.` L "P.GΒ.@/*SN L(x(l ,fp`&@a\g /,J/,R/,X/,/,$l/ /+"tN&g"Ѥa$"N fpL NuN$" Nj/"N NuC:/N"JfNdNuBHyBHy?<O @( hJf.Jg*(Y"/N d _Jgؼ /hgRoVʼ܅/F O/,xN",_O |Jk @ hf,(/ C !I "_NuARP_PMEMCON:0/0/640/100/Arp Spawned Me*NIL:H?p BQO xR('*f0*n0*m"*U zJgRc/|$`$YH (hA\/H&l.* g*g"/G4 Y` oTa/@$k/@.X/@4 o4 (jdf /|$`*f /|$`,<#@6#@ @   p* H" Ҽ /`g @"Ap|gWFLf /|$` /4 #l#l#l n0#h&,,",(IN)@AJ XB!H"o/,xN,_A\!L|A XB!H*f*g)j *)@`& f * f* l!@`` * fA"$<N)@f /|$`v *fAW fA0"$<N" f&)@f /|q2$` *f g @)hJf A/H `t*$o," g^%kp? k"M"Q(+GgBpN&f /|$g.&&C D("(N'@f/|$` %| %l4p(ffp,% м%@ мH%@ oTrlN %@ м%@$%G< )@"F o0  !i!i!G )@)oA\"o "Rn E(G"L/,xNNv$n *g @N`E\ JN JN"@Yg .gǸg8 Ag$A&|gA%nA |g |ma"Bf` g"@ABp QIp(mRztN&<m<fRoRBR`"|dm|da@E<fEtRoZR`"/a "JfSAU"a`"p"SaNu<0H HANu -g,"@"-m:<$a:R"HAa:"-m2a -g "@afpLN` `` ````NqrNu>+$k8a aXSfNu$ aR+5a2|+5afaxfaa,SfNu+5RaNuJg(aaLgRa`a0 faSfNuS8pNuR8pNu`n` ``"`>``p+5D@`p+5ѫ8rNua,p+58$k8aDa"rNuap+5ѫ82+SA$k8aarNu(k8|~zx+5L6%ń``?t JgDRBF6a6Nu ;`HNuFf N6` a<v+5aahk?a2<g< gʲ<gIJ|gȲ|g|g|g&<gJfPp0e<:e߲<Ae<Gdp7alA afaf`  `Jg\A` af`Bk H7G $LaaL`b?a2<Eg?a2`p+5SGdHa:L~a`rp+5RGkfbSGHa2La`NRFa fRFCfB|`Jfp0r+;grAH@J@NuSFeafSFd<SFaftSF`n&͛`xC~0rDa`aZr:aT$Y$ aFa*)a8+6fa`aarAa&a r:a$i$ a +5aaR<8fra4.ZaNqa8.Za+6+6 ara$.Pa$nP+5aarad$.Taa$nTQ@a@gFra>$.Dav$nDp.B;8aLJ.Ag r>a^$.HaP$nHp.B;a&P@a`,A4arS frUataQNug`R`TXNZVC`` ````NqrNu$k8<+J+5ft af $ at`$ aa +5agaazr Tfr>aa/ aa|'#$_SfNuaPU'J8pNuaDT``` ``L`B``0+@H8pNu +8R$@<+apSf'J8rNu +8R$@NuaaP`aa(`HQQatLAJfJkBgWS7@Bg>|e$|Pd@HrAQ@drDP@0 `C Yf BP`tTata XB|XfNuApJhg:2(BAf2|Tf (4g."6 8g!A8H/A84a _LADQNuH"nT (8R$@m<(WFe/ aPgQ"_" LM`"_LM`$k8<+SFaWfJFk adaQNuLg " fLg " fRpNupNu``(`8``N``$k8(Ԯag/ aa$_'J8anpNu$k84+SBaW`$k84+SBa|g,|@g| fJp0*&"|vg:S@gS@g S@g(S@g*S@g m(g ApaJf `a8` K/,n8N,_Nup K/,n8N,_Nu"K/,n8N",_NuA"K/,n8N2,_Nu m/(<g WBCa WJg"JaBm WJgRm`XOCaAaCaa`@0-V|ifvJm>f ;m:8Ap Nm:;|>a aah`&/ <2-:IRAx8A"Kprt4-8HBJm:g:HBBBHBv,n8Nd,_ ˴Nu|hfpmBm|lpmDo|;lH ?@E pat 6|aDrN:t a8pav"g$A*E<fHLFH F,n8NJL@g J"m"iNJg"maBNuCa m h"Hg</fC`<:fJfB m ;@;@C` m"PaA pBQRm<g9|0a"La E4($|laQLNup " E/,n8N(,_Nup m(fp/,n4"EN"E $<"PCN,_QCNuH瀂"m")g"AN*8LANuH*n8,xR.' W (Vg( @NJg"@N`Jg WBVpNNjN WNNNNvLcNuH8<$*Hx xR('NNfaJ L<Nu O *(rPN:B(H *f6ggJgr R@|(@( "M ORDNJfx`|fgrJfr p`԰|fxgpr(`Jgp:Jg`<:g </g/fNuH08$(I&HvRJfpЃN$@g*%BAf%Lg(%l <N)@ L Nu/ "N".tN".N NuH8($H(Ivrtpf0B4 LNup RBJg"0  TBrv`̸<%gV<|f<`ȸ<?f<`<{f<`<}f<`JCf<*g"<#f$gp &B4 RCTB`nRJ<`r<'f fh`X<(f <"v`P<)f <&`@<[f:pg&<^f ` RB<]g  f`<`H88$H&It& xgظ<n0N``,`2`4`@`>`<`<`@`D`JJg"K JafJf`Jg`$ `g<f``rp`0rp`*SC`g J"KanfrA"Kabff`J g(f  -f *g*e*d E`EJg`,f`$JgJgg<g<f&B`LpNuL^C& _f&/a& f a-g &@ @a&a'"pNupg?a'0apNuaxpNuv A2#a@A2'J.=agZ=A2.J.a gvZ`nVarNJgrYa Sk a4ak<gD< g6߲<Yg<Nf?a a22<ONuvL a &rNuaa`X`A1aaI \r2.E6ahBI aI a,fafe洼xd=BaA2SaaI A0"LfaLa fI Jg"C0 LfJ(f`A a&Bga`a^A1apa*a k߲<YfFAa$f2AP=B0BBC0fAЮxNa%fQQYa hA)aڎ`Paa6QQYa HJjfNuE gm lpNuE `pNufoNuJ.jafz/ I T(DC.BS* g@S@gL x"aڸ,\`:W x2aڒ,\`B xab,\| (_` HapL( aIx:)f2J.*k./,xN|,_ z*8 h6 !D/,xNv,_Nu-LTZ-D`A)uaf:)f/,xN|,_ z) h6/,xNv,_NuJgA)Kaؼfa,NuvA&aaf,Jg(aHA&a^a@I Baf / a(_G `"`GI B nT a(`˺MEMTASKana" /,nNj,_Jg #avЀЀX-@Ai"KEbPRf| BH/ a8 _aa.L8 LCQf AD| B"n-I@vta"n՞j`W3az2N#a|" X z( (ЀЀ @pCѼ"Q"< # #(* ," t z(|( &:(xPخ/,nNv,_-@g|*NuH HB 0+7@7@Q0+7@`6+/ p/"n,nN,_L4+@SBASC/"n,nN,_p/"n,nN,_$_Nukkn02"M/"n,nN,_"MJf Op/"n,nN,_TNup/"n,nN,_ Op"M/"n,nN,_p"M/"n,nN,_`H0p/"n,nN,_Lkk4nSB6nSC/"n,nN,_p/"n,nN,_NuHJZ SHpL 8.BSD:+CSE/"n,nNt,_L8Nupa0+S@7@ Bk NupaB NuJ.fJ^gap/"n,nN,_0+ k2+ k4+k@oSB6nSC/"n,nN,_p/"n,nN,_NuHP`HQJ.fԷ^g?an2J+g.-K^A-HbJf< g nb-HbLNua>-K^`*Jf< g 0+ kgL Rk ~aLNuBk 0.k `J^gtH&n^L klTkkn02/"n,nN,_ .bAg$2+k Am0k H/"n,nN,_A-HbLB^Nux L!N:Jf*SEaa6+ tDaaNk< g<g<gn<g|g|gB|gFJgIJ<e<eng0REDg AP`S@far@RDB4Pax`JDga\SD`Dg~aPRD`JDgraD0Dg A@XS@fSDSE`0DgPA@XS@fSE`a< Nua2Bxz` ?tD6+ a2Nu?+ La r a7_ Nu?+ 4.a 7_ Nu/ nap$_Ap W| BA'H>BkB~PP/ (KGj4,6,nr Jg J,0.H=@46.HÆxprGja0.R@=@pABhDQBA000.U@00.HU@0=|20.n=@B^NuB.I T(0.U@88 I Tat0.@82,lnRA884.lnnH„8I \-T-l aH880,W@88I d-T-laFpTQa.AIL80S@H#3LKSC9CAnR@88TLA8888GJg/ &nJkgQPaN&_-KPP`@6< .g&t|f6<<CDJv0fQNuG0`NuGtJkg+NuA'H>tv |KdtvB6C5NuA&dr<dr<erA5Ab'H>Nu|5A 'H>NuH n/,nN,_LNu n/,nN,_ nf/,nN>,_Nu n/,nN ,_Nu/ GjaDGLn$_aPP`Gڹ%|fI T(EXG `<gNa0@fxaN,D2II`2D2IIa$,0@x?|g8<<`:MRaxa,A2II`2<g< aHa2IIf#Afra,D`D`Ia  zx<`AAв<fXrLpfrRNuASLSRORO2`h0@?|.f^ .TTf nH`J.g@@A0 p$p`CagNuI T>(/a| [ _"(0(|g4|g*|g?C pgQ..`*`=a@]NuNu24JA`2bp gD`gJg|A`gn@f0@@-v0DEB(Aa)Nug>a+Nug0-.@faEp;PDNug2HJg*J.=g$<d /tBBж 0$a=ga*`"@fp@@ 60Ё-@DEBa`XH0X@< 6 fH-HDEBNug~8@f 0@@ v0aW-a(Aa,JDkD`A2 < ian<WDg<L.)NuA`VFTx??Nug2Haa4.WNu@f-ADEBNug"a` g2HҍTҮaA`(PC) g<8HHҍTҮaAaJFk D` (PC, A2< ia.FgL`W)@gNuA`g$#<f2`F<f"`T2`F?Nu8  @ 0@0JJNpNqNrNsNuNvNwH@HHNPNXN`NhN@>@DFHJNNHL@H@@BDFJAAPPPQ`p080@0MOVEP.ORIANDISUBIADDIBEORICMPIBMOVE.B #MOVEA.L MOVE.L MOVEA.W MOVE.W !DC.W $ILLEGALRESETNOPSTOP #RTERTSTRAPVRTRSWAP DEXT.W DEXT.L D LINK AUNLK A MOVE.L A MOVE.L USP,A TRAP # MOVE SR,. MOVE.B MOVE.W  NBCD . TAS ."JSR "JMP MOVEMMOVEM PEA . NEGX CLR NEc G NOT TSTCHK LEA DBSADDQSUBQBMOVEQ #SBCD DIVU DIVS ORSUBASUBXSUBCMPMEXG ABCD MULU MULS ANDADDAADDXADD !DC.W NqH/./.,BB,/ xK$Ma3fFTMHa$L f.C T<[g <?g< fXp-_,-_$ML8JNuQ*_UMp`-JTZ`AB CB-I Nueed KDNuK&Nu(n g(@JgedKJNu`RdNuK $|NuRwWdNu(n Jg2(TJg,e$LKNuRdNu(TJg e$LNuKNuA-H>pBFJQNu n>Cp Q P0Z TC>fA-H>NuE:a|5Jgx0zt`ta&aRQa&A(HE>JgJgJ$g Jng(n>r a&va&$a&Qar a&pva&$a&Qara&V$a&a&tra&F4a&a&d8a"JaXra&,$a&fa&J+5 a4ga4jRa&(/ $\a%a$_a fI̹>gJFfVa`H nf hV/,xN,_Jg6"@")faLk|f/,xN,_p`/,x|FN,_pLNuH nf hV/,xN,_Jg"@/,xN,_`LNua`HP`HQJ^gaJgr:;zp/,xN,_:;ffF nf hV/,xN,_JfTp nf hV(Jg:;2/,xN,_:; g HanL? nf hV/,xN,_Jgt"@")f$a2[?/,xN,_2JAgJJLNu/,xN,_`2/ A/BB00"i _CBr/,nN,_"_Jo^6)ASgX<fNExSg(ESgE| ~g`.2<<?g< fgf< fr ANurNur?Nug<ae<{d߲<Xf2<NuApNuABCDTSZ@AABDpGHIL6MNOP R nSUpVtW24 N ~.X +4f"k8Hzfagtv`NuA6a$fa`BaA8{C8axaraf`~J.*g A82agNua`":8g*BavBJ.*fJTg nTg /,nNd,_Nua a*g@NuJPg.Wf $nTa*fNuXA5`2a2Z`taZ"nTaf| hfr`RaZa!~"Jvtag8Nuaa!f-JTtTa`JvA5anafg a"g X_wI ``~/ax"_tvaghNuvaA5a! nrT (4g@vL axa$k<g߲<Bg<Wg<Lg <Tg<IfA 9aa0I Bxa|fjK 9<IgD<Tg>B-a"f <Bg<Wg*`:`Jg<,ga|I `A : ` Lf SB. @ 8a`Bn 8`a.Pra n$h8(4<g$aG 8vg<gN<If``Sz` af. `(REgNf. Jg KNg fSf`$G` n(\@ MonAm Copyright HiSoft 1988 Version 2.00Gj7| 7n `7@J.gH@aQLNua"k6a< g"<g"<g.`T .g&@a"g`a<`a<`a .g&@<Zg<:e<Hg-aT`0a<`<AeA#^ggTH`JgHSg(SgSg .*g4r!`J.*g*r"`J.*f r#`r$J.*k?a 2aFP`&&nN`/ Gja4GLa4VP$_ACp0QPPa8a<:a=a k<gag`a;`²<Zgal`HzT k><g4<g2<g0Au8<g<g(<g&Jng< gXrNuNNNN N NkNuB k>NrNu<AgB<Bg <Egڲ<Lgֲ<Og <Pg<Rg6<Sg4<TgdNu +4g +4gAXha Rf'B8`PPa56`:./ vAVa a3f^gZaCfgI `.aJaFr=a2r$a2$aB~raB8"aB aPgwr/raB" t aPr4+ va1aa7&_Nu +U/zUNs#aN ְn8f4/ f,0// oT`g`g`g `g`g o/H _pP3a#a#a/| Ns3a#a0@g>|g8| g,|g|g|g|fOT`O2`O`P#a?</< 0:T? P#aNsHa af#Ua"zU p:U/,xN,_ ag*p:T/,xN,_pr:Tp/,xN,_LT|J   T&L?TZH?LTHH"zT:-IT-zT8P=yaZ":T P*<g< gb<f Q*B9auApgf"`rBB.?/.?a;a4a5BaH2|fJTfa=P-_NuarJf.?g`r `Sg` nB"P2J0.Z@n=@ZjJ.?gv`HnLgnRgxPUafXHa(L0(|g<|g(|gI Ha> LfTJfPJgL` R`DSf>2Bhr `r `-nNTar`2Vp-@R nZ"h2Ja.Wf$nTaE,f "Ja\gv/ ar%aJAj-DA`, aHg$H@ @ XS|epgQLNu d0Nu$p/t?fJgP²< o^02Q$NuA0g NuTFHILSCCCSNEEQVCVSPLMIGELTGTLEAH.P NuBWL?AH NuTST CHG CLR SET 0NuH@00NBSQNuQJ,g4WPl6RR:j`a#Jf2a`<g"a`2a,?<,x=0fxe`4aB#2a,x=0fpe`: < mEH;P`?xa>.@-nDHQ@?,2< iA4JBx?a0J.@gJgPALDAHDNu@@Nu2`0Nua,#2`paA`|,USP G< e1 0Nu$< G5.gRa`z. Txd<Jg.<Pg&x=` zxa,`Bzxa,`> a?xla|B<,pVQQ6[<DaJgJg/6<AJg$pgB|7JgSg,Jf -7NuSf-|6/` Jg`/SdSNu Ra<48< f2an,x4a4|BNuaN`zxaOO0,DNuzxda< 2i,A`2IaVD0," 4H҂Ү`2IAa(Bx=`aV#2IIAfra,x?`0@2II<@g<Hg&<g2 ى$J??NuDaH,D`:Aa2,A`Da ,A`2Ig <ga`S(BRA `S(BSR g|.S HHҍҮ`2HU`a,D2II`p 4Xfa\4JJg$-(AaA(aat)NuDaf,D`X),-(Aa <fI T`02(Aa4AaD2IIa")+Nu)+,(AA:M` :::ZZZ R(CMPAaxa,A2II`Aaavxa,D`CMPAaaRDa,x=`EOR0@|@g |Hg0zBB!|Jg"nEaf@@E!rB"H-I-n(Nu|d J.g"n`afJ-i H-INuA)Jg Rg P`"PNupNuRnafJ. f$.(թNu#M NupK`BSSCODEDATABSS_CBSS_FCODE_CCODE_FDATA_CDATA_F@@@/ (nGJgV&S"kaJf")gB gX#AJg af` ig/ Pa"_#H#H B`(_NuFazr.`:"n iNuJ.g:G~&S k("n.EaJf"gXapgJ"n#B(HG&SJg?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~5)/". :A!T$v6.!N/,n 6N,_&a^Bn!NA!T-H!PNu n!Ng n!P-H!PRn!N< gNu?a2`/A$/,n 6N,_aNu :g"/,n 6N,_Nu&_B0(Hr <#,xN:JfpgNu,@TCp/,xN,_JfC <#,xN.pNu-@ 6-L/,n 6N,_-@ :-O >-|#!J/ BHiSof-G`B0B8BJg n-X0-X8"X-I@Bi-XBB.B.6*LB.B.Q 5PP=| nB.g< g<-gCE-JB.G:vR.g< g</g<.f& `JfB.sT.`"CB R.B/A:a-HB _SCJ0fr-I`jgp< g^H6~<Pg`<Sgh<Lg<Cgb<Dgd<Xgh<Mgj<Bgl<Tg<Og<Ig<Zg<QfP 5` .0grJ.fRNuP`rP`j|``P`XP`PQ`HP=|0e4g0HS@|d$=@R`P`AapNuA`t0e< d=B<0e<:d 07BAA=BRJnf`PCpQg < gSfBS`C`BCfBNuP-n :Pgv< gnCg < g`BS`Tp"Hg</g<:f `Jf IpNu @pNuAJfDCt)S"Q</g <.f$`tSfJg B.LSTBA"$</,n 6N,_Jg-@pNuJ.g0Jnk*r a6"./,n 6N(,_Jfr aBn=|NuHpr/,xN,_ g(.p"</,xN,_Jg/a&LNu".!JaHA` bytes used Invalid command line - see manual Could not open l82^Gisting device Press any key to exitaJ. 5gA$v". :/,n 6N,_a2.n >"n 6/,xNb,_."C <#,xN.HHNu/,n 6N,_"Bg$v/,n 6N,_TNu NuPH@@ 2)Y/,xN:,_LJg @ R((HBpNupNuX/ r/,xN:,_"Jg @ Ӯ!JNu"H !!J/,xN.,_NuApCB/ a&"_ J <NuH@<:gJfrLNuagX/aT _Jf"n/fA:a< _JgNuCDJQg(R/E!fSf/ A!a"_ _JfJfNu/"t/,n 6N,_(gz"A B$ gX/,n9" 6N,_/"/,n 6N,_ gD"$</,n 6N,_(A B $gX @"(|f"/,n 6N,_xNu _xNu"/,n 6N,_Nu/&"$/,n 6N,_Jk"pLNu/a$&L <Nu$`A$/,n 6N,_NuCg<.f&$ JfSDJfad<RgRfA"$</,n 6N,_Jg$pNupNuJgHp&".$/,n 6N,_LNu/v"./,n 6N,_&NuJ.f,H`"</,xN(,_L}e′e"Nuo`dos.libraryaHA` bytes used Invalid command line - see manual Could not open l_BA!n":A !A/,nN4,_-@fg |aY\a!a=,|x>P@Qa-zQ<-|4BavB9auApBQBPBnZBnX x-H\-HTa a"GjaWa7Ta=JTfa@AJgaRJTf5HzL^Jg5B0  gGg< fB((H`5I`5aR.n .0g"n,/,xN.,_aThaX nf/,nN,_ n/,nN,_C/,xN,_p./,xN,_p:^/,xN,_C/,xN>,_x .a$ .a .a < "N/,xN.,_ Nug"@/,xNb,_Nu %yicognisedinvalid sizeduplicate MODULE nameforward referenceinvalid section name, TEXT assumedgarbage following instructionaddressing mode not recognisedaddress register expectedaddressing mode not allowedexpression mismatchmissing close bracketimported label not allowedillegal type combinationinvalid numbernumber too largemisuse of labelinclude file read errorfile not foundrepeated include filedata too largerelative not allowedcomma expected.W or .L expected as i&yndex sizeabsolute not allowedwrong processorodd addressimmediate data expecteddata register expectedBSS or OFFSET section cannot contain dataduring writing binary filecannot create binary filesymbol expectedXREFs not allowed within bracketscannot import symbolcannot export symbolnot yet implementedregister expectedinvalid MOVEP addressing modespurious ENDCmissing ENDCinvalid IF expression, ignoredsource expired prematurelyspurious ENDM or MEXITcannot nest MACRO d'(|efinitions or define in REPTsmissing quoteuser errorinvalid register listinvalid optionfatally bad conditionalrelocation not alloweddivision by zeroabsolute expression MUST evaluateillegal BSR.Soption must be at startINTERNAL:invalid optimisationexecutable code onlyprogram buffer fulllinker format restrictionORG not allowedINTERNAL:invalid multi-line macro callcannot nest repeat loopsspurious ENDRinvalid numeric expansionduring listing outputinvalid printer param(7eterinvalid FORMAT parameterINTERNAL:bad sectionINTERNAL:macro memoryinvalid INCDIRassembly interruptedinvalid section typep'`PpA`La fNua .p&`p `:p `6p `2p `.p`*p%`&p`p`p`p#`Q|"a `VNu.nJ.fP . "d| "Hp?paAR. t0J@g"Jf"n@2JYgSAf` 3n&2YBQS@ap ar2.&a&Jg p a"nt)UCaQaPLNuJ. gJ.g ."d|"Hp?paBA 4<`\short branch converted to NOPsign exten) ded operandrelative cannot be relocatedinvalid LINK displacement68010 instruction, converted to MOVE SRsize should be .Wdirective ignoredbranch made shortoffset removedJ. g?@;HnRn0J.fNu$n\HaxVL8J. fJf/ iJh _f.`txv <vЀaB/ a"_fV$<a#D#n-I/ &a"W#HC!C!I 1n& Bn&"_P``Jf#n-IJ)g&/ a&"_f#D i1n& Bn&E `$ i1n& Bn&E pNu  J` "(*A$)H@aLf,Eg *f * g i!JR)pNupNupNupNuv E`$(gBHaLNu .\g @ g @Jg/ Pa _Jg( fNJg / ha _NuJg""iJg/ "Qa"_NJg / "ia"_Nu/ &JEa"nTJg"Qa&_Nu) gNNuJg""iJg/ "Qa"_aJg / "ia"_Nu) gNNuJ. f"<a -H-HBBPNu n0(A-H n-HpJhgBh (-@Nu HЮ(J. fD/ nX0|g!!P@1pNuH``"<a"n"-HBBXpL`̰f2 nX0g ?p?a6+D40P@|g1@g-PpNu nJg P-H\Hp`p-@pNuA2J@gJfS@`r `ar HaLNu?HAa2?Ia2?Ia2A;`0123456789ABCDEFvt/AfJgP;N"QA;NEA2tpve RdҘ`Jj P0ANAQ0N;B@'d pa$nTI$abv E"I`F + f+`0a`H/paJ.g WAaSnaa _EaLNu gp gl$@ApPQG+aRAgH + f"+aa|Nr+ Af0,+anadAa^SfaJ`NuJg/ $Ra$_* f&*e AC efSg Sf&J+Jg / $ja$_NuaZg4-H&Nu .&gB& @`fA"` @ fX/a."_g"BNup`"<(=A8a-H*NuHz ."&@fNuJg/ &Sa&_ K`QQBA C "-I=|=|<Bn=|BnB.4B.P=|G aTBNuJg aa:aNuJg&.B` n g-H Nu?a f2`pH`/&.A ". g C -I aLNuRnpaA apar2./a &aA4Jga` Jg"nt)UC-#aQapAabad``Jnj Bn?a2< fBn0.Rnngr a Nu0.nm?a2`aRnNuJ.f`g/a _`NuH.d84.&|'d"a|da|ddaִ| dar2a2a(.d6J. 9ga. 9a". :ax`.6a(.&nL".,ar J.gJ.fr+aTd&v nQev JgatSQ`aDQa@&nR:Nu n>d4 k !n:a("k #H'H C BBp Ѯ:n> n:"Lr f-H:$ n>NuJf ) f fajafRagENDMfJfr Nu"<@=A Na"-H PNupL` nD NeH@@a LJ. g ) gdpW< g< g< g <.f@p n PQ J-H J1n H "i!I!Q1n FCBQAfS< g< g < g`B< g|<*gv<;gp< g< f`RQ<,gF< g@<f<>f"`g< g< g < g<,fBDH Ҳ<,f < f`$ R/. P-@ Pn NPPRn `NuHaLfΰ<&fHaaRLf<&gpDaL< g< g`60. `n bbat L$n JCt`jJ Xf$n J"j jf "i%I Qp (Ht\gf`J Xg 0. `n bc%H-LfJ.fPSn `$n J Pn N-J P0*n Fn=@ F -@ JfQr Nup3`p9`J Xf6a-B Tn0aVaf>agJf겼REPTg ENDRfr NupE` n: n>dav-H X?.>BC !I!H -I:n>&HaB Xadf-K Xaa~gⲼENDRfJfaP k !n:.=gSn>R:J.g=n ` bS Te8-K XC-I \afrHa Lg ENDRfJgPaЬ`04. >Jgp@n>Hծ:B XA"-Hr NupF`"n X n \f "i-I X Q(Hp f-H \-LADDQPSUBQQADD րSUB ̀CMP ᐀AND  bTOR JEOR @CLR BNOT F؀DBF QĀDBRAQ⺀TRAPN@BEQ gbBNE fXBCC dNBCS eDBPL j:BMI k0BHI b&BLS cDC ZEXG nEXT H庀NEG DBADDIĀSUBI޺CMPI ްADDAxSUBAnCMPAdANDI܀ORI ҀEORI ȀLINKNP2UNLKNX.BTSTߚBCLRBSET؀BCHG@΀ASL ASR |LSL rLSR hROXL^ROXRTROL JROR @SWAPH@ DBEQW>DBNEV4DBCCT*DBCSU DBPLZDBMI [ DBHIRDBLSSADDX`SUBXVNEGX@BVC h݌BVS i݂BGE lxBLT mnBGT ndBLE oZDBVCXDBVSYDBGE\DBLT]vDBGT^lDBLE_bDBT PXSTOPNrST PRSF QHSNE V>SEQ W4SCC T*SCS U SPL ZSMI [ SVC XSVS YSGE \SLT ]SGT ^ڀSLE _ЀSHI RƀSLS SCHK AMULUMULSDIVUDIVSABCDSBCDNBCDHLNOP NqDRTE Ns:CMPMފRTR Nw&PEA H@ƀTA  FўS JENDMIFEQIFNEENDCIFD IFND DS RS LIST@END @EQUR^SET OPT @EVEN᪀IFGTIFGEIFLTIFLEIFC @IFNC>SPC @PLEN@LLEN@TTL H@FAIL@CNOPݜXDEF@XREF@PAGE@ORG HIDNTDCB .REG RORGbREPTԀENDRBHS dlBLO ebDBHSTݜDBLOUݒSHS T얀SLO U쌀IIF \CODEDATAzBSS xAMP!一MOVEQ p! ay窀MOVEM H嚀MACRO MOVEA @枀MOVEP ƀINCLUDE @RESET NpڀTRAPV Nv̀NOLIST 2@MEXIT MODULE ڀSECTION LISTCHAR4@RSRESET |@RSSET v@INCBIN ~ILLEGAL JNELSEIF "@OFFSET <OUTPUT @COMMENT @SUBTTL v@FORMAT ߤ@INCDIR @NuA`4<e&.xAMOVEg(aNA d000kAHfXJ.g J. ga,p<.fNH6~p<Bg.p<Wg&p<Lgp<Sg< g< f 8f 4pS< g< "C"@(*P)ebG(M ebSfNu g"@` )g"@`XIpNu"JpNu gDg>`* H@J@g4R@g0`<gH`<g0HfNup` pJ. g Nu<gNu LI/a"Ivah(_NuANON_MODULE TEXT BDAv a~$n\HaVL8J. fJgxv at-I.C-ILNuJfa`vp `x$0C BDABJ.g0.|g|fa $n.EHaVL8J. f2Jgxa n.S( ( a:@-I2-i,i6`Jg`t"n2#n,`J. fNuJ.g nfD)")<g<gp apNuBSSfpNu)pTEXTg DATAfp NuABP-HQ Nu/ n0++0-HBP _Nu/) n0++P`/ n1|-- _Nuline malformedout of memoryundefined symboladditional symbol on pass 2symbol defined twicephasing errorlocal not allowedINTERNAL:invalid hashinginstruction not re'B00(Ba`% A<+g<-fJNua f|e|dRB=BaVNuaW@NuaV NuaWNuaWNuaWNuaWNuaWNuaWNut_agt.BNu n$fjJ. fD<+g&<-g1eH|dP=@`p`p`"n2 n.Ba,NuC <-g4<+g2H6~<Wg,1e<dagNuNuQ`PNuaWNu<0e.<9b(t0<0e<:d 0AA`pNuAtJgr Nu< g< g< gR<Rfr BNuaabdNuJ. ga@r PNua| ehd =BPNupI`#,aaf~t4$nTAH J. fa\L8g"va,NuaDL8f" ) f"f" f"|`Ap.!<g. Eg$. >ծ BJf&ap.!;J. >jD . Bծ B$` J. f./aR _fTJfP*ag"ETv(. Ba$,`adf" ) f! ) Bf! f!a`|NuB Br NuafJf-B B`aa=NuaDATAa BSSaCODE _Cla- H@IlaLNua,var NuaJ. fL/ab _JfpH0aL0f) g!*$`fnGA?a 2<,gNu(.gJ. galf) f  g+4Nup+`,aAaf(.g0v .!fv??a Lg "nPxa۶a2<,gNup*`ض) f2) f*) f").g f n.Rh3hNu0<*`p.!;Nu@@p5`<"g<'f$L< gfg( SD<,f4<'g<"fSDe gNup AfRpNuaW`aV`aga4fJ. g) g@<@NuAafaW`pAafaV`^a&J.gJCk <fJfNup<`a|= 9-B :Nup1`0<2`a^`a\`a]KG`a_` aW`aVRn FJgr Nua>. FaLfapghJgELSEf\IFfTn Fg`LENDCgENDMf"J.g6 n Jhc,`0. FSn F@f`HA|IFfHAA`0g@fRn Fa^`< g< g.< g(<*g<;gx< gp< g < g<:f< gV< g< g<*gD<;g>ABBp`< g"< g< g<.gH6~QpNuLxpNuJn FgSn Fr Nup/`6`"<=A>a#b-H:Nup4`J.fJ Xfa$n\H aRVL0J. fJgvBaبHi n: n>da"_"BC !I!H -I:n>&HaaԮfa0?J.f:J. fJ.g `,J.gJ.fJ.gJ.fJ.fQB. 9QNuQaNh`Nu-O*nH-MLBB.< g< g8< g0PAB(a9f<<:f<:fP< g< g< g:HAZJ0g<=g7β<;g<*g`DdEC#< #< H6~t< g,H6~<Ae<[dQ`<.g < g< fa7j(JA`a8fC$n\( H a:L8g)~(D,<:fCCJfCBa IB(`hJ.f "hNu(E"\HSfNuB`a9fC fC. ) fCtfCt).gA-HDNuU(.,AJf,Nu./fPNuAJg(.,g aOA(.,J. fa9gC. (.g HzEL` EDJgB"j n8d HaJL$n*""Jp%@%@%DC 5@@ n6%@( PSf Rn8Ѯ*Nun8e HaJ(L /a*n8 n8Ѯ*NuABPA(BPa;xHajLJnfJn(fNup`Bv+-*/()~= & ! ^$%@'"(>bfjVZ^A0TX1za<f<e<d<fA(0PX!!`Ⱦ<g<eξ<dƺ<fR<gF<WgD<g <f.`6$.,v. <gR. J.fJ. gp.6Ad԰`~`~EA0<02`2plTX1`az`z`,a A(0PX!!JCjp)aA,<gp`AzREa`<g(H,EA0Jpga`UnA(QP0$0&0Nu`ZA(QPe0$0&0?CUQ221<dQ`e0,0 0BCCXA21N20 PX!!NuԀF<g <g<NuJ. fJ. gpa@ZPvNup`0F@JFk<fU. g<ga<@Nua8`aarvNuCk<fNua/aLfNuJ. f`Ā`؄`Ա```ȴWH%H¼fdCkvvNu]`洀^`F|fDNuD`,JnDJnD&HCH@JCgH@`J@gHCH@ԀJjDNuJgJ,//JjDJjD|.pއUFDFЀeRQ,jD,jDBNup;Nu LNu~< g< g< g<,gH`/ ~<Ae<[e8<ae<{e,Ahg fJk~`<<gt<:d<0d,Ala3|g~`~ <|__f6H@|RSg(|G2g|LKgf tJ.g4.RB`$<*pNu$. B`NutJ.g"n J4)`~<#Wf J.V (f atfv`LJ. fa2gtPvJ(g2`0$)v) ) f&<g<g<<fvHC6)HC,`PHC6)a4HC,J. gC`J.fJ)g. !Xbg6)gP`a2V,<#fJf) g ) g$)v) J.f<f^p)Ad԰`) fh<f:.6)fR. `CPa4`"HAlE Q @SSf~`pvPa;>`p`aJ.gJCkNuPp`;a<gJ. g:Nu WT` WT:0?gax0`a|0 nHP<0e*<:e<z<.!g(Sg>Sg J. gJ.gJCkDԶ<faD*NuJ. gJ.gJCkDa.R:NuJ. gJ.gJCk a.*B:Nu`D/afa<)fL. g$Jf Jfz$a;fp `8/z($J.gJCkD@:J. f-Nu<,f6z0af6HC$<.g<\fH6~<Wg <Lf6<)fHCJ.gJCkCJ. f-nNuH6~<Pf6rH6~<Cf6b$<)f>z:J. g0J.gJCkCt<f, H:`-"J. $63 fp a6D:Nu<,f6z;/af6<.g<\fH6~<Wg <Lf5$J. g6J.gJCk J. f<f, HRa,` aB`p a5²<)fNurCM J1gNua`aa@xg < fEE<,f5D?a@x_fE]E:NuTaƲ<,f5?a8 nHx<gL<Nu.yLx$nD%_%_%_%_%_"/,n$N,_ nrBra n/,n(N>,_`(.ngB.aA*:F:`:d:t:x::::::;;2;N;`;h;v;z;;;;;;;;;;<<< <.<2>>$>0>4>D>V>^>l>x>|>>>>>>>>>>>??? ?$?:?V?h?p?~????/-_???????@@@@*@6@:@H@Z@b@p@t@@@@@@@@@@AATAXA\AdApAAAAAAAAAAB,B>BFB`BdBtBBBBBBCCC$C.CZC^CtCCCCCCD DD$D2D6DHDPD^DjDnDrDDDDDDDDDDDEEEEE.E2EFEJEVEhEpE~EEEEEEEEEEEFFFF*F.F@FHFV0.ܡFbFfFjFFFFFFFFFFFG GGG.G2GFGJGpGtGGGGGGGGHH0H8HnHrHHHHHHII"I*I8I<INIVIdIpItIxIIIIIIIIIIJJ"JPJbJjJJJJJJJKKKKXK\K`KtKxK|KKKKKKKKKKKKKKKLLLLLPLtLxLLLLLLOZO^ObOjOrOOOOOO1L3OOOOR( (b(z(++1|1A A$C2CHBHFHHJ,J0L L$LLPRRSXSlRAAAAAB,B>BFB`BdBtBBBBBBCCC$C.CZC^CtCCCCCCD DD$D2D6DHDPD^DjDnDrDDDDDDDDDDDEEEEE.E2EFEJEVEhEpE~EEEEEEEEEEEFFFF*F.F@FHFV0>kgpaN^paNXr2.gaNp aNFp2.aNpaN6afn&.gaiHBaP`fp=@$=@&-n04-@(-@,-@D-@L-@=@ F=@ H-@ J@@@ P@ -@ X=@ `=@ b-@-@ Bp-@ >P 8P=|aLQQQQQQ|.| a?rADBP`d\Jn FfNup0`Hdaa@Za@daKa aTBNutJ.gJnW&n\&SCda,AhaAtaAa .pѮ|Nu(gRRNuJg/ &Sa&_ + f$kaJg / &ka&_NuJg/ $Ra$_BJg / $ja$_NuJ Xf J.f>JfT n48lNupNuJ.g 0. `n bb"n X n \lf i`$n J"j jf"i i`"n$i jd gS`pD`GJinclude_longmacjNupN`FJ.fRn$J.f-J Xf1@J.fr 4<Rn&Jf((n48l L-L<f gS-H4pNupNu"n i(hd fR`pt -L<$LgSfb(<*| !JpNub gS!JpNu"(EfP$(g&H @S"LE!JQL"(aH`E!J"(Ef aHgJ`E=h &Bh $)g / ae"_B-i`PJ. g<+g<-g r PNur NuS. 8`R. 8ZNuPr J. gQP 8Nu2ޮU7bV7DG7XGoto line7 V7T7Goto Top7V7B7Goto Bottom#R88Preferences”8jV8LA8`Assemble8 V8X8Run8V8D8Debug9V9M3ז9MonAm9`-V9>J9RJump to Error<V9H9HelpProjectSearchOptionsProgramAre you sure? :,9:@:~~uaNR:kn:l:X:::|:qqmmAssemble;N kn:: 4^);";mmCancel;:yy ;zy ;*;;z<y ;*;;Nm;;Program type;Linkable ;Executable<2y ;*<^<2<y ;*<<mD+P =>(>D><Printer>C+P =>p>>Disk>G+P =>>?V+P "6w=>=>?List ?Screen?,None?Byy ?8y ?2??@8y ?2??Vm??Assembly?Slower(?Fast@HRy ?2@.@H#@BDisk:@tEy ?2@@t@Ey ?2@@m#7hv@@Output to@Memory(@NoneS A ) AAhACAxNmB,snAA-B(BABqqmmOKB snBlBXBB|mmCanc$8IelCsnBB#BBmmSaveCt CRC.GVjCfTab setting:D F CCGYjCText buffer:Cdd D6*d CDbD6D*d CD~D jDvDBackup%9FSfs(DNo#DYesD7d CEDEV7d CE&DjEE>Auto indent(E:No#ERYesEDd CEEFDd CEEVjEEEnd of lineEWrapEStopF.Qd CFZF.FQd CFzFj&:+FnFLoad MonAm(FNo#FYesF^d CGF^d CG&FjGG>Auto full-size(G:No#GRYes ZGGHGWWH"FdGGH GccBackwardsHZ6 HfHBA';F0)HzFindIZ#6 HHj)HReplaceHZZ I<2Z HIhI<JP!2Z HIIGI|IUPPER & lower caseIDifferentISame ZJGIJJP(^ J,(&QJEdJJ|JJccCancelEdJJ(KDK0K KggccOK ZJGKl N4K LK M(K 5MK *MV ZKGKJP( LDL =qGadL02n`taaP`vnC@d0.Bg(n"d,=@\a0.\~aVn$gRG n h:a gLNuHC JfC0 np$@/,n(N,_LNu/<.Va,Nu/"n ?)$?)&p0.br2/,n,N,_aSEndzn"c:."RECtBgRB`JBg/A"n 0/,n,N,_$n"d "n |' g< fHCBCHC RC `RCfNundpNun"c0."R@NuBaBa@gHpa0L"n <6i:SCSB/,n,N,_p`H"n p)?pa4L?i>6i:SC4.bnXSB/,n,N,_0`aL2):/,n,Nt,_L0Nua26.VTC2):D`a 6.V2):`a-La 2):D` _H /"n 4.bH(nX6.d:.$RE:SCprNu?(n<.d n h>~an$g,RG n h:a(.*g*t-D*"n `8=| P"<.L$</,n$N,_(f"<.J$</,n$N,_(g`A"$v&/,n$N,_&f4A .f(=X #XXXXA XCa"/,n$N,_Nu0gE tj fj RB$j(f`D(/A/,n(Nv,_A"WpQ-Y0A"n/,n(N,_ _Jg: n0apNu g"nEHr/,n$N:,_L/,n(N2,_NuAlapNu n/,n(N,_ n hV/,xN,_Jf6p n hVp(/,xN,_ n hV/,xN,_Jg"@ )@g. g&gg/,xN,_`x/)/,xN,_ _8(&k&/"n4L n/,n(N,_ _| <Nu( f*a4 a,/ h(g( ga a` _ n0a`/"nEp/,n(NP,_ _NuA"P nNugHh i Aa(f8af202`?BaFgTONu2SAe AQNuAaXJgdӐNuPPDaD .g KH@@CRaL ne-H Nu"@@D@@ N J ;QNu"LAxz|er < fPRENu< fn 0EcS@r PREQ`PRE`H2ta4r a LNuHr a x2ta`H/r a d"taB`&<'pfJgJk f<`P0a .HA QNuHA>(prRdؘJf Jkfr`P0a Q"L&<p`;B@'H瀀 < "<,xN:,@JfPpgNu <r/,xN:,_xg-@4gnpCA/,xN,_x{-@$gRp!CA/,xN,_x|-@(g6pCA/,xN,_x}-@,gpCA/,xN,_-@0L-O<-o@B1 KdfB. g< g<-Vg<+f*g߲<Sg`a|dt#`A a<`g< gt0e< d AAg< fNuSNug < fBNuB`J. V/,xN,_-@D-@p/,xN,_@C/,xN,_a aa Apr/,n(NV,_"<Jg".-AHA!A*J.gB!A/,n(N4,_x~Jg-@"@"i2-I np"@E?T/,n(N,_=nbP=nbT0.d n h>=@V n4C0<QC#n(A?pr/,xND,_Jf|"n p/,n,N,_CBiA#HB( n4(6( a~a Lsa=|Bna >a `a:`& jSZ cc @@@@?_.$$Dtopaz.font  Ha"n44L n/,n(N,_LNuHa"n4`pgaazC/,xN>,_.n=CRrartararu`Nu/ A/BB00"i _CLBr/,nN,_"_/?)/,xN,_6 gktALSgn<fdCxSg&CSgC ~g`DrH<?gL< fg0g`<EdAe<g< f@;pNur?Nu<NfgpNuABCDTSZ 0123456789@A0123456789JnkP ng ng H琀< g* nL n8fn:g?H8a2alL NuNuH"n )?pa<"n p"$&0.T4i<6.VRCPF2RAi:/,n,N,_p0aLNu"n /,n,N,_NuHCA~#H(#|$3|B)B,/,xN8,_L?Nua, n fNuH".^$v/,n$N,_TLNuH?"n p/,n,N,_20.XnbnPeZ"n ?)$?)&?LP/,n,N,_2"n A~p4.Pi<=BP/,n,N,_20"n /,n,N,_"n p/,n,N,_L?Nu4SBa:QNuX/r/,xN:,_Jg/a$d"_ /,xN.,_pNu pNu _ Nu"</,xN(,_@Nu "H/,xN.,_Nu .g"@ !/,xN.,_BNu :X/r/,xN:,_"JfQAe e` @ -H n -Hሑ-HBBPNu/a gafA0a <LNu-H "-A "KSf`".fg/,n$Nd,_Bf".vg/,n$Nd,_Bv .zg @BzaNu".ng /,n$Nd,_Bn .jg @aBj . g @aB Nu"<N/,n$Nj,_A0$-@fgBЀЀX @C4'< g`Nu"$</,n$N,_(NuJ.g"<N/,n$Nj,_-@vgAafAag, nvA"$vd/,n$N,_"/,n$N,_AaglA"$v/,n$N,_QfD Bf:pЮag.-Hz B`b"n )?pa\a n:( UE`at&`l"n )?pa4aH<L/,n,N,_L0p0at&a20."Q@4.2BeZJBg|eN@d0`0n46NqH"n H T02/,n,N,_L?Nupnneng*n"d.=B\a 0.\HGmx,#/Z>>g{ {ğ:3LJkûj܆,C'E؎g΍%pڢ}Gd*D<] #"\eQp>T-$d<[/$<<87vn,/it^?nL<>XϞ]ua׍OtT"hNx#sF(1b ZoH5_5W Q$@")]Z@0vJ}!H-8#87 WtF^̆*:&=|AAj̡BZta1J|O/xѡ0:U*P snHdl+܈ag NØ7-^_`T2`_R l'J2{}WRSsfoU@@Rjbo>(Ehj g}o+[x&,llm#3H bcSSN峙g VGZ`e#.CTBYc;ӟ "z<ij/Z$PeWX`jL7qF덴.CX'B132doM-({@H tU2(8W hhQ&WPX'##3{|Mw.CP+ Ne,,;;nkIx3!ʀ,eSqw+Ag'%E`R"!쭠AY5`d"AXw0X4L".Gڐhx G/X,TrL.GWXx tTP;%$$] NNg{2h:8tlrSoˬ b'w{ڤg2\%Whԣ7nUS$xnH();!i0AD4"(pB=rNBORk;H@H "tyHtVE{%rW1d~#dǼI%HW y~ Ec ɭցsf~zHc]h) rD4*a@) i=#g ?1z3;c%{E~M,tKpNVFM)i~"O0 zd.?7P';d*Nv䞬e=Z@S{vi(Bla&GP@zT! )S* { z L j.@ a)0)Y&k2/i+=I\D%0k<΄8QZ]&ᬚ8.'(Љ0EMQ2riBf= IA(Yx lq:HI$1 (3Ac~YrVpΐMk3,p) &H0 h"p qAp#.m I |@ m"ඈ3o 1 Xt^8pGr)cTrr 45IIS[QNs ?@  pP@./ (  )0.KPaNOa0 ܑa1pz@)䌹dZփ(Jlh(00'&Ma0-Ȣl.U#h^EDVELx-x tTP;%$$] NNg{2h:8tlrSoˬ b'w{ڤg2\%Whԣ7nUS$xnH();!i0AD4"(pB=rNBORk;H@H "tyHX/hJng@Sna#La!`J.g*?aL@k  fn$g"afRG|a` |gRFat`faf|ab`JGgSGaTa|`BJngSna"a `*n$gaffRGa`|a`"L  fSa`aNkagafa gSa|`< g < g< NuX`akaga fRaH`!c< g < g< NuX`vC a"`xC` Top of fileafRn/ (na-L(_a!a`>JnfJGfbg:.$nd$nSEaRa6QHa!La`:.BnSE8aQ:a Q`/ (na-LYG-(_Nu~(n`:.$$L8SEaf&Qn:SE$L(naQ-LSD(J`0S@Eg $LS@6(naRnQ-L(J`X(J`$LrR  fb@a>&La Za aH:>.$a>n$gREapgLa(`a`|aa?abL@kr&IR  fJga aR`a8-I .g".gd Pa `.QJf`a-I` .gJgdNuC Xa `~ What blocks!aa/ &n".a|fTa `B&.ցBP"_e"gd"K`(IaZ?a<a `apBn a"Hf&n".g.?pZCTa$@0@Bn `a8aT&I".a f nSe``J ga &I". a f n `a".&na`aedC`Nu Invalid block .g a/ (nax&L(napa%(_Nu/ (na^&L(n`/ CPPxRD ) fI`aa n gr< g&<g<g6<d<dH< e@|d??a g jE/ a"_82A0A`QRDRFa< f ?aav8?a8`dJFgL?ak,8SA@ S@AXQaSD?a8`*S8|f|ax`&W[ g tRB  f&W L(Wa&L0R@  f|dS2SAa(Wa"_JGfSa`a,Sn-L`SGaSaD`X?ak8  g`>`8`?"otRB  f&o2a$(oa2(_<f|aK `Rar&IJ.g Ld< g< fR`aHf Sg SA LQ/ atn$gRGava<"_aaZ`Rn/ (na -L(_a2`Sg $ fRNu d  fNu(@JNuCxzREfNu< g RE< fn 0Ee:Ee`R<Nu8:DpNuH xzf <aZL0Nu< g< fn 0Ec:`RE`. A\\JAe<dAA00g Hp _N`C aH`Command not recognisedFxpFRf,jpFR!NpZ8j|Ix< g0e< d AAhpNuxag Nu`'F.Nua~fJ.gQ`aftaflaa .ЁeBn ala`p/QPa (n-LBnBna"g&nSaf,V 9}3+`b^ Hׁ$7"w.2}N6hs+0&&I]P`/`٭  o S|3ECDFK2{(^!{ffZBסhOFv LX;m>~쵊~#&`Iv t%FB]!lMhK.l/@NIZn{ g` .V_\V!LZ@vbdܿن/lGdC7zfj7,{@c천ͥ;nb6:d؞2L[H^ ȶ LnLg -Bbj/م\B`Im阬G.m#k捶@p @ұu`uNH`e90T$C=xf?h1`!L1$BeyjS4Q{javU5-Gk"4nPtaV˚o vZk%Er`s>co;Z< #}< xi%kϯ8kQzrՁ E\7k胇A~WK]Xψ3!P;,:Za8-}t\s|4.áH8 %~\N(rT TϠgum9si3'%?OzE$jT= A" J$U@J15E2[*SiTyEl0w%_}*%-D{u\DdlbAjxrɀ[{ foل[H6S"赳l ! [+!ht."@#PswR!xf0#sЃ ||ZSͣ'*Q4r@*coQtLqkį$i 01-(%[V[vtbS֒pP-YȖkd1 w].!dxvk?bLa]JCX!(@n-C,Ld5o [4J CJ < ֛D4 .0a 846]x& Wָ ` p 846ڰ[c}!vo] JdhO@;}sNPΐ@ Aj@ dRR:򃳹Yˤܪ|;?_HA.&0l_CA0)pfmI^Ġ.(s3P(wQcQ$"ܥ Ƨ9w56I v}.pOP!kC.9sh:S%MDž/,xXlDʹKbߘlzϔFbF{ Bȣ ^r|{×RlEI_ڜH?Gd2Xl:|tck·.Rc3Y-"a_k⻽$d \$r.Jʶqu> ¯%\ƀK&7+Pqa<;>WIr+Vk`6iq*e/Pl"ChuI@n1;d?M^hBrlݽev8;Y_&dS劣c]?' 7FX)k!uxQ'ci'60vA_IFM;4)$Vxe.DS\;Y3:H.Ql#dڬf<H1btg]VdUK)v*D#j)?Lxrr\TzO<$UtS?b[dآ:Nt0*.yr(ȫi"0c1"JOc`oG2N7U.\{!N#6]qO:"Qx Uv^_td NvInnn$xېg[iE?N 7,/URGNbJzL+wQF@e&+j~sLUM?IDD$<_IN$1JHU֮0;VbdQfUw1\L~ߥdXge5ٴEytHH =?vWׁѤosQV5jqRtF=Vb#42ecHt eO!S)$fj"/VK4m&ڙSqiy-'Fly&-].B[*${65KfMZPUc*=[;ؕUDN J$kEBuLȒzocA$茩8-$9wF ȁN:Z-1*t^do;@u*-yG(OX'\Ͳ3I4eJ>eThΡΒmrUOUʣ Y'^\8 TImmgs\;UsdڥUi &NZ =2IiNdå32*MຮJ6 TKpl<442GU{Q{%Ȕl}*b̊v$yq3"IRpt f^{@mV ݴ+ؔcV#UI&eJ:UR`.;l2CrRQAd4U=0P%~\4(tdCޞ(م{1p;-n7h]e 9cre4)GѪ5pBΒ5!g\aIkVVgA;i!35}jeS>@:c6d+Nӆķ ^*|4"K{' V$}V1zuG]{q_WvNt J_2b30%&(4'~jzxqmN qfTƖMxNOlM9Ğw?NX7Uϓۖq54t gyACy?]G6*Bl;!?B_#Ubkn?@- QR =O |u'`Q[тRm"wA!0@L:-1m'c@9u6t:& "w=~`:P}Ix)]A(,SyԠ7;`]pOz0YR`S+,. 5[H)T,^C[ @IU8[*r }$E-0-0-Ռ }1I8)YqE34?.L&%ʹ+שǽpLlAbk3}w6R?ё,,VK1,d0p }gиLooom6 ub!;tPݐQ 41+Bȳ[n7I~HQ$YV!RBoHF,/\it R?Agq>%"^;۩&d u!rgW-R倭$ JQf8pa;e Ju)ϯy0pB Γ6dea:;.[6~!% (mrBUuB?LJ[dl2i;AX`.cDocJz@ClH|fMQP{ ݤX0p-9KWo!}Ņ,I1XX4EE/I;zIk͋^^@JzB8nvn?4'-S@4Lm #Y5u%᫩5}6xA񆮦R ahlߍWE8d%8ZL"0Cd4| @7Ƨ"Y YR{œQ}顲ži q\Xյ,>oY `oLlb@i eةfw v *G]d7 `p { `2dS&Ãp&w h .D^n0 \r-W .Aƒ0&sPy0!ABp eaAB.J "tAR˥MJ ”NARaJ6ARt3 Q`Е* AJs̨; QB`j9LmAZ32Pn\.j:4h0 F# AFDh5~<%Z´T+AVSh0 V,fs rիAV9r`: t~'ANs2)~/z 0 ^S0 ^Mz K0 A|81j`.!<`A|*0l`(QF bjrV510l`(QF `{410l`$I& bL410l`$I& bL410l`$I& bL41`,Yf b510l`,Yf b510l`,Yf b510l`"E b,4X1l`"E b,4X1l`"E b,4X1l`"UV b5X1l`*UV b5X1l`*UV b5X1l`*U6 bl41l`&Mc6 bl|1~s`&̓=6 bl1{`&̓l;c`n]1v1;c`n]N1v2;c`n]z1v 0[cC߇18pc֡kY\C1 8>hpcءC1V8:hpcS1N:84pcS-N:8?pq4iSyN ʜ8=JpoiSq J\1Ipje_d#~1LWo@CI&wq!@C⠇A9Jv4h!PC0! &B5iml'_E7[n,!C6"D?qb!DJD7` !1CQ6D0ڈ~t/ Q "yj!TJsD? `q1 &bD0 CyYa,!р\"bKf!LOM4KR`5q.$E#E0 Cqa!^LD0 BOS $?IF`a 6!!BE$=Hr4)!RCl IL"Y_’}!RJIR0 HSpI`fviH`.?) RO!ZOͤ?IJ`Ji7L 0 ZNs0 FCŒa%L. "2kc!Y"t«!VKSd? Ɇ`SYҲd? `<9(L'&ɀ^rD9r˧!NK8`8Cyy8LHo!KY u4.yد!CѼx(apP _b }0 `fq(nP,YC貇e6(mP,YChe E9+(uP"ECh%*DT:uP"ECQ*DT6mP"EC芇 b*T1cP*UC1UbT9sP*UC1UbT5kPmfw*UCUT5xSP&MC15j1cP&MC蚇5jD>}P&MCbQ5j2eP]CȺu"E2nP.]C(u"Es1.-S rmL1jz50*aT驇Q3 f:}0aL֙13z3+k0ne\"0 \?p|p. \!aD,0 $` oK9>ݡey?ږh)aS,?X2T)aR3,3Y`0{K',= Y`Е +)LҰ~eaȳ0 J0 Z-pXsv.kU-aZsE7`:Lãe\"6l0 Fefxn1/ ֶP+aV͓El9`[8y+eـ\"l0N`. ;+Ls'fLT0 L`vo0. 18cp Ab1b98kpQØiG b<8}p(Q裇iG E68mp(Qè G 5=J8xpIÈ'"N>)8|Rp$Iè%'N9)8rRp$*W bU\9spʪUê1W poA5\>cpǪUÞ1W \=cpϪU꫆1W jy}p֦Mڛ7 nD;cpަO17 n8ikpѦMƛq7 57|p.]w4Kjp.]Dmw %3kpp.]Ä w %0Kfp.]6wyZ`p/B1b;Jb` I@ %QA*Rž AM0 AO0 `/aE9LRt&^Š]0 `H2 b0 X`'I#%6+$c_"$,c)10/a{L.a{,"1^`@ E }0`#@F ;>^#=:,w0a@ƁqT 3iP0 a@6q 7hw0a@r]$ti$Rto 4jQ$iˉ0#jO,yxp@X${뒇;/bj.9xhx:q誮=`fg# ,!zmBxZ %PRvx^z/{ URC*Y2w1tG0$l83zbZh ؃}'W9Ra%C24Œ<~Ϫ q1rۜCW[#e9RŸʧ#`$?{u(cA"*:=5qq+Y>3H+>c>tCz= DG'ț=Pz TJ#>0YPT7 AB: h}WC#+-B6.0hVU bN1 Z6>M3OL0EvL DΗÝ\' PX?td>WK!1[{p = E:`u)1F D 4;Â@ ,GCw*qȝ&c]#(h;5t( h'8T4Ք'^&Wf`ziqh(hGlGK ᲞZRJF @UNw zQd-eXU.` -MDxZ>ZRyHd' sZ]hn\K8 $c$pt&qp*ytJ^`dz&G@¸Tt4ngA47tB~Aa90 ~].3ߕ|NL]yO~#O=$aZ%aK?D#Vhdc_C~Bp}dQºP£7|D)"8Ia`%aE^& x儭LcSC>l$B@%vrBY P Fp)`=5pQix3 vXS*TqquqU>A^Cu@æ }0LS|g[>n* u i^XK~n++.T-N3bu>@"Y R J{0O!h* eA0rPV&16pRtD00u65}v-*$F `,!"^xX3*|^P70zV WTS. hshA } A hd TD 4AE.eYHb,Ds%d&قV` ^1B4!4^š 0xCVN 2ѠGĽ}0tVP"mi/w VVHARQ!Ll̝TP#-,#'@& kF `l X wtR+p)Y9cSr.w+A띤42:I1px.\B2 #9'~,$HdnG>, L2AK˺ r 400Moz`!cE9X)C8eՅG2t YR {5I@mlYL]$dQP*(]x6L qH0Mnt Nh0xO|Xqx 8XƄFQ@!X_Vl)`埰[|R 0W4 ?8a|!sP ``$ H;P,3 cu"6;`SEU%ZxӀ I/|&a2HSETYNpFpaٕ31؍t;Aqǟ+$;~7eww!%9ey<N'.$xep6s(%1.鉿@~S*t7r#;:,-6MQ煞9*`1K,\Zty ,P`F;uH=DՇZ~JGGoI! !!1:yg Ӈ<0%65&s}'<ń 4;:Pv`ZF6Cf&8PrXNҒ3`_@GGx TeB8 (·B *ePPQMcNrȘUe jBJU+=I֙zӀGg7|T'1Յp x <%DxAT3AK(T(|Kd:654pÀdWDhD0CA~Tˁ :GDETbˮټ $iDEe^ }CyrXDAdb30f tdt u P?]"`A>AHE.$@/ Q.xsED_qd :QL @F 664#SD' GhU}H8x ̨ ⏕O&]0y;FPk(rr`JaS!%*Hx<%[@܇92rt2:I_qiI :J)%tȠ=!n%06>+*1 `, zXGxPƘcP75CPi\fb,=H?x܍h'cM᫬c4q;sBJfN6| ]""Jvl 340!2510ϏBIנU753uG;Yr Z8889 lV~>\*eе!ZPAbx= 0-(2zp # @S9 9K0<R@ p@k@UHU >@|4ij;TJx( PĠ7@o%Jx{sy^( PĠ7@o%C#Ġ?9@`"1Fc'%J1hbŠ9@|vehV;+@f"^!b0 ZR f 4w` &0 80 w &0#x 0`7o#Fx 0`7qcMX:x0 VQX2e`:q+i^~0 VIXM`4cՀkI8>LӀ'_bp5iѧN8 p7o'Ox8 p7o/^xx 8+`P.x3L/^x?/^x? A&ph `@A)LB/|7h8( dB.E`AɂL? p@`A&pz m@(_m; g@聖 S5 k@(Q1D r3 k@(Q[D b5(Q$Hܐ?Y @dI5$jHԐ? `@磁8 8p7gq#G;8Tp;gqࣁG;wp;5kF !$B0H`"D#F !B0(obD#,GO!@}-Zh f͠0 hLvm<@d6-Zs@~pCLI_0`6`P#D`7gcXM`6zm5ɀ^`;w+ m`0 VMX5`:jtՀVM8*pT7o/^xx 8J`x?/^x?/^x?bpC/W>( |P@נ~!`x!`}fz d@ A 0 A 0 QޢSD 2+聺h'& $Hܐm0 I $ &HĐ0  Mlp>i1/u 8p?Xq \.'!D/B6LT (AЃB/L!.UB „}AP'&} =#.a"^DQ$CY\Ds$A؉6v lAXb=? ` A pp&w~q "Fi^$ADH5ؑ`ATaR &H7 y5 *AԃpW!]}/:C( /')wI;|W@p^z z&G+2<<ꉐDmOOOCdeIj3 4 Q2a@@df r䊀6K#v;#@>igdu% } #V?=En#C1\rd~ϑ}HٙsCӇZlG:p @GԎA莮6,=LņКD~x0 DXF29Hx !020@y=y=8wD@0dd@h78X<#!moG!%<7\"R4`BmWɖ 7D 0mw!R ?_ח"0>ցŇ@ # 7 1wG? χ# އ65!@!C9=/scFL>$Pa2?r<7ϑ~&wFhGOQG|"@1t|{?~M50r=Q25  a~{s+#z ڇ=1@ lK|]j[,qBY= YPr?s8/PCP1->)zQ.>UH/q>(/>k/>,7c,>A E0 p q8-Zz:. :в?b}"$|Rp98؜l.; 8\fCWZIAzp[V2X x' n"jӨqGQb Z*3Յ]@p1lO8`S8nЂ4k*ZO.S`'FwlN6l΢39穙)Azd̈́pGLo#y.HGOSXBP?}\T󩙀Ga L\t?S'l w0Ux)el}8(^8/q= vʋ l&wX > #lF0l픳7fMB8 f/ju'q+?Pru0тFPHuy}|8ZLnh FzZ8`Jݯ4hxjۣ{UDxL8YQ)=?vT'1Y"_O.,N(O'vbqOf" fJOAO:pa r!hߤ?_ Tq.? _ ?@_LL xȢ5FO4/ӫ !Rp|9|:y9|_c-##7܇ s?pc#.1Ǭ>1 vSvʃFҍ\=LC&xu*NPHx?#@v'@puP[2w | A/_uA#<>P<,':D| `q#yA 8ƑjCGp>{G ˀ;q#xԇeF'6w8Azr@d]cn Bu0"7@0BdqAd` FқG^7AH&p %73A1 ~d}yC!d|]Ʊdfdl #}V5|bFG2\dj2??w [8 >tޏ@$;3oFh~x`@-<'?. !%x:k (C҂AJ2;ADyhdy #0!@dshVGZG!djC BAɤ<GHF2 ,d9#@93a'YuGT&F2XLP  @Z,<= &"$: !C`YO$-\lo(VHFRN\G>_VP1 c>PA.C%M٤)+ˉ* ()|P i3d~E\du7Hcૠ<CJ S!!Y5Qve@<|@H vDC}3#>}>k^AW,>#%Q/ `Au!p 0\UzNPlШJH1ibO4|5O&|TωNl>fKSXf`*cxHm(m\j}OU~ 5CI(H|Y W\0>< &:/`'Oo`Α{z()-= egp@ƨҟBPZj`)؞*i ghh⒰(0  bQC>*|@N@s E|@m< mLhO{(08F0^xIp m,M> [pXX%fDL sL9@PNRXWrup%1Zɗw*dBP))l=iC;s+̝+fqA b䯥ΓFyQ+a +)[17U\^̔p `P^Y@B1'S7SXfHJp~rbr R0]g="ibd3C !QJJ8+|Ȣr2JdRv1pT;AX_6bb̞T Q"KF6!I,r59C2WjJ4 \lD| s: 26\PPE !AAAAAAAA @DhX()@CeRU!}R[$s~FJf>EJ@!RB!0aPYNAD,K@) ϔ)*P\0 ͱɱ_ |.04@bh9 4rtDO6Mc@x *]bT ۔ PkDJR@JT$ڴlr!'<v$r0A*Z'P@Q&B:x<8;&8D0xC0D0xg GO 43`l[,{,{,{OOlsK[+Gk'[;g{WG7w?+9!oRHXaA=W+ *@(@K@('**pw 2?* LXFfL$  0@? r@#rZjg 39B0uYA@oA9999999dFAƿ@uVӂldû*a:u[.1 I <<Ts| p(!!4lP AX H(%- L!JC/ $0XG`R,(J#*#3 +;' EE@V%v!sXEemK!2/ p&H`!8px-AΙ".@x zEE?&\_yAmO>0Pʗ 'W$r jZbA9/3ϰ)S^70c3Ekq2Xr1GvQ5Pҧ?d=6څA:em&EUc?inUU\02 u%SA6F)|OUbv++JMQ \g"lV[..x4B{eC:OոD| }ԃ٠ƤRO9W)}4׋R狼3A5Ɯ0s^n`Ay~>ftKƒ#qW-w!a<5<}7d>-o$_z h/t<`@ u<'_LK u࿇Pu;pF1Y}-s.xO]A#^ gc uP( Bu'9뮘]0``K_j p <'#UԌ 5ʎP?\ O ׄizǨyb};^;RHA'(.cq|F<4ͼBy}Gh S? 󝤏 K> Et+ 0OBvYp𸯗vA"3MYVe;"*XsF*Iv MGBo[/,AP~@@hMP~O|#M>!~fl,ra0BC|/w]8`,7qTrۃp6?ڡl'7'o=E:К."sX$.MpxC~=x&A[p%C L = B;怰VjObˆJxxSqu>L{Oqz>40?}ø>'GG _#?vFxN= y?sh?@#60?#<ϑoG<7>}F{\}#=G܍<܏`(x`|>|><FyGuApJz&}|Pܫ+1f9xGwHն\,ݡNA>y,h# b\$qQUe"lm<o=y+H S3փZaY PKIэ :-ؓtɥM<$P;t un &e? pzGLOPd4Q8x| byMR8G*9&TRh!8Ϩq)iv o#<>6S.E0AQ=/D-B,, c4 l9+ oNIҊ+3V"X̓zH>o# ´NRXpHzpB(03C+,!&Z5 + tWۼ46W&?Cd8"4apT5BLbmG0S<ń!!H)3#" A`lv-n(b0zP0i<.r`FNJ%NZ PDz lh82*,)khc`*!B*gU ) ΞF6ƽeDץPeGF>C'[;QE 2*i :|x= ȟDS]YK'K~'fa)Sb3<')=x*|~& C =I&` P> %6$0Q$@xz%}FMs؋U_ R7[(zye*5~(yQ1 ?^r!:?^~ N@71NZf\B~;3H ApCŠCpu50ĔP|pzzyG ؑ%H:axW .x* /}ؗ53t&lLꍄ2{d؄D>?&0HOA"xkC@%*#=͉ B6 L_B>C:G->>7LIG* G.$F<=m'™1']=ɶd^z9 ěf đQ mO6$:TY7`RL FLdAzX:xGNV.<D0S-+-hu>X@ߩ4+@ ^C}tI1Ԑa~jNP<4&)=!ҚԖ`& j gB:.~5PMNSꞓ,,~5hO:0,Sn08zF=vo,.>50/=/KPSFc$ ܏yә%MB O>? '_fLVj_a}˫|`y$\P}YP]\}-x' bFh8uя3YEdmBfS5|c9Y!`4=/>x?d5 rz4+(? (pd9<>D (_y|!hq_,@=*_ ysC6#BE3|!guB`"`G-:8+> n`?_ܚGS:@.p8`{|:| BfdzD>t=~qϾEs~>Psxt7O׆h基b߼@o?t< ]?hc]CY=xcES@;O 2>$8%Vt&+=D hՈ6܇^f y~z?`r> 0?b_$vԀ%r< _?0#ߩPfW)o;]>^ ?H  $y0?_ 0~|=_rhm#xzmC 2JK_3ǖxy~ A `o =wP:@y0\_x, c8XpJH}g /P_տ?` yV'XM﯑ytHȑF "E4<l(٤QH0 XGb66`s\J1dQ("QD%FR%\J6vq("QDGG!RL(*V]",4t(&QLڙG2eʳ0 L G2+NvjTl.u*U2KTs/jj!-QڣEFj54ѨQFGY5j3pcQ֣M&{J}+QVݭFZ*j5*xu'QN^&- 'Vـ\u;0Q^ǽGz5=+tW`/QSF  \j 8j4eThhѣG!FBE0 QSE54mhЬёYMGfZ0 ţFV%Z1)e3hуMGI6m?l7h.џ]Fv:zRQH-4[pWhݮѾ]FA:?tiSȧFN-:4u` KFnUs0 WF^I+O G>}0 OG0 OXGy~N4h1Hca&8L|0!1cFSI4)Lq%1Jc2e)S6Ls1c1FbSDf0 gf>pu'1Nc*Y9s;ie'1Nc]y0{n/1cH] $1(,oX֨I\59js'_h{qU#:c8`q@sBu1*fT8q3Fvf8dq㢑ɦ,8qXE2K08)pljL)"t9]f'N:|U8*qT<%/8fqɀ\gmfqLh&+m8q\㞅1 .=H\pиөqRT!Kʗ0 RD-Kʗץt)D+ծ; \ָ#qFn1g#qC#n< "`8[w= z'qNp`/{W`ͦ.Px̀r*<|x(YIcGYO: 0`/(l1Bc'>0'0 uPwG|Gy |pNk|gZ0 8`TpzQ4/ 0EF eX u`?:]p5 os'N8xgufW4.xL뗀1x3& <d$0 h`؍ !#CYIy~`Э7 +GDF I88J8`!O F#VEؕT- 49J;L  |~{:#g7o]b\| <@ad^,{pPrNLIo!K~K/Oe!@, @^ A *`@6*"v@WD7pYYTVAI^NGSw@]],],){J-4p&72t2t/CG=@p5" *@Z qheK0a*8?G*MJf0"/EW@FtPk%AG,T-%FBbh?-Aϖ:LNR*jPs2)AkK 2q?@FYNYWFta`Gp@<^_{d` RvI76!mO¸< ςv;!Odw UKgNHf!!FW#<N^0,(1 *xxi\BYq NYuu$G4.)oLeҌEnd`-D1( Ptx>*&3F1NՒ`\MoF J4 cAQy tc`N8 N tqp@w:  6hxb@Mh!@DDcw` ރEz :,Ȱ{`"ނe j,d;Ȱz< `&69 I ' 01> 3[̌tAk99Fc.G2cGi1@>??? ?>q `($;F}x`TOc L?cP@C0ؾ=E Mcb(; 8>>`7!NE; R9 sÆ9 p3 (ScdRUp /"Cй vWO܇)>YO @3t #%y)̆V0| &4{I!ȨAi]_iafNKr\^AO`۵Ʌ2h"` D]'0:UH!j~u +D}I3XI#IL#UH:` A;QG3JE pxA25.:`DiM[ACJ@ >p]h(xgx4 4/YA!*"L$$']Rմ-1\2M@N` S@1'h7/Y@[&m@SB>Re=dI8\qb3K%0(<$ ;_as' }$7,#01Ì$%wZ%\$|F r$aQq 9{ȯ84L4 –'/~XrM`@797f@^ NJG_-#~G_ <僐I+f*c ^ AGPn@̂@79 ?朁\z,?J*S 2s /# G #2 *OS(itBH:?>Nq1q]SjG`#Ϛg9 3lJcIt[AWG$G:7 *ؙA|s5U'YK͐Yۧ\]LHq7F*D ȹ:8JbGBu~J+ MaBl}|X@;AHSEFJӈ  w+20₃ aD-?dUFATl< C|n&d~|9 _U8~s!2c80ϖPXHG\Tl#|*88 zhz\sזcwx rdqߑ Ay5IIiv|@,>9)~,Tdap@2#$ wb(!oԎN2v@2 Gi~ztqĝST|XqaTATPFiIUUaqy @52<3 jspP@9dC<W (3*N^L(wSe~xYFRQ kc*bk ZW Z|P*UHJ~ |@23p; `IPAFj|*.^(  @jN 2lIJ0kFTgAp$!aZd锅emLML-MT4TVURQ 2^X yj@m v¨s7^ D ƈ;,eO nE sI4popfCŸW%D) vSj|x)%Md5y~`&9' 0@I%*(dm~J:I91+L{bA=M'p o04;6$}nV,8XlT۩fY]j=0 R⥆K FV0 Jϓ$<Xq-aZеk 6%3XzvmaF`j6l2heb28hp͠Qc&x8|p(Q죆G֎1 8epI' ND=8`6p,Yijg L6pάYdg >8ap,Yҳg ".\6`]2. \=Htr.+w :U=kWp.RR <=x{ӗk/ 2^<4xtr[ o>d|}0 Gü_* |5Iy' *0 '_5|`p]@$)#VqBe#X p7!`88`Iܒ =U5 u@&1Eczk kA%^(PE0 EP}0 ER f NQ@.@Ü*8MS`88`pІt!LF2)_RX%8[p.T X#GV@O BR`_ppľHĈ10 8`@"!I8T3g~)A8`A88d`np$@L99 #v|6h3" H@^ 4!0 b3 bun@ ]0 @J<b(PP udbɀJCFy` qP@8ʀt*Trٚ~%PƠe@?o&Ld0`D6Ɂz`e0`Uf`g.\mp%;k{/p=@`0f{@fP̩R̤&qZ@~4'a]2 29@eJ,5hL@c#F 0.V X'Ll/)X :s&bS'N p%5k`W/^xd? uP@頁] D2( h@ӠA V3 lt@hQ 5 j@($ H\;I t@դIyd7 aV@ƬYɲ;d E2K aV@ЬYB 4L"p= *("EH"(P<mUB.5TP9ʠ~@sn*U0T JP4{@*U9T Fh;lsCL/4 jh;I`h:kw@.I_*й0 ]t >7z7B qB0`!ɀ]$03h`t0CL Fu07j`w.y,XU8+`hV-CCp5rkOH|e0c ȠAPʡB "D>aR $AȃK" D1| AXб$b"ATH>J~S ALw2%7kn ۮG)]A\)9r }1Q`  D(4P|!Aƒ)Jb(e0 RpwPpԠ)ARڥwP~AJ$*T$>Pl/;* *T3{PlmAZֵjR)t4#AF$}{#Aƃ4Eh? ~ՠ+AV:LS$#\tD;0 ΃(z2:o֯A^ x )\ N`ƃf}0{P` ẠFΌ%40l`(Qs80b`I& L'0`lY0f X;~`"9 Hxm!ZAĴui2=+Hc#!FCh 2Ld;xՑ/5Y y+!C(Q D;(bP G3y(|2PYCH%Nk?T0 EC.fy8eS/a0 UCAUPfMCo ]49i`[C"m v-[Csmj:Lt3Ha1#C=z0 OCr1}L/\ u6gT0(aPòC =`w# F$:I`Pf{t0vlaX~9c V4Kd0aX3%4KyV0aXQcr;ŬaRj&L9z{0۪aTXqʘn0ja\þ&yۘa0.a\ȹqsZ=5keW1,/s &4`.S L!aBöAK ,9 Xc%aJ+"V;KXuְ-aെ- *6l8hf#aFs Au8wp(QxG 0 Q9G%;8cr.]' ND:I8tpIÆg\ 0 s\9(upvtupj㙀^\? |pj\nMЛ7BnS0 Môw1yNE7n8˸zpt.wr<{ϡ^<0xp0ȡC<<6(xmaCÊ e<hш##FCr1$: rS'N#FxL>$gpH A#G %`6FDLH(# G$I>$~HdI!G $2I:$qHI#Gd%7K$dJ/dI,Y\z-1%`GdՒ0 E#GW)$R1XxH٢G#lR5cHԢ#N& `xGTZR3yUHĪRY4L4hdn!C#LFlm>s#W#^Fy\y47Iy3ʤ/A/߂|Os+tq)qP @K)0@0/AAAd!LjcG@(\!0NH l?? > F@ XW4d,:h Q\ c|i5_ $Ed4_/K5*Ռ*o&>GhKL+4tpE4 d Y%QbBpC 1O``N,UH+x Ȍ?2z>yjE:D]e(zl=a0#rBȟ!95 /an)JyE bB#0C~P<tc$/B&PK'Md   XA0$p"8\ gpg@PSg <=x,pH>9p?&1C 0B C?G@Mq#tf0CWLO0@+x=ٜ-ey>@Q1CE A`G@n<+s@" 1(CѾ4ОVeR4ABI [(~ [e5#}`f`3!<0 (<(X'A"ce@Yʀws-)(O(<hb\_P1B@<Ҙ2 ( qH2ᄂ fSP|D QlNo/apU"o0zUv 1Z,KHAH494?D$@'%^34(.Ї\:&sCF4q<"9+at=B/m|;0XʹD`/.hm$J2$&NT͇7x ED)  K "cIe Y "1`A4KL0d CCg*11ElP2I Rb8J0>$1P # bp@ AGÙvb`3^ H FA؇Of܂@C,Oakc 0%(5q@ &8 #  =)@!@B$T:?xP6Ky(aC$4bt44z~~@a l xԃbLl*@"9C:]x_b)Kкa!H)YO1/W* f7^x'0^A  VhJ0BhN1 QdkFJ-1'`>qDC0py!TG2AF}LRN&_xXD: Yޓ'UƐ}\(P0/z ,@M0 Dq @2Jrئ\Zcp0%-xy@qm\Xp8w@Qq$ H,7 q6@YS (}P 0 Mg5{&03j`t6-Z\}2tW(APJ]3`uAJ7gtd!XCxXnb!DCQ΢D0Jj!TC`H;utf!LCeq2L.!C $$?hI` 2U$6IH`!Cny{#!C2d0 VCLv tS/!^C[y j?(rPP䠡AC cEŠ]2Y(xPIL37 (e2Plɀ\Ք>(`زe bT0h~ `PjUCتQU7 cPoSCHm J.qP0 aTc L8b0D*a|1' d<2HxbPdX#\G`Ղ1(tl.Nam0 #GQ0WʡR#">Dv4R#ܔS&wE`#hFh3 Dk$]1VdʫV&Su:`F8"q1)m׋.x;k{/^#ԼG s<R<ؤjHbU!Ti5sH9_2;doĜ!C#ALL22 do%9]5kdx6ݣG#F9`ԲAd 6 w1@"Eby (zu@D/T LP;Ir`t 1L0"F  0?*`~TSLXD:i`bKl, Xt5`r%K, VX3``⥁K&( -E0 [Jl55`luL#Gu b8p;0 G 98p1mëW1\ bmp1JbkWk\ p1c끍WY\ jp6|Sħ< x']rx<)w3'O(< x0 |L/i\8KuP A@4  A@4 B8` (AP~B [(Aȃȑ" D|9gR dAȃL" 4Kj ,AX/b c AD$lH7yq bAăR $H0 ATH0 TrM7PoРABlJ (;iPl%AJʕ*NT<>yQ`j >Pw-AFr4h2huU.:A^s 2J0~`I& L$0 I5& NLŘ-0 Yf lq0`֢E%j,,XU0 E\ ,X9q`"E],X7e`*UVLӪU3F~tU`*UsV l0 ̓ʻv Z:+y`Ү݃Hfzkf`(/v-Ãhd85(pg!Ãa# : !Ӄ=YN L$)SWN:\ĸ6pd%˃-. \4Kpt6-[շn}4po/)n r8pvVǃ F<$xi0 `>y<x6{1cGsx|0'Ofs`߆18߃BD6`0(!Cِ! B,$1HlTmNt) )^J%!JCIiݤh6֭i]:t8`e] Bd3ye'C꾎L 1k0haÞC?L0ҨaP쑆)# .F̌0 HØ# U1qQ0aDډ &EL8x0aTL:ɘjS3!A_nf30 L3.faBÆ 9,8ZY` K X$x$4?D^Ge'*8!eQ) @^d@Tm!iGydFFG 9 Aa(Ĥ!QB Ah/cr>; QF47R ) 4d\XyUTH  ,ox;#@0 5#8H ` w&B^" /+3,ld/~O(Ӈ=~wtIP4CG;fR9*b.̍h*$Z8@; 'trqUIJjeCAa%yX탛dF2*Ȍ ȉzAߝ@<ٗGчۛkӷOף_B|Th@?lbsmMc-㽇e}u}}}}\GKXN ^}}}}d}}U? }}"O:3?׺ZT/{zzzYz{a}GO辬O|_`^oiZ#okdJ`/S?W=G^^^~ufOQ9"{`Έ0SL[Laf}D9A`xG*<]Upxq y9A)̏NqF sQ3z9N7/@$90Tே h&GDžAU 4 0 Z+vT(nj ^ BrUԝz=tz q`fB腇x^&diy(3؏B  >>T  , ЪhQ Q=0cr'UU~2@1EsX:T 'Ʈ Xd5`;N)`zUi  ! |F v`S^;<(& '5'4~~xĦKDmo[%o8a* ,@Z 'p0DQzCSC,8H=YD2Dd0+3mFLZ93m `MC&  avb$3 Lx,CG'@ p @'1 ," e' ,*K*p̂/t pd3@yo&G`NL6ZsLV{ @*Dd&9hIE/P3)&p@i'O 9NF%5(o0 `` 'A\ j 0 X`p'B#FGBB4E G+q $\B#8W0PQ"[$BR``lx206Pr \J bohV3$ab#Nk)sl.q %B 3 M@F`6‚{81V@M0%0BpH0aA eZS `0CRb&x`e@Lz> S'9H+Q| 3 DUX08X-mDe:dVLXjF9JaX\sDruU}%`$8[0X^8 3 &/ n*o$oBύMC^M.OX@ʳXz$X?x0љ;j `@^qa*O<8dψ|<̈hLŌ e|ڢ"g ,6#@l<1]0`G@dbAŁa"o , LX6#l51`Fzb(aDX6#aXrh-[$;z 8=~8, ;7ky.D=رA32!L)LadF0@RH f! `V0,3/600fX|10t@YLɫTYz1-T-KDEVa0xbϕlCG ( }>M>Јy9G$R @+4A?yP^i`M2W/P|P}AXȈTWOW @@)/P@n]J0dĸ z, / c `)yc-9D @0׀.x0$l>*$^|o`-A@(Hd Sz@ 32CC;H$l#4 P@HtY! dj#H0!k?@*͠!fKØV,091 ?ĐA(@5DQ$1XR2@Dh$0bK~HE @V$C 1 俌`i)aY< -rs@$`-E@J "(5N B Qry0p0%K@isF>i( h*W1˂P_FD RM\ˀ$8VQDX 34 AA CC>54 WQAׄ h s 1NA0+P%v7 +|qHPu !A@=AσG*GH9}nveybDXbHrQACD 20a &@ $(@ Y $ @d'Ü'5EN=rr%$@ǹ:4!8)9u*o`搆WHCa_A Q,XP% @rr ~!@X;7C /$(6/z'& $U޹71P.I3%aTp]dp…?`̘X~I8~ &v"Cp/@S$8:Dy 6V: O× y2 Foh pid@  (!  LGa q8 3 J>E#mZ$ H%2 S"c. ;CPV@W0 C(L(iGS2 I!LR:V8a$*(`0Y=  O&%+2a@ n`T008 c9 H9E`:2Y4)y:?E\; k =wE)" CѨpjLlbRH *bOf8'X,au9tpd`1c)1?,' %MTqCp $6 CbP)Hob@(k$a P^O=~gNa?`m`,ף=IhO/B}D{B| 9y+ c" rqw\>9 K{)l/\h4k ^F[WifzqcAtG(0(ME!p`p XP0whH|@d@!` p 7-+pnGSG&"dMkhq  7| 6TROï H~Y;!ͪ9-d1FTֈ! <9%ơχ2 d!,T@B8$^ &wHC(`'YA@ HIGx)lg x=_1֥|:a/5,@T vkfpRA`L=#](p K\|Y- tMLR-/1 iH.`(Lf0Pf ;fE-ρW! B3NRbHWGRV3Vbp("/K#PEk+$0|&"* B` i%'p  Ѐ~!3#F4k&  q xuܸ%@I e*uac= K~4bu`닰"H ` *mYH "R>CyP`u]]H1D"O> n>TdBTAEp{ĺ ՘97h >+@|<*%P/(OTŅD?QI@L^PFP'Kf,("`SӀ/DS;'H230600AA:߁o9! o`B.q" J"G2@ X1b]2̾9/y7Ăc48j9E>gSސq1/Yi0w8ӆ31拃2:rU2aoBH$ tITSZ& ?CPPt#u E(oJf US T)U~"%X~ZȄ p ׀KquLPǏ, *"qSC8HDݱZ鑃}~zȴ35/=0eW/ 8QX^Hj/@/*%V,WM=YA׼4JL`f JȢ$$ɐ %aLA!BڦR$݅j@ل9@&|І %@^) u0I#A +oQ~T[#RD$|N*eEpӃG` H}a(kվDVڤE !?J!bpK9`-@wQ@cA =xd':t&?vN.d>{d|eafbd`g@c*e@a&f@b.c:%0 6p4P&@4߇w3Ah ( OSp ?l/pY$q`"8:2!:П\ ;\$Yp 4Ç!*Xx ]0VF6B[LuK A X$ R; f%I< ^(Pԃ@,vAѡdO;7 ôbG/n BFbr̽ZAbFoHdT6ds qs rT IfzfXJ(0T@3%!܏2#3$C {)zLi 7񄟇GZJdPIB:0cȀ"v&0*Aʆr|2zCe.-)e;06"eMnj*- ;+B iB@~D=`~@($`1WBAnS`:nJr80490q >z(PX L@faI v.:icQ1u;@FF:.[! i`XPrXX3X@`Rؠ I@dfVQ2SSچ|׋uE9bBU2")-hڇ?tc&``wV`(V41*#-eGDH2 D 6pX,7@Tӥp4 نԡqФAD=<X^t#| >gà&|?k ,а&!`TP-u!Mn!D qE{>M8d38D9e30: PGKDdSă^ /xu A3*} ~XE  3/ P@/֭'-([R$8!"@aYgtR \ 6$;l'BBaPh ;` % /nPEg0f >?.un9'F`حG5̤2 uNUT>9k!ʂHk!Ï0K&L!F;EzNmą*^8n`CQK 0? x:'T_ ⥟X `h!4h" ~s>Aj| UaB^?:V!8 ExD7gX L7(R[X: D(DX r T=Č P0HT4ׇ<\(<7R V`t0"biXxh)Xu$OY'P"9ff .@Ed' BDMݨ B Ph) SV. 駲I_.BtZ \(lm Y'M1 G,  C8?{`2RC@ /$ְlaAͬk5n4 A3=Pc(jUnHih&$ځ@CEcfHry$@܅pfFD$t>4 ?yaV?guJd <' g+z$OߓpY*݉v _0)Ƹhx3ax0vXhZ s!";= 5vejn UhBfh |Medc|H T6* ,H`>B XNBI~(#M 0zA-7 5Iym( "F)‰LRĀ@p\ʢX"$P3^^8 ReE@_\Ċ 9 pFHԩ'e<38r g>!5 {VV:!rmzx'/C+|Y +N)9 ֓.g܀?~3Ϫ>,'024f@&% L" `Vn@&  e;n(&eZ`t#TG q ZW P1bh`$`4h>h #Z 2Gd qRfI  s?~F ?@T#Sc`B0h8Mi*0D'#M/@Ea  %`"M ?@ Ai|( `  Qk߀K9 6 ^>jIkHy*pϠ!('1$B2ppwO222T?r{|)܃p#~r>g;tn2<E^Rh xQ ("Ȼl(PԞGK\9WT_] rQQjd@e$`?P"4cpCD*9|%A#nCW4 wr9Q |=VT@9 YސB^@ (.q (:'r#RKvC A8_ǁFFFAA@/'2{MGorPw!90poK)AdBE+Md*2<@ Rc9 dļ4q#D.Nibp@(Ap<8d P@:њ}ጏ<+LDZ|z-fB:HÈYl!rA#F@( ""@hP&s)(1nX}-8;h!jrq*-J&],<8-4 lXFaKOw D:Hwo1>H)ۊK0E){hwfICti R$@ ޚLW(BD2+TWLnVkr*G* @ 3wD/i?¤5'Fy/\Tن)cTD ] 䡀%`c!~(lZ$'dIr@> p>Cb>Lh0}0 1oԣHх;0 I@+0U!#7!^ɖ$)ΤVnPGĞD ॐ̡~%6kPFڥbk"hO54npuG4|}B P1!1H`# A2%FFc f.ᣐW~A&(A ؁R-fT i.*.n)d"MǨT=EC<-^x6G@ʀ! 5* w!F8SJeL @ Mp1~cM>`H07t 30 pT$,lL 86jޤC6C̃G(*9!έ =b@Ɔh Nd(cܕH O? H?9 -cJ -/@L0t;?̩dn(]Қ]wJeC l@@ 3΁I~ P!J UmE% dĹÐ-2HHxlKȼ, cXdb_r C{BBJIHʄ"$1($ N"bg6\@`CCI!= &!rHxLQ GAAf"RhIi.Uߗ_[vt ?T q&lAs  N"dOP%%Ħ҅FFbDw4ȉUi.%  %,:c*DH2/kS. DA*>ʕ|̈wLg > ٖVQ  w'~U  @'6@Tϊ-5 d H,"CjPAG;(4 ALs9 BI 8ǿe {%Bbo`Č xl l_AvҰi;w=AAÀ$8 &u;g<0Yj6S /9O-v70` i0 A-_J8M,._&BOh1P3DeNGЄ[Kʆ>=>ˆDCAV 58rVYLNj@r>MRL Z!~_x3`y'I_ [])%0D 8PiKxaФKDCA Ӕ (Ԫ*jY3Ām&DX G9F=ImQ ͢t&Jű ?ߕEL0`QS2@.,*):@%AIG0+L3Ђ d$ wɂP fKhj(`KG'@jj(Ѵuy" y =mLv|'r$p @3,>|B "@ 1R@!d;(Irȉ.kPtѭD&.k؝-xģLy6}s(Zs z# P I`/x_(Z0nv|e?FZ*I_TΤVY'1zZJD} $8F~h4#@1 ] ,)zhLZ Z1209C!c)g^c( &i?(@cSC(W8T` @?˱m #W2Y H$NӣdOb mOe#:h_~W67 Da';' :'*я$=$o9UHL 1a'MNP^0կB < MAuPa^09lx o A DB0zf491Qa("8"gm̮? Q%N  e~3`6H`&dC+.[$IAxGC238(H>@@@('S.`DzV_ڀEHbq!X3  ѕџZaRl EVT *@:@XP$ f!e3 !e%,<( +( сH\ f`cJ1#0q @Jr6".f#P &.g$.ad+t "j % G? Xw b0#v@DvqZi.% ?Ú0kMHF| @C @b6xK I$0Q PP#424߃лJ[6꫰%Od6iME48j6zO@FL$#(1FaBeGȉY1 l@WXRT@I7%@3м{$3C$B础Ch3PPrBd"\5VSPJOdC.Ğ."/р0 DfMDw!"@707Kh.|@zJ ss+o@(;#D dZdn<i|~f oO|<œFS2 +|H?r s$!y_*Kq^7M PEҀs-1墀 ` ݶb qE: Qq% x?ʌF@sjxtǒyyAXW/BN aeP\7Q3.**< 5Qg`:X84ZUŐNݛs  R!" @w@'{ ' d+ WtoK|nj6p@i1&Dau4y`fq@_xc,óbLaRظ0Zۨ %dD!92$ S/s,(=ex+AA05Sbr4&kHrx RH0g.xA+ s7acǼW}8TS/(Lp#7!L4?bB[mHLk$S  ~Fh,F ;-3`GL }0]rљ*FԠ?0&X<nA8%0E;~ ?@ª8NfX,3,*PZA!*jv0O1xw9V=TP뀏䀤@ *qpip;Lrpi_@Q@m i!Dh IPjaxcጺt(Ĉgl_ IR;FERA0-LLe 1/J.}xF:2mE'3_bì{@p7@4N Nk9{ 1:)I IÊ18]l[d~8BN DP 0`9JЀ<0,5JJ{YN"`4<  ""OBF/G+5Mף<^##sbA?e+`?a =@0_1ğY9iuc#V"Hu&U-EŨ @D@^` 1 a8iG 9d!70-E7`w |>rn|eBxb(flŐp<$ dZr=SHu9`K>Uh`\\fH XzP eF8ؔ@HF2Z#0&Ru`~dRLfT2V1l1{d +2 0!`@ŀ.>0:-y̼I:H0b`R<0'J)Xb_)YΎ`$6 ` @ftGٲ<>i# 0!•6B fc /(n !f Q+e{N=_| h̙%g_Hx1A,: 㦟Jh?J/Yv(%EԂ ii!S1E4fD=1\ @/'|Jc ƋTF;(,T=plˋG%rkHxSQ [ SLdXjm iH"h8iuge904 (Ȱp80*DL! $,D@D d8 E^Ce%| #9z=&Ҁ0;wA Lƨ3JjqQ7vߢ c.5as"[iC2:Ha@@2Rr pM% \^|x(pBS@'d;7?H/PpP( q^nr6k~Dx`pr 2 P :"b!7`9.;K9@4ָ DhhCJ %p8[!ϸ (E԰j(OwT&x@ @xA['Z҆m,0Rh]h* Uy!Ń2-<iɬ:Lz<`܀S̼@U<ڐ%€$DWhqOb@-O-tyx7C @FX8iC(p4#7}!*AFVJ75"cCzf:biYR3SS&Kt0U@g f^8AxjOX4Y;9%Smċ㛖LcF\D%J_B k +JHz#0##(C)  ~O0 iЌ2>A PS  (Yc Z#I(4R60onT KOI,@`aB' Oo OM0x~XHă< `4\F+;Vr0@1bcTPhpp @HF!fb'A3!009 |S$uc؄qh?sHf Cy ^ D,|h gb=„U[bD Ӿ%~@!r'`[TBA>> AGg=mҠeC p $+!C, ' N:ÚY3Yc5N^HE˨*c DŽ..@0Fm'2_ٓ -@"_Z0K͢ 9 !{4XÍADg߈ H52G?AIRNd621Mc bJ dS;(^aQ%54hN{'˻FbD(Mqa2"}hY <0zK&]?"$>k[Ru9AL}᪁Xx&$;Lf0A2PJ 8r p{Xu K7}pbvhF$-Bku\|zAM\xZaOdCh@E.9C?` D?B$Q 22 ¹ ] /i"wZ K"@) pOB ABjFs!Ix=b!M$} Ҁ0L>=k݃ N(G# '$L(B ,F/&'בA\0| ke a `NgƊpSM>B|]q O}yE @vf4S=Q rfcy`g;W F==W92 'afxRfb:RYXƌc ̤gspf 4M%%:*;4vv_Q˅S&\ ]l@5Ώ*IoHȜ~ٱz6#`^YSP @ztg ~LHŭ >5xAJ_ƒ|7`fpPn-1@Hۊ1Z?&Ap%A C-h.D3 ^?kD>CNb\q)C>'Ə 、G#Z0&X)%[>L$vs0FB04@謇j$.im1< Q6l@5| z~"$B)զxPP 2 "n*L?bKQOX%jB ^"8>= < |H q''@2gv&Ѫ }s(2eh+p?[1&3 ;P(Iean5i bcw̌., @j4bBĎ`GH4pmPF U%+C:M%?&=#1PSG F ^5ހ$"HC > hH@4Shvg4l PU= 65xĄ0gX% b~uL AB ͙\A lI"A\(h( xI6S= pQ$Aٚ"W7 faQ/\D+Q(rُ_VQk"ۏc*(024(/eGOJ 5@`%ٞDqbBø3RRxuW`q1xs0xq-%3߀rI3T&3TlC3yAZ–!nB3•Ys'siS<ؑЀ~ԈmZL&V2si K9 ADq6;@ Ș$ĖPI.* z  &7~IAA=,:b&P:љRޅ(̈iJ$* bbPe0d2B# X%E)lWN$Hf@~0!a((D/ tf}p,tD>(JKV8x5(s0Xs,>`1@ yA} :#-p".c`HPNPJ fo?h(Apw03*DU?:>i~6nA$MyA+yJ54-sDmHf$Vv4rIg:Q=p`CڠE&7܄$Wy8^T!t_>-=aA(PsO ;@2ߦ1g(FqH/ߐ46(=6<@^F@L $͇#3UI x@R!,M/P)ft%t>qHBsz!kR1% uZi#>A-[h(Ľ{$Ĥ5 :D4V0)"s?"H-! x D]0A@(lxy'+:9A` Є=jƙ@^ @J83i9,(ʁ_5'X>I@@7c]ZDJP4(hp- ~fy]R_ #H%. y@(P5²?OoA)Ic)T'6D \Fas"z r", HC҂7y&D>I4"ҟP-RfjؒPT&J 'T^}PD@Dv ̑~,v40Hag{w"@asMYIfXC 49|pUOM"EX~ÒjxC)L Yw6SNФȗ4! ^J.p&x6X}AS@W!P恂JW>x qG@>BN| ;#PI,A7t' B@ɔ ^{|0Pi U5=c~]qǃ0(xɬ '80PO!مa OVxQ#i$!x *BmFɓ,\iXs0 NLO@|pO@K>`@A}8\! ͅ t vq9B~<'ĐN.&=0 ~3A‡mHN0 Y%F/# ׈3pA$ۤ AHs0A.dw;\'} 4͇Dw 8LO k@̬"Q3? ^xsY9/3Oϻx%TO:oq yA,?|lO627o??|ltO6j7><if&Ђ #C  1pYzPa~|%Y;ʺYq㪒ď>eA)nJyԐ7'~,<4|;<0|1<2<>b4IÉ&00Q^$53A tV"I`Qg#YP*lhxm="Cs@|I  6`t Vv^SL@ Vd`>1 ݲ.KB4+BrT,1V0E0fItВ-+=C<'L,CFu,@ }!0{|67aPg2)O8-0 bb zt*.b7V? s"%Q `&>>+g *aNYHKqLqɤC,] \ &#,=4 ;IG37PyP$d*AP 2"49W8e`!Vϲ'JÀ"BLl=-'іX8pGX;2B`/4 ro }8*>Qa-Q86]`BJ``I"E& !R IŠTɃ02J@VTE?h78<oʨ**TKxFlC¯c$ l4YX0w1糹$"HȆ̈́:Qݶ* LB "<7Θ7APuuf8AzzPU}(r?aV`"R8$wg?m68/P'{2C_V#\HLїA€J"\wZ=ra/P{$% >c`욇 SO'9T6A!.ayOVTO&pN*B% و(̃F#v́v~H?܇ϋHL b@=bq7g7&AqY $@Db gC|Ʌ=)J z*gC~.fF6G"q56a.8$~cf m`K[ t>b{ JWt?gzG <#7L@%(HG`F2 'mI".h4L`j@AkrQݎvyIJ' -gb7́M K u AJ#"Ƭqq=f2$1C@iS4+A@D2v,)ds4^AY\a@l+6$ BV- ly@4drE,L_!IBpCOWTbyI\i9cd wf똈jʁ&_ѧ* #~%?R\`⫐:[<#>DMxQp Dɳ L?yP _&$$ O˚ !9zjB'O.[X5A1< / @ L dA a[p("$ A`v#K P3xl$R1Hųe!< $mF]TdpwKq Q. @OŎe&B p &|L^/NbCE) % ?م2,[QB֜.QmF0400Ȓx h}` B'X8'!@U ۏIԽ@9/+~(I9^+b 90`ҳq1'WE3^s:$1~t$i3Q$ C*IWNpaKxk"KhO`$1H!H?Css~A+@4(@000``~0Bq*`35$ɘ[`& z t:l&f52JZ-ʁ`p0ZD#CF/AdF:Y.1a;|1aօ轧4깳 aK~ጒF!0$]ƂdA&Iв14$ 0rKEj1hU& L5tQBA#j4Aq$MYR/ ʈ-(1p@`iAc'˱5Z|nϜ$iMH5h?Q]()2Mu񐏔g# aD6l: O kZ$|T/t #D#(y & Q IjEJ'`4s#$e& 3fS|Pc`#}q  48'@T1P؏g 6#`>5 APX0  G2BJ)vB<+sD<vTÑtxTæ̆ĸń=y>k?m&ut0vfO?7'Qq;eC0cAѠ u HPKf@,b5>p(xD/H@C i//d:tȗ c? "A @?, @mjʒd'4@FGmƔDEhaNH H/#)qK*DVEad,,Hռ(TCb̄ S> *P`B` 0HJB o?\`nt2rq򜠛5_=6!ȱZ"&@@@,FK>zZ4̀<f@rD[*TK*@$SE(E0z!A՞Hb~$S]$a(2%M8 h, K͝q?06`Μ x~ W?_<>/0A c@ /- a\CPg,"I 'Ƞp"@BB+]A V`9O@ rp !ޗCHA6 sp0,A? ?3Ļ4@?/I(tNHoc.S>0!t\$ 0(.gduhE% #YJeI @Ŧ@lNdٝUd a z%?tT"*K3AC3+8 d:p ͬ L  @ ]`Gd$& (ЇAO E :|tkDe C5Cp,A1N@2O" ~l''5Ԃ 1!|cb٤ RFC?k?"A$P@{F$ \q"7Cddi28s+яEN+8'WhfuUW"ׇ`+@oX#9 \@nVV C 濝Z% uh0QØ.t fX&h: bA13><7$ Be8O X S?^ E  %&\ P5a; 0`/9(!)^NK8'k $$@ 9xs!ÿ.a)a3BZB!R" B0Sco$`'`m!<"ԃ.;0) E J'6n/D`8GimG3V",:''"Jd @@@\ɷѓ3V- `MkA vq$"X1v0 w@` bPis;o`*H8s`H% x^Kg@K(UǞ3=*)>l4BRxKEH^&I$ɬls@2P3 Pa( bʠ_ˠ'][߃x ], .w`3%@_dp~m |h___/나HA/)e?r{ bM-A l~F?~:l0{`+ [c7.dy *eَ?d)OgwXHlfodeX Hf#00=G` ͩR$G @0 ~"`7Y20(鏀@p0$?ah"&a/2fh@ @āɅy(bTL͊Ms3Ane?Nb¬̄ $3&>ʋ*@ HxHzbl.%}@| J1J@ 뎮 xd$; A~ p;<A3ȉH s d"2Ds (4A?_4D>`A22 0~؏f0r!fY:F ۞&߄Kv۪x_Ba1ҤA &Q-zi@j)YOd yzk@ftC ٯh,1f`:>QH|r`Dv,sQazLboAtA X}!qo`P Hs@HYLxlPoL@,@"L HsPmh# `$CDFDsʸF' <D"$qH,!FI H<φ@,_\̑j%0D$!P:~KL=DW ˰m`Ȃ TLȹ% #%lސy|pek_|CD]5Z-0z'Ht2Fֲ(5u+a@\>x BuMB?DJ2BĖ=4i$2IYTH%< x"$7 Y @")RD<@?M.i|MtC/rga @ ؄ {7o;nŨ?ؕD̼a~?m4{+\>3/B7 4i).iP)) _c`IlrMJ^lQsgsXw`w\jh.4fd@i@;զɏPz` բ EV ]=щ\2ED2ÿ@4dq+=-% 2 2E`b#` dAh {ps!PK,&,+Є= RQ%0e! kUDH0q@@ U ej$bQ`0@MD>'82 v"4xG0@GÌ fvC"szT\C[-Y-%) PmDJ s<Œ>hJ4X~AC IǨGh@j+63H Ā(g`S\bgp~o5d QP kˇV2=W ʃ&LRpxAp2j(rx1@Jmh22;a!A85!S:fV1CtCR78{^- uC 0yc896  fh93 ._oYo#qj4;8( ֜r:b bLDx@N^%>k RX)Kqq}'v}z3go-B#A(Ba!f<7$>I/8p"!-@. F` @0hw$.nt~͚wf |tPd !&13y08ʐI0s0X0G/~g 'KhriHTN'`J6@3L* n):\C  zTbZ H`ԃ N(f.SVJS x * d̮ @2)`! my P;Ԃ#G0 = WGW9GyE@$)2}%ƟJ@W $fU _@!sBI$`T|j> j%[b1"ǣ[P(C--9!fA% `Aj貀A HYBA G1P L$ w ɕ0 E,dFC^+E E"Lb>c" R@ g.4HH0 jS?݁.+ ? /Kdʹ(*za ڳH# 4s^f`H-%  $D:JD$8*o2; !do2aʒOT@nAY d`49!HpeS8$)Dޗm'C?dPH^A#Vphy"dJa &w I+M~@BH.&4p<˙N% fs?@0a0 04 ,^N^A4*@*fɶ2aВV0x0v  Yc1N.$"I^mÎ*`Ä g&qDA>y"D¦c?DC,C@̠cˈ~̃b]+0u4Xy[3ǃS48-Բ͔ٓjpTaP30zDA a{LFa(g(/k,!~N>{0݅c O"C"9+4 () `E[$p?1 Gގ QY4B[303JĎcO A` ۇNtiIxCSo}`5^*56J '$!SRlB*). T 5#0iAHhA@ab4PJ@ /;0kj m@0Σ$) *ȬCAw$pL00NR\)qE>Ѯt^ "J9`$Wʂ,47,`xX@0 ?0A!$Mt  @i1`3}ya9US*T1DŽ J`@$P"( @ a.tMPƲ3/'JpA%0(N'V(i%-IPWv-1Drua-?_d:pBt#F}~$xb!NPψ|:e47:PLEd-7X|Ќy%IJOM_Cx9f2؇@li1"MH2:g4! Hr&[h(ï83:`bFIcTŖFSǪrIj` Ͷ꤁I / Z솤 )30/L $)R\/dE(&fu0 P4z46> ЇJ@2%,MIC  ڵ?c I $eh>Rs2o 3 ؔ=2} 9)U3Q>s;GN&N2TF 7?y(R{>x}PP00M3qp0@HiL-(`T AfLJ{@09gCjZ:0*`!a.w`"[768FGH@,DF5 '`VqTD#dKL@] 8 t*u !d0pՋt?ę |/'şlTL0})!IH`̪Wd|Cb+ZH $Li<@3`FZ "$v*F[B M )LT^D/-K,!d %HBpbO00A4#;#h* :.4Z@1/A eHu! 3dNSs$E1Ho,H#Nğ@RsHJ = 0%3f(UGE% `@4aT0,55/31tnXB@0cJA L&$ `0K" Y ,`0U0#@MM.?rl(`x@^7䆺 ?hN͕|rc >+L1  W,t850a%4(G*% F  wPkR LI23ք pA$ 23`Bh瑌+v|FN`H.8&a'"4h%*:tgҀz_ tR@A=!Da H!Jk&8M&>8Ż[QC7m.4D^è$F WLesA !( .a`GoP4_YZ5c-u2h3R '[-*lJ@hYT 0so><{0EY3A 2qKBŇ`JrU`'ѯ'J# @PAwd I>,PC=\ȌzLFmܓD-3& % H2 # - ExJH~qi@"3%XB2ԗ]0z@@Q]C2^,?;f: A4g? G"J`g@ uM7\c$TQB/E$5`$@&'z 7LCl G)&E *)$8w*PuQ΁dzO@W䣠-Q MaOĊ9$T_R{Hi6a5$J@B܊Yӗp|~?Z0@@($*d~ARj Q -a.b'Kq!7f( ҢH-+I-fl><4@*@?"ࣳ$~3фϠ;<:nE4F|k*7PLt! .wp ?bc3T$"Q䰇Y2.ͷq(='H 直/QQWǀҨT9ԨyxƟ8X QL9O3 Vi2n59|0懯oN" e>1bA ?Q׌A%<~t55N^ l\Z nI GpAZ!0EAH|yPWicl1_S, FtxOM,?&D F0@?M\M\@s`<@ \\^ :$$H00Ɛl5<. Q3T 8=PjO_ۇVÏJ*n9<ZY]$'@ .Gc"k0`NI@Y8" \$7DDz4h7f).$BVH"D"%AbBԙg !J^~9Q & Qy#ޡ@I^}6} 9 !&K36^f`b F 4CYqX&"ɗOg42hD2PZz$1 rƌa !3Ѫ`A DDt)mc K|> II6PlA`i2I `9+/P;H"xǥx/#TW 1?O8`@~NO tV2 ht $>Ї偓D(q:O3㾸ApJGF٣2Q )DLǬ"@ |@qxL#"e8@Pp ֺeGcΡdI4gFA#ݣ7~p nb% z:wA@`":t8?y#Aꥁ@,aG7-39h :Dز`ڇ,/{0Cs@P >%0`*v3٠'2D: !̪`:Iߞy08ޒ2no8Mp[/WOCW X5 *Dp cNv`D"Rp49$j{>y$HxV hT2|Q41MD,>y rC"L F@DDjI(AE i4SW /hs@(7?aĀ -C񉌰1=ʦ{4ܔÞc?U@N8 C; > "?X@2</hU>U~tfWhHjb^ *O O$3Q%Lp=?C^Azp(O^JkGh/ y,21)0 k KJ?R\w ''yxpjЇBQВ=@zrxjtz~3yHuF=PDå b++*ge3 ź7lrPjTꀅ $< @  dSAؒh[n=}Y(} 2ae,CG;=ᳩ_m@7KF c?6h;,\A p 0 .y̓. b`)\ʐpld Ath&d FA# 1/710:{:hX1DAlܻ C yOH h3BaX. 8s4;@sDeLAZM OM3X~[xw@3xr@2xt30={L!#mBI`D: PJ̼h1M0dS&?Xp8 @H-1%`6`GʂFO}HYIa.?Q8wN.n}Hc#4F7=Ki]µK|!MOG>D4u$+X4? 4( e4)NCj~Mt K]BvZ -$ rt0!i;j H? Ƈgdy e( b8l(fNI0Om6lP PJEB28X)LֶO<(}.Aзd(86%8D@& `{!Tzy @ċ3% ~ {(S)ߘ;$o.spN2"#@ ) 3 -AK\Va%sߗ܄kx t6'9/6oۥ0AAސhZ.a=& ?x@7AN7-Yr?$JDJxG$y 9`jBrAvZ5@Ѡ)%8;~@'\vR\h?^Xj&$C]P A!@[`3a8" eY| =ĈA3(̈́z>̀jVM|W[}oN$jPE2 *VOɃq~~!ѽ8(x@, _LFkЉF d3IB!À>d\,4P1B(jiL&fFd@,1+gå=aaK-A"-@ mdupC k_0(&`;S<&')%6x zǒd*~Ъ$ɍ4Ҽ?MLyr (@,g @RS lF7<7Ĝpk(2<[KOx| r_sm]n/H)%(ʔ.3LmBhK~-Z] 7<.>)-j? j!AA%0BPSF0S&?pj@"UOw +wK 0# ou܉T 8 w " OF )/Ms80 f R c.6!$N6y h?a$DÛ &S0JСbqD@X338CT %R? @@̀e8an( qiH2 3 ;S#0(d0ND3=+(ENK.hMk\@ @xPC-10i;CH__ ¼׼ 7svWh1@X˚TD =J&o P& 01-;4g݈ T"gM?H$_xP@ DT JT&N4Sps6>΄H@@w$x@BClGs.b `M>FVم ^96aK˰1ɃȞ/̵M D \B!F z! \Oqr I 2 00E-Ot1]8#,fC% +5 ~\d+_QR O4|t._7 2~xHXpw}v2'C?;jÞjC@BE#>,/pLʰHӀ [D̐b0(H@Dž2Q>6y)p >b ; DFC`K gx9 `8z5:voVx ǠF-0 UK2> x~53(".3pC̈\ePo" E,1A M󨚠F1^Y {WA5g;Z(1Y* &lⅿuHp93 ppGAjs3Q)T\BJ>4 jѸ"):1?0 6 .^f JDXCQ7upMs&X/BpadA(}!A8w+ 6][D<bB|8s  |0Ody-A\2>49 ) aXZ;b$A+ (C@vKcG@jU .A!)aX?ռp3(,ꋫ~a?`%-} RO2fXoW$`0lN70D 5 Èy1Nd s7$>f 9H ozk{ h(eH 5N3l a@\֕!5dSp ̲nzI6#$`I$̾,ǥEA DWCjs.!@z'1tf |&teXs@  >A AՆPdp~H;<q5@(0&27@>3 E8$o>C=i !q( c%׀Ȅ$/`CH+4j#hD<)$Tpz Ddz, Y/@NdiY'4q{0A͝acl@=prz7^1 )IK$l? /" <pvƁC@cY:Ό@$"-V/H r0?OD`!@2HZA$F ~rrw4BI CBd#{A|g`a610Q3eNuprS@Sf< * QNu HQx\PP#RԸJnJ!~B#8'1 L%.2@%#PVf˃7:9u# *23aPQo F* E/O.@|c \=Y^hE0ӀJ(/a%+Gf'@z$XD<(3H5#}K?G ։v{@c9KBj PD QxH,D2@JȬ 90IjTZ aɃ.JY߀K]@5'(5'(_]Ѫ<ѪP{ dE,X".5@#IR>˓I + ˠYfP8I.بe$EY?A@Pb7pd$?C0d0n0pld`liEAXB= ! q @H(#xK'/+f *|7 ,p T QCxk2H0IL|3KqA@x PT U rcįH NJ`f96\H**=덑!JO,. F9 `J_gfr ^ ?7\H6?tQPpDC>-{U@CvE0/D0`FoJ 1\2\2$\25ZBux\O#I>,j5@;8ECgg$T.Y<"#dof W{"0ށ M'Bt;@sd>o} 2D A`CgA e4f/0iQC2`# ckѠbθ# ?NdDoHdV}+PE@\+"IeK_g߲H$)$; F 3 9?43)A4'pG7$P2!7%2! A i : )sZG;92n2@[F Py9DГ/ 4x$8:np S2ydN 켄X]%‰.s;Hzs 3 v? C@E)eac$ 8"H$9 J"B )3K^ D? _S|Җ'raY>)1<|m6H L7㹀 @s@A~Ӻup!phM3HJUB*HV x qBw/kF&R"dCRUR$e .d3@T:YbDP$NEYE!>e_# Ư_ǟ@p XvA ^2,S1N'N;$>IjpqM|o/~AabcZoIw|ڦLz)_d@'n3 ؇(:4pg<\4!  b 3:ԏH| 7H/s|31txQ yf#8n2 ;vlx"1uxzrk}x1\i~'2(S]o5k;>2=g 0Q d1K ]xd(28: AVOxP|0 "pa1,qhCA8u!NB|21@_H/X,hwKC(xj#C'/A?M4Q2$zTۼֱ.7(o}BK3`;6aNDttR@P(Eq;U @+p$|gDa-tf,@ (}< ׉J1hUPԑɇډ 6XBK(F[Z(`Y`I 3RH y ]J&6!)D3Ǡ ?1#85D |Z3>\6ᶃ6<$%B發 ,?ꇏMh%&9%ȸз5!$u@ d@Ԩ;qBL @DB}r{s6&901`2 #11 /=D4@*]`k 0b!% @:Ȇ ,ó$-0惊 ~|A&,K11W0cJ$<@IBk0Cp"pѣ1Q5ÍQ|*8 ?ʔm#i2CeM I]_>ÐrK?x>gzi@C{)(_ OBNMގd4?E5؃ <ղۀhpBfBG4"HG@p(!DaNe8Tp464by̔s\>WLRUUh#i􏑚0`d'doR\JWL,X&8f +\ccPƸ >@3O}0^ BHqG7 S RC䆞&>;!>>@U/>q O)iQRG M|EL)| ࠀÀÂ\ i%4SjZc  _Ld#"=uF]F4//'ڗ)18s$)Dy 3KmΥ̗ P Dm0( `:$80 3@mLDL@%I^B Q in`5aD/ />m_1AR5f?S:`Є<?쿄 .a38_b#Ss: P !zH>S,bG#sh3%o @DׄBX ؗ6?.hd#(Z B i ~3;z"FZ3,AP!yꢟ)XI x iIgI rāYQOޠOb׿&!kp~!4 k4|ad\V66 C,mElԇ"'[!Z{;~0 *yLFzHd.jm @Q0d̮M 8*B{,UV!YnCJ0 PT?"U,Ɉ\b P>06A6ςiN`Zvx.LOs 7 |}p(CG! D0 `!MoCǁi<,ud0A2%ٜH8H` J y'e@AZuRSB !hTK DzϬJ[vh!=|\) ]a #= g7:LpmqH^P r|DcAã xw< /}`š ͇z$4hI ,ϑ "a}ak AY#Y,0c#4XOṠ *dPay(>OPc߃32p*g6=v5H;`Z #&LYOJ|%h!,}G3d!ꌅ( A%D).ݙ@Z@TBx9 /z#cZ|1@s^.x@_oCJ!t!1} faOöp|$­fxPNp+o`>~r3W98قo|`W:/@)b, xh\qm sūlGƄz%/$`?Pvg3AD !cڏH2"g}1>FfB8S]"`1b )+&ӎF1lr"#P %'5?͍G|aU?|@?z&O6"م bF"IHן P.QK- 6b?TSdzh1Ʋ?D??0uK\pN #e/)PD,v  IP^)\@gfd0 ^&_`0 @,/o+D$1oo-?ʷ]ɫK`*qt@Y*b}@0ƴGь=U,   pj?`1`Y؟,?-њ^@jj( ." Ab2$ǫӀ  brpb563 J5 `@BpY֑D7t`A=|aLÀB)IpP''gK!hp#πbZ)8= |*|?~}tz*83V_bt7px?z'?DZ;ى߀ Y>4qx03r w= [K NRV 7KD8 LnI l%e@^V<x!•;Q޴s'[\ (@ 34$@1fHA pG#?@sG:`"i(z( S3T=ʃ R9"LX2Qy0t@"H $>8d'D"ŠU$AZHQ}-*Is NPS&C`Zr@; (6̆)Clv :lAC0Ŗ4J#A  `@:;? B Y RzчO,i_{В r0 -}aHt{6,0 wD dbfaecg`>lჀ.ery qs r. 6o" ɀ0,;# ,FXN^9 LlV řXH('Ŗ g =` 4| dz)!e ra +"! D$}{=0'4D4p 8Y臄NgL4gu,gea#Cm"bgP ]K_B!\!<8<< zLxP <5BBv'If''0 o@ zdzqqP3B '9@Ӥ&%=AՄ݂vVC HEe[t RmW#B\($& [| {"dh%F(,F (e!+ rE@/vz+ IZ=(GQDMOk dmak4Ei~ PI0WCI2 GG)foZ:-tH (vƁC@cY:Ό@$"-V/H r0?OD`!@2HZA$F ~rrw4BI CBd#{z$Dž@ ,p1x|{J2Ā _7ca E ؏h# ZM<Dχϯ(}yxf\mLnc| 0y[M[)sؒpS|7y`ln4qK AtA$:4g`KG).#0 |b }g{^0 ~8 a]Ҡ2PB@t\fX` uQ?h XG$dbE:0@&'T@ q  *q'?گR0Vkd9`DcDž~@lFF'ȀD ̀gC 9à| 0rt $Pc/Ө ڬ#S <69ђYъY[z& h(֐8tP# PѪ?.1 Hb `Yf#5<1$?~@ٿ`ؠbA8%[ `G[6-VM? &B hO `md8΀19?bF|fg,gzĂ@iȇǔO#K1 T|_@O=Hn XͿP@EF0cDyyklh0Է@0 `f) چP.y iJ>0 XSܷ0` f} lDn(hsB'|(/*' a"A> 0uxz!^E_ov_/@)L8&:I`&`@;Ud` 9zz'n ׀{.7>wK LW/:Yø$~w%;(i30屽 <.` 807@Țd - A," !R53^h;ahP:Ȝ: ZI#w̡U P9եiVDeg` LCF@_0 @ #ֆP@=x.8pP' @J)- !P<n( u,3й<` >z(}"#JCM t hlP$\+%;:T5*1⃎ qlb5??cʐp80Fm`dcB0a5Z(F poosiJ0h9J7 3!D*>^CD;e|o4׈ O?wO 90]XPw ??42wF`!C܇rO d<9(|~A7!A܇Y/) .k$@ ?\7gW!xx!b0 E#< hH: P\)Q B{)kvI5TO~ bzOz)*/I 4$C_y8|irK|W׮I^`)0 `Ĩ B Ihc('Te)'P j%L|cɕcs/P<Ƅ0$]6ኀ1~V/9`/MR$H|紾O,Y] @1?\IPU@7ˀotZOC@6@gp¡B u߿ηD[CEw.\w<%GL!L.Q&;L %:KvtpWQY}<4 >q1}Q `%QNc0adeCp08{wN`=.-%+r $e {{s'C[[8- 9C“)47PNNN.Άnf6} b (1o=dL÷2qB{aX  O'>I .+ 2rhqH/rP@""tmy:_b~\].1{>x0 k@dO–tenvBV F/ͷs%99Ç-STs'$- 0пLZ@&-3a m-0>!4( /Ù r<|W8;ctuBB _-rz+) P ƀɀ{5%DO1a#a1d?hI8!P?g!k k #GQ74]  H_A"+>hqw6ua&*:D@tb k8LW_۰AፁH9F(Nޘ`LPfwb`!\2P}@j ]H  (0L@ #XE0CٟT@0YAll˩3!:fC ķ<ِC&iz M{~x_HškTT:|$`GH"'$$QN;X]Oـ_"btQI#F{J1I݆ x0 P`_6[360th%PX 0 ,r~d=yD}IGc!z,uEp1#LJ/ ]O4 hhbhK{YLwt27'@9'351'xGgdfd~`!dse!d|{# 007">j ۉ@~x@tBp 0>#"y"̼>8\'s0\qpڜ\!@458/1qx`,nFP)b>ʟd< 6(%h\`ԁD2 ? <ć!1]r@y0`p%a_Y|3e40 z~0 `#рFğ3#BOJ,'MPsChq`p/-1Qޟޗe!Z;.\`gw x$(1qԠ v1qǯ8~:2g~D(z-D?T<|B`Y'>TyeUDvHxYs@x Ǫ<@Dv'`h80@bze ?1 wg@1!P@k='o/<wECg,*@L=N0ad"ap ~ 1xsGXO ,?_X| ?$ dA8dXVH(t  hTG!$9Y( b#A6rNJrq6ǟ;?p 2{ n|.h)ѯħM ?;q$I$T9]CR/L8Oky%  U`|~@$%`/AT+]1-qc-Hl~i8考  Zfg]XBf @@_N! }sG@zƱ؋p# v; #dHP$MH I(>H, {$? >qUP0 P s̛ 44 o@ E,w@ѿ>Pß%rgݦ|Ӝ~?@<.(h}Bi*paĝ_~dnP8VeA;H+5 _yW Wx?}Ha5+]ep0J`w*i+W<xT5tD.5| 3 x/] S㯆y>a zX0 @ā 41`2jrT!. BU:J`=kR Cɀ]"DdS04`2 >K"`b 2e?`H$р_H50 DH6` /R f*GY@c[0 `   .@_e0`x. R!AJ#F{0&AC% &l0 `H!GD7 Q`"GCj0`X#M*/P0 ` $M>0 F9Lh/k:z 0}|+<?Wyя87~+?PK S_W~<0@t7POh=So S!?sхN8=$ndkkjdK Rr27<$Uy! _!4Zo x_ǐ <H6X %:{4pq3ڙPN5_a(|ZzZσ#p| pZW;gY=_ <7*p! ?7*! / < 4.B~cP*A>5AGKggh!89~8`c w.4!O: "< hx*! 6/xv0X sw&")=dẋ؄Go̖5@G2)94q'!yOX iegdhzA@FpY}[BORPR sACQ/>l5h4 IkK׎( ?v0Y4@ 6G˯ `ԓh qp먜È\PUJ8H u^$$$`If[\5A th8Ԁz4@& ;'@ ,&Gϡ!1@:( ZTHN i.*kSy`H^x*" LɄL Z0t`"1L{P `8&qw w'oz~!.B<D c=v HHSCB$&'-F338)1ߕEB\Px>~:t!P_T7߉z52unD3T~TfCm(o?['rTuMJO18?;|]ĩ<|~P7A+4+AAaܒ7t@set w|?O'2A$s̐gdA63tbJ4N}a܆@)*Jh?aj]1D` (EklϭsI;<߰Sx?' Ŋ\ۆM1\rAL࣓Q D\Bp^>G;ڃmAPpA?ڃ( A43fB z(]CP 7,5k=, tX,nq 0?>T;)/y ~kXF eA6Hu0ј/(:@ o|7e$H#{@}7 `\Q& 10M1ۀ~ɮ\ָp @h. <*@t) /( bPJ'; @٨^cM\tH@dpR EufݫVExzD`4K fy)hȧ15[ev] ^ѯshu7I\&6 u3Ү\ {ۀnz7mQ-Z'p w3K^x 0 Lp 6 pBUHLQ7 /y(7L,D0 Z3ЍGvg1"ԄcH  0 hשX"LL _p8A/^g!}ey`8p42f׀/۷E?1:7K1 xǀex,Xr}Ƿ^8 Xȣoht;,0(.1ra dܔvh= ~F1]n:0=LY(H'LE%D R.h rqѼp/ʐ:@}2%JGW=h jǠ p"}80P`,7.X?Ll!z8>Qq,8 Npl0 N80;`zf10  @L0`< bHn\9<lȥ qHb_s&"8 &8a&8ALh@LhL|xzcc c9c"c& ct@Lt `B0 Il@IlTx ]@ B /@s1.89 ,BAjQ *0qPJT`:@*bbEAQ*Tz#x$#N6Gp*!R 1'|ȠA!m Bxag";]<:"@\tjDk{0p%M8+`.p?~<%JQ p?'q;9%rL0 x`H&P@ 8 Pn/5.7H -@ S/0H}O)Tc0 `h%0z#gk{"`@hHKP  bk(a/u?#=mA_'l8`Xfx>PtO4e)"=Ob8$GF2 Zn#@H[c $:#aGr p/0.q^"BN&c@=Slml\8$؁4eh"% $Hl@\]Aύx 0,\83ڀ}Hx˃x91"DbʁW =a? )^ʂf4Ax:?3|.c)7x$8L@v0ALw@;= o?ODDhTP`_0 Ń.r9V;Ĩ'*_2A@OȊca}ȓ]  FVZE2QWYUkobG<; 3 gBFqC:!4AkH ,Ĉ9@?'MAz~2DaBd>`&N<6>!G*B4s:'\I^I.b AAND\WH Lx~Bcn0kA MlHۀ,,>oN`H@ dCJ[΂G3 Pg&!iI>RP;@zD;yt=ixx>I/Pϐ{:/$QfHC* i  r .|($L_9x<>`ڜ. 3'T`lãEN/I4^(#.;@Ff ,xP0² r;9& OZ@)&$3  yM%8E"13 pbu)` 8ʂ[`nu lanó>;'cY Kx' ps+|E((3p(0(2(1@myP@cD%a:Tn^>(芑z jF8<pEbkc, hWQV @fPA3p v?z f !쒀I@)M G2A@ $h'_*0,3 H0 3xG?7 tNrK{;"--m,~:& ԓ}|wkڹ8ڛY؛۸HH $cejlc%4 *_z>W?4{9z>fx>|X?{{=ǃOs:y y8)_x@~<=p@?񴞺>h0N~yrA"|(9^0xw9ĝ<PXy*Cc `# q~ϕML eL~>~_VٙtxԆMI9 @"PȀ 3!?p#{W.{b8"`@d%cN  x ?9 Zf@e > l a?[pX 1ayAlxhS߅S3{'Z)A1(-3OW1P"ax 501EQDžz[~>9~30o<ˎkj{䘘@mB'H0hw q3E[üL% @z(ə:6 R$Y:c'IYUVR`/쉱xNnCc.?~ 3.hg:Kc:<`3&'5P'`4L|DpB`A~I0t>= (x A_S!Z.M8*A- "t&nr$ʦDf_a)PxA^:w(c{;.>Y0``gp *9cXZaJ U2 HǨ li  Ȋj ja`Lai`Kjkc'p=Iљ,mLꀝ3!p'u3 rtu5i)^`?0\{a~p Z@6XĎ~ *0 @ZT0 @ U8jP_@B2Z|/!@ &>:p4d_@=cdH s|:z,Xb`R2+fv, j l@5vq"IMxBf@9hZ`Bi6 l@3l @7~jT P@>c*T 3=@2z|5*TtPzs/0 "`9Iqf\Ըyp )0 Qp1ˀv7.\|p %:Kw\[ " 4@mЂd/ $ =x@a0B$I& :(@hpRH  8@st)~H60 R%mH?%I_*PĠ2@u%J(P9@n2( Pd7Y@qR%JM( M7+@5D&_:TmZh :E6@pvmZ޴hVM7k@gVFxCg5L\#F}06cFx 0`:(tрcFs|`4(i#FƬX 2U`s+I\b`8c+VXF`6*`hfwu 0 N8L3˧NS9c358p8`ux :;y׀/^lx ^4e\/x ";9\`r  ? `@ A{ ^`y\-2: ~@-[D; m@(Q4D H8 x@$I*$L2@d$ H<8) j@$IE7 z@ld U8 d@¬Y&MdE?+ ~V@%0x.Lu@"{(|"EH"(DP7(h@"DT %P9y@jNQT P=`YIT P5ʠk@*M*`|ƥKS, X4K uI`j4!a^jXD7`r%K9I`lReK!]lL-5 t.)l86m[&f[`xᣁG 28dp:hdģJp0 G 3 p7V`fq#Er?7 9l.Ah "05k i#|kxw`.]v\3pcfxHf$a$]J5z0T/- 9o`30 @!B,38``P a@ڀ-hP6 R@$6`r֤HҐK 2l. R@ 0 ` J?f,X`;l\j @?j4/ 6 $@>v"DbP Ҡ@;z|5.cP]@2jU.SPq$For<-JL;b&L0`2p&p Bu9p)/LЀơW]E 0 RwHLT4/H24?i@p$.(JP7Y@dR%Z)h e3A>`JsLXcCR0`3Hf#F560`4|ӫVqJuuN8 pR38 U>Kp^x b<( rP@ AMa D:( @ ‚ ]2Z d@hQʢDR2y lRBt/%$JH1 }@CL = `o%Kw,X;`2偒[]lBE6K`eV-[(l6.hG\q%G"5p3&` < 2x5i~'30 1|Zp0 ɾ|&:uدq| 2u毁_1|gx ˠA@&yt ȠE_21d APqBL (AЃ~Iy dAHto lAXRb:5Kwq "ADH3g#.iRҤH0!/2 "d4i &ALZ2 s!/ rE:Np  JL(%0 `Å (:jPiAVTEZ "tdz`4u 430g`A̓F U>j0iT`Q& L60|b.&Ll<0i2b Qf R520lV`,Yl#r,q&HqKX0 E# L1`ӢŃ ,_*UҫeVʬX0(`&I#FtmUb.VwsTM96!L`&M8&1 Z 0 ]3FtKh`\/v8pz.5 RipjSy pf)Ź]"D0``ȗ&t)phR%H#T2qf`(..b\T;Iq`[p+q`&upr$L17q`, &. ,s%x8}/a>'L^'O_0`"D~0'MF%/i @ 0 `'DC &0 `!1NcdO0`"K* <08`!N#F"M0q'_c@0CX{}2p&p Bu9p)/LЀơW]E 0 RwHLT4/H24?i@p$.(JP7Y@dR%Z)h e3A>`JsLXcCR0`3Hf#F560`4|ӫVqJuuN8 pR38 U>Kp^x b<( rP@ AMa D:( @ ‚ ]2Z d@hQʢDR2y lRBt/%$JH1 }@CL = `o%Kw,X;`2偒[]lBE6K`eV-[(l6.hG\xJξaj LAj(1)0$Hȑ$p/A%D 8,/DOԷL/-;@"K~Zx p: z 'qP0N 8 Q 'zbiHw `凔"CWםPYְq $e5L @`')N}쑾M` `y @.?t(T&IzD0E0 3"gTB H f ̳3y: h !&`R@@4vpFLd#P)G4Bl7 ?=Ꮚu02)Ð1) C.L& IH.<(n w-di8 O+£=* 2&R* * T,1*11PB  Dh AbҌ $x9XxKF\,Yb "?p/V=tMEO| .%.`|In&qy A"0KP9Q. \8q" x#v$Is-(joۿ~THQxrXrO|د|CU3unDF@&"@$4xSFْ`t %`$<@69>`,yCNh,@N"NNudos.library SEKA DATA MAKER () 1988 By The Cracker of The Gang & Mockba Tv of Vortex 42 R Maker Version V1.1, User Interface V1.0 2 File to LOAD:  File to SAVE: 0m[%hx&vhU2>J`06@FPV`fva3a 9@g,yC4Nh,@"<@$<Ng#P"$<&<N# *<ڀ#$"9PNNuaad 9@gN3D,yC4Nh,@"<@$<N#P"$9$&9,N"9PN3ZNu6<$<@,yC4Nh,@N"NA@@BNuNu*|(M ,y$B,dc.l< $y aB,$,(R g <,$`xIx^A|g`a610Q3eNuprS@Sf< * QNu Hx\bb3%]%}(jjzwÀ.!WnumDs>~fFBs{pG <4P<>|6P#OE% QqǢ/|u@"^*7.띨@%t L`!1.#]|H5U/ņ%=袀Vh.l$.wcyJ/8~u4e q^t` yII# ELR$K`fؗScd8$p%NNCebzu= Q`p'Eod{B0ï\(P& H0 J8.L3AN'8 %$c|Ph!HqP&7! x}!mȘpJ^@.@( 1 v>t, Tbe< &Ml@(KRRabD&6廸X=' [ E KBYn@PAcLP@` ! n 5 &$$=3BfӨV -xEUB>R8Php /#490}4h9!_f-)BxH@ M@"k8<b:>"9;)Kf(:zR4`ݻFkF7l3l]c7A(Sl |q:XgxS@ ǫ~)O+bKk 6H DlV%@R1̀,-@( TU~%HTje hcvQN!"G3T3%$ Lu `b @J.w49b2r S` Y5A[D@A$&|O@A<&$(hX,A@Ɓ za#iBxmJ ބP0uÌp)%?p"aI& 8K` @.ו[&?F oD#d{(@. JH@LpPl6+AC5ǃ p1 Ie>YNTTQMXMYAFVR\TFE\EFTG2RqRV "$*@Ƶ/@5 80(!쐖7d[Zy  ` ```  @`@0@vjF@NrR `r @GBh $ *}Q@;JDhkcc $Nh 颀t<rwpP$&)% e)Qu*&&ƐC/r,T'jp.xD4 DL8  B `F)PNJ'^^=hv!E IaĊ@ā'F-C./8π `D[H ,& A>JTd<2H@h"6`(0`%KAK@/DF%pT %˥ &)Aw-#4d$0H:H}HEgOpDFAE*>RlGRt'!%Hf;^uI%P!`d>c+MSSJpWb6HaNFZVP:CQ^M7Il|Jʢ*#7!>Aey 2$ )2; j\c$:R <0;(yFTRY뱤D9Kr  !qT})@.R@ Ry JT]Q Q2@ `d?ve< UD>PR\HLw@@KV  %ibдЄKYJCBB`,\}IW5`@Ճ҈<Ճ Ȥ`?H|*2zOC]4vh^IFZ^@, 8VAV$ Rwԇ$,( *'! tF@쪥3"@LA3Nrt$h4DEa`1"d& $'O ;!@䇜28@ a(k`dfYSdy4 ^DΈVRNTVO "@p$0<@PJHA`A=`X@ŀV\:& 䤃?cVGÀ 8HW!@#qU- ( @ dDi}@͏eK 9`C"%(]䴇@NjB 4 D9bj 42Bh @P$A nrBhl0hRRMP@PxgN@d|rA# +M?\htZ 1Bآ'@T4[: (=$|@5 PhS|I^vBN`?) ,☶Y΢*Ox< "9#:4$kA CJnI"vT HLt?9` G :A\Q: ^ ,rL) p@(! N( yf3Y@#ρ, ]Jm,icj$q?W;DK6 4w _8!JRBCKFH<qVv B8\3 Hoa&d@h!!A50ĹݠB$  0y, G'_B/X H" ,L4 /z@@bRT @$;Ha:A* "@o c HNjx,d:A 24 W(Őy[$3,qWO^d}@,C p+dITPZAEODq_g!441 -{h&.K6J61n8x䌬 K;F]-0KLbv&rf6 ljkil`Nc0+84>'(-vH\L`*4>:\Q8%YQT`"$0z | "=\?ЮG>A:i p}϶Oty#O`m2dؠB=`5{vVP'cs wO9N,1 (ʉ*jLL O@F KGͅq!YCjǕD +/"$ TCTXUETOve | JJ@`<JAWT.#q t+&4@.p0K4^5oe4-g2=E XgN FHH(X.Nߜy߀6>aG0hͭ> 0 `%M#F8Q0 `%MDG 3A"` $D_3|#0`"рAF % 0`"`P'?G>@U \ K!AGq඄-"I!nD@B"P#fuGAZ!HKbJF@D"a@07:a8 \ q"D.׮dB$Qel]znp憴7(%``[Pf&]b ʤ!"h 4& WG_gCmOm}U5յm}=*JT`E&(\!b!83. Qx 3ӣz{`D8 )&?f -46>97Y IiD BrV~ZLtlZn_$x ?O =^bFnBTlbVORąfzjZ*bbgzrz_^MFfGp/q [.@*T3m޸ Q0EYF ?z+0U]@; }sUOpSZAMk2Dl GqІuF%g!);PA?$ ( j@& Vscʁ$ WaBp@b ItIfB BhpsLV|)@Ø R9@D{!H{aK}@J>Ոe-4'Wc hs $9t; QKmBh$j$:%B%xb A6#\H"NT{!Az\aW@RJX8icz;/Dž  VpaRhbp CN}a` T q,Ԁ^x+Y66gpu!$ Ă0|(n 0 @ @_D`͏B'm$$\`0` Hq\JX*83J7@g0t&(P 3!Hb)?(P YAQ!# LPt ;ıD@!ʺ }0^T O3~*R;sS'"`„'2Y -sa  xf*x iR&' O"rpKV V$75 03 /(-tq \!y*0( ))p܏@;p-w@ ? p e#(T B4R@;x (QP 1/@?BoѮذX2V|W> 8^Sa[PhSA&V9Bϰ0gáIm~4xA%@-{ t'a_O 5%pKb): U}ZhoIь[I@ NvCLT'ڀG*(0@A @Z9ț-0 ~ A/a7ƒ@A|,($\P' ! l ) DxxM8@\> DxݭB'PJH7~[ ) G#0%B—^` kA Sh3kVx0តA$c0AX2%fZс9ƀD0*S*ՠ>x5h |hL&LHKD'+ܗzsgpq_Qմ Iν!1E* ӝ! " A/#p!(阼m8?3N@Xn.sJTZ&$NC/^<({!S !^gA qLX7@) X# 0~Q?B X0x#@A"u H8hoTCZ"HydA$pb1 Ј&JFOOkG9&̔ `),:C -\9hH)`  GPpcIG'2j*E xW4p3" ^ @aDXm6f!9S(( RTD!8'tY`@60]@V0n1t#@-f`b R1OBztT0$!AAL CP.hIHR_ڀ0\xLR6H~ H¾kp&AOÐm~5"JJ\VU1M_o!ɂuU MH+h?I@9YN+(4-"qa$wT(w4mB YL@CE&7ASŨz! - exa>&SCPʆUO5`ѯ1*. RH$ HӓTn8p>@x"ك H 87@S! % Ib Ӛ ;*iFOu$B7*xد}w?e( 0EIh5`'2D m4 @H 8@M5;)R[m/7-;||:.qPVk!3s.)@KJ\+;BkT؇["1-A&D?›~8@hbz*Ӓ&o pð:@H*(:Āu2 L !@qbޑ#4AfiB! \Q_4: @ T &ģj3Lb:t1@ PI3dr%' 0E! ue08:<\!4&%|@Ip 1c $H%z؊$A .>x @pW1ijT )= MA DC rE6&μ%8Ȓ*)A)Y49pq)[>$I /FJ0p F9a$&A*?_Li3 R%G@ A(*x~ |:A Zq<I'<T^8C6IC )˜ o%),N%>0)$=q)%9[. *H Pg* Rk{v p0G@ˈ3q|" gQ'O6sɅ?rL8D05 +~C J^ $"-^Lkps *#5/h?1T\ ="Ъ]4 !hzEh?hN:PqQTGiB|"E;+֑YdjXM O:=a 8V ǘZVO&.!lA7TP4t'hR V1;hH*$1\5)dsLGas"@?B(143ɩ@ P%&0$ ,N! Dl XX_h@ЈCd3",g8* DA1qfb~A|g`a610Q3eNuprS@Sf< * QNu Hx\J 0%8AXI`c`NT{!90Rxғ(EHޣ{- Ú߀?d$A8ʂaaJCiW0IC9DhSOqG)Nc,' D66wpTarÇ)'Ԙ% Mƌ)0| W yM NDxZP d*fqh$)>W3{^#Ix#^ˆI$dA73QDʗ]UQ[dJ;sfEn*OvHg 2ZKy~,e8 cŹ0i.> A"i@DF@ }j2O14;`h2'!AN" u$ @8DAV $dB\'L$`"WN@$hcF38 #`b{5Swfa e'cH#IO 8( NY!aV8f!ޠ#5*&@A W@10$$+@A8B44PiE`h37[<BY!H 2 d<<( 3i~~”B$ytJXhqjZ/{ t}{OSWgn7LހD|"I*.B&nc+|@q$q|_F`.e/pd3A중Gl (6䑑I!_m;8pa  wPL |p9P.O-*D D=YS<`ZbPA` /?!c[ rW9  !-NAhN';Pbxܕ J2`Ϧ<~5f7  IbgU؄ qd$k>0>S+.h\RaBM$_ nL'Y[D':tYDŽESad8hL kVB "_bj(O09@Zȵ$3Qh4"I߀( 88H. qkgfES@G@q- g7=|8 p@'N !f˪6]!…;!DC b@=.:H|\ PE0 _'0 X۴c:!@ N0CZRTu(>DaR%A`EzlU "x4k V^. "XWYxW^`_N|ʁ2D|ʂ5'M`@@~bW]npDb T\bAw 1=0J "dJ␄3d9KpT]<;$%JP/Qnt'0X$ &e8 b@fa$9H:ۃS)G|x6i}ʹ+Pu(4"=WD%HHo5眪s0n }4^e<qlBʇ7z% 4M%pO .Df< $@z`SC<ɈD80 P> e&D!A1FiG 1K}2t0KNSOI0 Is9!28AG\"%~$,P0@ IV(@Eʀ4# LIp41@x7ld$Cq2p0A48$@N'jNlI~n!!f:\f/LuD<5$ *?_hP HPҔ+LRI_+ﮪ,[<^2@?:nD#`AHc [o&nrg4)gPBnpJ-39|h8(pQ a/T"Džx:hQrax ! B2S 'p.I@bȄu/xH3F)!q mY+ bC"eq x{65(\%R_o  (0י490 ؖ`k+0,L TOA (#r,@@@J@@@@@@ . N 2("5(Kb~s(dnqVE:;`8aǀH5*fl!Iqmi! P !\$dwITϨ):1!@ DbP haPP PN- XP7hs(:@ a@8G# Y2KBH-ӂ?n#D<( Da<dC bjBc\DPÀK@R@p!>DCVx q n.K,  J p@: | Jp 7 Ќ W Мj)\ PI?8" @- " $,NDVv*5b2XTD7$26jLQs+]" @; w|h |@PFjG O )l +e=cN㺀e%> hP(0Y } !(DZ`a +1 EHpD> \@0;,$7D 8 --&,7%BM+@ ֋Ѣc dh"B$ e$J KE +ҜV& ZDs  +Q9ۀ~%?b9I!aBy1ni`y %xQeQQg1e&*Kr\q o>RK*#r.a.(r HZ$2`+!a@# (Q^'<,BbYeFf^uFQ}F TgFEoF RiFTF&YyF&EwF 6R{F.TmF !FkF-XcF YsF^Kp 1 RK!(QXMnM PAo<Zpe5&Q"ԇ $ZTG>)՚,/PD`P?"7 5Z$2 d66qNpW0B`@@ < @t`2  N2$  r0jPJP^ǝmA&P9D9>& LA?S,+ 2( 0LQA{ %-vRC[9ܬH*1 T#< ڨ'I.E^Нq Z D*4 u(&U802;n9Y oR<: ?Pѐ1 g}!xhB\(%Ox]c*ЄaA(/M*s=XBpKQ& T%NHR>X#3LnY B=<;:9KJINy h EpxN2c-HA PJ"H,xHE6 a2L/&IP .P,SN @I (g @BI_yC<_91xǮh- (zq'&9GEL |Era}GtrGj;`YDx׏CX@!}%OG@#H|AI'چ(2d-,RHjmA,mm@"P_ 25,MV2"cLа̔T (z"$6Ѓ Pe FE)yzH6͉$IpЀ H'0B`Ҿ1"n P|Pz~5=D~#R?$@9hTƈhbhh..i ٤(B>pz'á<j.yM#4^ x/``c` :T !PtDhscsod} `h']†x"R9$QG#B̃w#'|W~?8`! t7G<9Y:82v#GЙG6\0y`Yؒ`迷Z B(61hojdPbP 'j5!Ӏ!)&!e&$$0LEѭB/WBJuv|ۣ'YI}/ sV|t}x&0 t>~Z0 $-`Zˆ:]o4'I=\MC@(3" _;''{'.;{zOL;Z_ubb`Lgnc ހ: '/#IO20X" }V`Jt$i'8P9G1 _|@$~Oͼ BAH t>[P0A8|"L@pkl;<' #^r^g,2P,32= 5y(0 ^Y*̠`{eT/-&̌ax#D( _>03./xoD. ⑧jz`Ygcĝ}?S/þh"(P L*!D!1 @;p!!|;*|Ճ@z9.(D.5⻈!Ƀ'06XNp<>)8A59ع??U>@5 9eP;Q@c!DКv8&6C^烊 ?1/?9@>@\ E (+7AP_"?C)AÈ @`(|!>'&a{pxg!qH ?3˕lO@`4X>`|gT#?z:\Wyy*.b\80`#zhcH \CД1%2Y3 h ؟@L^@{Q88tABq/ccխ=HQ@*E%6*11[A vVfW\Paf^(va95Z|@ h ?Gٗ&;z-x(xs3#H@!hO D@'XW0i$ǔz:Zq C&@=K @%;O@ħ=rV{9= Sa }:ȁA0AAAAAGM[\8!_u 0  0@wiB rH@gaBQz+`.pr32zq0A7KTrP "@4"a8Er @0 qYpw$Y\B@Q0 `Ԑ&?hP0G0HMyR^gC~ t7nY\"k~@.0xIFpɀ&LaP*T @6e$Q^F BUly^U9{ެHs#+0 W`sazL(ɀ_€|K#_jCݠY]h60 O,?(zgm4 ȶ=H`8<(*Z=Mm™"\`B}(AĀiD. R@I1 d $@c0 : ``$N "X4i/sPű t0 Bsxev `%McP"/A0*š R3H&AC.R!=Ν׆1=Rw  %g¸ |RKV^K@IAwt27C$ ǗpK{%1qٿ00  % ^Wk@`G G*DĄT%=,ڀjFJ7*X z;+0 _) B> . .̐].``.S^ 0 h^P"CBhp T~ǏAh{C={IhaA=)-nꏏK|zԏUMp|Ws43"jp|W|4<"jp{\1p{\1ʇ}תp|wޭzzJ|wq}X_:?u$}_#=<>Ưo۟?|~@/(8_htϙ4  3=M?_y0fd p (wZ8=xJDI |%,jSz  }*xGC8!r @~|B@#|xUb98Fj nXðX8CҘgup|:?.y=|x ʫ*dB4ρA?<-dž@ɻt48# Y 2Jw'9$gɠo|a bh@0 T8$9?tzH O>f x=$xB<g@5A @?99À #9#=#;#?>?`@f0F#c@>1`F`# H?F8`#a8?#iH LD $(P ,048<@DHTILSPTX\`dRhOl pEtx|AN(    $(,048<@DHLPTX\`dhlptx|1.-,+*)('&;:987654321FEDCBA@?>=<QPONMLKJIHG\[ZYXW\  Bp tZ]%=AY1Z\[IS]%=AY3Z\[I]D%=AY3\#:[ITY] =IHTIY\I^[I]^#=IH\+^[I]^+=AY3\#:^[I]^%=AY3\#:^[I]^+=IH\[I]^+=AY\[IR]=ER\[IGH]=AY3\[ILD]=AY3LD\ [IGN]=IXGN\[IGN] =AY3N\[IGN]^=AY3N\[IGN]%=AY3N\#:[IC] =IHK\[ICRO]=AY3KROW\[IQUE]=IY3K\[I]=IH\ :[J]: = JEY3 \ [JUST]=JAHST`[JOSE]PH=JOWSIH\J[J]=\[J]=J\ :[K]: = KEY3 \[KNOW]L=NAA3\ [K]N=\K[K]=\[K]=K\ :[L]: = EH4L \ [LIKE]=LAYK`[LIV]ELY=LAY3V\ [LIV]%=LIH3V\ [LIV]ING=LIH3V\[LEVEL]=LEH3VUL\ [LOS]%=LUW3Z\[LISTEN]=LIH3SIN\ [LB.] =PAW3NDZ\ [LN] =LAO2G`[LO]C#=LOW"nR`,(C) HiSoft 1988`aS=<QPONMLKJIHG\[ZYXWVUTSRfedcba`_g- JDpx devspۥ system-configuration;w 5 ||x|ni`@ "Z,EPSONK B sp@Wu  Includesp<73 t Amiga.ASMQ1; ; Include-Datei fr Standardprogramme ; _LVOFindTask EQU -$0126 _LVOWaitPort EQU -$0180 _LVOGetMsg EQU -$0174 _LVOReplyMsg EQU -$017a _LVOForbid EQU -$0084 PR_CLI EQU 172 PR_MsgPort EQU 92 CALLSYS:MACRO $\1 JSR _LVO\1(A6) ENDM LINKSYS:MACRO $\1,$\2 MOVE.L A6,-(SP) MOVE.L \2,A6 JSR _LVO\1(A6) MOVE.L (SP)+,A6 ENDM INIT_AMIGA:MACRO MOVE.L SP,Initial_SP MOVE.L 4,A6 MOVE.L A6,ExecBase SUBA.L A1,A1 CALLSYS FindTask MOVE.L D0,Own_Task ; Start from Workbench ? MOVE.L D0,A4 TST.L PR_CLI(A4) BNE.S \1 ; Hole Message LEA PR_MsgPort(A4),A0 CALLSYS WaitPort LEA PR_MsgPort(A4),A0 CALLSYS GetMsg MOVE.L D0,WBenchMsg \1: ENDM EXIT_AMIGA:MACRO TST.L WBenchMsg BEQ.S \1 CALLSYS Forbid MOVE.L WBenchMsg,A1 CALLSYS ReplyMsg \1: MOVEQ #0,D0 MOVE.L Initial_SP,SP RTS BSS WBenchMsg:DS.L 1 Own_Task:DS.L 1 ExecBase:DS.L 1 Initial_SP:DS.L 1 TEXT ENDM END x"8 console.Offsets8x_LVOCDInputHandler = -42 _LVORawKeyConvert = -48 END BNE.S \1 ; Hole Message LEA PR_MsgPort(A4),A0 CALLSYS WaitPort LEA PR_MsgPort(A4),A0 CALLSYS GetMsg MOVE.L D0,WBenchMsg \1: ENDM EXIT_AMIGA:MACRO TST.L WBenchMsg BEQ.S \1 CALLSYS Forbid MOVE.L WBenchMsg,A1 CALLSYS ReplyMsg \1: MOVEQ #0,D0 MOVE.L Initial_SP,SP RTS BSS WBenchMsg:DS.L 1 Own_Task:DS.L 1 ExecBase:DS.L 1 Initial_SP:DS.L 1 TEXT ENDM END 0:B Dcstrings.Offsets8_LVOaTailPath = -30 _LVOTailPath = -36 _LVOabcopy = -42 _LVObcopy = -48 _LVOabzero = -54 _LVObzero = -60 _LVOaindex = -66 _LVOindex = -72 _LVOarindex = -78 _LVOrindex = -84 _LVOascopy = -90 _LVOscopy = -96 _LVOasfree = -102 _LVOsfree = -108 _LVOastrcat = -114 _LVOstrcat = -120 _LVOastrcmp = -126 _LVOstrcmp = -132 _LVOastrcpy = -138 _LVOstrcpy = -144 _LVOastrlen = -150 _LVOstrlen = -156 _LVOastrncat = -162 _LVOstrncat = -168 _LVOastrncmp = -174 _LVOstrncmp = -d mathieeedoubbas.OffsetsM^_LVOIEEEDPFix = -30 _LVOIEEEDPFlt = -36 _LVOIEEEDPCmp = -42 _LVOIEEEDPTst = -48 _LVOIEEEDPAbs = -54 _LVOIEEEDPNeg = -60 _LVOIEEEDPAdd = -66 _LVOIEEEDPSub = -72 _LVOIEEEDPMul = -78 _LVOIEEEDPDiv = -84 _LVOIEEEDPFloor = -90 _LVOIEEEDPCeil = -96 END  Includesp.GA intuition.OffsetsW-_LVOOpenIntuition = -30 _LVOIntuition = -36 _LVOAddGadget = -42 _LVOClearDMRequest = -48 _LVOClearMenuStrip = -54 _LVOClearPointer = -60 _LVOCloseScreen = -66 _LVOCloseWindow = -72 _LVOCloseWorkBench = -78 _LVOCurrentTime = -84 _LVODisplayAlert = -90 _LVODisplayBeep = -96 _LVODoubleClick = -102 _LVODrawBorder = -108 _LVODrawImage = -114 _LVOEndRequest = -120 _LVOGetDefPrefs = -126 _LVOGetPrefs = -132 _LVOInitRequester = -138 _LVOItemAddress = -144 _LVOModifyIDCMP w3  ;mathffp.Offsetsiݟ_LVOSPFix = -30 _LVOSPFlt = -36 _LVOSPCmp = -42 _LVOSPTst = -48 _LVOSPAbs = -54 _LVOSPNeg = -60 _LVOSPAdd = -66 _LVOSPSub = -72 _LVOSPMul = -78 _LVOSPDiv = -84 _LVOSPFloor = -90 _LVOSPCeil = -96 END  mathieeedoubbas.Offsetsi5  mathieeesingbas.Offsets,Yg_LVOIEEESPFix = -30 _LVOIEEESPFlt = -36 _LVOIEEESPCmp = -42 _LVOIEEESPTst = -48 _LVOIEEESPAbs = -54 _LVOIEEESPNeg = -60 _LVOIEEESPAdd = -66 _LVOIEEESPSub = -72 _LVOIEEESPMul = -78 _LVOIEEESPDiv = -84 END   bIncludesp?>  # timer.Offsets>i;_LVOAddTime = -42 _LVOSubTime = -48 _LVOCmpTime = -54 END   Includesp   AMIGA_SLABEL.ASM?b ;Dieses Programm erzeugt die Bibliothek Amiga.L: INCLUDE "Includes/Amiga.ASM" SLABEL ":Includes/Amiga.L" ;Konstanten: _LVOFindTask _LVOWaitPort _LVOGetMsg _LVOReplyMsg _LVOForbid PR_CLI PR_MsgPort ;Macros: CALLSYS LINKSYS INIT_AMIGA EXIT_AMIGA ENDS END   ?IncludespUͪ  translator.Offsets_LVOTranslate = -30 END   IncludespFÀI  Z potgo.OffsetsIp|O_LVOAllocPotBits = -6 _LVOFreePotBits = -12 _LVOWritePotgo = -18 END   AMIGA_SLABEL.ASMF. layers.OffsetsmGi_LVOInitLayers = -30 _LVOCreateUpfrontLayer = -36 _LVOCreateBehindLayer = -42 _LVOUpfrontLayer = -48 _LVOBehindLayer = -54 _LVOMoveLayer = -60 _LVOSizeLayer = -66 _LVOScrollLayer = -72 _LVOBeginUpdate = -78 _LVOEndUpdate = -84 _LVODeleteLayer = -90 _LVOLockLayer = -96 _LVOUnlockLayer = -102 _LVOLockLayers = -108 _LVOUnlockLayers = -114 _LVOLockLayerInfo = -120 _LVOSwapBitsRastPortClipRect = -126 _LVOWhichLayer = -132 _LVOUnlockLayerInfo = -138 _LVONewLayerInfo = -16Q3 diskfont.Offsets3{Fe_LVOOpenDiskFont = -30 _LVOAvailFonts = -36 END  Includesp|Q " icon.OffsetsQLV_LVOGetWBObject = -30 _LVOPutWBObject = -36 _LVOGetIcon = -42 _LVOPutIcon = -48 _LVOFreeFreeList = -54 _LVOFreeWBObject = -60 _LVOAllocWBObject = -66 _LVOAddFreeList = -72 _LVOGetDiskObject = -78 _LVOPutDiskObject = -84 _LVOFreeDiskObject = -90 _LVOFindToolType = -96 _LVOMatchToolValue = -102 _LVOBumpRevision = -108 END Includesp_LVOSupervisor = -30 _LVOExitIntr = -36 _LVOSchedule = -42 _LVOReschedule = -48 _LVOSwitch = -54 _LVODispatch = -60 _LVOException = -66 _LVOInitCode = -72 _LVOInitStruct = -78 _LVOMakeLibrary = -84 _LVOMakeFunctions = -90 _LVOFindResident = -96 _LVOInitResident = -102 _LVOAlert = -108 _LVODebug = -114 _LVODisable = -120 _LVOEnable = -126 _LVOForbid = -132 _LVOPermit = -138 _LVOSetSR = -144 _LVOSuperState = -150 _LVOUserState = -156 _LVOSetIntVector = -162 _LVOAdBE: expansion.Offsets^)_LVOAddConfigDev = -30 _LVOexpansionUnused = -36 _LVOAllocBoardMem = -42 _LVOAllocConfigDev = -48 _LVOAllocExpansionMem = -54 _LVOConfigBoard = -60 _LVOConfigChain = -66 _LVOFindConfigDev = -72 _LVOFreeBoardMem = -78 _LVOFreeConfigDev = -84 _LVOFreeExpansionMem = -90 _LVOReadExpansionByte = -96 _LVOReadExpansionRom = -102 _LVORemConfigDev = -108 _LVOWriteExpansionByte = -114 _LVOObtainConfigBinding = -120 _LVOReleaseConfigBinding = -126 _LVOSetCurrentBinding = -132 Rz6_LVOGetCurrentBinding = -138 _LVOMakeDosNode = -144 _LVOAddDosNode = -150 END ; mathtrans.OffsetsN$ V clist.Offsets8xa_LVOInitCLPool = -30 _LVOAllocCList = -36 _LVOFreeCList = -42 _LVOFlushCList = -48 _LVOSizeCList = -54 _LVOPutCLChar = -60 _LVOGetCLChar = -66 _LVOUnGetCLChar = -72 _LVOUnPutCLChar = -78 _LVOPutCLWord = -84 _LVOGetCLWord = -90 _LVOUnGetCLWord = -96 _LVOUnPutCLWord = -102 _LVOPutCLBuf = -108 _LVOGetCLBuf = -114 _LVOMarkCList = -120 _LVOIncrCLMark = -126 _LVOPeekCLMark = -132 _LVOSplitCList = -138 _LVOCopyCList = -144 _LVOSubCList = -150 _LVOConcatCList = -156 ENR捀  dos.Offsetsd_LVOOpen = -30 _LVOClose = -36 _LVORead = -42 _LVOWrite = -48 _LVOInput = -54 _LVOOutput = -60 _LVOSeek = -66 _LVODeleteFile = -72 _LVORename = -78 _LVOLock = -84 _LVOUnLock = -90 _LVODupLock = -96 _LVOExamine = -102 _LVOExNext = -108 _LVOInfo = -114 _LVOCreateDir = -120 _LVOCurrentDir = -126 _LVOIoErr = -132 _LVOCreateProc = -138 _LVOExit = -144 _LVOLoadSeg = -150 _LVOUnLoadSeg = -156 _LVOGetPacket = -162 _LVOQueuePacket = -168 _LVODeviceProc = -174 _LVOSetCđ]:0 Amiga.L.< _LVOFINDTASK _LVOWAITPORT _LVOGETMSG _LVOREPLYMSG _LVOFORBID|PR_CLI PR_MSGPORT\CALLSYS:@\1 JSR _LVO\1(A6) ENDM LINKSYS:R @\1@\2 MOVE.L A6,-(SP) MOVE.L \2,A6 JSR _LVO\1(A6) MOVE.L (SP)+,A6 ENDM INIT_AMIGA6 MOVE.L SP,Initial_SP MOVE.L 4,A6 MOVE.L A6,ExecBase SUBA.L A1,A1 CALLSYS FindTask MOVE.L D0,Own_Task ; Start from Workbench ? MOVE.L D0,A4 TST.L PR_CLI(A4) BNE.S \1 ; Hole Message LEA PR_MsgPort(A4),29 S graphics.Offsets!_LVOBltBitMap = -30 _LVOBltTemplate = -36 _LVOClearEOL = -42 _LVOClearScreen = -48 _LVOTextLength = -54 _LVOText = -60 _LVOSetFont = -66 _LVOOpenFont = -72 _LVOCloseFont = -78 _LVOAskSoftStyle = -84 _LVOSetSoftStyle = -90 _LVOAddBob = -96 _LVOAddVSprite = -102 _LVODoCollision = -108 _LVODrawGList = -114 _LVOInitGels = -120 _LVOInitMasks = -126 _LVORemIBob = -132 _LVORemVSprite = -138 _LVOSetCollision = -144 _LVOSortGList = -150 _LVOAddAnimOb = -156 _LVOAnimate =7ڌ rdevices ɯm`  inputevent.i IFND DEVICES_INPUTEVENT_I@ DEVICES_INPUTEVENT_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; inputevent.i ; ;******************************************************************* ;******************************************************************* ; ; input event definitions ; ;****************************************************]  bootblock.iKv IFND DEVICES_BOOTBLOCK_I@ DEVICES_BOOTBLOCK_I@ EQU 1 ;************************************************************************ ; ; ; Copyright (C) 1985, Commodore Amiga Inc. All rights reserved. ; ; ; ;************************************************************************ ;*******************************************rzyxwvm  trackdisk.i/j ;************************************************************************ ; ; ; Copyright (C) 1985, Commodore Amiga Inc. All rights reserved. ; ; ; ;************************************************************************ ;************************************************************************ ; ; trackdisk.i ; ; Source Control ; ----e3qponmlk}|{~+  prtbase.i~~,;******************************************************************* ; Commodore-Amiga, Inc. ; ; prtbase.i ; ;******************************************************************* ;******************************************************************* ; ; printer device data definition ; ;******************************************************************* IFND DEVICES_PRTBASE_I@ DEVICES 'y fedcba`tsru  v parallel.iu] ;**************************************************************** ; ; ; Copyright 1985, Commodore Amiga Inc. All rights reserved. ; ; No part of this program may be reproduced, transmitted, ; ; transcribed, stored in retrieval system, or translated into ; ; any language or computer language, in any form or by any ; ; means, electronic, mechanical, magnetic, optical, chemical, ; ; manual or otherwise, wiӃ"0J  input.iε\ IFND DEVICES_INPUT_I@ DEVICES_INPUT_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; input.i ; ;******************************************************************* ;********************************************************************* ; ; input device command definitions ; ;*************************************************bթ******************** IFND EXEC_IO_I2@ INCLUDE "exec/io.i" ENDIF DEVINIT DEVCMD IND_ADDHANDLER DEVCMD IND_REMHANDLER DEVCMD IND_WRITEEVENT DEVCMD IND_SETTHRESH DEVCMD IND_SETPERIOD DEVCMD IND_SETMPORT DEVCMD IND_SETMTYPE DEVCMD IND_SETMTRIG ENDIF END  v parallel.ijihg  clipboard.igϘ IFND DEVICES_CLIPBOARD_I@ DEVICES_CLIPBOARD_I@ EQU 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; clipboard.i ; ;******************************************************************* ;******************************************************************* ; ; clipboard device command definitions ; ;***********************************؏/))YXWVU  audio.iU:S;******************************************************************** ; ; ; Copyright 1986, Commodore-Amiga Inc. All rights reserved. ; ; No part of this program may be reproduced, transmitted, ; ; transcribed, stored in retrieval system, or translated into ; ; any language or computer language, in any form or by any ; ; means, electronic, mechanical, magnetic, optical, chemical,.]  keyboard.i]N IFND DEVICES_KEYBOARD@_I DEVICES_KEYBOARD_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; keyboard.i ; ;******************************************************************* ;******************************************************************* ; ; Keyboard device command definitions ; ;******************************************TX^\[Z_ 2  console.i_ IFND DEVICES_CONSOLE_I@ DEVICES_CONSOLE_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; console.i ; ;******************************************************************* ;******************************************************************* ; ; Console device command definitions ; ; Source Control ; -------------- ; $Heade N gameport.iTB IFND DEVICES_GAMEPORT_I@ DEVICES_GAMEPORT_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; gameport.i ; ;******************************************************************* ;******************************************************************* ; ; Game Port device command definitions ; ;*****************************************yu************************** IFND EXEC_IO_I@ INCLUDE "exec/io.i" ENDIF ;*****; GamePort commands ;****** DEVINIT DEVCMD GPD_READEVENT DEVCMD GPD_ASKCTYPE DEVCMD GPD_SETCTYPE DEVCMD GPD_ASKTRIGGER DEVCMD GPD_SETTRIGGER ;*****; GamePort structures ;****** ; gpt_Keys ; BITDEF GPT,DOWNKEYS,0 GPTB_DOWNKEYS = 0 GPTF_DOWNKEYS = 1<<0 ; BITDEF GPT,UPKEYS,1 GPTB_UPKEYS = 1 GPTF_UPKEYS = 1<<1 STRUCTURE GamePortTrigger,0 UWO-RD gpt_Keys ;key transition triggers UWORD gpt_Timeout ;time trigger (vertical blank units) UWORD gpt_XDelta ;X distance trigger UWORD gpt_YDelta ;Y distance trigger LABEL gpt_SIZEOF ;*****; Controller Types ;***** GPCT_ALLOCATED EQU -1 ; allocated by another user GPCT_NOCONTROLLER EQU 0 GPCT_MOUSE EQU 1 GPCT_RELJOYSTICK EQU 2 GPCT_ABSJOYSTICK EQU 3 ;*****; Errors ;***** GPDERR_SETCTYPE EQU 1BQJ ; this controller not valid at this time ENDIF END io.i" ENDIF ;*****; GamePort commands ;****** DEVINIT DEVCMD GPD_READEVENT DEVCMD GPD_ASKCTYPE DEVCMD GPD_SETCTYPE DEVCMD GPD_ASKTRIGGER DEVCMD GPD_SETTRIGGER ;*****; GamePort structures ;****** ; gpt_Keys ; BITDEF GPT,DOWNKEYS,0 GPTB_DOWNKEYS = 0 GPTF_DOWNKEYS = 1<<0 ; BITDEF GPT,UPKEYS,1 GPTB_UPKEYS = 1 GPTF_UPKEYS = 1<<1 STRUCTURE GamePortTrigger,0 UWOY҃BA@?TSRQPONMLKJh J printer.iJϳ IFND DEVICES_PRINTER_I@ DEVICES_PRINTER_I@ EQU 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; printer.i ; ;******************************************************************* ;******************************************************************* ; ; printer device command definitions ; ; Source Control ; -------------- ; $Hea;AHG timer.iGiD ;***************************************************************** ; ; ; Copyright (C) 1985, Commodore Amiga Inc. All rights reserved. ; ; ; ;***************************************************************** ;**************************************************************** ; ; SOURCE CONTROL ; ------ ------- ; $Header: timer.i,v 27.1 85/06/24 13:32:40 neil %**)>=<;:987654FEDCI"z Oserial.iI] ;**************************************************************** ; ; ; Copyright 1985, Commodore Amiga Inc. All rights reserved. ; ; No part of this program may be reproduced, transmitted, ; ; transcribed, stored in retrieval system, or translated into ; ; any language or computer language, in any form or by any ; ; means, electronic, mechanical, magnetic, optical, chemical, ; ; manual or otherwise, wi!2 /keymap.i%n IFND DEVICES_KEYMAP_I@ DEVICES_KEYMAP_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; keymap.i ; ;******************************************************************* ;********************************************************************* ; ; keymap.resource definitions and ; console.device key map definitions ; ;***********]|O9********************************************************** IFND EXEC_NODES_I@ INCLUDE "exec/nodes.i" ENDIF IFND EXEC_LISTS_I@ INCLUDE "exec/lists.i" ENDIF STRUCTURE KeyMap,0 APTR km_LoKeyMapTypes APTR km_LoKeyMap APTR km_LoCapsable APTR km_LoRepeatable APTR km_HiKeyMapTypes APTR km_HiKeyMap APTR km_HiCapsable APTR km_HiRepeatable LABEL km_SIZEOF STRUCTURE KeyMapNode,0 STRUCT kn_Node#,LN_SIZE ; including name of keymap STRUCT kn_KeyMap,km_SIZEOF LABEL kn_SIZEOF ;------ the structure of keymap.resource STRUCTURE KeyMapResource,0 STRUCT kr_Node,LN_SIZE STRUCT kr_List,LH_SIZE ; a list of KeyMapNodes LABEL kr_SIZEOF KCB_NOP EQU 7 KCF_NOP EQU $80 KC_NOQUAL EQU 0 KC_VANILLA EQU 7 ; note that SHIFT+ALT+CTRL is VANILLA KCB_SHIFT EQU 0 KCF_SHIFT EQU $01 KCB_ALT EQU 1 KCF_ALT EQU E$02 KCB_CONTROL EQU 2 KCF_CONTROL EQU $04 KCB_DOWNUP EQU 3 KCF_DOWNUP EQU $08 KCB_DEAD EQU 5 ; may be dead or modified by dead key: KCF_DEAD EQU $20 ; use dead prefix bytes KCB_STRING EQU 6 KCF_STRING EQU $40 ;------ Dead Prefix Bytes DPB_MOD EQU 0 DPF_MOD EQU $01 DPB_DEAD EQU 3 DPF_DEAD EQU $08 DP_2DINDEXMASK EQU $0F ; mask for index for 1st of two dead keys DP_2DFACSHIFT EQMZU 4 ; shift for factor for 1st of two dead keys ENDIF END ABEL kn_SIZEOF ;------ the structure of keymap.resource STRUCTURE KeyMapResource,0 STRUCT kr_Node,LN_SIZE STRUCT kr_List,LH_SIZE ; a list of KeyMapNodes LABEL kr_SIZEOF KCB_NOP EQU 7 KCF_NOP EQU $80 KC_NOQUAL EQU 0 KC_VANILLA EQU 7 ; note that SHIFT+ALT+CTRL is VANILLA KCB_SHIFT EQU 0 KCF_SHIFT EQU $01 KCB_ALT EQU 1 KCF_ALT EQU  {V/.-,+3210X # narrator.i0= TTL '$Header: narrator.i,v 32.1 86/01/22 00:25:26 sam Exp $' ;********************************************************************* ; ; ; Copyright 1986, Commodore-Amiga Inc. All rights reserved. ; ; No part of this program may be reproduced, transmitted, ; ; transcribed, stored in retrieval system, or translated into ; ; any language or computer language, in any form or by anyR "!   conunit.i\^- IFND DEVICES_CONUNIT_I@ DEVICES_CONUNIT_I@ EQU 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; conunit.i ; ;******************************************************************* ;******************************************************************* ; ; Console device unit definitions ; ;*********************************. ) thardwareeo]  intbits.iG;******************************************************************* ; Commodore-Amiga, Inc. ; intenabits.i -- definitions for the bits in the interrupt enable ; (and interrupt request) register ; ; $Header: intbits.i,v 27.1 85/06/24 14:43:07 neil Exp $ ; ; $Locker: $ ; ;*******************************************************************/ IFND HARDWARE_INTBITS_I@ HARDWARE_INTBITS_I@ = 1 INTB_SETCLR EQU (15) ;Set/Clear control bit. Determines if bits j+ Q ;written with a 1 get set or cleared. Bits ;written with a zero are allways unchanged. INTB_INTEN EQU (14) ;Master interrupt (enable only ) INTB_EXTER EQU (13) ;External interrupt INTB_DSKSYNC EQU (12) ;Disk re-SYNChronized INTB_RBF EQU (11) ;serial port Receive Buffer Full INTB_AUD3 EQU (10) ;Audio channel 3 block finished INTB_AUD2 EQU (9) ;Audio channel 2 block finished INTB_AUD1 EQU (8) ;Audijo channel 1 block finished INTB_AUD0 EQU (7) ;Audio channel 0 block finished INTB_BLIT EQU (6) ;Blitter finished INTB_VERTB EQU (5) ;start of Vertical Blank INTB_COPER EQU (4) ;Coprocessor INTB_PORTS EQU (3) ;I/O Ports and timers INTB_SOFTINT EQU (2) ;software interrupt request INTB_DSKBLK EQU (1) ;Disk Block done INTB_TBE EQU (0) ;serial port Transmit Buffer Empty INTF_SETCLR EQU (1<<15) INTF_INTEN EQU (1:<<14) INTF_EXTER EQU (1<<13) INTF_DSKSYNC EQU (1<<12) INTF_RBF EQU (1<<11) INTF_AUD3 EQU (1<<10) INTF_AUD2 EQU (1<<9) INTF_AUD1 EQU (1<<8) INTF_AUD0 EQU (1<<7) INTF_BLIT EQU (1<<6) INTF_VERTB EQU (1<<5) INTF_COPER EQU (1<<4) INTF_PORTS EQU (1<<3) INTF_SOFTINT EQU (1<<2) INTF_DSKBLK EQU (1<<1) INTF_TBE EQU (1<<0) ENDIF END ;Audio channel 2 block finished INTB_AUD1 EQU (8) ;Audie?'&%$  j adkbits.i$C;******************************************************************* ; adkbits.i -- bit definitions for adkcon register ; ; Commodore-Amiga, Inc. ; ; $Header: adkbits.i,v 27.1 85/06/24 14:42:37 neil Exp $ ; ; $Locker: $ ; ;******************************************************************** IFND HARDWARE_ADKBITS_I@ HARDWARE_ADKBITS_I@ = 1 ADKB_SETCLR EQU 15 ; standard set/clear bit ADKB_PRECOMP1 EQU 14 ; two bits of precompensation ADKB_PRECOMP0 EQU 13 ADKB_MFMPRECn#(K  &blit.i(X(R;******************************************************************* ; Commodore-Amiga, Inc. ; blit.i ; ; $Header: blit.i,v 27.1 85/06/24 14:42:42 neil Exp $ ; ; $Locker: $ ; ;******************************************************************** IFND HARDWARE_BLIT_I@ HARDWARE_BLIT_I@ = 1 STRUCTURE bltnode,0 LONG bn_n LONG bn_function BYTE bn_stat BYTE bn_dummy WORD bn_blitsize WORD bn_beamsync LONG bn_cleanup LABEL bn_SIZEOF ; bit defines  3Ug ^cia.iB6001 DMAF_AUD1 EQU $0002 DMAF_AUD2 EQU $0004 DMAF_AUD3 EQU $0008 DMAF_DISK EQU $0010 DMAF_SPRITE EQU $0020 DMAF_BLITTER EQU $0040 DMAF_COPPER EQU $0080 DMAF_RASTER EQU $0100 DMAF_MASTER EQU $0200 DMAF_BLITHOG EQU $0400 DMAF_ALL EQU $01FF /; all dma channels ;/ ; read definitions for dmaconr ;/ ; bits 0-8 correspnd to dmaconw definitions ;/ DMAF_BLTDONE EQU $4000 DMAF_BLTNZERO EQU $2000 DMAB_SETCLR EQU 15 DMA>PB_AUD0 EQU 0 DMAB_AUD1 EQU 1 DMAB_AUD2 EQU 2 DMAB_AUD3 EQU 3 DMAB_DISK EQU 4 DMAB_SPRITE EQU 5 DMAB_BLITTER EQU 6 DMAB_COPPER EQU 7 DMAB_RASTER EQU 8 DMAB_MASTER EQU 9 DMAB_BLITHOG EQU 10 DMAB_BLTDONE EQU 14 DMAB_BLTNZERO EQU 13 ENDIF END file for defining dma control stuff ;/ ; write definitions for dmaconw ;/ DMAF_SETCLR EQU $8000 DMAF_AUDIO EQU $000F /; 4 bit mask ;/ DMAF_AUD0 EQU $0,C     custom.ir;******************************************************************* ; Commodore-Amiga, Inc. ; custom.i ; ; $Header: custom.i,v 27.1 85/06/24 14:42:56 neil Exp $ ; ; $Locker: $ ; ;******************************************************************** IFND HARDWARE_CUSTOM_I@ HARDWARE_CUSTOM_I@ = 1 ; ; do this to get base of custom registers: ; XREF _custom; ; bltddat EQU $000 dmaconr EQU $002 vposr EQU $004 vhposr EQU $006 dskdatr EQU $008 joy!^    resources lo  disk.ib IFND RESOURCES_DISK_I@ RESOURCES_DISK_I@ = 1 ;**************************************************************** ; ; ; Copyright 1985, Commodore Amiga Inc. All rights reserved. ; ; No part of this program may be reproduced, transmitted, ; ; transcribed, stored in retrieval system, or translated into ; ; any language or computer language, in any form or by any ; ; means, electronic, med wmisc.i'p IFND RESOURCES_MISC_I RESOURCES_MISC_I = 1 ;***************************************************************** ; ; ; Copyright (C) 1985, Commodore Amiga Inc. All rights reserved. ; ; ; ;***************************************************************** IFND EXEC_TYPES_I@ INCLUDE "exec/types.i" ENDIF I  3p cia.i 4 CIAANAME MACRO DC.B 'ciaa.resource',0 ENDM CIABNAME MACRO DC.B 'ciab.resource',0 ENDM end  wmisc.i  :  qpotgo.i v IFND RESOURCES_POTGO_I@ RESOURCES_POTGO_I EQU 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; potgo.i ; ;******************************************************************* POTGONAME MACRO DC.B 'potgo.resource' DC.B 0 DS.W 0 ENDM ENDIF END    C intuitionY[w intuitionbase.i Ɵ IFND INTUITION_INTUITIONBASE_I@ INTUITION_INTUITIONBASE_I@ = 1 ;*; intuitionbase.i ;******************************************************** ; ; the IntuitionBase structure and supporting structures ; ; $Header: intuitionbase.i,v 1.4 86/06/13 03:22:44 jimm Exp $ ; ; Confidential Information: Commodore-Amiga Computer, Inc. ; Copyright (c) Commodore-Amiga Computer, Inc. ; Modification History ; date : author : Comments ; H$\  intuition.i c IFND INTUITION_INTUITION_I@ INTUITION_INTUITION_I@ = 1 ;*; intuition.i ;************************************************************ ;* ;; intuition.i main include file for assembly-language programmers ;* ;; $Header: intuition.i,v 1.13 86/09/10 10:52:26 jimm Exp $ ;* ;; Confidential Information: Commodore-Amiga Computer, Inc. ;; Copyright (c) Commodore-Amiga Computer, Inc. ;; Modification History ;; date : author : Comm'ލ6USQKI@<51/*(&$"  execb  Ptypes.i IFND EXEC_TYPES_I@ EXEC_TYPES_I@= 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: types.i,v 33.2 86/04/29 18:39:25 neil Exp $ ; ; $Locker: $ ; ;********************************************************************* EXTERN_LIB MACRO $\1 ; XREF _LVO\1 ; ENDM STRUCTURE MACRO $\1,$\2 SOFFSET@ = \2 ENDM BOOL MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+2 ENDM BYTE MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+1 ENDM UBYTE MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+1 ENDM WORD MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+2 ! ENDM UWORD MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+2 ENDM SHORT MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+2 ENDM USHORT MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+2 ENDM LONG MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+4 ENDM ULONG MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ =O*n SOFFSET@+4 ENDM FLOAT MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+4 ENDM APTR MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+4 ENDM CPTR MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+4 ENDM RPTR MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+2 ENDM STRUCT MACRO $\1,$\2 $\1 ^? EQU SOFFSET@ SOFFSET@ = SOFFSET@+\2 ENDM LABEL MACRO $\1 $\1 EQU SOFFSET@ ENDM LIBRARY_VERSION EQU 33 ENDIF END 2 ENDM USHORT MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+2 ENDM LONG MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ = SOFFSET@+4 ENDM ULONG MACRO $\1 $\1 EQU SOFFSET@ SOFFSET@ =.  %ports.iӡ IFND EXEC_PORTS_I@ EXEC_PORTS_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: ports.i,v 33.1 86/03/07 17:30:32 neil Exp $ ; ; $Locker: $ ; ;********************************************************************* IFND EXEC_NODES_I@ INCLUDE "exec/nodes.i" +7 1  ables.iwi IFND EXEC_ABLES_I@ EXEC_ABLES_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: ables.i,v 33.1 86/03/30 13:03:48 neil Exp $ ; ; $Locker: neil $ ; ;********************************************************************* IFND EXEC_TYPES_I@ INCLUDE "exec/types.i^G  strings.iJf IFND EXEC_STRINGS_I@ EXEC_STRINGS_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: strings.i,v 1.0 85/08/28 15:14:06 carl Exp $ ; ; $Locker: $ ; ;********************************************************************* ;------ Terminal Control: EOS EQU  !]zy! io.i %h) IFND EXEC_IO_I@ EXEC_IO_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: io.i,v 33.1 86/03/31 00:55:30 neil Exp $ ; ; $Locker: $ ; ;********************************************************************* IFND EXEC_PORTS_I@ INCLUDE "exec/ports.i" ENDIF "# 3~}#I lists.i"}ܤ IFND EXEC_LISTS_I@ EXEC_LISTS_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: lists.i,v 33.1 86/03/07 17:30:54 neil Exp $ ; ; $Locker: $ ; ;********************************************************************* IFND EXEC_NODES_I@ INCLUDE "exec/nodes.i" $%pon%e  resident.i>$nZ IFND EXEC_RESIDENT_I@ EXEC_RESIDENT_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: resident.i,v 1.0 85/08/28 15:13:41 carl Exp $ ; ; $Locker: $ ; ;********************************************************************* ;-------------------------------------------&')Zihgfedcutsrqxwv'n alerts.i&v:C IFND EXEC_ALERTS_I@ EXEC_ALERTS_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: alerts.i,v 33.6 86/07/07 09:02:54 neil Exp $ ; ; $Locker: $ ; ;********************************************************************* ; BITDEF S,ALERTWACK,1 ; in ExecBase.Sys()'+m) errors.i(m IFND EXEC_ERRORS_I@ EXEC_ERRORS_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: errors.i,v 1.0 85/08/28 15:07:26 carl Exp $ ; ; $Locker: $ ; ;********************************************************************* ;------ Standard IO Errors: IOERR_OPENFAIL EQU *+^.-,+  devices.i*,] IFND EXEC_DEVICES_I@ EXEC_DEVICES_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: devices.i,v 1.0 85/08/28 15:07:02 carl Exp $ ; ; $Locker: $ ; ;********************************************************************* IFND EXEC_LIBRARIES_I@ INCLUDE "exec/lib*-jN8graries.i" ENDIF IFND EXEC_PORTS_I@ INCLUDE "exec/ports.i" ENDIF ;---------------------------------------------------------------- ; ; Device Data Structure ; ;---------------------------------------------------------------- STRUCTURE DD,LIB_SIZE LABEL DD_SIZE ; identical to library ;---------------------------------------------------------------- ; ; Suggested Unit Structure ; ;-----------------------------------------------------*.0----------- STRUCTURE UNIT,MP_SIZE ; queue for requests UBYTE UNIT_FLAGS UBYTE UNIT_pad UWORD UNIT_OPENCNT LABEL UNIT_SIZE ;------ UNIT_FLAG definitions: ; BITDEF UNIT,ACTIVE,0 ; driver is active UNITB_ACTIVE = 0 ; driver is active UNITF_ACTIVE = 1<<0 ; driver is active ; BITDEF UNIT,INTASK,1 ; running in driver's task UNITB_INTASK = 1 ; running in driver's task *Rz?0SW?]  wnodes.i>W&: IFND EXEC_NODES_I@ EXEC_NODES_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: nodes.i,v 33.2 86/03/07 17:30:44 neil Exp $ ; ; $Locker: $ ; ;********************************************************************* ;---------------------------------------------------@AHGFEDCBA  c libraries.i@B>qK IFND EXEC_LIBRARIES_I@ EXEC_LIBRARIES_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: libraries.i,v 1.0 85/08/28 15:11:09 carl Exp $ ; ; $Locker: $ ; ;********************************************************************* IFND EXEC_NODES_I@ INCLUDE "exec/n@CĻodes.i" ENDIF ;------ Special Constants --------------------------------------- LIB_VECTSIZE EQU 6 LIB_RESERVED EQU 4 LIB_BASE EQU $FFFFFFFA ; (-LIB_VECTSIZE) LIB_USERDEF EQU LIB_BASE-(LIB_RESERVED*LIB_VECTSIZE) LIB_NONSTD EQU LIB_USERDEF ;---------------------------------------------------------------- ; ; Library Definition Macros ; ;---------------------------------------------------------------- ;------ LIBINIT sets base @DVoffset for library function definitions: LIBINIT MACRO $\1 ; [baseOffset] IFND \1 COUNT_LIB@ = LIB_USERDEF ELSE COUNT_LIB@ = \1 ENDIF ENDM ;------ LIBDEF is used to define each library function entry: LIBDEF MACRO $\1 ; libraryFunctionSymbol $\1 EQU COUNT_LIB@ COUNT_LIB@ = COUNT_LIB@-LIB_VECTSIZE ENDM ;---------------------------------------------------------------- ; ; @E%, Standard Library Functions ; ;---------------------------------------------------------------- LIBINIT LIB_BASE LIBDEF LIB_OPEN LIBDEF LIB_CLOSE LIBDEF LIB_EXPUNGE LIBDEF LIB_EXTFUNC ; reserved ; ;---------------------------------------------------------------- ; ; Standard Library Data Structure ; ;---------------------------------------------------------------- STRUCTURE LIB,LN_SIZE UBYTE LIB_FLAGS UBYTE LIB_pad UWORD@F^Ǩ LIB_NEGSIZE ; number of bytes before LIB UWORD LIB_POSSIZE ; number of bytes after LIB UWORD LIB_VERSION ; major UWORD LIB_REVISION ; minor APTR LIB_IDSTRING ; identification ULONG LIB_SUM ; the checksum itself UWORD LIB_OPENCNT ; number of current opens LABEL LIB_SIZE ;------ LIB_FLAGS bit definitions: ; BITDEF LIB,SUM@G>MING,0 ; we are currently checksumming LIBB_SUMMING = 0 ; we are currently checksumming LIBF_SUMMING = 1<<0 ; we are currently checksumming ; BITDEF LIB,CHANGED,1 ; we have just changed the lib LIBB_CHANGED = 1 ; we have just changed the lib LIBF_CHANGED = 1<<1 ; we have just changed the lib ; BITDEF LIB,SUMUSED,2 ; set if we should bother to sum LIBB_SUMUSED = 2 ; @H++set if we should bother to sum LIBF_SUMUSED = 1<<2 ; set if we should bother to sum ; BITDEF LIB,DELEXP,3 ; delayed expunge LIBB_DELEXP = 3 ; delayed expunge LIBF_DELEXP = 1<<3 ; delayed expunge ;---------------------------------------------------------------- ; ; Function Invocation Macros ; ;---------------------------------------------------------------- ;------ CALLLIB for calling functions where A6 is already co@jZrrect: CALLLIB MACRO $\1 ; functionOffset JSR \1(A6) ENDM ;------ LINKLIB for calling functions where A6 is incorrect: LINKLIB MACRO $\1,$\2 ; functionOffset,libraryBase MOVE.L A6,-(SP) MOVE.L \2,A6 CALLLIB \1 MOVE.L (SP)+,A6 ENDM ENDIF END st changed the lib ; BITDEF LIB,SUMUSED,2 ; set if we should bother to sum LIBB_SUMUSED = 2 ; IJkVJY  exec.iIYGf INCLUDE "EXEC/TYPES.I2" INCLUDE "exec/nodes.I1" INCLUDE "exec/lists.I1" INCLUDE "exec/interrupts.I1" INCLUDE "exec/memory.I1" INCLUDE "exec/ports.I1" INCLUDE "exec/tasks.I1" INCLUDE "exec/libraries.I1" INCLUDE "exec/devices.I1" INCLUDE "exec/io.I1" END  execKLaPONML  ttypes.i1KM+| IFND EXEC_TYPES_I EXEC_TYPES_I = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: types.i,v 33.2 86/04/29 18:39:25 neil Exp $ ; ; $Locker: $ ; ;********************************************************************* EXTERN_LIB MACRO XREF _LVO\1 KNQ ENDM STRUCTURE MACRO \1 EQU 0 ; for assembler's sake SOFFSET = \2 ENDM BOOL MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+2 ENDM BYTE MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+1 ENDM UBYTE MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+1 ENDM WORD MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+2 KOz ENDM UWORD MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+2 ENDM SHORT MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+2 ENDM USHORT MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+2 ENDM LONG MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+4 ENDM ULONG MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+4 ENDM FLOAT KPcw{w MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+4 ENDM APTR MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+4 ENDM CPTR MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+4 ENDM RPTR MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+2 ENDM STRUCT MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+\2 ENDM LABEL MACRO \1 Kՙ EQU SOFFSET ENDM ;------ bit definition macro ------------------------------------ ; ; Given: ; ; BITDEF MEM,CLEAR,16 ; ; Yields: ; ; MEMB_CLEAR EQU 16 ; MEMF_CLEAR EQU (1.SL.MEMB_CLEAR) ; LIBRARY_VERSION EQU 33 ENDIF END ENDM LONG MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+4 ENDM ULONG MACRO \1 EQU SOFFSET SOFFSET = SOFFSET+4 ENDM FLOAT QR0 CBVUTR  exec_lib.iQTqG; This file generated on Fri May 2 18:15:25 1986 ; $Header: gen-lib.ml,v 33.1 86/03/18 11:47:40 neil Exp $ ; DO NOT EDIT: FILE BUILT AUTOMATICALLY FUNCDEF Supervisor FUNCDEF ExitIntr FUNCDEF Schedule FUNCDEF Reschedule FUNCDEF Switch FUNCDEF Dispatch FUNCDEF Exception FUNCDEF InitCode FUNCDEF InitStruct FUNCDEF MakeLibrary FUNCDEF MakeFunctions FUNCDEF FindResident FUNCDEF InitST}DLKT f semaphores.iSKj IFND EXEC_SEMAPHORES_I@ EXEC_SEMAPHORES_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: semaphores.i,v 33.1 86/03/07 17:31:08 neil Exp $ ; ; $Locker: $ ; ;********************************************************************* IFND EXEC_NODES_I@ INCLUDE "eUVkIHGFEV " Nmemory.iUE_ IFND EXEC_MEMORY_I@ EXEC_MEMORY_I@ = 1 ;********************************************************************* ; ; Commodore Amiga -- ROM Operating System Executive Include File ; ;********************************************************************* ; ; Source Control: ; ; $Header: memory.i,v 1.0 85/08/28 15:12:02 carl Exp $ ; ; $Locker: $ ; ;********************************************************************* IFND EXEC_NODES_I@ INCLUDE "exec/nodes.i" W'\ZX  workbenchXY%<;:987JY x ' workbench.iWXJ֢ ;******************************************************************** ; ; workbench.h ; ; $Header: workbench.i,v 32.1 86/01/06 04:25:56 neil Exp $ ; ; $Locker: $ ; ;******************************************************************** IFND EXEC_TYPES_I@ INCLUDE "exec/types.i" ENDIF IFND EXEC_NODES_I@ INCLUDE "exec/nodes.i" ENDIF IFND EXEC_LISTS_I@ INCLUDE "exec/lists.i" ENDIF IFND EXEC_TZ[h =<[ icon.iWZ IFND WORKBENCH_ICON_I@ WORKBENCH_ICON_I@ = 1 ;***************************************************************** ; ; ; Copyright (C) 1985, Commodore Amiga Inc. All rights reserved. ; ; ; ;***************************************************************** ;**************************************************************** ; ; icon.i -- ex\]U-?>] 9 startup.iW\> ] ;*; startup.i ;*********************************************************** ; ; Workbench startup definitions ; ; Copyright (C) 1985, Commodore-Amiga, Inc., All rights reserved. ; ; $Header: startup.i,v 29.1 85/08/15 06:58:52 neil Exp $ ; ; $Locker: $ ; ;*************************************************************************** IFND EXEC_TYPES_I@ INCLUDE "exec/types.i" ENDIF IFND EXEC_PORTS_I@ INCLUDE "exec/ports.i" ENDIF ^mqokigmca_e  libraries_`#jA`S 4 expansion.i^_Al| ;**; expansion.h ;********************************************************* ; ; external definitions for expansion.resource ; ; Copyright (C) 1985, Commodore-Amiga, Inc., All rights reserved. ; ; $Header: expansion.i,v 33.2 86/04/25 12:15:45 neil Exp $ ; ; $Locker: $ ; ; $Log: expansion.i,v $ ; Revision 33.2 86/04/25 12:15:45 neil ; Added MakeDosNode/AddDosNode; changed Get/SetCurrentBinding ; ; Revision 33.1 86/04/01 12:17:25 neil ; First version ; ; ;*******************abR'b8 testdat1^a835?configvars.i1 testdat filehandler.i1 dosextens.i1 expansion.i1 diskfont.i configregs.i1 testdat1 translator.i1 dos.i1 dos_lib.i1 11 files - 90 blocks used CODERS PACK V1.5  cd.-,@d M  diskfont.i^c@O IFND LIBRARIES_DISKFONT_I@ LIBRARIES_DISKFONT_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; diskfont.i ; ;******************************************************************* ;******************************************************************* ; ; diskfont library definitions ; ;**********************************************ef~H321f  translator.i^e1* TTL '$Header: translator.i,v 32.1 86/01/22 01:18:17 sam Exp $' ;********************************************************************* ; ; ; Copyright 1986, Commodore-Amiga Inc. All rights reserved. ; ; No part of this program may be reproduced, transmitted, ; ; transcribed, stored in retrieval system, or translated into ; ; any language or computer language, in any form or by agh/654h p configvars.i^g4Y ;**; configvars.i ;******************************************************** ; ; software structures for configuration subsystem ; ; Copyright (C) 1985, Commodore-Amiga, Inc., All rights reserved. ; ; $Header: configvars.i,v 33.2 86/04/25 03:58:09 neil Exp $ ; ; $Locker: $ ; ; $Log: configvars.i,v $ ; Revision 33.2 86/04/25 03:58:09 neil ; added cb_ToolTypes ; ; Revision 33.1 86/04/03 19:14:04 neil ; ;*; empty log message ;** ; ; ;******************************************ij' ij  testdat^i\ configregs.i1 configvars.i1 diskfont.i dos.i1 dosextens.i1 dos_lib.i1 expansion.i1 filehandler.i1 testdat translator.i1 t CODERS PACK V1.5  kl2F+*)('&%$#"!0l9  dos.i^k0Z; Standard assembler header for Amiga DOS on the MC68000 IFND LIBRARIES_DOS_I@ LIBRARIES_DOS_I@ = 1 ; IFND EXEC_TYPES_I@ ; INCLUDE "exec/types.i" ; ENDIF DOSNAME MACRO DC.B 'dos.library',0 ENDM ; Predefined Amiga DOS global constants ; Mode parameter to Open() MODE_OLDFILE EQU 1005 ; Open existing file read/write ; ; positioned at beginning of file. MODE_NEWFILE EQU 1mn  n"e  ) dosextens.i^m/$ ; DOS structures not needed for the casual DOS user IFND LIBRARIES_DOSEXTENS_I@ LIBRARIES_DOSEXTENS_I@ = 1 IFND EXEC_TYPES_I@ INCLUDE "exec/types.i" ENDIF IFND EXEC_TASKS_I@ INCLUDE "exec/tasks.i" ENDIF IFND EXEC_PORTS_I@ INCLUDE "exec/ports.i" ENDIF IFND EXEC_LIBRARIES_I@ INCLUDE "exec/libraries.i" ENDIF IFND LIBRARIES_DOS_I@ INCLUDE "libraries/dos.i" ENDIF ; All DOS processes have this STo p[p2 h filehandler.is^om* ;**; libraries/filehandler.i ;********************************************* ; ; device and file handler specific code for AmigaDOS ; ; Copyright (C) 1986, Commodore-Amiga, Inc., All rights reserved. ; ; $Header: filehandler.i,v 33.4 86/05/21 19:14:20 neil Exp $ ; ; $Locker: $ ; ;***************************************************************************/ IFND LIBRARIES_FILEHANDLER_I@ LIBRARIES_FILEHANDLER_I@ = 1 IFND EXEC_TYPES_I@ INCLUDE "exeqrh r  dos_lib.i^q6!;******************************************************************* ; Commodore-Amiga, Inc. ; ; dos_lib.i ; ;******************************************************************* ; ; Library interface offsets for DOS library ; reserve EQU 4 vsize EQU 6 count = -vsize*(reserve+1) LIBENT MACRO $\1 _LVO\1 EQU count count = count-vsize ENDM ; ; ; LIBENT st tK  configregs.i^s v/ ;**; configregs.i ;******************************************************** ; ; register and bit definitions for expansion boards ; ; Copyright (C) 1985, Commodore-Amiga, Inc., All rights reserved. ; ; $Header: configregs.i,v 33.2 86/05/04 23:40:52 neil Exp $ ; ; $Locker: $ ; ; $Log: configregs.i,v $ ; Revision 33.2 86/05/04 23:40:52 neil ; added diag area ; ; Revision 33.1 86/04/01 12:17:22 neil ; First version ; ; ;*******************************************************u/L|~zxv graphicsvwiBw,C gels.iuv风9 IFND GRAPHICS_GELS_I@ GRAPHICS_GELS_I@ = 1 ;******************************************************************** ; Commodore-Amiga, Inc. ; ; Graphics Library : Gels Definitions ; ; ; ;******************************************************************** ;------ VS_vSflags --------------------------------------------------- ; ;-- user-sxy/h*yi Ngfx.iuxȤ;******************************************************************* ; ; ; Commodore-Amiga, Inc. ; ; gfx.i ; ; ; ;******************************************************************* IFND GRAPHICS_GFX_I@ GRAPHICS_GFX_I@ = 1 BITSET equ $8000 BIz{) { layers.iuz'; ; Commodore-Amiga, Inc. ; layers.i ; IFND GRAPHICS_LAYERS_I@ GRAPHICS_LAYERS_I@ = 1 IFND EXEC_SEMAPHORES_I@ include 'exec/semaphores.i' ENDIF IFND EXEC_LISTS_I@ include 'exec/lists.i' ENDIF STRUCTURE LayerInfo_extra,0 STRUCT lie_env,13*4 STRUCT lie_mem,LH_SIZE LABEL lie_SIZEOF ; these should be clip.i/h but you know backwards compatibility etc. LAYERSIMPLE equ 1 L|}Zr} view.iu|^ IFND GRAPHICS_VIEW_I@ GRAPHICS_VIEW_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; view.i ; ;******************************************************************* IFND GRAPHICS_GFX_I@ include 'graphics/gfx.i' ENDIF IFND GRAPHICS_COPPER_I@ include 'graphics/copper.i' ENDIF V_PFBA EQU ~ _.5  rastport.iu~c{;****; rastport.i ;************************************************ ; ; Commodore-Amiga, Inc. ; ;****************************************************************** IFND GRAPHICS_RASTPORT_I@ GRAPHICS_RASTPORT_I@ = 1 IFND GRAPHICS_GFX_I@ include 'graphics/gfx.i' ENDIF ;------ TR : TmpRas -------------------------------------------------- STRUCTURE TmpRas,0 APTR tr_RasPtr ; ;WORD LONG tr_Size LABEL tr_SIZEOF ;-----%0 msprite.iu^ IFND GRAPHICS_SPRITE_I@ GRAPHICS_SPRITE_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; sprite.h ; ;******************************************************************* STRUCTURE SimpleSprite,0 APTR ss_posctldata WORD ss_height WORD ss_x WORD ss_y WORD ss_num LABEL We ; display.iunL IFND GRAPHICS_DISPLAY_I@ GRAPHICS_DISPLAY_I@ = 1 ;****; display.i ;**************************************************/ ; ;/ ; Commodore-Amiga, Inc. ;/ ; ;/ ; Modification History ;/ ; date : author : Comments ;/ ; ------- y ------ --------------------------------------- ;/ ; 8-24-84 Dale added this header file ;/ ; ;/ ;*******************************************************************/ ; include define file for display control registers ;/ ; bplcon0 defines ;/ MODE_640 equ $8000 PLNCNTMSK equ $7 ; how many bit planes? ;/ ; ; 0 = none, 1->6 = 1O->6, 7 = reserved ;/ PLNCNTSHFT equ 12 ; bits to shift for bplcon0 ;/ PF2PRI equ $40 ; bplcon2 bit ;/ COLORON equ $0200 ; disable color burst ;/ DBLPF equ $400 HOLDNMODIFY equ $800 INTERLACE equ 4 ; interlace mode for 400 ;/ ; bplcon1 defines ;/ PFA_FINE_SCROLL equ $F PFB_FINE_SCROLL_SHIFT equ 4 PF_FINE_SCROLL_MASK equ $F ; display window start and stop defines ;/ DIW_HORIZ_POS d)g equ $7F ; horizontal start/stop ;/ DIW_VRTCL_POS equ $1FF ; vertical start/stop ;/ DIW_VRTCL_POS_SHIFT equ 7 ; Data fetch start/stop horizontal position ;/ DFTCH_MASK equ $FF ; vposr bits ;/ VPOSRLOF equ $8000 ENDIF END file for display control registers ;/ ; bplcon0 defines ;/ MODE_640 equ $8000 PLNCNTMSK equ $7 ; how many bit planes? ;/ ; ; 0 = none, 1->6 = 1e   gfxbase.iu x IFND GRAPHICS_GFXBASE_I@ GRAPHICS_GFXBASE_I@ = 1 IFND EXEC_LISTS_I@ include 'exec/lists.i' ENDIF IFND EXEC_LIBRARIES_I@ include 'exec/libraries.i' ENDIF IFND EXEC_INTERRUPTS_I@ include 'exec/interrupts.i' ENDIF STRUCTURE GfxBase,LIB_SIZE APTR gb_ActiView ; struct ;View APTR gb_copinit ; struct ;copinit; ptr to copper start up list APTR gb_cia ; for 6526 resource use APTR gb_blitter ^G  regions.iu IFND GRAPHICS_REGIONS_I@ GRAPHICS_REGIONS_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; regions.i ; ;******************************************************************* IFND GRAPHICS_GFX_I@ include 'graphics/gfx.i' ENDIF STRUCTURE Region,0 STRUCT rg_bounds,ra_SIZEOF APTR rg_RegionRectangl66  xcopper.iu IFND GRAPHICS_COPPER_I@ GRAPHICS_COPPER_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; copper.i ; ;******************************************************************* COPPER_MOVE equ 0 ; pseude opcode for move #XXXX,dir ;/ COPPER_WAIT equ 1 ; pseudo opcode for wait y,x ;/ CPRNXTBUF equ 2 ; continue pro7  rename_i1_to_iuVrename view.i1 to view.i rename display.i1 to display.i rename copper.i1 to copper.i rename sprite.i1 to sprite.i rename gfxbase.i1 to gfxbase.i rename regions.i1 to regions.i rename rastport.i1 to rastport.i rename gels.i1 to gels.i rename clip.i1 to clip.i rename gfx.i1 to gfx.i rename layers.i1 to layers.i rename t"(ext.i1 to text.i 6  xcopper.iu \ `text.iujT IFND GRAPHICS_TEXT_I@ GRAPHICS_TEXT_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; text.i ; ;******************************************************************* ;******************************************************************* ; ; graphics library text structures ; ;************************************************m clip.iufa~ IFND GRAPHICS_CLIP_I@ GRAPHICS_CLIP_I@ = 1 ;******************************************************************* ; Commodore-Amiga, Inc. ; ; clip.i ; ;******************************************************************* IFND GRAPHICS_GFX_I@ include 'graphics/gfx.i' ENDIF IFND EXEC_SEMAPHORES_I@ include 'exec/semaphores.i' ENDIF NEWLOCKS9  Cp5DY&cD -MonAm2-y@y`h(C) HiSoft 1988 PRT:SHal < "<,xN:,@JfpgNuHiSoWXf-GT-O-op!C[9/,xN,_-@g0pC[?/,xN,_-@gpC[/,xN,_-@fxz`TA[pCr/,xND,_Jf4/,xN,_#a-@p/,xN,_@p/,xN,_aC/,xN,_ x0((g A # Apr/,nNV,_"<Jg".|e2<A!A/,nN:,_-@gAecba`  $run`ԳOO(jdp N$"<I(l/ / g ,倲l"4(T`,2(jtp NJg2**p$A. J (F BFJNRVZ^bfj: l|b*nnN#"#F""###!Z ""H#$#0% %`6!!!B%(<&z.0T4N45Z'f33>3`5443 "*&'*B" .LjXH!$*@+H".$IN <"<N:"m,#@"g#|&#M*Nt L$NuaN2"@fRn NuB/ <6A r(,n8NJ,_Nua pfSn pNuJn f n,"h"Jf"n`"p88t`p2`p,`p&`p `p` p`p`p/,n0N,_Nup`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`p`Jg"X/"</,xN:,_"Jg @ Nu g !/,xN.,_NuHNLJg(H2E$O&O/B/B,xN O`LLNuJk>"+g RA'A|Pe(Jg$H0L@ $ NL@ JkЫ'@BNurH@p/,xN,_g?p"N"@Jf0,xNLApNu3_LH|,x#n/ J gN`A XB!HL@Nu gHB,xJ gN"Wp)NLBN/ G#K H'@Gr fBQ`&Q&_NuHjNS".A$x(jE\"ON"O k,xN ,g @N` JN JN"@g .a^aAlah`a 0-:[@2H@Ao0J@lp;@8 kV,xNJf8,WSm@faJmz   cia.ic IFND HARDWARE_CIA_I HARDWARE_CIA_I SET 1 ciapra EQU $0000 ciaprb EQU $0100 ciaddra EQU $0200 ciaddrb EQU $0300 ciatalo EQU $0400 ciatahi EQU $0500 ciatblo EQU $0600 ciatbhi EQU $0700 ciatodlow EQU $0800 ciatodmid EQU $0900 ciatodhi EQU $0A00 ciasdr EQU $0C00 ciaicr EQU $0D00 ciacra EQU $0E00 ciacrb EQU $0F00 CIAICRB_TA EQU 0 CIAICRB_TB EQU 1 CIAICRB_ALRM EQU 2 CIAICRB_SP EQU 3 CIAICRB_FLG EQU 4 CIAICRB_IR EQU 7 CIAICRB_SETCLR EQU 7 CIACRAB_START EQU 0 CIACRAB_PBON EQU 1 CIACRAB_OUTM, xcustom.ikR IFND HARDWARE_CUSTOM_I HARDWARE_CUSTOM_I SET 1 bltddat EQU $000 dmaconr EQU $002 vposr EQU $004 vhposr EQU $006 dskdatr EQU $008 joy0dat EQU $00A joy1dat EQU $00C clxdat EQU $00E adkconr EQU $010 pot0dat EQU $012 pot1dat EQU $014 potinp EQU $016 serdatr EQU $018 dskbytr EQU $01A intenar EQU $01C intreqr EQU $01E dskpt EQU $020 dsklen EQU $024 dskdat EQU $026 refptr EQU $028 vposw EQU $02A vhposw EQU $02C copcon EQU $02E serdat EQU $030 serper EQU $032 potgo EQU $034 joytest EQU $036!  resources#7 & potgo_lib.iu_LVOAllocPotBits EQU -6 _LVOFreePotBits EQU -12 _LVOWritePotgo EQU -18 CALLPOTGO MACRO move.l _PotgoBase,a6 jsr _LVO\1(a6) ENDM  xcustom.ilp disk.i:]0 IFND RESOURCES_DISK_I RESOURCES_DISK_I SET 1 IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND EXEC_LISTS_I INCLUDE "exec/lists.i" ENDC IFND EXEC_PORTS_I INCLUDE "exec/ports.i" ENDC IFND EXEC_INTERRUPTS_I INCLUDE "exec/interrupts.i" ENDC IFND EXEC_LIBRARIES_I INCLUDE "exec/libraries.i" ENDC rsreset DISCRESOURCEUNIT rs.b MN_SIZE DRU_DISCBLOCK rs.b IS_SIZE DRU_DISCSYNC rs.b IS_SIZE DRU_INDEX rs.b IS_SIZE DRU_SIZE rs.w 0 rsreset DISCRESOURCE rs.b LIB_SIZE DR_CURRENT rdl qmisc.i' IFND RESOURCES_MISC_I RESOURCES_MISC_I SET 1 IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND EXEC_LIBRARIES_I INCLUDE "exec/libraries.i" ENDC MR_SERIALPORT EQU 0 MR_SERIALBITS EQU 1 MR_PARALLELPORT EQU 2 MR_PARALLELBITS EQU 3 NUMMRTYPES EQU 4 rsreset MiscResource rs.b LIB_SIZE mr_AllocArray rs.b 4*NUMMRTYPES mr_Sizeof rs.w 0 LIBINIT LIB_BASE LIBDEF MR_ALLOCMISCRESOURCE LIBDEF MR_FREEMISCRESOURCE MISCNAME MACRO DC.B 'misc.resource',0 ENDM ENDC 3na cia.i fH IFND RESOURCES_CIA_I RESOURCES_CIA_I SET 1 CIAANAME MACRO DC.B 'ciaa.resource',0 ENDM CIABNAME MACRO DC.B 'ciab.resource',0 ENDM ENDC   resources 9t 'potgo.itcw IFND RESOURCES_POTGO_I RESOURCES_POTGO_I SET 1 POTGONAME MACRO DC.B 'potgo.resource' DC.B 0 DS.W 0 ENDM ENDC   resources/     Rgraphicsi? gels.i! IFND GRAPHICS_GELS_I GRAPHICS_GELS_I SET 1 SUSERFLAGS EQU $00FF VSB_VSPRITE equ 0 VSF_VSPRITE equ 1<<0 VSB_SAVEBACK equ 1 VSF_SAVEBACK equ 1<<1 VSB_OVERLAY equ 2 VSF_OVERLAY equ 1<<2 VSB_MUSTDRAW equ 3 VSF_MUSTDRAW equ 1<<3 VSB_BACKSAVED equ 8 VSF_BACKSAVED equ 1<<8 VSB_BOBUPDATE equ 9 VSF_BOBUPDATE equ 1<<9 VSB_GELGONE equ 10 VSF_GELGONE equ 1<<10 VSB_VSOVERFLOW equ 11 VSF_VSOVERFLOW equ 1<<11 BUSERFLAGS EQU $00FF BB_SAVEBOB equ 0 BF_SAVEBOB equ 1<<0 BB_BOBISCOMP equ 1 BF_BOBISCOMP, equ 1<<1 BB_BWAITING equ 8 BF_BWAITING equ 1<<8 BB_BDRAWN equ 9 BF_BDRAWN equ 1<<9 BB_BOBSAWAY equ 10 BF_BOBSAWAY equ 1<<10 BB_BOBNIX equ 11 BF_BOBNIX equ 1<<11 BB_SAVEPRESERVE equ 12 BF_SAVEPRESERVE equ 1<<12 BB_OUTSTEP equ 13 BF_OUTSTEP equ 1<<13 ANFRACSIZE EQU 6 ANIMHALF EQU $0020 RINGTRIGGER EQU $0001 InitAnimate MACRO CLR.L \1 ENDM RemBob MACRO OR.W #BF_BOBSAWAY,b_BobFlags+\1 ENDM rsreset VS rs.b 0 vs_NextVSprite rs.l 1 vs_PrevVSprite rs.l 1 vs_DrawPath rs.l 1 vs_ClearPathC rs.l 1 vs_Oldy rs.w 1 vs_Oldx rs.w 1 vs_VSFlags rs.w 1 vs_Y rs.w 1 vs_X rs.w 1 vs_Height rs.w 1 vs_Width rs.w 1 vs_Depth rs.w 1 vs_MeMask rs.w 1 vs_HitMask rs.w 1 vs_ImageData rs.l 1 vs_BorderLine rs.l 1 vs_CollMask rs.l 1 vs_SprColors rs.l 1 vs_VSBob rs.l 1 vs_PlanePick rs.b 1 vs_PlaneOnOff rs.b 1 vs_SUserExt rs.w 0 vs_SIZEOF rs.w 0 rsreset BOB rs.b 0 bob_BobFlags rs.w 1 bob_SaveBuffer rs.l 1 bob_ImageShadow rs.l 1 bob_Before rs.l 1 bob_After rs.l 1 bob_BobVSprite rs.l 1 bob_BobCo mp rs.l 1 bob_DBuffer rs.l 1 bob_BUserExt rs.w 0 bob_SIZEOF rs.w 0 rsreset AC rs.b 0 ac_CompFlags rs.w 1 ac_Timer rs.w 1 ac_TimeSet rs.w 1 ac_NextComp rs.l 1 ac_PrevComp rs.l 1 ac_NextSeq rs.l 1 ac_PrevSeq rs.l 1 ac_AnimCRoutine rs.l 1 ac_YTrans rs.w 1 ac_XTrans rs.w 1 ac_HeadOb rs.l 1 ac_AnimBob rs.l 1 ac_SIZE rs.w 0 rsreset AO rs.b 0 ao_NextOb rs.l 1 ao_PrevOb rs.l 1 ao_Clock rs.l 1 ao_AnOldY rs.w 1 ao_AnOldX rs.w 1 ao_AnY rs.w 1 ao_AnX rs.w 1 ao_YVel rs.w 1 ao_XVel rs.w 1 ao_XAccel rs.w 1 ao_YAccel rs.w 1 ao_RingYTrans rs.w 1 ao_RingXTrans rs.w 1 ao_AnimORoutine rs.l 1 ao_HeadComp rs.l 1 ao_AUserExt rs.w 0 ao_SIZEOF rs.w 0 rsreset DBP rs.b 0 dbp_BufY rs.w 1 dbp_BufX rs.w 1 dbp_BufPath rs.l 1 dbp_BufBuffer rs.l 1 dbp_BufPlanes rs.l 1 dbp_SIZEOF rs.w 0 ENDC neOnOff rs.b 1 vs_SUserExt rs.w 0 vs_SIZEOF rs.w 0 rsreset BOB rs.b 0 bob_BobFlags rs.w 1 bob_SaveBuffer rs.l 1 bob_ImageShadow rs.l 1 bob_Before rs.l 1 bob_After rs.l 1 bob_BobVSprite rs.l 1 bob_BobCo/n] &gfx.i]` IFND GRAPHICS_GFX_I GRAPHICS_GFX_I SET 1 BITSET equ $8000 BITCLR equ 0 AGNUS equ 1 DENISE equ 1 rsreset BitMap rs.b 0 bm_BytesPerRow rs.w 1 bm_Rows rs.w 1 bm_Flags rs.b 1 bm_Depth rs.b 1 bm_Pad rs.w 1 bm_Planes rs.b 8*4 bm_SIZEOF rs.w 0 rsreset Rectangle rs.b 0 ra_MinX rs.w 1 ra_MinY rs.w 1 ra_MaxX rs.w 1 ra_MaxY rs.w 1 ra_SIZEOF rs.w 0 ENDC graphics graphics_lib.i '_LVOBltBitMap EQU -30 _LVOBltTemplate EQU -36 _LVOClearEOL EQU -42 _LVOClearScreen EQU -48 _LVOTextLength EQU -54 _LVOText EQU -60 _LVOSetFont EQU -66 _LVOOpenFont EQU -72 _LVOCloseFont EQU -78 _LVOAskSoftStyle EQU -84 _LVOSetSoftStyle EQU -90 _LVOAddBob EQU -96 _LVOAddVSprite EQU -102 _LVODoCollision EQU -108 _LVODrawGList EQU -114 _LVOInitGels EQU -120 _LVOInitMasks EQU -126 _LVORemIBob EQU -132 _LVORemVSprite EQU -138 _LVOSetCollision EQU -144 _LVOSortGList EQU) , Qlayers.iDL IFND GRAPHICS_LAYERS_I GRAPHICS_LAYERS_I SET 1 IFND EXEC_SEMAPHORES_I INCLUDE 'exec/semaphores.i' ENDC IFND EXEC_LISTS_I INCLUDE 'exec/lists.i' ENDC rsreset LayerInfo_extra rs.b 0 lie_env rs.b 13*4 lie_mem rs.b LH_SIZE lie_SIZEOF rs.w 0 LAYERSIMPLE equ 1 LAYERSMART equ 2 LAYERSUPER equ 4 LAYERUPDATING equ $10 LAYERBACKDROP equ $40 LAYERREFRESH equ $80 LAYER_CLIPRECTS_LOST equ $100 LMN_REGION equ -1 rsreset Layer_Info rs.b 0 li_top_layer rs.l 1 li_check_lp rs.l 1 li_obs rs.l  P L rastport.i溱v IFND GRAPHICS_RASTPORT_I GRAPHICS_RASTPORT_I SET 1 IFND GRAPHICS_GFX_I INCLUDE 'graphics/gfx.i' ENDC rsreset TmpRas rs.b 0 tr_RasPtr rs.l 1 tr_Size rs.l 1 tr_SIZEOF rs.w 0 rsreset GelsInfo rs.b 0 gi_sprRsrvd rs.b 1 gi_Flags rs.b 1 gi_gelHead rs.l 1 gi_gelTail rs.l 1 gi_nextLine rs.l 1 gi_lastColor rs.l 1 gi_collHandler rs.l 1 gi_leftmost rs.w 1 gi_rightmost rs.w 1 gi_topmost rs.w 1 gi_bottommost rs.w 1 gi_firstBlissObj rs.l 1 gi_lastBlissObj rs.l 1 gi_SIZEOF rs.w 0 RPB_FRST_DOT  p   layers_lib.i 鿨D_LVOInitLayers EQU -30 _LVOCreateUpfrontLayer EQU -36 _LVOCreateBehindLayer EQU -42 _LVOUpfrontLayer EQU -48 _LVOBehindLayer EQU -54 _LVOMoveLayer EQU -60 _LVOSizeLayer EQU -66 _LVOScrollLayer EQU -72 _LVOBeginUpdate EQU -78 _LVOEndUpdate EQU -84 _LVODeleteLayer EQU -90 _LVOLockLayer EQU -96 _LVOUnlockLayer EQU -102 _LVOLockLayers EQU -108 _LVOUnlockLayers EQU -114 _LVOLockLayerInfo EQU -120 _LVOSwapBitsRastPortClipRect EQU -126 _LVOWhichLayer EQU -132 _LVOUnlockLay  Z  view.i ꝡ5 IFND GRAPHICS_VIEW_I GRAPHICS_VIEW_I SET 1 IFND GRAPHICS_GFX_I INCLUDE 'graphics/gfx.i' ENDC IFND GRAPHICS_COPPER_I INCLUDE 'graphics/copper.i' ENDC V_PFBA EQU $40 V_DUALPF EQU $400 V_HIRES EQU $8000 V_LACE EQU 4 V_HAM EQU $800 V_SPRITES EQU $4000 GENLOCK_VIDEO EQU 2 rsreset ColorMap rs.b 0 cm_Flags rs.b 1 cm_Type rs.b 1 cm_Count rs.w 1 cm_ColorTable rs.l 1 cm_SIZEOF rs.w 0 rsreset ViewPort rs.b 0 vp_Next rs.l 1 vp_ColorMap rs.l 1 vp_DspIns rs.l 1 vp_SprIns rs.l 1 vp_ClrIns  %. Lsprite.i  IFND GRAPHICS_SPRITE_I GRAPHICS_SPRITE_I SET 1 rsreset SimpleSprite rs.b 0 ss_posctldata rs.l 1 ss_height rs.w 1 ss_x rs.w 1 ss_y rs.w 1 ss_num rs.w 1 ss_SIZEOF rs.w 0 ENDC  graphicsW  display.i6  IFND GRAPHICS_DISPLAY_I GRAPHICS_DISPLAY_I SET 1 MODE_640 equ $8000 PLNCNTMSK equ $7 PLNCNTSHFT equ 12 PF2PRI equ $40 COLORON equ $0200 DBLPF equ $400 HOLDNMODIFY equ $800 INTERLACE equ 4 PFA_FINE_SCROLL equ $F PFB_FINE_SCROLL_SHIFT equ 4 PF_FINE_SCROLL_MASK equ $F DIW_HORIZ_POS equ $7F DIW_VRTCL_POS equ $1FF DIW_VRTCL_POS_SHIFT equ 7 DFTCH_MASK equ $FF VPOSRLOF equ $8000 ENDC hgraphicse   gfxbase.i IFND GRAPHICS_GFXBASE_I GRAPHICS_GFXBASE_I SET 1 IFND EXEC_LISTS_I INCLUDE 'exec/lists.i' ENDC IFND EXEC_LIBRARIES_I INCLUDE 'exec/libraries.i' ENDC IFND EXEC_INTERRUPTS_I INCLUDE 'exec/interrupts.i' ENDC rsreset GfxBase rs.b LIB_SIZE gb_ActiView rs.l 1 gb_copinit rs.l 1 gb_cia rs.l 1 gb_blitter rs.l 1 gb_LOFlist rs.l 1 gb_SHFlist rs.l 1 gb_blthd rs.l 1 gb_blttl rs.l 1 gb_bsblthd rs.l 1 gb_bsblttl rs.l 1 gb_vbsrv rs.b IS_SIZE gb_timsrv rs.b IS_SIZE gb_bltsrv rs.b IS_SIZE g~b_TextFonts rs.b LH_SIZE gb_DefaultFont rs.l 1 gb_Modes rs.w 1 gb_VBlank rs.b 1 gb_Debug rs.b 1 gb_BeamSync rs.w 1 gb_system_bplcon0 rs.w 1 gb_SpriteReserved rs.b 1 gb_bytereserved rs.b 1 gb_Flags rs.w 1 gb_BlitLock rs.w 1 gb_BlitNest rs.w 1 gb_BlitWaitQ rs.b LH_SIZE gb_BlitOwner rs.l 1 gb_TOF_WaitQ rs.b LH_SIZE gb_DisplayFlags rs.w 1 gb_SimpleSprites rs.l 1 gb_MaxDisplayRow rs.w 1 gb_MaxDisplayColumn rs.w 1 gb_NormalDisplayRows rs.w 1 gb_NormalDisplayColumns rs.w 1 gb_NormalDPMX rs.w 1 gb_NormalDPMY rs.w 1 gb_LastChanceMemory rs.l 1 gb_LCMptr rs.l 1 gb_MicrosPerLine rs.w 1 gb_reserved rs.b 8 gb_SIZE rs.w 0 OWNBLITTERn equ 0 QBOWNERn equ 1 QBOWNER equ 1<<:D6420.(&,$"   exec!- types.i? IFND EXEC_TYPES_I EXEC_TYPES_I SET 1 EXTERN_LIB MACRO XREF _LVO\1 ENDM STRUCTURE MACRO \1 EQU 0 SOFFSET SET \2 ENDM BOOL MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+2 ENDM BYTE MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+1 ENDM UBYTE MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+1 ENDM WORD MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+2 ENDM UWORD MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+2 ENDM SHORT MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+2 ENDM USHORT MACRO \1 EQU SOFFSET SOFFSET SET S !9! 1ports.i 2h IFND EXEC_PORTS_I EXEC_PORTS_I SET 1 IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC IFND EXEC_LISTS_I INCLUDE "exec/lists.i" ENDC rsreset MP rs.b LN_SIZE MP_FLAGS rs.b 1 MP_SIGBIT rs.b 1 MP_SIGTASK rs.l 1 MP_MSGLIST rs.b LH_SIZE MP_SIZE rs.w 0 MP_SOFTINT EQU MP_SIGTASK PF_ACTION EQU 3 PA_SIGNAL EQU 0 PA_SOFTINT EQU 1 PA_IGNORE EQU 2 rsreset MN rs.b LN_SIZE MN_REPLYPORT rs.l 1 MN_LENGTH rs.w 1 MN_SIZE rs.w 0 ENDC "#+>#r Tables.i"ߗ22 IFND EXEC_ABLES_I EXEC_ABLES_I SET 1 IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND EXEC_EXECBASE_I INCLUDE "exec/execbase.i" ENDC INT_ABLES MACRO XREF _intena ENDM DISABLE MACRO IFC '\1','' MOVE.W #$04000,_intena ADDQ.B #1,IDNestCnt(A6) ENDC IFNC '\1','' MOVE.L 4,\1 MOVE.W #$04000,_intena ADDQ.B #1,IDNestCnt(\1) ENDC ENDM ENABLE MACRO IFC '\1','' SUBQ.B #1,IDNestCnt(A6) BGE.S ENABLE\@ MOVE.W #$0C000,_intena ENABLE\@: ENDC IFNC '\1','' MOVE.L 4,\1 SUBQ.$%^X%Y  strings.i$Y8 IFND EXEC_STRINGS_I EXEC_STRINGS_I SET 1 EOS EQU 0 BELL EQU 7 LF EQU 10 CR EQU 13 BS EQU 8 DEL EQU $7F NL EQU LF STRING MACRO DC.B \1 DC.B 0 CNOP 0,2 ENDM STRINGL MACRO DC.B 13,10 DC.B \1 DC.B 0 CNOP 0,2 ENDM STRINGR MACRO DC.B \1 DC.B 13,10,0 CNOP 0,2 ENDM STRINGLR MACRO DC.B 13,10 DC.B \1 DC.B 13,10,0 CNOP 0,2 ENDM ENDC Tables.i&' ('` lists.i&݁V$ IFND EXEC_LISTS_I EXEC_LISTS_I SET 1 IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC rsreset LH rs.b 0 LH_HEAD rs.l 1 LH_TAIL rs.l 1 LH_TAILPRED rs.l 1 LH_TYPE rs.b 1 LH_pad rs.b 1 LH_SIZE rs.w 0 rsreset MLH rs.b 0 MLH_HEAD rs.l 1 MLH_TAIL rs.l 1 MLH_TAILPRED rs.l 1 MLH_SIZE rs.w 0 NEWLIST MACRO MOVE.L \1,(\1) ADDQ.L #LH_TAIL,(\1) CLR.L LH_TAIL(\1) MOVE.L \1,(LH_TAIL+LN_PRED)(\1) ENDM TSTLIST MACRO IFC '\1','' CMP.L LH_TAIL+LN_PRED(A0),A0 ENDC IFNC '\1','' CMP.L LH_TAIL()$)  resident.i*(k IFND EXEC_RESIDENT_I EXEC_RESIDENT_I SET 1 rsreset RT rs.b 0 RT_MATCHWORD rs.w 1 RT_MATCHTAG rs.l 1 RT_ENDSKIP rs.l 1 RT_FLAGS rs.b 1 RT_VERSION rs.b 1 RT_TYPE rs.b 1 RT_PRI rs.b 1 RT_NAME rs.l 1 RT_IDSTRING rs.l 1 RT_INIT rs.l 1 RT_SIZE rs.w 0 RTC_MATCHWORD EQU $4AFC RTB_COLDSTART equ 0 RTF_COLDSTART equ 1<<0 RTB_AUTOINIT equ 7 RTF_AUTOINIT equ 1<<7 RTM_WHEN EQU 1 RTW_NEVER EQU 0 RTW_COLDSTART EQU 1 ENDC *+1+ nodes.i*k|c IFND EXEC_NODES_I EXEC_NODES_I SET 1 rsreset LN rs.b 0 LN_SUCC rs.l 1 LN_PRED rs.l 1 LN_TYPE rs.b 1 LN_PRI rs.b 1 LN_NAME rs.l 1 LN_SIZE rs.w 0 rsreset MLN rs.b 0 MLN_SUCC rs.l 1 MLN_PRED rs.l 1 MLN_SIZE rs.w 0 NT_UNKNOWN EQU 0 NT_TASK EQU 1 NT_INTERRUPT EQU 2 NT_DEVICE EQU 3 NT_MSGPORT EQU 4 NT_MESSAGE EQU 5 NT_FREEMSG EQU 6 NT_REPLYMSG EQU 7 NT_RESOURCE EQU 8 NT_LIBRARY EQU 9 NT_MEMORY EQU 10 NT_SOFTINT EQU 11 NT_FONT EQU 12 NT_PROCESS EQU 13 NT_SEMAPHORE EQU 14 NT_SIGNALSEM EQU,-^- io.i,Q@[ IFND EXEC_IO_I EXEC_IO_I SET 1 IFND EXEC_PORTS_I INCLUDE "exec/ports.i" ENDC IFND EXEC_LIBRARIES_I INCLUDE "exec/libraries.i" ENDC rsreset IO rs.b MN_SIZE IO_DEVICE rs.l 1 IO_UNIT rs.l 1 IO_COMMAND rs.w 1 IO_FLAGS rs.b 1 IO_ERROR rs.b 1 IO_SIZE rs.w 0 IO_ACTUAL rs.l 1 IO_LENGTH rs.l 1 IO_DATA rs.l 1 IO_OFFSET rs.l 1 IOSTD_SIZE rs.w 0 IOB_QUICK equ 0 IOF_QUICK equ 1<<0 LIBINIT LIBDEF DEV_BEGINIO LIBDEF DEV_ABORTIO BEGINIO MACRO LINKLIB DEV_BEGINIO,IO_DEVICE(A1) ENDM ABORT./)/ > alerts.i.́~ IFND EXEC_ALERTS_I EXEC_ALERTS_I SET 1 SB_ALERTWACK equ 1 SF_ALERTWACK equ 1<<1 ALERT macro movem.l d7/a5/a6,-(sp) move.l #\1,d7 IFNC '\2','' lea \2,a5 ENDC move.l 4,a6 jsr _LVOAlert(a6) movem.l (sp)+,d7/a5/a6 endm AT_DeadEnd equ $80000000 AT_Recovery equ $00000000 AG_NoMemory equ $00010000 AG_MakeLib equ $00020000 AG_OpenLib equ $00030000 AG_OpenDev equ $00040000 AG_OpenRes equ $00050000 AG_IOError equ $00060000 AG_NoSignal equ $00070000 AO_ExecLib equ $00008001 AO_Graphic01'1 /errors.i0+֞ IFND EXEC_ERRORS_I EXEC_ERRORS_I SET 1 IOERR_OPENFAIL EQU -1 IOERR_ABORTED EQU -2 IOERR_NOCMD EQU -3 IOERR_BADLENGTH EQU -4 ERR_OPENDEVICE EQU IOERR_OPENFAIL ENDC .(&,$"  exec23^J3x  devices.i2xI IFND EXEC_DEVICES_I EXEC_DEVICES_I SET 1 IFND EXEC_LIBRARIES_I INCLUDE "exec/libraries.i" ENDC IFND EXEC_PORTS_I INCLUDE "exec/ports.i" ENDC rsreset DD rs.b LIB_SIZE DD_SIZE rs.w 0 rsreset UNIT rs.b MP_SIZE UNIT_FLAGS rs.b 1 UNIT_pad rs.b 1 UNIT_OPENCNT rs.w 1 UNIT_SIZE rs.w 0 UNITB_ACTIVE equ 0 UNITF_ACTIVE equ 1<<0 UNITB_INTASK equ 1 UNITF_INTASK equ 1<<1 ENDC Kexec4535 initializers.i49V IFND EXEC_INITIALIZERS_I EXEC_INITIALIZERS_I SET 1 INITBYTE MACRO DC.B $e0 DC.B 0 DC.W \1 DC.B \2 DC.B 0 ENDM INITWORD MACRO DC.B $d0 DC.B 0 DC.W \1 DC.W \2 ENDM INITLONG MACRO DC.B $c0 DC.B 0 DC.W \1 DC.L \2 ENDM INITSTRUCT MACRO DS.W 0 IFC '\4','' COUNT\@ SET 0 ENDC IFNC '\4','' COUNT\@ SET \4 ENDC CMD\@ SET (((\1)<<4)!COUNT\@) IFLE (\2)-255 DC.B (CMD\@)!$80 DC.B \2 MEXIT ENDC DC.B CMD\@!$0C0 DC.B (((\2)>>16)&$0FF) DC.W ((\2)&$0FFFF) ENDM ENDC 67r7 | interrupts.i86 y IFND EXEC_INTERRUPTS_I EXEC_INTERRUPTS_I SET 1 IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC IFND EXEC_LISTS_I INCLUDE "exec/lists.i" ENDC rsreset IS rs.b LN_SIZE IS_DATA rs.l 1 IS_CODE rs.l 1 IS_SIZE rs.w 0 rsreset IV rs.b 0 IV_DATA rs.l 1 IV_CODE rs.l 1 IV_NODE rs.l 1 IV_SIZE rs.w 0 SB_SAR equ 15 SF_SAR equ 1<<15 SB_TQE equ 14 SF_TQE equ 1<<14 SB_SINT equ 13 SF_SINT equ 1<<13 rsreset SH rs.b LH_SIZE SH_PAD rs.w 1 SH_SIZE rs.w 0 SIH_PRIMASK EQU $0F0 SIH_QUEUES EQU 5 INTB_N89,9g 4 execname.i8g[I^e IFND EXEC_EXECNAME_I EXEC_EXECNAME_I SET 1 EXECNAME macro dc.b 'exec.library',0 ds.w 0 endm ENDC 420.(&,$"  exec:;- w;  execbase.i:^ol IFND EXEC_EXECBASE_I EXEC_EXECBASE_I SET 1 IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND EXEC_LISTS_I INCLUDE "exec/lists.i" ENDC IFND EXEC_INTERRUPTS_I INCLUDE "exec/interrupts.i" ENDC IFND EXEC_LIBRARIES_I INCLUDE "exec/libraries.i" ENDC rsreset ExecBase rs.b LIB_SIZE SoftVer rs.w 1 LowMemChkSum rs.w 1 ChkBase rs.l 1 ColdCapture rs.l 1 CoolCapture rs.l 1 WarmCapture rs.l 1 SysStkUpper rs.l 1 SysStkLower rs.l 1 MaxLocMem rs.l 1 DebugEntry rs.l 1 DebugData rs.l 1 A<== R libraries.i<cb IFND EXEC_LIBRARIES_I EXEC_LIBRARIES_I SET 1 IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC LIB_VECTSIZE EQU 6 LIB_RESERVED EQU 4 LIB_BASE EQU $FFFFFFFA LIB_USERDEF EQU LIB_BASE-(LIB_RESERVED*LIB_VECTSIZE) LIB_NONSTD EQU LIB_USERDEF LIBINIT MACRO IFC '\1','' COUNT_LIB SET LIB_USERDEF ENDC IFNC '\1','' COUNT_LIB SET \1 ENDC ENDM LIBDEF MACRO \1 EQU COUNT_LIB COUNT_LIB SET COUNT_LIB-LIB_VECTSIZE ENDM LIBINIT LIB_BASE LIBDEF LIB_OPEN LIBDEF LIB_CLOSE LIBDEF LIB_EXPUNGE LIB>?k?  ,exec.i>% INCLUDE "exec/nodes.i" INCLUDE "exec/lists.i" INCLUDE "exec/interrupts.i" INCLUDE "exec/memory.i" INCLUDE "exec/ports.i" INCLUDE "exec/tasks.i" INCLUDE "exec/libraries.i" INCLUDE "exec/devices.i" INCLUDE "exec/io.i" $"  exec@A0 [A  exec_lib.i@x&_LVOSupervisor EQU -30 _LVOExitIntr EQU -36 _LVOSchedule EQU -42 _LVOReschedule EQU -48 _LVOSwitch EQU -54 _LVODispatch EQU -60 _LVOException EQU -66 _LVOInitCode EQU -72 _LVOInitStruct EQU -78 _LVOMakeLibrary EQU -84 _LVOMakeFunctions EQU -90 _LVOFindResident EQU -96 _LVOInitResident EQU -102 _LVOAlert EQU -108 _LVODebug EQU -114 _LVODisable EQU -120 _LVOEnable EQU -126 _LVOForbid EQU -132 _LVOPermit EQU -138 _LVOSetSR EQU -144 _LVOSuperState EQU -150 _LVOUserStBCC  N semaphores.iB_ IFND EXEC_SEMAPHORES_I EXEC_SEMAPHORES_I SET 1 IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC IFND EXEC_LISTS_I INCLUDE "exec/lists.i" ENDC IFND EXEC_PORTS_I INCLUDE "exec/ports.i" ENDC rsreset SM rs.b MP_SIZE SM_BIDS rs.w 1 SM_SIZE rs.w 0 SM_LOCKMSG EQU MP_SIGTASK rsreset SSR rs.b MLN_SIZE SSR_WAITER rs.l 1 SSR_SIZE rs.w 0 rsreset SS rs.b LN_SIZE SS_NESTCOUNT rs.w 1 SS_WAITQUEUE rs.b MLH_SIZE SS_MULTIPLELINK rs.b SSR_SIZE SS_OWNER rs.l 1 SS_QUEUECOUNT rs.w 1 SS_SIZE rs.wDE.E  (tasks.iDuGD IFND EXEC_TASKS_I EXEC_TASKS_I SET 1 IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC IFND EXEC_LISTS_I INCLUDE "exec/lists.i" ENDC rsreset TC rs.b LN_SIZE TC_FLAGS rs.b 1 TC_STATE rs.b 1 TC_IDNESTCNT rs.b 1 TC_TDNESTCNT rs.b 1 TC_SIGALLOC rs.l 1 TC_SIGWAIT rs.l 1 TC_SIGRECVD rs.l 1 TC_SIGEXCEPT rs.l 1 TC_TRAPALLOC rs.w 1 TC_TRAPABLE rs.w 1 TC_EXCEPTDATA rs.l 1 TC_EXCEPTCODE rs.l 1 TC_TRAPDATA rs.l 1 TC_TRAPCODE rs.l 1 TC_SPREG rs.l 1 TC_SPLOWER rs.l 1 TC_SPUPPER rs.l 1 TC_SWITCFGG memory.iFĄ1&Q IFND EXEC_MEMORY_I EXEC_MEMORY_I SET 1 IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC rsreset ML rs.b LN_SIZE ML_NUMENTRIES rs.w 1 ML_ME rs.w 0 ML_SIZE rs.w 0 rsreset ME rs.b 0 ME_REQS rs.w 0 ME_ADDR rs.l 1 ME_LENGTH rs.l 1 ME_SIZE rs.w 0 MEMB_PUBLIC equ 0 MEMF_PUBLIC equ 1<<0 MEMB_CHIP equ 1 MEMF_CHIP equ 1<<1 MEMB_FAST equ 2 MEMF_FAST equ 1<<2 MEMB_CLEAR equ 16 MEMF_CLEAR equ 1<<16 MEMB_LARGEST equ 17 MEMF_LARGEST equ 1<<17 MEM_BLOCKSIZE EQU 8 MEM_BLOCKMASK EQU (MEM_BLOCKSIZE-H'OMKI 7 workbenchIJ%ŀJt  workbench.iHIh IFND WORKBENCH_WORKBENCH_I WORKBENCH_WORKBENCH_I SET 1 IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC IFND EXEC_LISTS_I INCLUDE "exec/lists.i" ENDC IFND EXEC_TASKS_I INCLUDE "exec/tasks.i" ENDC IFND INTUITION_INTUITION_I INCLUDE "intuition/intuition.i" ENDC WBDISK EQU 1 WBDRAWER EQU 2 WBTOOL EQU 3 WBPROJECT EQU 4 WBGARBAGE EQU 5 WBDEVICE EQU 6 WBKICK EQU 7 rsreset DrawerData rs.b 0 dd_NewWindow rs.b nw_SIZE dd_CurrentX rs.KLh 1La icon.iHKaԤQ IFND WORKBENCH_ICON_I WORKBENCH_ICON_I SET 1 ICONNAME MACRO DC.B 'icon.library',0 ENDM ENDC KI  workbenchMNUN  startup.iHM~ IFND WORKBENCH_STARTUP_I WORKBENCH_STARTUP_I SET 1 IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND EXEC_PORTS_I INCLUDE "exec/ports.i" ENDC IFND LIBRARIES_DOS_I INCLUDE "libraries/dos.i" ENDC rsreset WBStartup rs.b 0 sm_Message rs.b MN_SIZE sm_Process rs.l 1 sm_Segment rs.l 1 sm_NumArgs rs.l 1 sm_ToolWindow rs.l 1 sm_ArgList rs.l 1 sm_SIZEOF rs.w 0 rsreset WBArg rs.b 0 wa_Lock rs.l 1 wa_Name rs.l 1 wa_SIZEOF rs.w 0 ENDC OP%P v icon_lib.iHO#!k_LVOGetWBObject EQU -30 _LVOPutWBObject EQU -36 _LVOGetIcon EQU -42 _LVOPutIcon EQU -48 _LVOFreeFreeList EQU -54 _LVOFreeWBObject EQU -60 _LVOAllocWBObject EQU -66 _LVOAddFreeList EQU -72 _LVOGetDiskObject EQU -78 _LVOPutDiskObject EQU -84 _LVOFreeDiskObject EQU -90 _LVOFindToolType EQU -96 _LVOMatchToolValue EQU -102 _LVOBumpRevision EQU -108 CALLICON MACRO move.l _IconBase,a6 jsr _LVO\1(a6) ENDM ICONNAME MACRO dc.b 'icon.library',0 ENDM QTVR  intuitionRSYaS} intuitionbase.iQR}- IFND INTUITION_INTUITIONBASE_I INTUITION_INTUITIONBASE_I SET 1 IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND EXEC_LIBRARIES_I INCLUDE "exec/libraries.i" ENDC IFND GRAPHICS_VIEW_I INCLUDE "graphics/view.i" ENDC rsreset IntuitionBase rs.b 0 ib_LibNode rs.b LIB_SIZE ib_ViewLord rs.b v_SIZEOF ib_ActiveWindow rs.l 1 ib_ActiveScreen rs.l 1 ib_FirstScreen rs.l 1 ENDC v icon_lib.iHTU\FU Gintuition_lib.iQT*_LVOOpenIntuition EQU -30 _LVOIntuition EQU -36 _LVOAddGadget EQU -42 _LVOClearDMRequest EQU -48 _LVOClearMenuStrip EQU -54 _LVOClearPointer EQU -60 _LVOCloseScreen EQU -66 _LVOCloseWindow EQU -72 _LVOCloseWorkBench EQU -78 _LVOCurrentTime EQU -84 _LVODisplayAlert EQU -90 _LVODisplayBeep EQU -96 _LVODoubleClick EQU -102 _LVODrawBorder EQU -108 _LVODrawImage EQU -114 _LVOEndRequest EQU -120 _LVOGetDefPrefs EQU -126 _LVOGetPrefs EQU -132 _LVOInitRequester EQU -138 _LVW 2W/ w intuition.iQVUR? IFND INTUITION_INTUITION_I INTUITION_INTUITION_I SET 1 IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND GRAPHICS_GFX_I INCLUDE 'graphics/gfx.i' ENDC IFND GRAPHICS_CLIP_I INCLUDE 'graphics/clip.i' ENDC IFND GRAPHICS_VIEW_I INCLUDE 'graphics/view.i' ENDC IFND GRAPHICS_RASTPORT_I INCLUDE 'graphics/rastport.i' ENDC IFND GRAPHICS_LAYERS_I INCLUDE 'graphics/layers.i' ENDC IFND GRAPHICS_TEXT_I INCLUDE 'graphics/text.i' ENDC IFND EXEC_PORTS_I INCLUDE 'exec/ports.i' XnF][Y mathYZ,ѼZ  mathieeedoubbas_lib.iXYI1_LVOIEEEDPFix EQU -30 _LVOIEEEDPFlt EQU -36 _LVOIEEEDPCmp EQU -42 _LVOIEEEDPTst EQU -48 _LVOIEEEDPAbs EQU -54 _LVOIEEEDPNeg EQU -60 _LVOIEEEDPAdd EQU -66 _LVOIEEEDPSub EQU -72 _LVOIEEEDPMul EQU -78 _LVOIEEEDPDiv EQU -84 _LVOIEEEDPFloor EQU -90 _LVOIEEEDPCeil EQU -96 CALLIEEEDOUB MACRO move.l _MathIeeeDoubBasBase,a6 jsr _LVO\1(a6) ENDM IEEEDOUBNAME MACRO dc.b 'mathieeedoubbas.library',0 ENDM uition.iQ[\V\O  mathffp_lib.iX[OV_LVOSPFix EQU -30 _LVOSPFlt EQU -36 _LVOSPCmp EQU -42 _LVOSPTst EQU -48 _LVOSPAbs EQU -54 _LVOSPNeg EQU -60 _LVOSPAdd EQU -66 _LVOSPSub EQU -72 _LVOSPMul EQU -78 _LVOSPDiv EQU -84 _LVOSPFloor EQU -90 _LVOSPCeil EQU -96 CALLFFP MACRO move.l _MathBase,a6 jsr _LVO\1(a6) ENDM FFPNAME MACRO dc.b 'mathffp.library',0 ENDM  mathieeedoubbas_lib.iX]^Hp^ mathtrans_lib.iX]4_LVOSPAtan EQU -30 _LVOSPSin EQU -36 _LVOSPCos EQU -42 _LVOSPTan EQU -48 _LVOSPSincos EQU -54 _LVOSPSinh EQU -60 _LVOSPCosh EQU -66 _LVOSPTanh EQU -72 _LVOSPExp EQU -78 _LVOSPLog EQU -84 _LVOSPPow EQU -90 _LVOSPSqrt EQU -96 _LVOSPTieee EQU -102 _LVOSPFieee EQU -108 _LVOSPAsin EQU -114 _LVOSPAcos EQU -120 _LVOSPLog10 EQU -126 CALLMATHTRANS MACRO move.l _MathTransBase,a6 jsr _LVO\1(a6) ENDM MATHTRANSNAME MACRO dc.b 'mathtrans.library',0 ENDM X_trnlpjhfdb`  libraries`aIa } translator.i_`)KF TTL '$Header: translator.i,v 32.1 86/01/22 01:18:17 sam Exp $' IFND LIBRARIES_TRANSLATOR_I LIBRARIES_TRANSLATOR_I SET 1 TR_NotUsed EQU -1 TR_NoMem EQU -2 TR_MakeBad EQU -4 ENDC ^ mathtrans_lib.iXbc[Qc expansion_lib.i_b=_LVOAddConfigDev EQU -30 _LVOexpansionUnused EQU -36 _LVOAllocBoardMem EQU -42 _LVOAllocConfigDev EQU -48 _LVOAllocExpansionMem EQU -54 _LVOConfigBoard EQU -60 _LVOConfigChain EQU -66 _LVOFindConfigDev EQU -72 _LVOFreeBoardMem EQU -78 _LVOFreeConfigDev EQU -84 _LVOFreeExpansionMem EQU -90 _LVOReadExpansionByte EQU -96 _LVOReadExpansionRom EQU -102 _LVORemConfigDev EQU -108 _LVOWriteExpansionByte EQU -114 _LVOObtainConfigBinding EQU -120 _LVOReleaseConfigBinding EQU -1de#qe  expansion.i_d' IFND LIBRARIES_EXPANSION_I LIBRARIES_EXPANSION_I SET 1 EXPANSIONNAME MACRO dc.b 'expansion.library',0 ENDM ADNB_STARTPROC equ 0 ADNF_STARTPROC equ 1<<0 ENDC c expansion_lib.i_fg$Tg diskfont_lib.i_frJ_LVOOpenDiskFont EQU -30 _LVOAvailFonts EQU -36 CALLDISKFONT MACRO move.l _DiskfontBase,a6 jsr _LVO\1(a6) ENDM DISKFONTNAME MACRO dc.b 'diskfont.library',0 ENDM e  expansion.i_hiPiP ( diskfont.i_h?.Jg IFND LIBRARIES_DISKFONT_I LIBRARIES_DISKFONT_I SET 1 IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC IFND EXEC_LISTS_I INCLUDE "exec/lists.i" ENDC IFND GRAPHICS_TEXT_I INCLUDE "graphics/text.i" ENDC MAXFONTPATH EQU 256 rsreset FC rs.b 0 fc_FileName rs.b MAXFONTPATH fc_YSize rs.w 1 fc_Style rs.b 1 fc_Flags rs.b 1 fc_SIZEOF rs.w 0 FCH_ID EQU $0f00 rsreset FCH rs.b 0 fch_FileID rs.w 1 fch_NumEntries rs.w 1 fch_FC rs.w 0 DFH_ID EQU $0f80 MAXFONTNAME EQU 32 rsreset DiskFontHeadjk k  dosextens.i_j= IFND LIBRARIES_DOSEXTENS_I LIBRARIES_DOSEXTENS_I SET 1 IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND EXEC_TASKS_I INCLUDE "exec/tasks.i" ENDC IFND EXEC_PORTS_I INCLUDE "exec/ports.i" ENDC IFND EXEC_LIBRARIES_I INCLUDE "exec/libraries.i" ENDC IFND LIBRARIES_DOS_I INCLUDE "libraries/dos.i" ENDC rsreset Process rs.b 0 pr_Task rs.b TC_SIZE pr_MsgPort rs.b MP_SIZE pr_Pad rs.w 1 pr_SegList rs.l 1 pr_StackSize rs.l 1 pr_GlobVec rs.l 1 pr_TaskNum rs.l 1 pr_StackBase rs.lm2;m < dos.i_l=_ IFND LIBRARIES_DOS_I LIBRARIES_DOS_I SET 1 DOSNAME MACRO DC.B 'dos.library',0 ENDM MODE_OLDFILE EQU 1005 MODE_NEWFILE EQU 1006 OFFSET_BEGINNING EQU -1 OFFSET_CURRENT EQU 0 OFFSET_END EQU 1 OFFSET_BEGINING EQU OFFSET_BEGINNING BITSPERBYTE EQU 8 BYTESPERLONG EQU 4 BITSPERLONG EQU 32 MAXINT EQU $7FFFFFFF MININT EQU $80000000 SHARED_LOCK EQU -2 ACCESS_READ EQU -2 EXCLUSIVE_LOCK EQU -1 ACCESS_WRITE EQU -1 rsreset DateStamp rs.b 0 ds_Days rs.l 1 ds_Minute rs.l 1 ds_Tick rs.l 1 ds_SIZEOno7?o jtranslator_lib.i_n#_LVOTranslate EQU -30 CALLTRANS MACRO move.l _TranslatorBase,a6 jsr _LVO\1(a6) ENDM TRANSNAME MACRO dc.b 'translator.library',0 ENDM jhfdb` ' librariespq~2q  configvars.i_pGV IFND LIBRARIES_CONFIGVARS_I LIBRARIES_CONFIGVARS_I SET 1 IFND EXEC_NODES_I INCLUDE "exec/nodes.i" ENDC IFND LIBRARIES_CONFIGREGS_I INCLUDE "libraries/configregs.i" ENDC rsreset ConfigDev rs.b 0 cd_Node rs.b LN_SIZE cd_Flags rs.b 1 cd_Pad rs.b 1 cd_Rom rs.b ExpansionRom_SIZEOF cd_BoardAddr rs.l 1 cd_BoardSize rs.l 1 cd_SlotAddr rs.w 1 cd_SlotSize rs.w 1 cd_Driver rs.l 1 cd_NextCD rs.l 1 cd_Unused rs.b 4*4 ConfigDev_SIZEOF rs.w 0 CDB_SHUTUP equ 0 CDF_SHUTUP equ 1<<0 CDB_CONFIGMrsgs  configregs.iw_rڻ֓ IFND LIBRARIES_CONFIGREGS_I LIBRARIES_CONFIGREGS_I SET 1 rsreset ExpansionRom rs.b 0 er_Type rs.b 1 er_Product rs.b 1 er_Flags rs.b 1 er_Reserved03 rs.b 1 er_Manufacturer rs.w 1 er_SerialNumber rs.l 1 er_InitDiagVec rs.w 1 er_Reserved0c rs.b 1 er_Reserved0d rs.b 1 er_Reserved0e rs.b 1 er_Reserved0f rs.b 1 ExpansionRom_SIZEOF rs.w 0 rsreset ExpansionControl rs.b 0 ec_Interrupt rs.b 1 ec_Reserved11 rs.b 1 ec_BaseAddress rs.b 1 ec_Shutup rs.b 1 ec_Reserved14 rs.b 1 ec_Reserved15 rs.btuhvu  3 dos_lib.i_tv _LVOOpen EQU -30 _LVOClose EQU -36 _LVORead EQU -42 _LVOWrite EQU -48 _LVOInput EQU -54 _LVOOutput EQU -60 _LVOSeek EQU -66 _LVODeleteFile EQU -72 _LVORename EQU -78 _LVOLock EQU -84 _LVOUnLock EQU -90 _LVODupLock EQU -96 _LVOExamine EQU -102 _LVOExNext EQU -108 _LVOInfo EQU -114 _LVOCreateDir EQU -120 _LVOCurrentDir EQU -126 _LVOIoErr EQU -132 _LVOCreateProc EQU -138 _LVOExit EQU -144 _LVOLoadSeg EQU -150 _LVOUnLoadSeg EQU -156 _LVOGetPacket EQU -162 _LVOQueuet(Packet EQU -168 _LVODeviceProc EQU -174 _LVOSetComment EQU -180 _LVOSetProtection EQU -186 _LVODateStamp EQU -192 _LVODelay EQU -198 _LVOWaitForChar EQU -204 _LVOParentDir EQU -210 _LVOIsInteractive EQU -216 _LVOExecute EQU -222 CALLDOS MACRO move.l _DOSBase,a6 jsr _LVO\1(a6) ENDM CODERS PACK V1.5  wx[ xP  filehandler.i_wk|*r IFND LIBRARIES_FILEHANDLER_I LIBRARIES_FILEHANDLER_I SET 1 IFND EXEC_TYPES_I INCLUDE "exec/types.i" ENDC IFND EXEC_PORTS_I INCLUDE "exec/ports.i" ENDC IFND LIBRARIES_DOS_I INCLUDE "libraries/dos.i" ENDC DE_TABLESIZE EQU 0 DE_SIZEBLOCK EQU 1 DE_SECORG EQU 2 DE_NUMHEADS EQU 3 DE_SECSPERBLK EQU 4 DE_BLKSPERTRACK EQU 5 DE_RESERVEDBLKS EQU 6 DE_PREFAC EQU 7 DE_INTERLEAVE EQU 8 DE_LOWCYL EQU 9 DE_UPPERCYL EQU 10 DE_NUMBUFFERS EQU 11 DE_MEMBUFTYPE EQU 12 rsreset FileSysStartupMsgy z4%sz Rdiskfont.libraryysRٔ ";<`NJP! 0Pdiskfont.librarydiskfont 33.16 (10 Feb 1986) HACE" <8NLJg "@#H"NtpNu/ @#,@#Cp/,yN,_#gJCrp/,yN,_# gA* XB!H ,_Nu"y/,yNb,_"N0.nH/,yN.,_p`dos.librarygraphics.library !6 DRzB/ $n*JgNJjTnD"J Q"i"!I{ |~}| /mathieeedoubbas.library{0ZJd! 2Xmathieeedoubbas.librarymathieeedoubbas 33.9 (9 Sep 1986) "ph#Nu  ! Jn f2"N Q"i"!I"Np0.n/,yN.,_ 9NupNu.fRn NupNupSn f .gaNu`&.6>FNV^lf"@pH<L*&g8x C2DC Cm0 C4n.QgՁe"JlDkL<`fr`B` NuNVH<&@tJg*]lDvUx RQ} ~;sr~ mathtrans.library}=l%^/@: J! ,Lmathtrans.librarymathtrans 33.8 (11 Sep 1986) "d\#Nu ! &b\$zJn f2"N Q"i"!I"Np0.n/,yN.,_ 9NupNu.f0Rn n f #BHyN$P# NupNupSn f .gap/Jn f/9N<g|{zyxwvut)` translator.library[oj ) )H"&,xAC <*NJg$@%N"%C&"JNtpLDNup`Jn fNqRn  NupSn f.g/ a"_NuH&N,xJk g p`*"K Q"i"!I&+&"Kpr0+2+ЁN. LHNupNu  ! @Vp4translator 33.2 (24 Jun 1986) translator.libraryH?>$[/ < r/QBg/ // BB*O+|prvxz|~EIB )#g& * fZal?a6kg E`&2` ra| L|0HNu,mg,Va`a$gk`,m,VMnaFa JGk`zabf"/ / afaf a$_XNu&_$_ \g `g`r8L84@f <[fRAI&vNu|~&J6`RF [fFHF<HF6`RF ]ggNuHFSFk6`8 84@ f "gNuDNu~afDNu$oHF6`RF =g8 84@ fgNu~afDNu>SGRG6p \g `fFfNu GBl>?`Q>/p)@04g `f Nup)H04 fp!H04 gC  D".NuGB0< WD@@.6 HG&sNNuJGk"`x 84@NuaNuag afDNuagNuaga Ig EgDNuDNua Ef,agX SgB Dg< Rg& Lf:ar Yg&`.af Nf$a\ GfaRg Sf aBgDNuDNua,Nua"NuaNuaNuafDNuaNuafDNuafDNuDNuE0 prvJodf+|  l< f< am zn ]f< RC Cdn8 g*Sg. #f #f f#vNuS| SCSSCNurNu⍹  Nu-gbH  @mL mp@04f8n mEPHr&J[g Qn`R$Ibf4RL +INu"    #*.$%&@^+:?_ IHEHAAAEIYAOAHEROHEYAYOYAWOWUWpM8Bu - HEZg9~7R5 [A. ]=EH3Y. \ [A] =AH`[A] =AH\ [ARE] =AAR` [AND] =AEND` [AS] =AEZ` [AT] =AET` [AN] =AEN` [AM] =AEM` [AREN'T] =AA1RINT\ [ABOVE]=AHBAH3V\ [AROUND]=AHRAW3ND\[A]DAP=AX\ [AVE.] =AE2VINUW\ [AR]O=AXR\[AR]#=EHR\ ^[AS]#=EYS\[A]WA=AX\[AW]=AO\ :[ANY]=EH3NIY\[A]TION=EY3\[A]SION=EY3\[A]^+#=EY\#:[ALLY]=ULIY\ [AL]#=UL\[AGAIN]=AXGEH3N` [AGO] =AHGOW2\ [ANOTHER]=AHNAH3DHER\[ABOUT]=AXBAW1T`[APPLE]=AE3PUL`Pq[AMIGA]=AHMIY3GAH\[ATARI]=AHTAA3RIY\[ATOMIC]=AHTAA3MIHK\[A]TOM=AE2\#:[AG]E=IHJ\[A]^%=EY\[AL]F =AE2\[A]^+:#=AE\ :[A]^+ =EY3\ [ARR]=AXRR\[ARR]=AER\ :[AR] =AA3R\[AR] =ER\[AR]=AAR\[AIR]=EH4R\[AI]=EY3\[AY]=EY3\[AU]=AO3\#:[AL] =UL\#:[ALS] =ULZ\[ALK]=AO3K\[AL]^=AOL\ :[ABLE]=EY3BUL\[ABLE]=AXBUL\[A]VO=EY3\[ANG]+=EY3NJ\[A]TTI=AE\ [A]T=AX\[A]A=\[A]=AE\ :[B]: = BIY4 \ [BE] =BIY`[BECAUSE]=BIHKAH1Z\ [BE]^#=BIX\[BEING]=BIY2IHNX\ [BOTH] =BOW3TH` [BY] =BAY` [BUT] =BAHT` [BEEN] =BIHN` [BUS]#=BIH3Z\[BR 9#EAK]=BREY3K\[BEFORE]=BIXFOH2R\[BUIL]=BIH3L\[BELOW]=BILOW2\[BETWEEN]=BIXTWIY2N\B[B]=\[B]=B\ :[C]: = SIY3 \ [CAN] =KAEN` [CAN'T] =KAENT` [COULD] =KUHD`[COMPUT]+=KUMPYUW3T\[CONSIST]=KUNSIH3ST\[COMMODORE]=KAA3MAXDOHR\[CERTAIN]=SER3TIN\[CONTOUR]=KAA3NTUH1R\[CO]NSOL=KAA4\[COLLE]C=KULEH\ [COS] =KOW3SAY1N` [CH]^=K\^E[CH]=K\[CHA]R#=KEH3\[CH]=CH\ S[CI]#=SAY3\[CI]A=SH\[CI]O=SH\[CI]EN=SH\[CITY]=SIHTIY\[C]+=S\[CK]=K\[COM]^=KUM\[COM]%=KAHM\[CUIT]=KIHT\[CREA]^+=KRIYEY3\[CC]+=KS\[CC]=K\[C]=K\ [DR.] ˠ=DAA3KTER\ :[D]: = DIY3 \#:[DED] =DIHD\.E[D] =D\#:^E[D] =T\ [DE]^#=DIH\ [DO] =DUW` [DOES]=DAHZ\ [DID]=DIHD`[DONE] =DAH5N`[DOING]=DUW3IHNX`[DOW]=DAW2\#[DU]A=JUW\[DUC]+=DUWS\#[DU]^#=JAX\D[D]=\[DOLLAR]=DAA3LER\[DIA]GR=DAY3AH\[DIA]M=DAYAE3\[DISTANC]#=DIH3STINS\[DISKETTE]=DIHSKEH4T\ [DIS]^:#=DIHS \[D]=D\ [E] = IY4 \#:[E] =\':^[E] =\ :[E] =IY\#[ED] =D\#:[E]D =\[EV]ER=EH3V\#:[ERED] =ERD\#:[ERING]=ERIHNX\#:[EN] =EHN\#:[ENED] =IHND\#:[ENESS] =NIHS\[EXA]M=IHGZAE3\[EXA]C=IHGZAE3\[EDGE]=EHJ\[ENG AC΀]LISH=IY3NXG\ [ETC] =EHTSEH3TRAH\[E]^%=IY3\[ERI]#=IY3RIY\[ERI]=EH3RIH\#:[ER]#=ER\[ERROR]=EH3ROHR\[ERAS]#=IHREY3S\[ER]#=EH1R\#:[ER] =ER\#:[ERS] =ERZ\[ER]=ER\[EVEN] =IY3VIN\ [EVEN]=IYVEH3N\#:[E]W=\@[EW]=UW\[EW]=YUW\[E]O=IY\SH[ES] =IHZ\CH[ES] =IHZ\#:&[ES] =IHZ\#:[E]S =\#:[ELY] =LIY\#:[EMENT]=MINT\[EFUL]=FUHL\[EE]=IY\[EARN]=ER3N\ [EAR]^=ER3\[EAD]=EHD\#:[EA] =IYAH\[EA]SU=EH3\[EA]=IY\[EIGH]=EY3\[EI]=IY\ [EYE]=AY3\[EY]=IY\[EU]=YUW\[E]TION=IY3\[E]SION=IY3\[EQUAL]=IY3KWUL\[E]=EH\ :[F]: = EH3F n] \ [FOR] =FOHR` [FROM] =FRAHM` [FT.] =FIY3T\[FUL]=FUHL\[FRIEND]=FREH3ND\[FE]MALE=FIY3\[FORGET]=FOHRGEH3T\[FUNC]^=FAH4NXK\[FATHER]=FAA3DHER\[F]F=\[F]=F\ :[G]: = JIY3 \[GIV]=GIH3V\ [G]I^=G\ [GET] =GEHT`[GE]T=GEH\SU[GGES]=GJEH3S\[GION]=JUN\[GG]=G\ B#[G]=G\[G]+=J\[GREAT]=GREY3T\ [GO] =GOW`[GON]E=GAA3N\#[GH]=\ [GN]=N\[G]=G\ :[H]: = EY4CH \ [HAVE] =/HAEV` [HAV]=/HAEV\ [HAS] =/HAEZ` [HAD] =/HAED` [HE] =/HIY` [HIS] =/HIHZ` [HER] =/HER` [HE'LL] =/HIYL` [HE'D] =/HIYD` [HERE]=/HIYR\ [HOUR]=AW3E _R\[HOW]=/HAW`[H]#=/H\[H]=\ [IN] =IHN` [IBM]=AY3 BIY EH3M\[INPUT]=IH4NPUH1T\ [IN]=IXN\#:[I]NG=IH\ [IS] =IHZ` [IF] =IHF` [INTO] =IH2NTUW\ [I] = AY ` [IT] =IHT` [ITS] =IHTS` [IT'S] =IHTS` [IT'D] =IHTIXD` [I'M] =AYM` [I'D] =AYD` [I'VE] =AYV` [I'LL] =AYL`[I]TION=IH3\[I]SION=IH3\[I] =AY\[IN]D=AYN\SEM[I]=IY\ ANT[I]=AY\[IER]=IYER\#:R[IED] =IYD\[IED] =AYD\[IEN]=IYEHN\[IE]T=AYEH\[I']=AY\ :[I]^%=AY\ :[I]%=AY\[I]%=IY\[IE]=IY3\ [IDEA]=AYDIY3AH\[ISLAND]=AY3LIND\[I]^+:#=IH\#:[I]^AL=IH\[IR]#=AY1R\[Irf|T EQU 6 ERT_TYPESIZE EQU 2 ERT_NEWBOARD EQU $c0 ERT_MEMMASK EQU $07 ERT_MEMBIT EQU 0 ERT_MEMSIZE EQU 3 ERTB_CHAINEDCONFIG equ 3 ERTF_CHAINEDCONFIG equ 1<<3 ERTB_DIAGVALID equ 4 ERTF_DIAGVALID equ 1<<4 ERTB_MEMLIST equ 5 ERTF_MEMLIST equ 1<<5 ERFB_MEMSPACE equ 7 ERFF_MEMSPACE equ 1<<7 ERFB_NOSHUTUP equ 6 ERFF_NOSHUTUP equ 1<<6 ECIB_INTENA equ 1 ECIF_INTENA equ 1<<1 ECIB_RESET equ 3 ECIF_RESET equ 1<<3 ECIB_INT2PEND equ 4 ECIF_INT2PEND equ 1<<4 ECIB_INT6PEND equ 5 ECIF_INT6PEND equ 1<<r5 ECIB_INT7PEND equ 6 ECIF_INT7PEND equ 1<<6 ECIB_INTERRUPTING equ 7 ECIF_INTERRUPTING equ 1<<7 rsreset DiagArea rs.b 0 da_Config rs.b 1 da_Flags rs.b 1 da_Size rs.w 1 da_DiagPoint rs.w 1 da_BootPoint rs.w 1 da_Name rs.w 1 da_Reserved01 rs.w 1 da_Reserved02 rs.w 1 DiagArea_SIZEOF rs.w 0 DAC_BUSWIDTH EQU $C0 DAC_NIBBLEWIDE EQU $00 DAC_BYTEWIDE EQU $40 DAC_WORDWIDE EQU $80 DAC_BOOTTIME EQU $30 DAC_NEVER EQU $00 DAC_CONFIGTIME EQU $10 DAC_BINDTIME EQU $20 ENDC MASK EQU $c0 ERT_TYPEBIR version.libraryEEEpNuJ! .Jversion.librarymylib 33.1 (25 Apr 1986) ,Zn !=."@#N"#H&NuRn * NupSn f .*gaNuH *N,m"Jm g *p`"$-&"MN"Mrp2-0-ЁN. L`NupNuxfb^ZVRN nlibspwh8 rs.b 0 fssm_Unit rs.l 1 fssm_Device rs.l 1 fssm_Environ rs.l 1 fssm_Flags rs.l 1 FileSysStartupMsg_SIZEOF rs.w 0 rsreset DeviceNode rs.b 0 dn_Next rs.l 1 dn_Type rs.l 1 CPTR dn_Task dn_Lock rs.l 1 dn_Handler rs.l 1 dn_StackSize rs.l 1 dn_Priority rs.l 1 dn_Startup rs.l 1 dn_SegList rs.l 1 dn_GlobalVec rs.l 1 dn_Name rs.l 1 DeviceNode_SIZEOF rs.w 0 ENDC CODERS PACK V1.5  ;lL><;j  demo.sr+poH Jfreememro*Cp,xNJg0#Cp,xNJg#Cp,xNJg#A,yN4Jg##r,xN(gR#AGaA?p 0f Qpr"zF"i2,yN"z4"i2A p,yN z hV,xNJg "@,xN`"<,yN:`j z,yN"y,xNb"y,xNb"y,xNbpNur$< o^0 QNu22intuition.librarygraphics.librarydos.library *2&  genam2.infr&`genaN  examplespZlkjih  helloworld.srj;QFRENT_VOLUME EQU 7 ACTION_LOCATE_OBJECT EQU 8 ACTION_RENAME_DISK EQU 9 ACTION_WRITE EQU 'W' ACTION_READ EQU 'R' ACTION_FREE_LOCK EQU 15 ACTION_DELETE_OBJECT EQU 16 ACTION_RENAME_OBJECT EQU 17 ACTION_COPY_DIR EQU 19 ACTION_WAIT_CHAR EQU 20 ACTION_SET_PROTECT EQU 21 ACTION_CREATE_DIR EQU 22 ACTION_EXAMINE_OBJECT EQU 23 ACTION_EXAMINE_NEXT EQU 24 ACTION_DISK_INFO EQU 25 ACTION_INFO EQU 26 ACTION_SET_COMMENT EQU 28 ACTION_PARENT EQU 29 ACTION_TIMER EQU 30 ACTION_INHIBIT EQU 31 ACTION_DISKj+˪_TYPE EQU 32 ACTION_DISK_CHANGE EQU 33 rsreset DosLibrary rs.b 0 dl_lib rs.b LIB_SIZE dl_Root rs.l 1 dl_GV rs.l 1 dl_A2 rs.l 1 dl_A5 rs.l 1 dl_A6 rs.l 1 dl_SIZEOF rs.w 0 rsreset RootNode rs.b 0 rn_TaskArray rs.l 1 rn_ConsoleSegment rs.l 1 rn_Time rs.b ds_SIZEOF rn_RestartSeg rs.l 1 rn_Info rs.l 1 rn_FileHandlerSegment rs.l 1 rn_SIZEOF rs.w 0 rsreset DosInfo rs.b 0 di_McName rs.l 1 di_DevInfo rs.l 1 di_Devices rs.l 1 di_Handlers rs.l 1 di_NetHand rs.l 1 di_SIZEOF rs.w 0 rsreset Coj mmandLineInterface rs.b 0 cli_Result2 rs.l 1 cli_SetName rs.l 1 cli_CommandDir rs.l 1 cli_ReturnCode rs.l 1 cli_CommandName rs.l 1 cli_FailLevel rs.l 1 cli_Prompt rs.l 1 cli_StandardInput rs.l 1 cli_CurrentInput rs.l 1 cli_CommandFile rs.l 1 cli_Interactive rs.l 1 cli_Background rs.l 1 cli_CurrentOutput rs.l 1 cli_DefaultStack rs.l 1 cli_StandardOutput rs.l 1 cli_Module rs.l 1 cli_SIZEOF rs.w 0 rsreset DevList rs.b 0 dl_Next rs.l 1 dl_Type rs.l 1 dl_Task rs.l 1 dl_Lock rs.l 1 dl_Volj(1umeDate rs.b ds_SIZEOF dl_LockList rs.l 1 dl_DiskType rs.l 1 dl_unused rs.l 1 dl_Name rs.l 1 DevList_SIZEOF rs.w 0 DLT_DEVICE EQU 0 DLT_DIRECTORY EQU 1 DLT_VOLUME EQU 2 rsreset FileLock rs.b 0 fl_Link rs.l 1 fl_Key rs.l 1 fl_Access rs.l 1 fl_Task rs.l 1 fl_Volume rs.l 1 fl_SIZEOF rs.w 0 ENDC l 1 rn_FileHandlerSegment rs.l 1 rn_SIZEOF rs.w 0 rsreset DosInfo rs.b 0 di_McName rs.l 1 di_DevInfo rs.l 1 di_Devices rs.l 1 di_Handlers rs.l 1 di_NetHand rs.l 1 di_SIZEOF rs.w 0 rsreset Col,^A(F rs.w 0 TICKS_PER_SECOND EQU 50 rsreset FileInfoBlock rs.b 0 fib_DiskKey rs.l 1 fib_DirEntryType rs.l 1 fib_FileName rs.b 108 fib_Protection rs.l 1 fib_EntryType rs.l 1 fib_Size rs.l 1 fib_NumBlocks rs.l 1 fib_DateStamp rs.b ds_SIZEOF fib_Comment rs.b 116 fib_SIZEOF rs.w 0 FIBB_ARCHIVE equ 4 FIBF_ARCHIVE equ 1<<4 FIBB_READ equ 3 FIBF_READ equ 1<<3 FIBB_WRITE equ 2 FIBF_WRITE equ 1<<2 FIBB_EXECUTE equ 1 FIBF_EXECUTE equ 1<<1 FIBB_DELETE equ 0 FIBF_DELETE equ 1<<0 BPTR MACRO \1 rs.l l°1 ENDM BSTR MACRO \1 rs.l 1 ENDM rsreset InfoData rs.b 0 id_NumSoftErrors rs.l 1 id_UnitNumber rs.l 1 id_DiskState rs.l 1 id_NumBlocks rs.l 1 id_NumBlocksUsed rs.l 1 id_BytesPerBlock rs.l 1 id_DiskType rs.l 1 id_VolumeNode rs.l 1 id_InUse rs.l 1 id_SIZEOF rs.w 0 ID_WRITE_PROTECTED EQU 80 ID_VALIDATING EQU 81 ID_VALIDATED EQU 82 ID_NO_DISK_PRESENT EQU -1 ID_UNREADABLE_DISK EQU ('B'<<24)!('A'<<16)!('D'<<8) ID_NOT_REALLY_DOS EQU ('N'<<24)!('D'<<16)!('O'<<8)!('S') ID_DOS_DISK EQU ('D'l<<24)!('O'<<16)!('S'<<8) ID_KICKSTART_DISK EQU ('K'<<24)!('I'<<16)!('C'<<8)!('K') ERROR_NO_FREE_STORE EQU 103 ERROR_TASK_TABLE_FULL EQU 105 ERROR_LINE_TOO_LONG EQU 120 ERROR_FILE_NOT_OBJECT EQU 121 ERROR_INVALID_RESIDENT_LIBRARY EQU 122 ERROR_OBJECT_IN_USE EQU 202 ERROR_OBJECT_EXISTS EQU 203 ERROR_OBJECT_NOT_FOUND EQU 205 ERROR_ACTION_NOT_KNOWN EQU 209 ERROR_INVALID_COMPONENT_NAME EQU 210 ERROR_INVALID_LOCK EQU 211 ERROR_OBJECT_WRONG_TYPE EQU 212 ERROR_DISK_NOT_VALIDATED EQU 213 ERROlHGR_DISK_WRITE_PROTECTED EQU 214 ERROR_RENAME_ACROSS_DEVICES EQU 215 ERROR_DIRECTORY_NOT_EMPTY EQU 216 ERROR_DEVICE_NOT_MOUNTED EQU 218 ERROR_SEEK_ERROR EQU 219 ERROR_COMMENT_TOO_BIG EQU 220 ERROR_DISK_FULL EQU 221 ERROR_DELETE_PROTECTED EQU 222 ERROR_WRITE_PROTECTED EQU 223 ERROR_READ_PROTECTED EQU 224 ERROR_NOT_A_DOS_DISK EQU 225 ERROR_NO_DISK EQU 226 ERROR_NO_MORE_ENTRIES EQU 232 RETURN_OK EQU 0 RETURN_WARN EQU 5 RETURN_ERROR EQU 10 RETURN_FAIL EQU 20 SIGBREAKB_CTRL_C equ 12 SIGBREAl$KF_CTRL_C equ 1<<12 SIGBREAKB_CTRL_D equ 13 SIGBREAKF_CTRL_D equ 1<<13 SIGBREAKB_CTRL_E equ 14 SIGBREAKF_CTRL_E equ 1<<14 SIGBREAKB_CTRL_F equ 15 SIGBREAKF_CTRL_F equ 1<<15 ENDC OT_OBJECT EQU 121 ERROR_INVALID_RESIDENT_LIBRARY EQU 122 ERROR_OBJECT_IN_USE EQU 202 ERROR_OBJECT_EXISTS EQU 203 ERROR_OBJECT_NOT_FOUND EQU 205 ERROR_ACTION_NOT_KNOWN EQU 209 ERROR_INVALID_COMPONENT_NAME EQU 210 ERROR_INVALID_LOCK EQU 211 ERROR_OBJECT_WRONG_TYPE EQU 212 ERROR_DISK_NOT_VALIDATED EQU 213 ERROp RE equ 1 CDF_CONFIGME equ 1<<1 rsreset CurrentBinding rs.b 0 cb_ConfigDev rs.l 1 cb_FileName rs.l 1 cb_ProductString rs.l 1 cb_ToolTypes rs.l 1 CurrentBinding_SIZEOF rs.w 0 ENDC rt CODERS PACK V1.5  rz: " 1 ec_Reserved16 rs.b 1 ec_Reserved17 rs.b 1 ec_Reserved18 rs.b 1 ec_Reserved19 rs.b 1 ec_Reserved1a rs.b 1 ec_Reserved1b rs.b 1 ec_Reserved1c rs.b 1 ec_Reserved1d rs.b 1 ec_Reserved1e rs.b 1 ec_Reserved1f rs.b 1 ExpansionControl_SIZEOF rs.w 0 E_SLOTSIZE EQU $10000 E_SLOTMASK EQU $ffff E_SLOTSHIFT EQU 16 E_EXPANSIONBASE EQU $e80000 E_EXPANSIONSIZE EQU $080000 E_EXPANSIONSLOTS EQU 8 E_MEMORYBASE EQU $200000 E_MEMORYSIZE EQU $800000 E_MEMORYSLOTS EQU 128 ERT_TYPEMASK EQU $c0 ERT_TYPEBIV^Z_EIGHTY EQU 8 TOPAZ_SIXTY EQU 9 rsreset Preferences rs.b 0 pf_FontHeight rs.b 1 pf_PrinterPort rs.b 1 pf_BaudRate rs.w 1 pf_KeyRptSpeed rs.b TV_SIZE pf_KeyRptDelay rs.b TV_SIZE pf_DoubleClick rs.b TV_SIZE pf_PointerMatrix rs.b POINTERSIZE*2 pf_XOffset rs.b 1 pf_YOffset rs.b 1 pf_color17 rs.w 1 pf_color18 rs.w 1 pf_color19 rs.w 1 pf_PointerTicks rs.w 1 pf_color0 rs.w 1 pf_color1 rs.w 1 pf_color2 rs.w 1 pf_color3 rs.w 1 pf_ViewXOffset rs.b 1 pf_ViewYOffset rs.b 1 pf_ViewInitX rs.w 1 Vpf_ViewInitY rs.w 1 EnableCLI rs.w 1 pf_PrinterType rs.w 1 pf_PrinterFilename rs.b FILENAME_SIZE pf_PrintPitch rs.w 1 pf_PrintQuality rs.w 1 pf_PrintSpacing rs.w 1 pf_PrintLeftMargin rs.w 1 pf_PrintRightMargin rs.w 1 pf_PrintImage rs.w 1 pf_PrintAspect rs.w 1 pf_PrintShade rs.w 1 pf_PrintThreshold rs.w 1 pf_PaperSize rs.w 1 pf_PaperLength rs.w 1 pf_PaperType rs.w 1 pf_SerRWBits rs.b 1 pf_SerStopBuf rs.b 1 pf_SerParShk rs.b 1 pf_LaceWB rs.b 1 pf_WorkName rs.b FILENAME_SIZE pf_padding V~/srs.b 16 pf_SIZEOF rs.w 0 LACEWB EQU $01 PARALLEL_PRINTER EQU $00 SERIAL_PRINTER EQU $01 BAUD_110 EQU $00 BAUD_300 EQU $01 BAUD_1200 EQU $02 BAUD_2400 EQU $03 BAUD_4800 EQU $04 BAUD_9600 EQU $05 BAUD_19200 EQU $06 BAUD_MIDI EQU $07 FANFOLD EQU $00 SINGLE EQU $80 PICA EQU $000 ELITE EQU $400 FINE EQU $800 DRAFT EQU $000 LETTER EQU $100 SIX_LPI EQU $000 EIGHT_LPI EQU $200 IMAGE_POSITIVE EQU $00 IMAGE_NEGATIVE EQU $01 ASPECT_HORIZ EQU $00 ASPECT_VERT EQU $01 SHADE_BW EQU $00 SHADE_GREYSCVALE EQU $01 SHADE_COLOR EQU $02 US_LETTER EQU $00 US_LEGAL EQU $10 N_TRACTOR EQU $20 W_TRACTOR EQU $30 CUSTOM EQU $40 CUSTOM_NAME EQU $00 ALPHA_P_101 EQU $01 BROTHER_15XL EQU $02 CBM_MPS1000 EQU $03 DIAB_630 EQU $04 DIAB_ADV_D25 EQU $05 DIAB_C_150 EQU $06 EPSON EQU $07 EPSON_JX_80 EQU $08 OKIMATE_20 EQU $09 QUME_LP_20 EQU $0A HP_LASERJET EQU $0B HP_LASERJET_PLUS EQU $0C SBUF_512 EQU $00 SBUF_1024 EQU $01 SBUF_2048 EQU $02 SBUF_4096 EQU $03 SBUF_8000 EQU $04 SBUF_16000 EQU $05 SREAD_BVSITS EQU $F0 SWRITE_BITS EQU $0F SSTOP_BITS EQU $F0 SBUFSIZE_BITS EQU $0F SPARITY_BITS EQU $F0 SHSHAKE_BITS EQU $0F SPARITY_NONE EQU $00 SPARITY_EVEN EQU $01 SPARITY_ODD EQU $02 SHSHAKE_XON EQU $00 SHSHAKE_RTS EQU $01 SHSHAKE_NONE EQU $02 rsreset Remember rs.b 0 rm_NextRemember rs.l 1 rm_RememberSize rs.l 1 rm_Memory rs.l 1 rm_SIZEOF rs.w 0 NOMENU EQU $001F NOITEM EQU $003F NOSUB EQU $001F MENUNULL EQU $FFFF CHECKWIDTH EQU 19 COMMWIDTH EQU 27 LOWCHECKWIDTH EQU 13 LOWCOMMWIDTH EQU 16 VpjALERT_TYPE EQU $80000000 RECOVERY_ALERT EQU $00000000 DEADEND_ALERT EQU $80000000 AUTOFRONTPEN EQU 0 AUTOBACKPEN EQU 1 AUTODRAWMODE EQU RP_JAM2 AUTOLEFTEDGE EQU 6 AUTOTOPEDGE EQU 3 AUTOITEXTFONT EQU 0 AUTONEXTTEXT EQU 0 SELECTUP EQU (IECODE_LBUTTON+IECODE_UP_PREFIX) SELECTDOWN EQU (IECODE_LBUTTON) MENUUP EQU (IECODE_RBUTTON+IECODE_UP_PREFIX) MENUDOWN EQU (IECODE_RBUTTON) ALTLEFT EQU (IEQUALIFIER_LALT) ALTRIGHT EQU (IEQUALIFIER_RALT) AMIGALEFT EQU (IEQUALIFIER_LCOMMAND) AMIGARIGHT EQUVF:[9 (IEQUALIFIER_RCOMMAND) AMIGAKEYS EQU (AMIGALEFT+AMIGARIGHT) CURSORUP EQU $4C CURSORLEFT EQU $4F CURSORRIGHT EQU $4E CURSORDOWN EQU $4D KEYCODE_Q EQU $10 KEYCODE_X EQU $32 KEYCODE_N EQU $36 KEYCODE_M EQU $37 KEYCODE_V EQU $34 KEYCODE_B EQU $35 IFND INTUITION_INTUITIONBASE_I INCLUDE 'intuition/intuitionbase.i' ENDC ENDC rm_SIZEOF rs.w 0 NOMENU EQU $001F NOITEM EQU $003F NOSUB EQU $001F MENUNULL EQU $FFFF CHECKWIDTH EQU 19 COMMWIDTH EQU 27 LOWCHECKWIDTH EQU 13 LOWCOMMWIDTH EQU 16 b 526 _LVOSetCurrentBinding EQU -132 _LVOGetCurrentBinding EQU -138 _LVOMakeDosNode EQU -144 _LVOAddDosNode EQU -150 CALLEXP MACRO move.l _ExpansionBase,a6 jsr _LVO\1(a6) ENDM rt CODERS PACK V1.5  hhxMICer rs.b 0 dfh_DF rs.b LN_SIZE dfh_FileID rs.w 1 dfh_Revision rs.w 1 dfh_Segment rs.l 1 dfh_Name rs.b MAXFONTNAME dfh_TF rs.b tf_SIZEOF dfh_SIZEOF rs.w 0 AFB_MEMORY equ 0 AFF_MEMORY equ 1<<0 AFB_DISK equ 1 AFF_DISK equ 1<<1 rsreset AF rs.b 0 af_Type rs.w 1 af_Attr rs.b ta_SIZEOF af_SIZEOF rs.w 0 rsreset AFH rs.b 0 afh_NumEntries rs.w 1 afh_AF rs.w 0 ENDC CODERS PACK V1.5  j7)l 1 pr_Result2 rs.l 1 pr_CurrentDir rs.l 1 pr_CIS rs.l 1 pr_COS rs.l 1 pr_ConsoleTask rs.l 1 pr_FileSystemTask rs.l 1 pr_CLI rs.l 1 pr_ReturnAddr rs.l 1 pr_PktWait rs.l 1 pr_WindowPtr rs.l 1 pr_SIZEOF rs.w 0 rsreset FileHandle rs.b 0 fh_Link rs.l 1 fh_Interactive rs.l 1 fh_Type rs.l 1 fh_Buf rs.l 1 fh_Pos rs.l 1 fh_End rs.l 1 fh_Funcs rs.l 1 fh_Func1 EQU fh_Funcs fh_Func2 rs.l 1 fh_Func3 rs.l 1 fh_Args rs.l 1 fh_Arg1 EQU fh_Args fh_Arg2 rs.l 1 fh_SIZEOF rs.w 0 rsreset DosPacket rs.jb 0 dp_Link rs.l 1 dp_Port rs.l 1 dp_Type rs.l 1 dp_Res1 rs.l 1 dp_Res2 rs.l 1 dp_Arg1 rs.l 1 dp_Action EQU dp_Type dp_Status EQU dp_Res1 dp_Status2 EQU dp_Res2 dp_BufAddr EQU dp_Arg1 dp_Arg2 rs.l 1 dp_Arg3 rs.l 1 dp_Arg4 rs.l 1 dp_Arg5 rs.l 1 dp_Arg6 rs.l 1 dp_Arg7 rs.l 1 dp_SIZEOF rs.w 0 rsreset StandardPacket rs.b 0 sp_Msg rs.b MN_SIZE sp_Pkt rs.b dp_SIZEOF sp_SIZEOF rs.w 0 ACTION_NIL EQU 0 ACTION_GET_BLOCK EQU 2 ACTION_SET_MAP EQU 4 ACTION_DIE EQU 5 ACTION_EVENT EQU 6 ACTION_CURVoΈ1 pi_VertBody rs.w 1 pi_CWidth rs.w 1 pi_CHeight rs.w 1 pi_HPotRes rs.w 1 pi_VPotRes rs.w 1 pi_LeftBorder rs.w 1 pi_TopBorder rs.w 1 pi_SIZEOF rs.w 0 AUTOKNOB EQU $0001 FREEHORIZ EQU $0002 FREEVERT EQU $0004 PROPBORDERLESS EQU $0008 KNOBHIT EQU $0100 KNOBHMIN EQU 6 KNOBVMIN EQU 4 MAXBODY EQU $FFFF MAXPOT EQU $FFFF rsreset StringInfo rs.b 0 si_Buffer rs.l 1 si_UndoBuffer rs.l 1 si_BufferPos rs.w 1 si_MaxChars rs.w 1 si_DispPos rs.w 1 si_UndoPos rs.w 1 si_NumChars rs.w 1 si_DispCount V QH'rs.w 1 si_CLeft rs.w 1 si_CTop rs.w 1 si_LayerPtr rs.l 1 si_LongInt rs.l 1 si_AltKeyMap rs.l 1 si_SIZEOF rs.w 0 rsreset IntuiText rs.b 0 it_FrontPen rs.b 1 it_BackPen rs.b 1 it_DrawMode rs.b 1 it_KludgeFill00 rs.b 1 it_LeftEdge rs.w 1 it_TopEdge rs.w 1 it_ITextFont rs.l 1 it_IText rs.l 1 it_NextText rs.l 1 it_SIZEOF rs.w 0 rsreset Border rs.b 0 bd_LeftEdge rs.w 1 bd_TopEdge rs.w 1 bd_FrontPen rs.b 1 bd_BackPen rs.b 1 bd_DrawMode rs.b 1 bd_Count rs.b 1 bd_XY rs.l 1 bd_NextBorder rs.V FZl 1 bd_SIZEOF rs.w 0 rsreset Image rs.b 0 ig_LeftEdge rs.w 1 ig_TopEdge rs.w 1 ig_Width rs.w 1 ig_Height rs.w 1 ig_Depth rs.w 1 ig_ImageData rs.l 1 ig_PlanePick rs.b 1 ig_PlaneOnOff rs.b 1 ig_NextImage rs.l 1 ig_SIZEOF rs.w 0 rsreset IntuiMessage rs.b 0 im_ExecMessage rs.b MN_SIZE im_Class rs.l 1 im_Code rs.w 1 im_Qualifier rs.w 1 im_IAddress rs.l 1 im_MouseX rs.w 1 im_MouseY rs.w 1 im_Seconds rs.l 1 im_Micros rs.l 1 im_IDCMPWindow rs.l 1 im_SpecialLink rs.l 1 im_SIZEOF rs.w 0 SIZEV hKQVERIFY EQU $00000001 NEWSIZE EQU $00000002 REFRESHWINDOW EQU $00000004 MOUSEBUTTONS EQU $00000008 MOUSEMOVE EQU $00000010 GADGETDOWN EQU $00000020 GADGETUP EQU $00000040 REQSET EQU $00000080 MENUPICK EQU $00000100 CLOSEWINDOW EQU $00000200 RAWKEY EQU $00000400 REQVERIFY EQU $00000800 REQCLEAR EQU $00001000 MENUVERIFY EQU $00002000 NEWPREFS EQU $00004000 DISKINSERTED EQU $00008000 DISKREMOVED EQU $00010000 WBENCHMESSAGE EQU $00020000 ACTIVEWINDOW EQU $00040000 INACTIVEWINDOW EQU $0008V  F0000 DELTAMOVE EQU $00100000 VANILLAKEY EQU $00200000 INTUITICKS EQU $00400000 LONELYMESSAGE EQU $80000000 MENUHOT EQU $0001 MENUCANCEL EQU $0002 MENUWAITING EQU $0003 OKOK EQU MENUHOT OKABORT EQU $0004 OKCANCEL EQU MENUCANCEL WBENCHOPEN EQU $0001 WBENCHCLOSE EQU $0002 rsreset Window rs.b 0 wd_NextWindow rs.l 1 wd_LeftEdge rs.w 1 wd_TopEdge rs.w 1 wd_Width rs.w 1 wd_Height rs.w 1 wd_MouseY rs.w 1 wd_MouseX rs.w 1 wd_MinWidth rs.w 1 wd_MinHeight rs.w 1 wd_MaxWidth rs.w 1 wd_MaxHeightV  rs.w 1 wd_Flags rs.l 1 wd_MenuStrip rs.l 1 wd_Title rs.l 1 wd_FirstRequest rs.l 1 wd_DMRequest rs.l 1 wd_ReqCount rs.w 1 wd_WScreen rs.l 1 wd_RPort rs.l 1 wd_BorderLeft rs.b 1 wd_BorderTop rs.b 1 wd_BorderRight rs.b 1 wd_BorderBottom rs.b 1 wd_BorderRPort rs.l 1 wd_FirstGadget rs.l 1 wd_Parent rs.l 1 wd_Descendant rs.l 1 wd_Pointer rs.l 1 wd_PtrHeight rs.b 1 wd_PtrWidth rs.b 1 wd_XOffset rs.b 1 wd_YOffset rs.b 1 wd_IDCMPFlags rs.l 1 wd_UserPort rs.l 1 wd_WindowPort rs.l 1 wd_MessageV2oKey rs.l 1 wd_DetailPen rs.b 1 wd_BlockPen rs.b 1 wd_CheckMark rs.l 1 wd_ScreenTitle rs.l 1 wd_GZZMouseX rs.w 1 wd_GZZMouseY rs.w 1 wd_GZZWidth rs.w 1 wd_GZZHeight rs.w 1 wd_ExtData rs.l 1 wd_UserData rs.l 1 wd_WLayer rs.l 1 IFont rs.l 1 wd_Size rs.w 0 WINDOWSIZING EQU $0001 WINDOWDRAG EQU $0002 WINDOWDEPTH EQU $0004 WINDOWCLOSE EQU $0008 SIZEBRIGHT EQU $0010 SIZEBBOTTOM EQU $0020 REFRESHBITS EQU $00C0 SMART_REFRESH EQU $0000 SIMPLE_REFRESH EQU $0040 SUPER_BITMAP EQU $0080 OTHER_REFRV5ESH EQU $00C0 BACKDROP EQU $0100 REPORTMOUSE EQU $0200 GIMMEZEROZERO EQU $0400 BORDERLESS EQU $0800 ACTIVATE EQU $1000 WINDOWACTIVE EQU $2000 INREQUEST EQU $4000 MENUSTATE EQU $8000 RMBTRAP EQU $00010000 NOCAREREFRESH EQU $00020000 WINDOWREFRESH EQU $01000000 WBENCHWINDOW EQU $02000000 WINDOWTICKED EQU $04000000 SUPER_UNUSED EQU $FCFC0000 rsreset NewWindow rs.b 0 nw_LeftEdge rs.w 1 nw_TopEdge rs.w 1 nw_Width rs.w 1 nw_Height rs.w 1 nw_DetailPen rs.b 1 nw_BlockPen rs.b 1 nw_IDCMPFlagVots rs.l 1 nw_Flags rs.l 1 nw_FirstGadget rs.l 1 nw_CheckMark rs.l 1 nw_Title rs.l 1 nw_Screen rs.l 1 nw_BitMap rs.l 1 nw_MinWidth rs.w 1 nw_MinHeight rs.w 1 nw_MaxWidth rs.w 1 nw_MaxHeight rs.w 1 nw_Type rs.w 1 nw_SIZE rs.w 0 rsreset Screen rs.b 0 sc_NextScreen rs.l 1 sc_FirstWindow rs.l 1 sc_LeftEdge rs.w 1 sc_TopEdge rs.w 1 sc_Width rs.w 1 sc_Height rs.w 1 sc_MouseY rs.w 1 sc_MouseX rs.w 1 sc_Flags rs.w 1 sc_Title rs.l 1 sc_DefaultTitle rs.l 1 sc_BarHeight rs.b 1 sc_BarVBorder rs.bVu 1 sc_BarHBorder rs.b 1 sc_MenuVBorder rs.b 1 sc_MenuHBorder rs.b 1 sc_WBorTop rs.b 1 sc_WBorLeft rs.b 1 sc_WBorRight rs.b 1 sc_WBorBottom rs.b 1 sc_KludgeFill00 rs.b 1 sc_Font rs.l 1 sc_ViewPort rs.b vp_SIZEOF sc_RastPort rs.b rp_SIZEOF sc_BitMap rs.b bm_SIZEOF sc_LayerInfo rs.b li_SIZEOF sc_FirstGadget rs.l 1 sc_DetailPen rs.b 1 sc_BlockPen rs.b 1 sc_SaveColor0 rs.w 1 sc_BarLayer rs.l 1 sc_ExtData rs.l 1 sc_UserData rs.l 1 sc_SIZEOF rs.w 0 SCREENTYPE EQU $000F WBENCHSCREEN EQU $000V<,1 CUSTOMSCREEN EQU $000F SHOWTITLE EQU $0010 BEEPING EQU $0020 CUSTOMBITMAP EQU $0040 SCREENBEHIND EQU $0080 SCREENQUIET EQU $0100 STDSCREENHEIGHT EQU -1 rsreset NewScreen rs.b 0 ns_LeftEdge rs.w 1 ns_TopEdge rs.w 1 ns_Width rs.w 1 ns_Height rs.w 1 ns_Depth rs.w 1 ns_DetailPen rs.b 1 ns_BlockPen rs.b 1 ns_ViewModes rs.w 1 ns_Type rs.w 1 ns_Font rs.l 1 ns_DefaultTitle rs.l 1 ns_Gadgets rs.l 1 ns_CustomBitMap rs.l 1 ns_SIZEOF rs.w 0 FILENAME_SIZE EQU 30 POINTERSIZE EQU (1+16+1)*2 TOPAI3ɓYPE_TOOLEXIT EQU 2 MTYPE_DISKCHANGE EQU 3 MTYPE_TIMER EQU 4 MTYPE_CLOSEDOWN EQU 5 MTYPE_IOPROC EQU 6 GADGBACKFILL EQU $0001 NO_ICON_POSITION EQU ($80000000) ENDC _LISTS_I INCLUDE "exec/lists.i" ENDC IFND EXEC_TASKS_I INCLUDE "exec/tasks.i" ENDC IFND INTUITION_INTUITION_I INCLUDE "intuition/intuition.i" ENDC WBDISK EQU 1 WBDRAWER EQU 2 WBTOOL EQU 3 WBPROJECT EQU 4 WBGARBAGE EQU 5 WBDEVICE EQU 6 WBKICK EQU 7 rsreset DrawerData rs.b 0 dd_NewWindow rs.b nw_SIZE dd_CurrentX rs.Vj $4000 GZZGADGET EQU $2000 REQGADGET EQU $1000 SIZING EQU $0010 WDRAGGING EQU $0020 SDRAGGING EQU $0030 WUPFRONT EQU $0040 SUPFRONT EQU $0050 WDOWNBACK EQU $0060 SDOWNBACK EQU $0070 CLOSE EQU $0080 BOOLGADGET EQU $0001 GADGET0002 EQU $0002 PROPGADGET EQU $0003 STRGADGET EQU $0004 rsreset BoolInfo rs.b 0 bi_Flags rs.w 1 bi_Mask rs.l 1 bi_Reserved rs.l 1 bi_SIZEOF rs.w 0 BOOLMASK EQU $0001 rsreset PropInfo rs.b 0 pi_Flags rs.w 1 pi_HorizPot rs.w 1 pi_VertPot rs.w 1 pi_HorizBody rs.w THVOItemAddress EQU -144 _LVOModifyIDCMP EQU -150 _LVOModifyProp EQU -156 _LVOMoveScreen EQU -162 _LVOMoveWindow EQU -168 _LVOOffGadget EQU -174 _LVOOffMenu EQU -180 _LVOOnGadget EQU -186 _LVOOnMenu EQU -192 _LVOOpenScreen EQU -198 _LVOOpenWindow EQU -204 _LVOOpenWorkBench EQU -210 _LVOPrintIText EQU -216 _LVORefreshGadgets EQU -222 _LVORemoveGadget EQU -228 _LVOReportMouse EQU -234 _LVORequest EQU -240 _LVOScreenToBack EQU -246 _LVOScreenToFront EQU -252 _LVOSetDMReT]quest EQU -258 _LVOSetMenuStrip EQU -264 _LVOSetPointer EQU -270 _LVOSetWindowTitles EQU -276 _LVOShowTitle EQU -282 _LVOSizeWindow EQU -288 _LVOViewAddress EQU -294 _LVOViewPortAddress EQU -300 _LVOWindowToBack EQU -306 _LVOWindowToFront EQU -312 _LVOWindowLimits EQU -318 _LVOSetPrefs EQU -324 _LVOIntuiTextLength EQU -330 _LVOWBenchToBack EQU -336 _LVOWBenchToFront EQU -342 _LVOAutoRequest EQU -348 _LVOBeginRefresh EQU -354 _LVOBuildSysRequest EQU -360 _LVOEndRefreTysh EQU -366 _LVOFreeSysRequest EQU -372 _LVOMakeScreen EQU -378 _LVORemakeDisplay EQU -384 _LVORethinkDisplay EQU -390 _LVOAllocRemember EQU -396 _LVOAlohaWorkbench EQU -402 _LVOFreeRemember EQU -408 _LVOLockIBase EQU -414 _LVOUnlockIBase EQU -420 _LVOGetScreenData EQU -426 _LVORefreshGList EQU -432 _LVOAddGList EQU -438 _LVORemoveGList EQU -444 _LVOActivateWindow EQU -450 _LVORefreshWindowFrame EQU -456 _LVOActivateGadget EQU -462 _LVONewModifyProp EQU -468 CALLINTTh汷 MACRO move.l _IntuitionBase,a6 jsr _LVO\1(a6) ENDM INTNAME MACRO dc.b 'intuition.library',0 ENDM owTitle EQU -282 _LVOSizeWindow EQU -288 _LVOViewAddress EQU -294 _LVOViewPortAddress EQU -300 _LVOWindowToBack EQU -306 _LVOWindowToFront EQU -312 _LVOWindowLimits EQU -318 _LVOSetPrefs EQU -324 _LVOIntuiTextLength EQU -330 _LVOWBenchToBack EQU -336 _LVOWBenchToFront EQU -342 _LVOAutoRequest EQU -348 _LVOBeginRefresh EQU -354 _LVOBuildSysRequest EQU -360 _LVOEndRefreV}y ENDC IFND DEVICES_TIMER_I INCLUDE 'devices/timer.i' ENDC IFND DEVICES_INPUTEVENT_I INCLUDE 'devices/inputevent.i' ENDC rsreset Menu rs.b 0 mu_NextMenu rs.l 1 mu_LeftEdge rs.w 1 mu_TopEdge rs.w 1 mu_Width rs.w 1 mu_Height rs.w 1 mu_Flags rs.w 1 mu_MenuName rs.l 1 mu_FirstItem rs.l 1 mu_JazzX rs.w 1 mu_JazzY rs.w 1 mu_BeatX rs.w 1 mu_BeatY rs.w 1 mu_SIZEOF rs.w 0 MENUENABLED EQU $0001 MIDRAWN EQU $0100 rsreset MenuItem rs.b 0 mi_NextItem rs.l 1 mi_LeftEdge rs.w 1 mi_TopEdge rsV(.w 1 mi_Width rs.w 1 mi_Height rs.w 1 mi_Flags rs.w 1 mi_MutualExclude rs.l 1 mi_ItemFill rs.l 1 mi_SelectFill rs.l 1 mi_Command rs.b 1 mi_KludgeFill00 rs.b 1 mi_SubItem rs.l 1 mi_NextSelect rs.w 1 mi_SIZEOF rs.w 0 CHECKIT EQU $0001 ITEMTEXT EQU $0002 COMMSEQ EQU $0004 MENUTOGGLE EQU $0008 ITEMENABLED EQU $0010 HIGHFLAGS EQU $00C0 HIGHIMAGE EQU $0000 HIGHCOMP EQU $0040 HIGHBOX EQU $0080 HIGHNONE EQU $00C0 CHECKED EQU $0100 ISDRAWN EQU $1000 HIGHITEM EQU $2000 MENUTOGGLED EQU $4000 rVlb{sreset Requester rs.b 0 rq_OlderRequest rs.l 1 rq_LeftEdge rs.w 1 rq_TopEdge rs.w 1 rq_Width rs.w 1 rq_Height rs.w 1 rq_RelLeft rs.w 1 rq_RelTop rs.w 1 rq_ReqGadget rs.l 1 rq_ReqBorder rs.l 1 rq_ReqText rs.l 1 rq_Flags rs.w 1 rq_BackFill rs.b 1 rq_KludgeFill00 rs.b 1 rq_ReqLayer rs.l 1 rq_ReqPad1 rs.b 32 rq_ImageBMap rs.l 1 rq_RWindow rs.l 1 rq_ReqPad2 rs.b 36 rq_SIZEOF rs.w 0 POINTREL EQU $0001 PREDRAWN EQU $0002 NOISYREQ EQU $0004 REQOFFWINDOW EQU $1000 REQACTIVE EQU $2000 SYSREQUEVFث~ST EQU $4000 DEFERREFRESH EQU $8000 rsreset Gadget rs.b 0 gg_NextGadget rs.l 1 gg_LeftEdge rs.w 1 gg_TopEdge rs.w 1 gg_Width rs.w 1 gg_Height rs.w 1 gg_Flags rs.w 1 gg_Activation rs.w 1 gg_GadgetType rs.w 1 gg_GadgetRender rs.l 1 gg_SelectRender rs.l 1 gg_GadgetText rs.l 1 gg_MutualExclude rs.l 1 gg_SpecialInfo rs.l 1 gg_GadgetID rs.w 1 gg_UserData rs.l 1 gg_SIZEOF rs.w 0 GADGHIGHBITS EQU $0003 GADGHCOMP EQU $0000 GADGHBOX EQU $0001 GADGHIMAGE EQU $0002 GADGHNONE EQU $0003 GADGIMAGEV;Q< EQU $0004 GRELBOTTOM EQU $0008 GRELRIGHT EQU $0010 GRELWIDTH EQU $0020 GRELHEIGHT EQU $0040 SELECTED EQU $0080 GADGDISABLED EQU $0100 RELVERIFY EQU $0001 GADGIMMEDIATE EQU $0002 ENDGADGET EQU $0004 FOLLOWMOUSE EQU $0008 RIGHTBORDER EQU $0010 LEFTBORDER EQU $0020 TOPBORDER EQU $0040 BOTTOMBORDER EQU $0080 TOGGLESELECT EQU $0100 STRINGCENTER EQU $0200 STRINGRIGHT EQU $0400 LONGINT EQU $0800 ALTKEYMAP EQU $1000 BOOLEXTEND EQU $2000 GADGETTYPE EQU $FC00 SYSGADGET EQU $8000 SCRGADGET EQU<Hʂ&MOVE.L A6,-(SP) MOVE.L \2,A6 CALLLIB \1 MOVE.L (SP)+,A6 ENDM ENDC E "exec/nodes.i" ENDC LIB_VECTSIZE EQU 6 LIB_RESERVED EQU 4 LIB_BASE EQU $FFFFFFFA LIB_USERDEF EQU LIB_BASE-(LIB_RESERVED*LIB_VECTSIZE) LIB_NONSTD EQU LIB_USERDEF LIBINIT MACRO IFC '\1','' COUNT_LIB SET LIB_USERDEF ENDC IFNC '\1','' COUNT_LIB SET \1 ENDC ENDM LIBDEF MACRO \1 EQU COUNT_LIB COUNT_LIB SET COUNT_LIB-LIB_VECTSIZE ENDM LIBINIT LIB_BASE LIBDEF LIB_OPEN LIBDEF LIB_CLOSE LIBDEF LIB_EXPUNGE LIBD10 SIGF_SINGLE EQU $0010 SIGF_DOS EQU $0100 SIGB_ABORT EQU 0 SIGB_CHILD EQU 1 SIGB_BLIT EQU 4 SIGB_SINGLE EQU 4 SIGB_DOS EQU 8 SYS_SIGALLOC EQU $0FFFF SYS_TRAPALLOC EQU $08000 ENDC TE rs.b 1 TC_IDNESTCNT rs.b 1 TC_TDNESTCNT rs.b 1 TC_SIGALLOC rs.l 1 TC_SIGWAIT rs.l 1 TC_SIGRECVD rs.l 1 TC_SIGEXCEPT rs.l 1 TC_TRAPALLOC rs.w 1 TC_TRAPABLE rs.w 1 TC_EXCEPTDATA rs.l 1 TC_EXCEPTCODE rs.l 1 TC_TRAPDATA rs.l 1 TC_TRAPCODE rs.l 1 TC_SPREG rs.l 1 TC_SPLOWER rs.l 1 TC_SPUPPER rs.l 1 TC_SWITCF*1) rsreset MH rs.b LN_SIZE MH_ATTRIBUTES rs.w 1 MH_FIRST rs.l 1 MH_LOWER rs.l 1 MH_UPPER rs.l 1 MH_FREE rs.l 1 MH_SIZE rs.w 0 rsreset MC rs.b 0 MC_NEXT rs.l 1 MC_BYTES rs.l 1 MC_SIZE rs.l 1 ENDC rt CODERS PACK V1.5  Irl 1 dd_CurrentY rs.l 1 dd_SIZEOF rs.w 0 DRAWERDATAFILESIZE EQU (dd_SIZEOF) rsreset DiskObject rs.b 0 do_Magic rs.w 1 do_Version rs.w 1 do_Gadget rs.b gg_SIZEOF do_Type rs.w 1 do_DefaultTool rs.l 1 do_ToolTypes rs.l 1 do_CurrentX rs.l 1 do_CurrentY rs.l 1 do_DrawerData rs.l 1 do_ToolWindow rs.l 1 do_StackSize rs.l 1 do_SIZEOF rs.w 0 WB_DISKMAGIC EQU $e310 WB_DISKVERSION EQU 1 rsreset FreeList rs.b 0 fl_NumFree rs.w 1 fl_MemList rs.b LH_SIZE FreeList_SIZEOF rs.w 0 MTYPE_PSTD EQU 1 MT@ǝnYate EQU -156 _LVOSetIntVector EQU -162 _LVOAddIntServer EQU -168 _LVORemIntServer EQU -174 _LVOCause EQU -180 _LVOAllocate EQU -186 _LVODeallocate EQU -192 _LVOAllocMem EQU -198 _LVOAllocAbs EQU -204 _LVOFreeMem EQU -210 _LVOAvailMem EQU -216 _LVOAllocEntry EQU -222 _LVOFreeEntry EQU -228 _LVOInsert EQU -234 _LVOAddHead EQU -240 _LVOAddTail EQU -246 _LVORemove EQU -252 _LVORemHead EQU -258 _LVORemTail EQU -264 _LVOEnqueue EQU -270 _LVOFindName EQU -276 _LVOAddTas@PRMk EQU -282 _LVORemTask EQU -288 _LVOFindTask EQU -294 _LVOSetTaskPri EQU -300 _LVOSetSignal EQU -306 _LVOSetExcept EQU -312 _LVOWait EQU -318 _LVOSignal EQU -324 _LVOAllocSignal EQU -330 _LVOFreeSignal EQU -336 _LVOAllocTrap EQU -342 _LVOFreeTrap EQU -348 _LVOAddPort EQU -354 _LVORemPort EQU -360 _LVOPutMsg EQU -366 _LVOGetMsg EQU -372 _LVOReplyMsg EQU -378 _LVOWaitPort EQU -384 _LVOFindPort EQU -390 _LVOAddLibrary EQU -396 _LVORemLibrary EQU -402 _LVOOldOpenLibr@:ary EQU -408 _LVOCloseLibrary EQU -414 _LVOSetFunction EQU -420 _LVOSumLibrary EQU -426 _LVOAddDevice EQU -432 _LVORemDevice EQU -438 _LVOOpenDevice EQU -444 _LVOCloseDevice EQU -450 _LVODoIO EQU -456 _LVOSendIO EQU -462 _LVOCheckIO EQU -468 _LVOWaitIO EQU -474 _LVOAbortIO EQU -480 _LVOAddResource EQU -486 _LVORemResource EQU -492 _LVOOpenResource EQU -498 _LVORawIOInit EQU -504 _LVORawMayGetChar EQU -510 _LVORawPutChar EQU -516 _LVORawDoFmt EQU -522 _LVOGetCC EQU@ -528 _LVOTypeOfMem EQU -534 _LVOProcure EQU -540 _LVOVacate EQU -546 _LVOOpenLibrary EQU -552 _LVOInitSemaphore EQU -558 _LVOObtainSemaphore EQU -564 _LVOReleaseSemaphore EQU -570 _LVOAttemptSemaphore EQU -576 _LVOObtainSemaphoreList EQU -582 _LVOReleaseSemaphoreList EQU -588 _LVOFindSemaphore EQU -594 _LVOAddSemaphore EQU -600 _LVORemSemaphore EQU -606 _LVOSumKickData EQU -612 _LVOAddMemList EQU -618 _LVOCopyMem EQU -624 _LVOCopyMemQuick EQU -630 CALLEXEC MACRO m@hove.l (_SysBase).w,a6 jsr _LVO\1(a6) ENDM EXECNAME MACRO dc.b 'exec.library',0 ENDM _SysBase EQU 4 e EQU -432 _LVORemDevice EQU -438 _LVOOpenDevice EQU -444 _LVOCloseDevice EQU -450 _LVODoIO EQU -456 _LVOSendIO EQU -462 _LVOCheckIO EQU -468 _LVOWaitIO EQU -474 _LVOAbortIO EQU -480 _LVOAddResource EQU -486 _LVORemResource EQU -492 _LVOOpenResource EQU -498 _LVORawIOInit EQU -504 _LVORawMayGetChar EQU -510 _LVORawPutChar EQU -516 _LVORawDoFmt EQU -522 _LVOGetCC EQUB J 0 ENDC xzvqrt CODERS PACK V1.5  DØcH rs.l 1 TC_LAUNCH rs.l 1 TC_MEMENTRY rs.b LH_SIZE TC_Userdata rs.l 1 TC_SIZE rs.w 0 TB_PROCTIME equ 0 TF_PROCTIME equ 1<<0 TB_STACKCHK equ 4 TF_STACKCHK equ 1<<4 TB_EXCEPT equ 5 TF_EXCEPT equ 1<<5 TB_SWITCH equ 6 TF_SWITCH equ 1<<6 TB_LAUNCH equ 7 TF_LAUNCH equ 1<<7 TS_INVALID EQU 0 TS_ADDED EQU TS_INVALID+1 TS_RUN EQU TS_ADDED+1 TS_READY EQU TS_RUN+1 TS_WAIT EQU TS_READY+1 TS_EXCEPT EQU TS_WAIT+1 TS_REMOVED EQU TS_EXCEPT+1 SIGF_ABORT EQU $0001 SIGF_CHILD EQU $0002 SIGF_BLIT EQU $00.]sLib equ $00008002 AO_LayersLib equ $00008003 AO_Intuition equ $00008004 AO_MathLib equ $00008005 AO_CListLib equ $00008006 AO_DOSLib equ $00008007 AO_RAMLib equ $00008008 AO_IconLib equ $00008009 AO_ExpansionLib equ $0000800A AO_AudioDev equ $00008010 AO_ConsoleDev equ $00008011 AO_GamePortDev equ $00008012 AO_KeyboardDev equ $00008013 AO_TrackDiskDev equ $00008014 AO_TimerDev equ $00008015 AO_CIARsrc equ $00008020 AO_DiskRsrc equ $00008021 AO_MiscRsrc equ $00008022 AO_BootStrap equ.~|| $00008030 AO_Workbench equ $00008031 AN_ExecLib equ $01000000 AN_ExcptVect equ $81000001 AN_BaseChkSum equ $81000002 AN_LibChkSum equ $81000003 AN_LibMem equ $81000004 AN_MemCorrupt equ $81000005 AN_IntrMem equ $81000006 AN_InitAPtr equ $81000007 AN_SemCorrupt equ $81000008 AN_FreeTwice equ $81000009 AN_BogusExcpt equ $8100000A AN_GraphicsLib equ $02000000 AN_GfxNoMem equ $82010000 AN_LongFrame equ $82010006 AN_ShortFrame equ $82010007 AN_TextTmpRas equ $02010009 AN_BltBitMap equ $8.X67d201000A AN_RegionMemory equ $8201000B AN_MakeVPort equ $82010030 AN_GfxNoLCM equ $82011234 AN_LayersLib equ $03000000 AN_LayersNoMem equ $83010000 AN_Intuition equ $04000000 AN_GadgetType equ $84000001 AN_BadGadget equ $04000001 AN_CreatePort equ $84010002 AN_ItemAlloc equ $04010003 AN_SubAlloc equ $04010004 AN_PlaneAlloc equ $84010005 AN_ItemBoxTop equ $84000006 AN_OpenScreen equ $84010007 AN_OpenScrnRast equ $84010008 AN_SysScrnType equ $84000009 AN_AddSWGadget equ $8401000A AN_Ope. nWindow equ $8401000B AN_BadState equ $8400000C AN_BadMessage equ $8400000D AN_WeirdEcho equ $8400000E AN_NoConsole equ $8400000F AN_MathLib equ $05000000 AN_CListLib equ $06000000 AN_DOSLib equ $07000000 AN_StartMem equ $07010001 AN_EndTask equ $07000002 AN_QPktFail equ $07000003 AN_AsyncPkt equ $07000004 AN_FreeVec equ $07000005 AN_DiskBlkSeq equ $07000006 AN_BitMap equ $07000007 AN_KeyFree equ $07000008 AN_BadChkSum equ $07000009 AN_DiskError equ $0700000A AN_KeyRange equ $0700000.҆-B AN_BadOverlay equ $0700000C AN_RAMLib equ $08000000 AN_BadSegList equ $08000001 AN_IconLib equ $09000000 AN_ExpansionLib equ $0A000000 AN_BadExpansionFree equ $0A000001 AN_AudioDev equ $10000000 AN_ConsoleDev equ $11000000 AN_GamePortDev equ $12000000 AN_KeyboardDev equ $13000000 AN_TrackDiskDev equ $14000000 AN_TDCalibSeek equ $14000001 AN_TDDelay equ $14000002 AN_TimerDev equ $15000000 AN_TMBadReq equ $15000001 AN_TMBadSupply equ $15000002 AN_CIARsrc equ $20000000 AN_DiskRsrc equ.#Q9 $21000000 AN_DRHasDisk equ $21000001 AN_DRIntNoAct equ $21000002 AN_MiscRsrc equ $22000000 AN_BootStrap equ $30000000 AN_BootError equ $30000001 AN_Workbench equ $31000000 AN_DiskCopy equ $32000000 ENDC N_StartMem equ $07010001 AN_EndTask equ $07000002 AN_QPktFail equ $07000003 AN_AsyncPkt equ $07000004 AN_FreeVec equ $07000005 AN_DiskBlkSeq equ $07000006 AN_BitMap equ $07000007 AN_KeyFree equ $07000008 AN_BadChkSum equ $07000009 AN_DiskError equ $0700000A AN_KeyRange equ $07000006$.MI equ 15 INTF_NMI equ 1<<15 ENDC 5 initializers.i:L._SIZE KickMemPtr rs.l 1 KickTagPtr rs.l 1 KickCheckSum rs.l 1 ExecBaseReserved rs.b 10 ExecBaseNewReserved rs.b 20 SYSBASESIZE rs.w 0 AFB_68010 equ 0 AFF_68010 equ 1<<0 AFB_68020 equ 1 AFF_68020 equ 1<<1 AFB_68881 equ 4 AFF_68881 equ 1<<4 AFB_RESERVED8 equ 8 AFF_RESERVED8 equ 1<<8 AFB_RESERVED9 equ 9 AFF_RESERVED9 equ 1<<9 ENDC IVEXTER rs.b IV_SIZE IVINTEN rs.b IV_SIZE IVNMI rs.b IV_SIZE ThisTask rs.l 1 IdleCount rs.l 1 DispCount rs.l 1 Quantum rs.w 1 Elapsed rs.w 1 SysFlags rs.w 1<>?DEF LIB_EXTFUNC rsreset LIB rs.b LN_SIZE LIB_FLAGS rs.b 1 LIB_pad rs.b 1 LIB_NEGSIZE rs.w 1 LIB_POSSIZE rs.w 1 LIB_VERSION rs.w 1 LIB_REVISION rs.w 1 LIB_IDSTRING rs.l 1 LIB_SUM rs.l 1 LIB_OPENCNT rs.w 1 LIB_SIZE rs.w 0 LIBB_SUMMING equ 0 LIBF_SUMMING equ 1<<0 LIBB_CHANGED equ 1 LIBF_CHANGED equ 1<<1 LIBB_SUMUSED equ 2 LIBF_SUMUSED equ 1<<2 LIBB_DELEXP equ 3 LIBF_DELEXP equ 1<<3 CALLLIB MACRO IFGT NARG-1 FAIL !!! ENDC JSR \1(A6) ENDM LINKLIB MACRO IFGT NARG-2 FAIL !!! ENDC :J-[/lertData rs.l 1 MaxExtMem rs.l 1 ChkSum rs.w 1 IntVects rs.w 0 IVTBE rs.b IV_SIZE IVDSKBLK rs.b IV_SIZE IVSOFTINT rs.b IV_SIZE IVPORTS rs.b IV_SIZE IVCOPER rs.b IV_SIZE IVVERTB rs.b IV_SIZE IVBLIT rs.b IV_SIZE IVAUD0 rs.b IV_SIZE IVAUD1 rs.b IV_SIZE IVAUD2 rs.b IV_SIZE IVAUD3 rs.b IV_SIZE IVRBF rs.b IV_SIZE IVDSKSYNC rs.b IV_SIZE IVEXTER rs.b IV_SIZE IVINTEN rs.b IV_SIZE IVNMI rs.b IV_SIZE ThisTask rs.l 1 IdleCount rs.l 1 DispCount rs.l 1 Quantum rs.w 1 Elapsed rs.w 1 SysFlags rs.w 1:< IDNestCnt rs.b 1 TDNestCnt rs.b 1 AttnFlags rs.w 1 AttnResched rs.w 1 ResModules rs.l 1 TaskTrapCode rs.l 1 TaskExceptCode rs.l 1 TaskExitCode rs.l 1 TaskSigAlloc rs.l 1 TaskTrapAlloc rs.w 1 MemList rs.b LH_SIZE ResourceList rs.b LH_SIZE DeviceList rs.b LH_SIZE IntrList rs.b LH_SIZE LibList rs.b LH_SIZE PortList rs.b LH_SIZE TaskReady rs.b LH_SIZE TaskWait rs.b LH_SIZE SoftInts rs.b SH_SIZE*5 LastAlert rs.b 4*4 VBlankFrequency rs.b 1 PowerSupplyFrequency rs.b 1 SemaphoreList rs.b LH=ED_RASTERS equ 1 ISLESSX equ 1 ISLESSY equ 2 ISGRTRX equ 4 ISGRTRY equ 8 IFND lr_Front lr_Front equ lr_front lr_Back equ lr_back lr_RastPort equ lr_rp cr_Prev equ cr_prev cr_LObs equ cr_lobs ENDC ENDC l 1 lr_back rs.l 1 lr_ClipRect rs.l 1 lr_rp rs.l 1 lr_MinX rs.w 1 lr_MinY rs.w 1 lr_MaxX rs.w 1 lr_MaxY rs.w 1 lr_reserved rs.b 4 lr_priority rs.w 1 lr_Flags rs.w 1 lr_SuperBitMap rs.l 1 lr_SuperClipRect rs.l 1 lr_Window rs.l 1 lr_Scroll_X rs.w 1 lr_Scroll_Y rs.w 1 lr_cr rs.l 1 lr_c_PROPORTIONAL equ 1<<5 FPB_DESIGNED equ 6 FPF_DESIGNED equ 1<<6 FPB_REMOVED equ 7 FPF_REMOVED equ 1<<7 rsreset TextAttr rs.b 0 ta_Name rs.l 1 ta_YSize rs.w 1 ta_Style rs.b 1 ta_Flags rs.b 1 ta_SIZEOF rs.w 0 rsreset TextFont rs.b MN_SIZE tf_YSize rs.w 1 tf_Style rs.b 1 tf_Flags rs.b 1 tf_XSize rs.w 1 tf_Baseline rs.w 1 tf_BoldSmear rs.w 1 tf_Accessors rs.w 1 tf_LoChar rs.b 1 tf_HiChar rs.b 1 tf_CharData rs.l 1 tf_Modulo rs.w 1 tf_CharLoc rs.l 1 tf_CharSpace rs.l 1 tf_CharKern rs.l 1-5 tf_SIZEOF rs.w 0 ENDC PHICS_TEXT_I SET 1 IFND EXEC_PORTS_I INCLUDE "exec/ports.i" ENDC FS_NORMAL EQU 0 FSB_EXTENDED equ 3 FSF_EXTENDED equ 1<<3 FSB_ITALIC equ 2 FSF_ITALIC equ 1<<2 FSB_BOLD equ 1 FSF_BOLD equ 1<<1 FSB_UNDERLINED equ 0 FSF_UNDERLINED equ 1<<0 FPB_ROMFONT equ 0 FPF_ROMFONT equ 1<<0 FPB_DISKFONT equ 1 FPF_DISKFONT equ 1<<1 FPB_REVPATH equ 2 FPF_REVPATH equ 1<<2 FPB_TALLDOT equ 3 FPF_TALLDOT equ 1<<3 FPB_WIDEDOT equ 4 FPF_WIDEDOT equ 1<<4 FPB_PROPORTIONAL equ 5 FPF̥ܲOFFSET+2 ENDM LONG MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+4 ENDM ULONG MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+4 ENDM FLOAT MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+4 ENDM APTR MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+4 ENDM CPTR MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+4 ENDM RPTR MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+2 ENDM STRUCT MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+\2 ENDM LABEL MACRO \1 EQU SOFFSET ENDM BITDEF MACRO BITDEF0 \1,\2,B_,\3 \@BITDEF SET 1<<\3 BIT]=9DEF0 \1,\2,F_,\@BITDEF ENDM BITDEF0 MACRO \1\3\2 EQU \4 ENDM LIBRARY_VERSION EQU 33 ENDC EQU 0 SOFFSET SET \2 ENDM BOOL MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+2 ENDM BYTE MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+1 ENDM UBYTE MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+1 ENDM WORD MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+2 ENDM UWORD MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+2 ENDM SHORT MACRO \1 EQU SOFFSET SOFFSET SET SOFFSET+2 ENDM USHORT MACRO \1 EQU SOFFSET SOFFSET SET S&+LN_PRED(\1),\1 ENDC ENDM SUCC MACRO MOVE.L (\1),\2 ENDM PRED MACRO MOVE.L LN_PRED(\1),\2 ENDM IFEMPTY MACRO CMP.L LH_TAIL+LN_PRED(\1),\1 BEQ \2 ENDM IFNOTEMPTY MACRO CMP.L LH_TAIL+LN_PRED(\1),\1 BNE \2 ENDM TSTNODE MACRO MOVE.L (\1),\2 TST.L (\2) ENDM NEXTNODE MACRO MOVE.L \1,\2 MOVE.L (\2),\1 IFC '\0','' BEQ \3 ENDC IFNC '\0','' BEQ.S \3 ENDC ENDM ADDHEAD MACRO MOVE.L (A0),D0 MOVE.L A1,(A0) MOVEM.L D0/A0,(A1) MOVE.L D0,A0 MOVE.L A1,LN_PRED(A0) ENDM ADD& TAIL MACRO LEA LH_TAIL(A0),A0 MOVE.L LN_PRED(A0),D0 MOVE.L A1,LN_PRED(A0) MOVE.L A0,(A1) MOVE.L D0,LN_PRED(A1) MOVE.L D0,A0 MOVE.L A1,(A0) ENDM REMOVE MACRO MOVE.L (A1),A0 MOVE.L LN_PRED(A1),A1 MOVE.L A0,(A1) MOVE.L A1,LN_PRED(A0) ENDM REMHEAD MACRO MOVE.L (A0),A1 MOVE.L (A1),D0 BEQ.S REMHEAD\@ MOVE.L D0,(A0) EXG.L D0,A1 MOVE.L A0,LN_PRED(A1) REMHEAD\@ ENDM REMHEADQ MACRO MOVE.L (\1),\2 MOVE.L (\2),\3 MOVE.L \3,(\1) MOVE.L \1,LN_PRED(\3) ENDM REMTAIL MACRO M"e|B #1,IDNestCnt(\1) BGE.S ENABLE\@ MOVE.W #$0C000,_intena ENABLE\@: ENDC ENDM TASK_ABLES MACRO XREF _LVOPermit ENDM FORBID MACRO IFC '\1','' ADDQ.B #1,TDNestCnt(A6) ENDC IFNC '\1','' MOVE.L 4,\1 ADDQ.B #1,TDNestCnt(\1) ENDC ENDM PERMIT MACRO IFC '\1','' JSR _LVOPermit(A6) ENDC IFNC '\1','' MOVE.L A6,-(SP) MOVE.L 4,A6 JSR _LVOPermit(A6) MOVE.L (SP)+,A6 ENDC ENDM ENDC CODERS PACK V1.5  &OVE.L LH_TAIL+LN_PRED(A0),A1 MOVE.L LN_PRED(A1),D0 BEQ.S REMTAIL\@ MOVE.L D0,LH_TAIL+LN_PRED(A0) EXG.L D0,A1 MOVE.L A0,(A1) ADDQ.L #4,(A1) REMTAIL\@ ENDM ENDC Y MACRO CMP.L LH_TAIL+LN_PRED(\1),\1 BNE \2 ENDM TSTNODE MACRO MOVE.L (\1),\2 TST.L (\2) ENDM NEXTNODE MACRO MOVE.L \1,\2 MOVE.L (\2),\1 IFC '\0','' BEQ \3 ENDC IFNC '\0','' BEQ.S \3 ENDC ENDM ADDHEAD MACRO MOVE.L (A0),D0 MOVE.L A1,(A0) MOVEM.L D0/A0,(A1) MOVE.L D0,A0 MOVE.L A1,LN_PRED(A0) ENDM ADD* Q5 15 ENDC xzvqrt CODERS PACK V1.5  ,IO MACRO LINKLIB DEV_ABORTIO,IO_DEVICE(A1) ENDM DEVINIT MACRO IFC '\1','' CMD_COUNT SET CMD_NONSTD ENDC IFNC '\1','' CMD_COUNT SET \1 ENDC ENDM DEVCMD MACRO \1 EQU CMD_COUNT CMD_COUNT SET CMD_COUNT+1 ENDM DEVINIT 0 DEVCMD CMD_INVALID DEVCMD CMD_RESET DEVCMD CMD_READ DEVCMD CMD_WRITE DEVCMD CMD_UPDATE DEVCMD CMD_CLEAR DEVCMD CMD_STOP DEVCMD CMD_START DEVCMD CMD_FLUSH DEVCMD CMD_NONSTD ENDC s.ii)Region EQU -522 _LVOClearRegion EQU -528 _LVODisposeRegion EQU -534 _LVOFreeVPortCopLists EQU -540 _LVOFreeCopList EQU -546 _LVOClipBlit EQU -552 _LVOXorRectRegion EQU -558 _LVOFreeCprList EQU -564 _LVOGetColorMap EQU -570 _LVOFreeColorMap EQU -576 _LVOGetRGB4 EQU -582 _LVOScrollVPort EQU -588 _LVOUCopperListInit EQU -594 _LVOFreeGBuffers EQU -600 _LVOBltBitMapRastPort EQU -606 _LVOOrRegionRegion EQU -612 _LVOXorRegionRegion EQU -618 _LVOAndRegionRegion EQU -624 _LV,sOSetRGB4CM EQU -630 _LVOBltMaskBitMapRastPort EQU -636 _LVOGraphicsReserved1 EQU -642 _LVOGraphicsReserved2 EQU -648 _LVOAttemptLockLayerRom EQU -654 CALLGRAF MACRO move.l _GfxBase,a6 jsr _LVO\1(a6) ENDM GRAFNAME MACRO dc.b 'graphics.library',0 ENDM tTmpRas EQU -468 _LVOAskFont EQU -474 _LVOAddFont EQU -480 _LVORemFont EQU -486 _LVOAllocRaster EQU -492 _LVOFreeRaster EQU -498 _LVOAndRectRegion EQU -504 _LVOOrRectRegion EQU -510 _LVONewRegion EQU -516 _LVOClearRectDHS1 li_FreeClipRects rs.b MLH_SIZE li_Lock rs.b SS_SIZE li_gs_Head rs.b LH_SIZE li_long_reserved rs.l 1 li_Flags rs.w 1 li_fatten_count rs.b 1 li_LockLayersCount rs.b 1 li_LayerInfo_extra_size rs.w 1 li_blitbuff rs.l 1 li_LayerInfo_extra rs.l 1 li_SIZEOF rs.w 0 NEWLAYERINFO_CALLED equ 1 ALERTLAYERSNOMEM equ $83010000 ENDC CODERS PACK V1.5  9 equ 0 RPF_FRST_DOT equ 1<<0 RPB_ONE_DOT equ 1 RPF_ONE_DOT equ 1<<1 RPB_DBUFFER equ 2 RPF_DBUFFER equ 1<<2 RPB_AREAOUTLINE equ 3 RPF_AREAOUTLINE equ 1<<3 RPB_NOCROSSFILL equ 5 RPF_NOCROSSFILL equ 1<<5 RP_JAM1 EQU 0 RP_JAM2 EQU 1 RP_COMPLEMENT EQU 2 RP_INVERSVID EQU 4 RPB_TXSCALE equ 0 RPF_TXSCALE equ 1<<0 rsreset RastPort rs.b 0 rp_Layer rs.l 1 rp_BitMap rs.l 1 rp_AreaPtrn rs.l 1 rp_TmpRas rs.l 1 rp_AreaInfo rs.l 1 rp_GelsInfo rs.l 1 rp_Mask rs.b 1 rp_FgPen rs.b 1 rp_BgPen rs.b 1 rposE_AOLPen rs.b 1 rp_DrawMode rs.b 1 rp_AreaPtSz rs.b 1 rp_Dummy rs.b 1 rp_linpatcnt rs.b 1 rp_Flags rs.w 1 rp_LinePtrn rs.w 1 rp_cp_x rs.w 1 rp_cp_y rs.w 1 rp_minterms rs.b 8 rp_PenWidth rs.w 1 rp_PenHeight rs.w 1 rp_Font rs.l 1 rp_AlgoStyle rs.b 1 rp_TxFlags rs.b 1 rp_TxHeight rs.w 1 rp_TxWidth rs.w 1 rp_TxBaseline rs.w 1 rp_TxSpacing rs.w 1 rp_RP_User rs.l 1 rp_longreserved rs.b 8 IFND GFX_RASTPORT_1_2 rp_wordreserved rs.b 14 rp_reserved rs.b 8 endc rp_SIZEOF rs.w 0 rsreset AreaInNv2fo rs.b 0 ai_VctrTbl rs.l 1 ai_VctrPtr rs.l 1 ai_FlagTbl rs.l 1 ai_FlagPtr rs.l 1 ai_Count rs.w 1 ai_MaxCount rs.w 1 ai_FirstX rs.w 1 ai_FirstY rs.w 1 ai_SIZEOF rs.w 0 ONE_DOTn equ 1 ONE_DOT equ $2 FRST_DOTn equ 0 FRST_DOT equ 1 ENDC LEMENT EQU 2 RP_INVERSVID EQU 4 RPB_TXSCALE equ 0 RPF_TXSCALE equ 1<<0 rsreset RastPort rs.b 0 rp_Layer rs.l 1 rp_BitMap rs.l 1 rp_AreaPtrn rs.l 1 rp_TmpRas rs.l 1 rp_AreaInfo rs.l 1 rp_GelsInfo rs.l 1 rp_Mask rs.b 1 rp_FgPen rs.b 1 rp_BgPen rs.b 1 rp 'C(erInfo EQU -138 _LVONewLayerInfo EQU -144 _LVODisposeLayerInfo EQU -150 _LVOFattenLayerInfo EQU -156 _LVOThinLayerInfo EQU -162 _LVOMoveLayerInFrontOf EQU -168 _LVOInstallClipRegion EQU -174 rt CODERS PACK V1.5   Lqrs.l 1 vp_UCopIns rs.l 1 vp_DWidth rs.w 1 vp_DHeight rs.w 1 vp_DxOffset rs.w 1 vp_DyOffset rs.w 1 vp_Modes rs.w 1 vp_reserved rs.w 1 vp_RasInfo rs.l 1 vp_SIZEOF rs.w 0 rsreset View rs.b 0 v_ViewPort rs.l 1 v_LOFCprList rs.l 1 v_SHFCprList rs.l 1 v_DyOffset rs.w 1 v_DxOffset rs.w 1 v_Modes rs.w 1 v_SIZEOF rs.w 0 rsreset collTable rs.b 0 cp_collPtrs rs.l 1 cp_SIZEOF rs.w 0 rsreset RasInfo rs.b 0 ri_Next rs.l 1 ri_BitMap rs.l 1 ri_RxOffset rs.w 1 ri_RyOffset rs.w 1 ri_SIZEOF rs.w 0   ENDC GRAPHICS_VIEW_I GRAPHICS_VIEW_I SET 1 IFND GRAPHICS_GFX_I INCLUDE 'graphics/gfx.i' ENDC IFND GRAPHICS_COPPER_I INCLUDE 'graphics/copper.i' ENDC V_PFBA EQU $40 V_DUALPF EQU $400 V_HIRES EQU $8000 V_LACE EQU 4 V_HAM EQU $800 V_SPRITES EQU $4000 GENLOCK_VIDEO EQU 2 rsreset ColorMap rs.b 0 cm_Flags rs.b 1 cm_Type rs.b 1 cm_Count rs.w 1 cm_ColorTable rs.l 1 cm_SIZEOF rs.w 0 rsreset ViewPort rs.b 0 vp_Next rs.l 1 vp_ColorMap rs.l 1 vp_DspIns rs.l 1 vp_SprIns rs.l 1 vp_ClrIns rlEpPtr rs.l 1 cl_CopLStart rs.l 1 cl_CopSStart rs.l 1 cl_Count rs.w 1 cl_MaxCount rs.w 1 cl_DyOffset rs.w 1 cl_SIZEOF rs.w 0 rsreset UCopList rs.b 0 ucl_Next rs.l 1 ucl_FirstCopList rs.l 1 ucl_CopList rs.l 1 ucl_SIZEOF rs.w 0 rsreset copinit rs.b 0 copinit_diagstrt rs.b 8 copinit_sprstrtup rs.b 2*((2*8*2)+2+(2*2)+2) copinit_sprstop rs.b 4 copinit_SIZEOF rs.w 0 ENDC CODERS PACK V1.5  ,cTr2 rs.l 1 lr_crnew rs.l 1 lr_SuperSaverClipRects rs.l 1 lr__cliprects rs.l 1 lr_LayerInfo rs.l 1 lr_Lock rs.b SS_SIZE lr_reserved3 rs.b 8 lr_ClipRegion rs.l 1 lr_saveClipRects rs.l 1 lr_reserved2 rs.b 22 lr_DamageList rs.l 1 lr_SIZEOF rs.w 0 rsreset ClipRect rs.b 0 cr_Next rs.l 1 cr_prev rs.l 1 cr_lobs rs.l 1 cr_BitMap rs.l 1 cr_MinX rs.w 1 cr_MinY rs.w 1 cr_MaxX rs.w 1 cr_MaxY rs.w 1 cr__p1 rs.l 1 cr__p2 rs.l 1 cr_reserved rs.l 1 cr_Flags rs.l 1 cr_SIZEOF rs.w 0 CR_NEEDS_NO_CONCEAL7ԣa CIACRAF_OUTMODE EQU (1<<2) CIACRAF_RUNMODE EQU (1<<3) CIACRAF_LOAD EQU (1<<4) CIACRAF_INMODE EQU (1<<5) CIACRAF_SPMODE EQU (1<<6) CIACRAF_TODIN EQU (1<<7) CIACRBF_START EQU (1<<0) CIACRBF_PBON EQU (1<<1) CIACRBF_OUTMODE EQU (1<<2) CIACRBF_RUNMODE EQU (1<<3) CIACRBF_LOAD EQU (1<<4) CIACRBF_INMODE0 EQU (1<<5) CIACRBF_INMODE1 EQU (1<<6) CIACRBF_ALARM EQU (1<<7) CIACRBF_IN_PHI2 EQU 0 CIACRBF_IN_CNT EQU (CIACRBF_INMODE0) CIACRBF_IN_TA EQU (CIACRBF_INMODE1) CIACRBF_IN_CNT_TA EQU (CIACRBF_uINMODE0!CIACRBF_INMODE1) CIAB_GAMEPORT1 EQU (7) CIAB_GAMEPORT0 EQU (6) CIAB_DSKRDY EQU (5) CIAB_DSKTRACK0 EQU (4) CIAB_DSKPROT EQU (3) CIAB_DSKCHANGE EQU (2) CIAB_LED EQU (1) CIAB_OVERLAY EQU (0) CIAB_COMDTR EQU (7) CIAB_COMRTS EQU (6) CIAB_COMCD EQU (5) CIAB_COMCTS EQU (4) CIAB_COMDSR EQU (3) CIAB_PRTRSEL EQU (2) CIAB_PRTRPOUT EQU (1) CIAB_PRTRBUSY EQU (0) CIAB_DSKMOTOR EQU (7) CIAB_DSKSEL3 EQU (6) CIAB_DSKSEL2 EQU (5) CIAB_DSKSEL1 EQU (4) CIAB_DSKSEL0 EQU (3) CIAB_DSKSIDE EQU (2) CnIAB_DSKDIREC EQU (1) CIAB_DSKSTEP EQU (0) CIAF_GAMEPORT1 EQU (1<<7) CIAF_GAMEPORT0 EQU (1<<6) CIAF_DSKRDY EQU (1<<5) CIAF_DSKTRACK0 EQU (1<<4) CIAF_DSKPROT EQU (1<<3) CIAF_DSKCHANGE EQU (1<<2) CIAF_LED EQU (1<<1) CIAF_OVERLAY EQU (1<<0) CIAF_COMDTR EQU (1<<7) CIAF_COMRTS EQU (1<<6) CIAF_COMCD EQU (1<<5) CIAF_COMCTS EQU (1<<4) CIAF_COMDSR EQU (1<<3) CIAF_PRTRSEL EQU (1<<2) CIAF_PRTRPOUT EQU (1<<1) CIAF_PRTRBUSY EQU (1<<0) CIAF_DSKMOTOR EQU (1<<7) CIAF_DSKSEL3 EQU (1<<6) CIAF_DSKSEL2 E>TPQU (1<<5) CIAF_DSKSEL1 EQU (1<<4) CIAF_DSKSEL0 EQU (1<<3) CIAF_DSKSIDE EQU (1<<2) CIAF_DSKDIREC EQU (1<<1) CIAF_DSKSTEP EQU (1<<0) ENDC B_DSKCHANGE EQU (2) CIAB_LED EQU (1) CIAB_OVERLAY EQU (0) CIAB_COMDTR EQU (7) CIAB_COMRTS EQU (6) CIAB_COMCD EQU (5) CIAB_COMCTS EQU (4) CIAB_COMDSR EQU (3) CIAB_PRTRSEL EQU (2) CIAB_PRTRPOUT EQU (1) CIAB_PRTRBUSY EQU (0) CIAB_DSKMOTOR EQU (7) CIAB_DSKSEL3 EQU (6) CIAB_DSKSEL2 EQU (5) CIAB_DSKSEL1 EQU (4) CIAB_DSKSEL0 EQU (3) CIAB_DSKSIDE EQU (2) C-s.l 1 DR_FLAGS rs.b 1 DR_pad rs.b 1 DR_SYSLIB rs.l 1 DR_CIARESOURCE rs.l 1 DR_UNITID rs.b 4*4 DR_WAITING rs.b LH_SIZE DR_DISCBLOCK rs.b IS_SIZE DR_DISCSYNC rs.b IS_SIZE DR_INDEX rs.b IS_SIZE DR_SIZE rs.w 0 DRB_ALLOC0 equ 0 DRF_ALLOC0 equ 1<<0 DRB_ALLOC1 equ 1 DRF_ALLOC1 equ 1<<1 DRB_ALLOC2 equ 2 DRF_ALLOC2 equ 1<<2 DRB_ALLOC3 equ 3 DRF_ALLOC3 equ 1<<3 DRB_ACTIVE equ 7 DRF_ACTIVE equ 1<<7 DSKDMAOFF EQU $4000 DISKNAME: MACRO DC.B 'disk.resource',0 DS.W 0 ENDM LIBINIT LIB_BASE LIBDEF DR_ALLOCUNIT LIBDEF DR_FREEUNIT LIBDEF DR_GETUNIT LIBDEF DR_GIVEUNIT LIBDEF DR_GETUNITID DR_LASTCOMM EQU DR_GIVEUNIT DRT_AMIGA EQU $00000000 DRT_37422D2S EQU $55555555 DRT_EMPTY EQU $FFFFFFFF ENDC TERRUPTS_I INCLUDE "exec/interrupts.i" ENDC IFND EXEC_LIBRARIES_I INCLUDE "exec/libraries.i" ENDC rsreset DISCRESOURCEUNIT rs.b MN_SIZE DRU_DISCBLOCK rs.b IS_SIZE DRU_DISCSYNC rs.b IS_SIZE DRU_INDEX rs.b IS_SIZE DRU_SIZE rs.w 0 rsreset DISCRESOURCE rs.b LIB_SIZE DR_CURRENT rD -150 _LVOAddAnimOb EQU -156 _LVOAnimate EQU -162 _LVOGetGBuffers EQU -168 _LVOInitGMasks EQU -174 _LVODrawEllipse EQU -180 _LVOAreaEllipse EQU -186 _LVOLoadRGB4 EQU -192 _LVOInitRastPort EQU -198 _LVOInitVPort EQU -204 _LVOMrgCop EQU -210 _LVOMakeVPort EQU -216 _LVOLoadView EQU -222 _LVOWaitBlit EQU -228 _LVOSetRast EQU -234 _LVOMove EQU -240 _LVODraw EQU -246 _LVOAreaMove EQU -252 _LVOAreaDraw EQU -258 _LVOAreaEnd EQU -264 _LVOWaitTOF EQU -270 _LVOQBlit EQU -27lw6 _LVOInitArea EQU -282 _LVOSetRGB4 EQU -288 _LVOQBSBlit EQU -294 _LVOBltClear EQU -300 _LVORectFill EQU -306 _LVOBltPattern EQU -312 _LVOReadPixel EQU -318 _LVOWritePixel EQU -324 _LVOFlood EQU -330 _LVOPolyDraw EQU -336 _LVOSetAPen EQU -342 _LVOSetBPen EQU -348 _LVOSetDrMd EQU -354 _LVOInitView EQU -360 _LVOCBump EQU -366 _LVOCMove EQU -372 _LVOCWait EQU -378 _LVOVBeamPos EQU -384 _LVOInitBitMap EQU -390 _LVOScrollRaster EQU -396 _LVOWaitBOVP EQU -402 _LVOGetSbprite EQU -408 _LVOFreeSprite EQU -414 _LVOChangeSprite EQU -420 _LVOMoveSprite EQU -426 _LVOLockLayerRom EQU -432 _LVOUnlockLayerRom EQU -438 _LVOSyncSBitMap EQU -444 _LVOCopySBitMap EQU -450 _LVOOwnBlitter EQU -456 _LVODisownBlitter EQU -462 _LVOInitTmpRas EQU -468 _LVOAskFont EQU -474 _LVOAddFont EQU -480 _LVORemFont EQU -486 _LVOAllocRaster EQU -492 _LVOFreeRaster EQU -498 _LVOAndRectRegion EQU -504 _LVOOrRectRegion EQU -510 _LVONewRegion EQU -516 _LVOClearRectIY's strequ EQU $038 strvbl EQU $03A strhor EQU $03C strlong EQU $03E bltcon0 EQU $040 bltcon1 EQU $042 bltafwm EQU $044 bltalwm EQU $046 bltcpt EQU $048 bltbpt EQU $04C bltapt EQU $050 bltdpt EQU $054 bltsize EQU $058 bltcmod EQU $060 bltbmod EQU $062 bltamod EQU $064 bltdmod EQU $066 bltcdat EQU $070 bltbdat EQU $072 bltadat EQU $074 dsksync EQU $07E cop1lc EQU $080 cop2lc EQU $084 copjmp1 EQU $088 copjmp2 EQU $08A copins EQU $08C diwstrt EQU $08E diwstop EQU $090 ddfstrt EQU $092 ddfs _top EQU $094 dmacon EQU $096 clxcon EQU $098 intena EQU $09A intreq EQU $09C adkcon EQU $09E aud EQU $0A0 aud0 EQU $0A0 aud1 EQU $0B0 aud2 EQU $0C0 aud3 EQU $0D0 ac_ptr EQU $00 ac_len EQU $04 ac_per EQU $06 ac_vol EQU $08 ac_dat EQU $0A ac_SIZEOF EQU $10 bplpt EQU $0E0 bplcon0 EQU $100 bplcon1 EQU $102 bplcon2 EQU $104 bpl1mod EQU $108 bpl2mod EQU $10A bpldat EQU $110 sprpt EQU $120 spr EQU $140 sd_pos EQU $00 sd_ctl EQU $02 sd_dataa EQU $04 sd_datab EQU $08 color EQU $180 ENDC 036Y_CP rs.w 1 cu_KeyMapStruct rs.b km_SIZEOF cu_TabStops rs.b 2*MAXTABS cu_Mask rs.b 1 cu_FgPen rs.b 1 cu_BgPen rs.b 1 cu_AOLPen rs.b 1 cu_DrawMode rs.b 1 cu_AreaPtSz rs.b 1 cu_AreaPtrn rs.l 1 cu_Minterms rs.b 8 cu_Font rs.l 1 cu_AlgoStyle rs.b 1 cu_TxFlags rs.b 1 cu_TxHeight rs.w 1 cu_TxWidth rs.w 1 cu_TxBaseline rs.w 1 cu_TxSpacing rs.w 1 cu_Modes rs.b <(PMB_AWM+7)/8> cu_RawEvents rs.b <(IECLASS_MAX+7)/8> ODDEVEN EQU ((PMB_AWM+7)/8)+((IECLASS_MAX+7)/8) IFNE ODDEVEN-((ODDEVEN/2)*2) cu_.~pad rs.b 1 ENDC ConUnit_SIZEOF rs.w 0 ENDC 1 IFND EXEC_PORTS_I INCLUDE "exec/ports.i" ENDC IFND DEVICES_KEYMAP_I INCLUDE "devices/keymap.i" ENDC PMB_ASM EQU M_LNM+1 PMB_AWM EQU PMB_ASM+1 MAXTABS EQU 80 rsreset ConUnit rs.b MP_SIZE cu_Window rs.l 1 cu_XCP rs.w 1 cu_YCP rs.w 1 cu_XMax rs.w 1 cu_YMax rs.w 1 cu_XRSize rs.w 1 cu_YRSize rs.w 1 cu_XROrigin rs.w 1 cu_YROrigin rs.w 1 cu_XRExtant rs.w 1 cu_YRExtant rs.w 1 cu_XMinShrink rs.w 1 cu_YMinShrink rs.w 1 cu_XCCP rs.w 1 cu_YC+ < * the 'Hello World' program in 68000 Assembler * the C version is on page 2-10 of the Intuition manual * this source code (C) HiSoft 1987 All Rights Reserved * for Devpac Amiga Version 2 the following symbols were changed * to avoid clashes with the new include files: * Screen->MyScreen, NewScreen->MyNewScreen * Window->MyWindow, NewWindow->MyNewWindow opt c+,d+ incdir ":include/" include exec/exec_lib.i include intuition/intuition.i include intuition/intuition_lib.i inclD0Vude graphics/graphics_lib.i include graphics/text.i INTUITION_REV equ 31 v1.1 GRAPHICS_REV equ 31 v1.1 * Open the intuition library moveq #100,d4 default error return code moveq #INTUITION_REV,d0 version lea int_name(pc),a1 CALLEXEC OpenLibrary tst.l d0 beq exit_false if failed then quit move.l d0,_IntuitionBase else save the pointer moveq #GRAPHICS_REV,d0 lea graf_name(pc),a1 CALLEXEC OpenLibrary tst.l d0 beq exit_closeint if failed then close Int, exit movehi.l d0,_GfxBase lea MyNewScreen(pc),a0 CALLINT OpenScreen open a screen tst.l d0 beq exit_closeall if failed the close both, exit move.l d0,MyScreen * now initialise a NewWindow structure. This is normally easier to * do with dc.w/dc.l statement etc, but for comparison with the C * version we do it like this lea MyNewWindow(pc),a0 good place to start move.w #20,nw_LeftEdge(a0) move.w #20,nw_TopEdge(a0) move.w #300,nw_Width(a0) move.w #100,nw_Height(a0) move.b #0,nw_Deta{ * we were called from the CLI movem.l (sp)+,d0/a0 restore regs bra end_startup and run the user prog * we were called from the Workbench fromWorkbench lea pr_MsgPort(a4),a0 CALLEXEC WaitPort wait for a message lea pr_MsgPort(a4),a0 CALLEXEC GetMsg then get it move.l d0,returnMsg save it for later reply * do some other stuff here RSN like the command line etc nop movem.l (sp)+,d0/a0 restore end_startup bsr.s _main call our program * returns to here with exit com+de in d0 move.l d0,-(sp) save it tst.l returnMsg beq.s exitToDOS if I was a CLI CALLEXEC Forbid move.l returnMsg(pc),a1 CALLEXEC ReplyMsg exitToDOS move.l (sp)+,d0 exit code rts * startup code variable returnMsg dc.l 0 * the program starts here even _main ARIES_DOSEXTENS_I include "libraries/dosextens.i ENDC movem.l d0/a0,-(sp) save initial values clr.l returnMsg sub.l a1,a1 CALLEXEC FindTask find us move.l d0,a4 tst.l pr_CLI(a4) beq.s fromWorkbench U 4 DMAB_SPRITE EQU 5 DMAB_BLITTER EQU 6 DMAB_COPPER EQU 7 DMAB_RASTER EQU 8 DMAB_MASTER EQU 9 DMAB_BLITHOG EQU 10 DMAB_BLTDONE EQU 14 DMAB_BLTNZERO EQU 13 ENDC rt CODERS PACK V1.5  `1<<10) INTF_AUD2 EQU (1<<9) INTF_AUD1 EQU (1<<8) INTF_AUD0 EQU (1<<7) INTF_BLIT EQU (1<<6) INTF_VERTB EQU (1<<5) INTF_COPER EQU (1<<4) INTF_PORTS EQU (1<<3) INTF_SOFTINT EQU (1<<2) INTF_DSKBLK EQU (1<<1) INTF_TBE EQU (1<<0) ENDC t CODERS PACK V1.5  ^ODE EQU 2 CIACRAB_RUNMODE EQU 3 CIACRAB_LOAD EQU 4 CIACRAB_INMODE EQU 5 CIACRAB_SPMODE EQU 6 CIACRAB_TODIN EQU 7 CIACRBB_START EQU 0 CIACRBB_PBON EQU 1 CIACRBB_OUTMODE EQU 2 CIACRBB_RUNMODE EQU 3 CIACRBB_LOAD EQU 4 CIACRBB_INMODE0 EQU 5 CIACRBB_INMODE1 EQU 6 CIACRBB_ALARM EQU 7 CIAICRF_TA EQU (1<<0) CIAICRF_TB EQU (1<<1) CIAICRF_ALRM EQU (1<<2) CIAICRF_SP EQU (1<<3) CIAICRF_FLG EQU (1<<4) CIAICRF_IR EQU (1<<7) CIAICRF_SETCLR EQU (1<<7) CIACRAF_START EQU (1<<0) CIACRAF_PBON EQU (1<<1),UYNNC EQU (1<<10) ADKF_MSBSYNC EQU (1<<9) ADKF_FAST EQU (1<<8) ADKF_USE3PN EQU (1<<7) ADKF_USE2P3 EQU (1<<6) ADKF_USE1P2 EQU (1<<5) ADKF_USE0P1 EQU (1<<4) ADKF_USE3VN EQU (1<<3) ADKF_USE2V3 EQU (1<<2) ADKF_USE1V2 EQU (1<<1) ADKF_USE0V1 EQU (1<<0) ADKF_PRE000NS EQU 0 ADKF_PRE140NS EQU (ADKF_PRECOMP0) ADKF_PRE280NS EQU (ADKF_PRECOMP1) ADKF_PRE560NS EQU (ADKF_PRECOMP0!ADKF_PRECOMP1) ENDC CODERS PACK V1.5  nz1 IOSTF_WROTEBREAK equ 1<<1 IOSTB_OVERRUN equ 0 IOSTF_OVERRUN equ 1<<0 SEXTB_MSPON equ 1 SEXTF_MSPON equ 1<<1 SEXTB_MARK equ 0 SEXTF_MARK equ 1<<0 rsreset TERMARRAY rs.b 0 TERMARRAY_0 rs.l 1 TERMARRAY_1 rs.l 1 TERMARRAY_SIZE rs.w 0 rsreset IOEXTSER rs.b IOSTD_SIZE IO_CTLCHAR rs.l 1 IO_RBUFLEN rs.l 1 IO_EXTFLAGS rs.l 1 IO_BAUD rs.l 1 IO_BRKTIME rs.l 1 IO_TERMARRAY rs.b TERMARRAY_SIZE IO_READLEN rs.b 1 IO_WRITELEN rs.b 1 IO_STOPBITS rs.b 1 IO_SERFLAGS rs.b 1 IO_STATUS rs.w 1 IOEXTSERep_SIZE rs.w 0 SerErr_DevBusy EQU 1 SerErr_BaudMismatch EQU 2 SerErr_InvBaud EQU 3 SerErr_BufErr EQU 4 SerErr_InvParam EQU 5 SerErr_LineErr EQU 6 SerErr_NotOpen EQU 7 SerErr_PortReset EQU 8 SerErr_ParityErr EQU 9 SerErr_InitErr EQU 10 SerErr_TimerErr EQU 11 SerErr_BufOverflow EQU 12 SerErr_NoDSR EQU 13 SerErr_NoCTS EQU 14 SerErr_DetectedBreak EQU 15 ENDC FFREAD equ 1<<4 IOSTB_XOFFWRITE equ 3 IOSTF_XOFFWRITE equ 1<<3 IOSTB_READBREAK equ 2 IOSTF_READBREAK equ 1<<2 IOSTB_WROTEBREAK equ AaYSTICK EQU 2 GPCT_ABSJOYSTICK EQU 3 GPDERR_SETCTYPE EQU 1 ENDC  serial.iU}AEQU 14 aSHORP2 EQU 15 aSHORP1 EQU 16 aSHORP4 EQU 17 aSHORP3 EQU 18 aSHORP6 EQU 19 aSHORP5 EQU 20 aDEN6 EQU 21 aDEN5 EQU 22 aDEN4 EQU 23 aDEN3 EQU 24 aDEN2 EQU 25 aDEN1 EQU 26 aSUS2 EQU 27 aSUS1 EQU 28 aSUS4 EQU 29 aSUS3 EQU 30 aSUS0 EQU 31 aPLU EQU 32 aPLD EQU 33 aFNT0 EQU 34 aFNT1 EQU 35 aFNT2 EQU 36 aFNT3 EQU 37 aFNT4 EQU 38 aFNT5 EQU 39 aFNT6 EQU 40 aFNT7 EQU 41 aFNT8 EQU 42 aFNT9 EQU 43 aFNT10 EQU 44 aPROP2 EQU 45 aPROP1 EQU 46 aPROP0 EQU 47 aTSS EQU 48 aJFY5 EQU 49 aJFY7 EQU 50  2qeaJFY6 EQU 51 aJFY0 EQU 52 aJFY2 EQU 53 aJFY3 EQU 54 aVERP0 EQU 55 aVERP1 EQU 56 aSLPP EQU 57 aPERF EQU 58 aPERF0 EQU 59 aLMS EQU 60 aRMS EQU 61 aTMS EQU 62 aBMS EQU 63 aSTBM EQU 64 aSLRM EQU 65 aCAM EQU 66 aHTS EQU 67 aVTS EQU 68 aTBC0 EQU 69 aTBC3 EQU 70 aTBC1 EQU 71 aTBC4 EQU 72 aTBCALL EQU 73 aTBSALL EQU 74 aEXTEND EQU 75 rsreset IOPrtCmdReq rs.b IO_SIZE io_PrtCommand rs.w 1 io_Parm0 rs.b 1 io_Parm1 rs.b 1 io_Parm2 rs.b 1 io_Parm3 rs.b 1 iopcr_SIZEOF rs.w 0 rsreset IODRPReq rs.b IO_SIZE io_RastPort rs.l 1 io_ColorMap rs.l 1 io_Modes rs.l 1 io_SrcX rs.w 1 io_SrcY rs.w 1 io_SrcWidth rs.w 1 io_SrcHeight rs.w 1 io_DestCols rs.l 1 io_DestRows rs.l 1 io_Special rs.w 1 iodrpr_SIZEOF rs.w 0 SPECIAL_MILCOLS EQU $01 SPECIAL_MILROWS EQU $02 SPECIAL_FULLCOLS EQU $04 SPECIAL_FULLROWS EQU $08 SPECIAL_FRACCOLS EQU $10 SPECIAL_FRACROWS EQU $20 SPECIAL_ASPECT EQU $80 SPECIAL_DENSITYMASK EQU $F00 SPECIAL_DENSITY1 EQU $100 SPECIAL_DENSITY2 EQU $200 SPECIAL_DENSITY3 EQU $300 S5PECIAL_DENSITY4 EQU $400 SPECIAL_CENTER EQU $40 PDERR_CANCEL EQU 1 PDERR_NOTGRAPHICS EQU 2 PDERR_INVERTHAM EQU 3 PDERR_BADDIMENSION EQU 4 PDERR_DIMENSIONOVFLOW EQU 5 PDERR_INTERNALMEMORY EQU 6 PDERR_BUFFERMEMORY EQU 7 ENDC U 68 aTBC0 EQU 69 aTBC3 EQU 70 aTBC1 EQU 71 aTBC4 EQU 72 aTBCALL EQU 73 aTBSALL EQU 74 aEXTEND EQU 75 rsreset IOPrtCmdReq rs.b IO_SIZE io_PrtCommand rs.w 1 io_Parm0 rs.b 1 io_Parm1 rs.b 1 io_Parm2 rs.b 1 io_Parm3 rs.b 1 iopcr_SIZEOF rs.w 0 rsreset IODRPReq rs.b $G EQU 42 SGR_YELLOWBG EQU 43 SGR_BLUEBG EQU 44 SGR_MAGENTABG EQU 45 SGR_CYANBG EQU 46 SGR_WHITEBG EQU 47 SGR_DEFAULTBG EQU 49 SGR_CLR0 EQU 30 SGR_CLR1 EQU 31 SGR_CLR2 EQU 32 SGR_CLR3 EQU 33 SGR_CLR4 EQU 34 SGR_CLR5 EQU 35 SGR_CLR6 EQU 36 SGR_CLR7 EQU 37 SGR_CLR0BG EQU 40 SGR_CLR1BG EQU 41 SGR_CLR2BG EQU 42 SGR_CLR3BG EQU 43 SGR_CLR4BG EQU 44 SGR_CLR5BG EQU 45 SGR_CLR6BG EQU 46 SGR_CLR7BG EQU 47 DSR_CPR EQU 6 CTC_HSETTAB EQU 0 CTC_HCLRTAB EQU 2 CTC_HCLRTABSALL EQU 5 TBC_HCLRTAB EQU 0 dCdTBC_HCLRTABSALL EQU 3 M_LNM EQU 20 M_ASM MACRO DC.B '>1' ENDM M_AWM MACRO DC.B '?7' ENDM ENDC DEVCMD CD_ASKKEYMAP DEVCMD CD_SETKEYMAP DEVCMD CD_ASKDEFAULTKEYMAP DEVCMD CD_SETDEFAULTKEYMAP SGR_PRIMARY EQU 0 SGR_BOLD EQU 1 SGR_ITALIC EQU 3 SGR_UNDERSCORE EQU 4 SGR_NEGATIVE EQU 7 SGR_BLACK EQU 30 SGR_RED EQU 31 SGR_GREEN EQU 32 SGR_YELLOW EQU 33 SGR_BLUE EQU 34 SGR_MAGENTA EQU 35 SGR_CYAN EQU 36 SGR_WHITE EQU 37 SGR_DEFAULT EQU 39 SGR_BLACKBG EQU 40 SGR_REDBG EQU 41 SGR_GREENBjU -3 ND_MakeBad EQU -4 ND_UnitErr EQU -5 ND_CantAlloc EQU -6 ND_Unimpl EQU -7 ND_NoWrite EQU -8 ND_Expunged EQU -9 ND_PhonErr EQU -20 ND_RateErr EQU -21 ND_PitchErr EQU -22 ND_SexErr EQU -23 ND_ModeErr EQU -24 ND_FreqErr EQU -25 ND_VolErr EQU -26 rsreset NDI rs.b IOSTD_SIZE NDI_RATE rs.w 1 NDI_PITCH rs.w 1 NDI_MODE rs.w 1 NDI_SEX rs.w 1 NDI_CHMASKS rs.l 1 NDI_NUMMASKS rs.w 1 NDI_VOLUME rs.w 1 NDI_SAMPFREQ rs.w 1 NDI_MOUTHS rs.b 1 NDI_CHANMASK rs.b 1 NDI_NUMCHAN rs.b 1 NDI_PAD rs.b 1u NDI_SIZE rs.w 0 rsreset MRB rs.b NDI_SIZE MRB_WIDTH rs.b 1 MRB_HEIGHT rs.b 1 MRB_SHAPE rs.b 1 MRB_PAD rs.b 1 MRB_SIZE rs.w 0 ENDC DE "exec/io.i" ENDC DEFPITCH EQU 110 DEFRATE EQU 150 DEFVOL EQU 64 DEFFREQ EQU 22200 NATURALF0 EQU 0 ROBOTICF0 EQU 1 MALE EQU 0 FEMALE EQU 1 DEFSEX EQU MALE DEFMODE EQU NATURALF0 MINRATE EQU 40 MAXRATE EQU 400 MINPITCH EQU 65 MAXPITCH EQU 320 MINFREQ EQU 5000 MAXFREQ EQU 28000 MINVOL EQU 0 MAXVOL EQU 64 ND_NotUsed EQU -1 ND_NoMem EQU -2 ND_NoAudLib EQmu o@JOg6/$o4/*//NJOg$o0 o0/h 0`B `pL Nu 4"xP&nP^fzNVH8 $.&. /N$@ɊJɊXg|HjHn//N$JOf/ /NP`RAC`p+Qn=%nH%n\%nT%nX%nL%n%nJLg jL!J `pLN^NuNVH8 (.&. n=|=|E`Ct+Q-h\h=-hT-hX-hL-hH-h-hHn//NO LN^NuNVH><B؟>&.$. $n(|(<G/HnN,HyHnN8HxHnN*Ofp`xHxN/ //NJOg^ RfVtjfLBBJBgH/<Hx/./*DN$Og$Hx8"BHQ//NJOg %BB"BHiNX+ gJ/+//./N,tOg'F/+//./N,tOg'F`H/+//./N,tOg'F/+//./N,tOgd'FJfJ2gPHxHn//NJOg:/</././*DN%@2Og/./*2//NJOgJ6gHxHn//NJOg/<S/././*DN&@Og%K6`NHxHn//NJOgB/././*DN&Og/.///NJOgrYXtmJFgLHxHn//NJOgFB/././*DN%@FOg*/./*F//NJOg|/N X`|`L<|N^NuNVH>8&.(. $nz&|BHxN,PfHxg/NdpP` -j//N,Hy/N8Hx/N(Ogp0*trfBHxN/ //N*OgJBgHx8/*B//N*Og*g2/*//N*O gd/*//N*O f4`J/*/:F/N*O g2/*//N*O gJfJ2gB/*2N$R-BHxHn//N*Og/./*2//N*OgJ6gz(j6p-@`XXJfHxHn//N*Og(j6`@/N$R-BHxHn//N*Ogf/.///N*OgPXJfJFgB/*FN$R-BHxHn//N*Og/./*F//N*Og/NXHx/N%n PL|N^NuH0 / oA&/N\$Xg /N0X`L Nu/$/ o Hh/NP$NuH8 $//<HxN$@ɊJɊPgPHjNHj o]ɯ/NPJO fHx/ NP` Hx/ Hj/N.JOg `pLNuH0 &/$o$/SRn/ /NPJPfp`&SR"j 0HA!0HA!pL NuH> &/*/ /<Hx^N,Pgb(tN؂$DHjN/ /NPJO g@Hx^// /NVJOg(/ ///N6JOf/ /NhpP` `Hx^/NpPL|NuH8(/$/&tNւ//N.PLNuH00$o$//N&X&Zg /// NHJO f =f `pL NuH>$/&//N*XJgPHx|/N(Pg,` /N,X f///NHJO fp`Jg R$`t`pL|NuH> &/(/ |$D CtBHxHy / NHJO g"Hy/N,///NlO`ZHxHy/ NHJO fzV`Nz` Ѐ$ЂЈ*RHH/N @XlJgHxHy / NHJO frX$R/Hy&/N// /NlO L|Nu"/p0np9m r0`pNu F4 Z 2 RV  F j $ b H@ Xhf:  | P:RZ~44 " B  nf`ZPL : .info.infocopy copy of of of copy %ld of ) opJWFNu o /g fS Nup`LfNuLJfS`L / Sm fJfpNupnpNuL / JgSn`SaNuL / Sm fSoB`Nu 8F< n2ABAHA HA0 2B@H@Nu B@H@HABA"BtҁрnRAQNu/$ B$HBHAЂH@B@ $Nu/$"a$Nu/$"a $Nu/$lD"pJlDF @an4gD$Nu/ @p$lDF"lDF @aH$gD $NuH:&o oCE,yNL\NuNu o XB!HNuH ,yL NL@Nu/,y"/N,_NuH0,yLNL@ NuH0,yLNL@ Nu 6R/,yLN:,_Nu /,y"o / N.,_Nu/,y oN,_Nu/,yLN ,_Nu/,y oN,_Nu4H`" B  nf`ZPL : .info.infocopy copy of of of copy %ld of ) opJWFNu o /g fS Nup`LfNuLJfS`L / Sm fJfpNupnpNuL / JgSn`SaNuL / Sm fSoB`Nu9 RVOL EQU 1<<4 ADIOB_SYNCCYCLE EQU 5 ADIOF_SYNCCYCLE EQU 1<<5 ADIOB_NOWAIT EQU 6 ADIOF_NOWAIT EQU 1<<6 ADIOB_WRITEMESSAGE EQU 7 ADIOF_WRITEMESSAGE EQU 1<<7 ADIOERR_NOALLOCATION EQU -10 ADIOERR_ALLOCFAILED EQU -11 ADIOERR_CHANNELSTOLEN EQU -12 rsreset IOAudio rs.b IO_SIZE ioa_AllocKey rs.w 1 ioa_Data rs.l 1 ioa_Length rs.l 1 ioa_Period rs.w 1 ioa_Volume rs.w 1 ioa_Cycles rs.w 1 ioa_WriteMsg rs.b MN_SIZE ioa_SIZEOF rs.w 0 ENDC ܏ equ 4 SERF_RAD_BOOGIE equ 1<<4 SERB_QUEUEDBRK equ 3 SERF_QUEUEDBRK equ 1<<3 SERB_7WIRE equ 2 SERF_7WIRE equ 1<<2 SERB_PARTY_ODD equ 1 SERF_PARTY_ODD equ 1<<1 SERB_PARTY_ON equ 0 SERF_PARTY_ON equ 1<<0 IOSERB_QUEUED equ 6 IOSERF_QUEUED equ 1<<6 IOSERB_ABORT equ 5 IOSERF_ABORT equ 1<<5 IOSERB_ACTIVE equ 4 IOSERF_ACTIVE equ 1<<4 IOSTB_XOFFREAD equ 4 IOSTF_XOFFREAD equ 1<<4 IOSTB_XOFFWRITE equ 3 IOSTF_XOFFWRITE equ 1<<3 IOSTB_READBREAK equ 2 IOSTF_READBREAK equ 1<<2 IOSTB_WROTEBREAK equ OpenScreen:OpenWindow4OpenWorkBench.PrintIText(RefreshGadgets"RemoveGadgetReportMouseRequestScreenToBack ScreenToFrontSetDMRequestSetMenuStripSetPointerSetWindowTitlesShowTitleSizeWindowViewAddressViewPortAddressWindowToBackWindowToFrontWindowLimitsSetPrefsIntuiTextLengthWBenchToK BackWBenchToFrontAutoRequestBeginRefreshBuildSysRequestEndRefreshFreeSysRequestMakeScreenRemakeDisplayRethinkDisplayzAllocRemembertAlohaWorkbenchnFreeRememberhLockIBasebUnlockIBase\GetScreenDataVRefreshGListPAddGListJRemoveGListDActivateWindow>RefreshWindowFrame8ActivateGadget2NewModifyPro:p,OpenCloseReadWriteInputOutputSeekDeleteFileRenameLockUnLockDupLockExamineExNextInfoCreateDirCurrentDirIoErr|CreateProcvExitpLoadSegjUnLoadSegdGetPacket^QueuePacketXDeviceProcRSetCommentLSetProtectionFDateStamp@Dela  y:WaitForChar4ParentDir.IsInteractive(Execute"BltBitMapBltTemplateClearEOLClearScreenTextLengthTextSetFontOpenFontCloseFontAskSoftStyleSetSoftStyleAddBobAddVSpriteDoCollisionDrawGListInitGelsInitMasksRemIBob|RemVSpritevSetCollisionpSortGListjAddAnimO TdbdAnimate^GetGBuffersXInitGMasksRDrawEllipseLAreaEllipseFLoadRGB4@InitRastPort:InitVPort4MrgCop.MakeVPort(LoadView"WaitBlitSetRastMoveDraw AreaMoveAreaDrawAreaEndWaitTOFQBlitInitAreaSetRGB4QBSBlitBltClearRectFillBltPatternReadPixelWritePixel  F?FloodPolyDrawSetAPenSetBPenSetDrMdInitViewCBumpCMoveCWaitVBeamPosInitBitMapzScrollRastertWaitBOVPnGetSpritehFreeSpritebChangeSprite\MoveSpriteVLockLayerRomPUnlockLayerRomJSyncSBitMapDCopySBitMap>OwnBlitter8DisownBlitter2InitTmpRas,AskFont&AddFont RemFont !AllocRasterFreeRasterAndRectRegionOrRectRegionNewRegionClearRectRegionClearRegionDisposeRegionFreeVPortCopListsFreeCopListClipBlitXorRectRegionFreeCprListGetColorMapFreeColorMapGetRGB4ScrollVPortUCopperListInitFreeGBuffersBltBitMapRastPortOrRegionRegionXorRegionRegionAndR egionRegionSetRGB4CMBltMaskBitMapRastPortGraphicsReserved1~GraphicsReserved2xAttemptLockLayerRomrInitBitMapzScrollRastertWaitBOVPnGetSpritehFreeSpritebChangeSprite\MoveSpriteVLockLayerRomPUnlockLayerRomJSyncSBitMapDCopySBitMap>OwnBlitter8DisownBlitter2InitTmpRas,AskFont&AddFont RemFont#MLH<*/(/$/// /N&Pg&////N.JOf//NvP L $/*/ (/$J(g/<Hx//N/@8OgHx//,//NJOg| o(<(Hp܀$o("0*HN@, o("0(HN@,$o(Hx///N%@ /$oDoIO8SendIO2CheckIO,WaitIO&AbortIO AddResourceRemResourceOpenResourceRawIOInitRawMayGetCharRawP,8utCharRawDoFmtGetCCTypeOfMemProcureVacateOpenLibraryInitSemaphoreObtainSemaphoreReleaseSemaphoreAttemptSemaphoreObtainSemaphoreListReleaseSemaphoreListFindSemaphoreAddSemaphoreRemSemaphoreSumKickDataAddMemListCopyMemCopyMemQuickOpenIntuitionIntuitionAddGadgetClearDMReque011nm1 \ helloworldr0mxdpC,xNJg<#|pC,xNJg#A,y|N:Jg#A:1|1|1|,1|d|| !|!|!| 1|.BB!zB"1|d&1|(1|*1|,,y|N4Jg\#"@"i2pr,yN z"h2Ap ,yN z hV(p,xNx zj,y|N zX,y|N"zF,xNb"z6,xNb Nu@t intuition.li2 3]=Qfed_^]\q3 V freemem2.sr2qkM * file examples/freemem2.s - Workbench version * a sample Intuition program to display a window constantly showing * the free memory figure, until it's closed * this source code (C) HiSoft 1987 All Rights Reserved * both source and binary are FreeWare and may be distributed free of charge * so long as copyright messages are not removed * revision history: * 7th June 86 written * 22nd Sept 86 changed includes * 18th Dec 86 uses easystart for workbench version * ensure case depen4 5bUTSR[ZYXW5s 4 freemem.sr4W%5 * file examples/freemem.s * a sample Intuition program to display a window constantly showing * the free memory figure, until it's closed * this source code (C) HiSoft 1987 All Rights Reserved * both source and binary are FreeWare and may be distributed free of charge * so long as copyright messages are not removed * revision history: * 7th June 86 written * 22nd Sept 86 changed includes * ensure case dependent and debug opt c+,d+ * firstly get the required constants and macr7 if cant move.l d0,_DOSBase save pointer * now find our output handle CALLDOS Output move.l d0,d4 d4=output handle * and print a message move.l d4,d1 file handle move.l #string,d2 address of message moveq #stringlen,d3 length CALLDOS Write and send it * dont close the output handle otherwise the CLI bombs! * finished so close DOS library move.l _DOSBase,a1 CALLEXEC CloseLibrary quit_fast rts and finish _DOSBase dc.l 0 space for pointer * strings here 8;@s of message moveq #stringlen,d3 length CALLDOS Write and send it * dont close the output handle otherwise the CLI bombs! * finished so close DOS library mov.l _DOSBase,a1 CALLEXEC CloseLibrary quit_fast rts and finish _DOSBase dc.l 0 space for pointer * strings here s`Ggstring dc.b 'A Program written with HiSoft''s Devpac Amiga',10 stringlen equ *-string * this defines the name of the DOS library dosname DOSNAME even  examplespies incdir ":include/" where to look include exec/exec_lib.i I want to call EXEC include libraries/dos_lib.i and DOS include libraries/dos.i * start by opening the DOS library start move.l dosname,a1 moveq #0,d0 any version CALLEXEC OpenLibrary tst.l d0 beq quit_fast quit Aw`*ĺ^1و !>V@A$#dH`d`@eD[#2BB5 ]T`fL )u π ݼQp~J\`@f7Г0wxp .k0f?/NP}n4f '15'DJ N ^J3`,Z;n`.6 NؼZ(G &n3&@7&$`$/) +!`_j;`@1/qeL`Z@@<VY9XB )(+Bh$v* [(D_T\߱.&G\`8dbĹ] $*NPOAD H犘'g@Ā]:oi ?}L؃ 2͍` 5O'!BSGE+$aa̐F`3Q3{HjH.JxddmTP \ ^Iőˈe/̞Ȥѩx)*äGcz DLdI0dTLg2  C2 NAjLPB9F(0]Q-i{t 䈚dʆod}\:&0EN)ă`#:H P<k+吜X%T w:< (H09-hA :̱&$uB@ )p}" )(FFL:2%e K0D`CB0% `dG0C:rh"CiǷJ`IcP`#~pOcLP<Cã],H@dCH q D @O&]fL5`g}U!P i G- ,R> fIC3@^Ҁ[KN8:Cn'CsS8q/l8< e Mm N#DD\!6Ɔ= %; MMdx2$,DJ@y |0(!Jፍ1hT<x>0 4Dh]8"E3@ rr֣L )w`q)hjahql4T(!p]dV [?*LזHH@Z @;r :&'@ D0g@< < d 顃"z  $p/`# ᘜP'l'рFc9BS 8r s)9$XĂ /Ox9OlD@I740uI/w $>dry JP)Rf,Նe 8# üOc;45eP Y50n g݀$Em? JBLQ3&JQ 43?cHI+Jp- DbR@$TB\iϽx}Ԍ)I,4I;`J58Sj, o0, oP"r !U;LAYo#J-c%@6Sp4sIJ!bbP(\#@1,ɀ) H1AP!eeZ /"*#X `P/_ \p-qR〥@`(jҭ8vX&bNqG2!&[>$Dw$v|V.O` b!2} P΀뗱YCç7Kp 3Vڈ%|L vG08sw;qELhx<nA(Fl$JNzÀ=ư`4" ;e @ |>u|>%04cpØ aa2#ho@),lA@4rѪGPHR;zJX_BvdH^x&60P !#%@7\J $ 8i!4U(%@A` N|RD,;L1M'(hD%;@('Ntk`kIɜA9\$.3!!% >n7p 8$ mA |@T]&0Z@Z1K)8V)0sBA1JDja%@F8 Gyd?W@t2r @ / ꠈ@JGp k@a̖F-+S!PWPL 7A C:Pd ELAG @DA4;Atring dc.b 'A Program written with HiSoft''s Devpac Amiga',10 stringlen equ *-string * this defines the name of the DOS library dosname DOSNAME even en then quit * it uses the DOS and EXEC libraries incdir ":include/" where to look include exec/exec_lib.i I want to call EXEC include libraries/dos_lib.i and DOS include libraries/dos.i * start by opening the DOS library start move.l dosname,a1 moveq #0,d0 any version CALLEXEC OpenLibrary tst.l d0 beq quit_fast quitHօb.Lr@EE Ed;_R0J ҧ \8 C, Bt:4F@ ~ p['q҇HAQVcs-q8\|A@}aLj:eٰtKQ'pa#% t:ku(r!$R8ʛd mPtC` 8%ba@sH$ą0% K3!Op8uWT d$CхV2c:X D ٓNRV3{Mwp!} `l%6~a B.pI;;` E t^e Up8a[T1"$ <^hh?IZHUUl@I= _B{."Dy! m D4`MR4`v%#>'`B,NyM9B( Cƅ@H _1 &1twi;aQHڄ8.-P.0h8be7NCH F(NL Y&Ӡɀ/ʬ=!8q\ C&aO;y ne9pc5nUHvB+Z (uF NɁb,7j!i+D3L| 08Ua8lr@!2# <)!3œJӆڗtR@,PTD . ΉS( #4*k"! w-HP,`<䆒(1|gqC>I  h #2Q3i0 p-\dφ%E +HTPsgbeH$J:p @lBTF" ^kpL^\ .=Iayk3Iy'Xg D) 1C'hLΥhk5 5PSw\#ș|Eͣ&c`acsbtU1i!& Oc$8"kb !).X@1I0 uwe@ H5` QSJ$HDG3s΁`(p#j00 t[`?h2^(H L+X@FRH)ȇu?"z MX䋸=񐄂@bOb" AHD/0Pt$u)Z* a`ɀ"ڤ a>#?O TAEF<``o Л?Pa"b xMB$! n> # %m!% 8` %%B 8#BHfP@= F#ʝ *C8(b<1uA ':V@zP T aY0B@l+ &hH iI(N,6DD5iOP8 *Jj$Qq G-$+ -$p @d$0Gl=.֌$I*$ HqYHVR #@4C g.)3hڍQRP#q%*~ #p)]C >7$ qIP(` 2L = U%=j(0p $ESHL=Lxd%@` i@9y\")ShL$mHHB@DPIHF EY TnbnWCJ$@T(7 *ҀvK(Xs) Y6CV( Agy5Uzv92]eTD1F70A*{*)fe+&;#W[C0;^$QVUY,JX=kb $deE DeyI1Kc& }sUT̰^VVTNNXv,URQQn K, @O,- dt= Ki헓U());y8{3`YX3׉I9!9+@FwC`*z8V#,~pd`rR b8" r+{$C% 9@AmL5\cNP5p2w_].Pn ?lCtM fOO‚D,8凙"P`T8C/ (ŘHЈ("Q<DIVJ `΀c&|Q03c1 Us A f9sƀ:R!hHd ڃ= DoxXY Ӕ@]@K38$[F@0 9J#B@$,9.H0C d_YD"Q(w((3 IIAџ:SKhʇOOLQDra8% ++^ IW2 tionBase dc.l 0 for int library _GfxBase dc.l 0 for graphics library _DOSBase dc.l 0 for dos library windowptr dc.l 0 for window ptr oldfreemem dc.l 0 for freemem 0)+ do a digit move.l d2,d0 restore long dbf d1,hexclp do all of the digits rts * window definition here windowdef dc.w 50,50 x posn, y posn dc.w 200,25 width,height dc.b -1,-1 default pens dc.l CLOSEWINDOW easy IDCMP flag dc.l WINDOWDEPTH!WINDOWCLOSE!SMART_REFRESH!ACTIVATE!WINDOWDRAG dc.l4S 6otr(pc),a0 CALLINT CloseWindow * close all the libraries goawaycloseall move.l _DOSBase,a1 CALLEXEC CloseLibrary * close the graphics library goawayclosegraf move.l _GfxBase,a1 CALLEXEC CloseLibrary * finished so close Intuition library goawaycloseint move.l _IntuitionBase,a1 CALLEXEC CloseLibrary goawayfast moveq #0,d0 rts * convert d0.l into a string at (a0) onwards in hex hexconvert moveq #8-1,d1 digit count hexclp rol.l #4,d0 move.l d0,d2 save it and.b #$f,d0 4T6| cmp.b #9,d0 ble.s hexdig addq.b #7,d0 hexdig add.b #'0',d0 move.b d0,(a0)+ do a digit move.l d2,d0 restore long dbf d1,hexclp do all of the digits rts * window definition here windowdef dc.w 50,50 x posn, y posn dc.w 200,25 width,height dc.b -1,-1 default pens dc.l CLOSEWINDOW easy IDCMP flag dc.l WINDOWDEPTH!WINDOWCLOSE!SMART_REFRESH!ACTIVATE!WINDOWDRAG dc.l 0 no gadgets dc.l 0 no checkmarks dc.l windowtitle title of window dc.l 0 no screen 4 UkI dc.l 0 no bitmap dc.w 0,0,0,0 minimum, irrelevant as no sizing gadget dc.w WBENCHSCREEN in workbench * strings here intname INTNAME name of intuition lib grafname GRAFNAME name of graphics library dosname DOSNAME name of dos library windowtitle dc.b ' ',$a9,' HiSoft 1987 ',0 thestring dc.b '00000000 bytes free' thestringlen equ *-thestring * variables here _IntuitionBase dc.l 0 for int library _GfxBase dc.l 0 for graphics library _DOSBase dc.l 0 for dos 4 K]!library windowptr dc.l 0 for window ptr oldfreemem dc.l 0 for freemem 0)+ do a digit move.l d2,d0 restore long dbf d1,hexclp do all of the digits rts * window definition here windowdef dc.w 50,50 x posn, y posn dc.w 200,25 width,height dc.b -1,-1 default pens dc.l CLOSEWINDOW easy IDCMP flag dc.l WINDOWDEPTH!WINDOWCLOSE!SMART_REFRESH!ACTIVATE!WINDOWDRAG dc.l 0 no gadgets dc.l 0 no checkmarks dc.l windowtitle title of window dc.l 0 no screen ;FF4 if cant move.l d0,_DOSBase save pointer * now find our output handle CALLDOS Output move.l d0,d4 d4=output handle * and print a message move.l d4,d1 file handle move.l #string,d2 address of message moveq #stringlen,d3 length CALLDOS Write and send it * dont close the output handle otherwise the CLI bombs! * finished so close DOS library mov.l _DOSBase,a1 CALLEXEC CloseLibrary quit_fast rts and finish _DOSBase dc.l 0 space for pointer * strings here s4X>os incdir ":include/" include intuition/intuition.i include intuition/intuition_lib.i include exec/exec_lib.i include graphics/graphics_lib.i include exec/memory.i include libraries/dos_lib.i include libraries/dos.i * constant for frequency of re-display timeout equ 25 in 50ths of a second * firstly open the intuition library lea intname(pc),a1 moveq #0,d0 dont care which version CALLEXEC OpenLibrary tst.l d0 beq goawayfast if didnt open move.l d0,_Intuition4Y1Base store lib pointer * and open the graphics library lea grafname(pc),a1 moveq #0,d0 CALLEXEC OpenLibrary tst.l d0 beq goawaycloseint move.l d0,_GfxBase * and open a DOS library lea dosname(pc),a1 moveq #0,d0 CALLEXEC OpenLibrary tst.l d0 beq goawayclosegraf move.l d0,_DOSBase * open a window next lea windowdef(pc),a0 CALLINT OpenWindow tst.l d0 beq goawaycloseall if no window move.l d0,windowptr store the pointer move.l #-1,oldfreemem * the main loop - 4Z(Zdisplay the figure, then wait, then loop mainloop moveq #MEMF_PUBLIC,d1 CALLEXEC AvailMem get the figure * got free mem, see if changed since last time cmp.l oldfreemem,d0 beq messagetest dont print if the same move.l d0,oldfreemem * free memory in d0.l, so convert to a hex string * converting to decimal is left as an exercise to the reader! lea thestring(pc),a0 bsr hexconvert * replace leading zeros with spaces lea thestring(pc),a0 moveq #7-1,d0 max to do convsp4[Bnqaces cmp.b #'0',(a0) bne.s noconvspaces move.b #' ',(a0)+ dbf d0,convspaces convert them noconvspaces * move the cursor to a suitable place moveq #4,d0 x posn moveq #20,d1 y posn move.l windowptr(pc),a1 move.l wd_RPort(a1),a1 get rastport for window CALLGRAF Move * and print the string move.l windowptr(pc),a1 move.l wd_RPort(a1),a1 lea thestring(pc),a0 string moveq #thestringlen,d0 length CALLGRAF Text * now see if a message is waiting for me messagetest 4R move.l windowptr(pc),a0 move.l wd_UserPort(a0),a0 windows message port CALLEXEC GetMsg tst.l d0 beq.s nomessage * there was a message, which in our case must be CLOSEWINDOW, * so we should reply then go away move.l d0,a1 CALLEXEC ReplyMsg bra.s closewindow * no messages waiting, so suspend myself for a short while then * do it all agaun nomessage move.l #timeout,d1 CALLDOS Delay wait a while bra mainloop * close clicked so close the window closewindow move.l windowp2]>ihich version CALLEXEC OpenLibrary tst.l d0 beq goawayfast if didnt open move.l d0,_IntuitionBase store lib pointer * and open the graphics library lea grafname(pc),a1 moveq #0,d0 CALLEXEC OpenLibrary tst.l d0 beq goawaycloseint move.l d0,_GfxBase * and open a DOS library lea dosname(pc),a1 moveq #0,d0 CALLEXEC OpenLibrary tst.l d0 beq goawayclosegraf move.l d0,_DOSBase * open a window next lea windowdef(pc),a0 CALLINT OpenWindow tst.l d0 beq goawaycloseall 2^4,F if no window move.l d0,windowptr store the pointer move.l #-1,oldfreemem * the main loop - display the figure, then wait, then loop mainloop moveq #MEMF_PUBLIC,d1 CALLEXEC AvailMem get the figure * got free mem, see if changed since last time cmp.l oldfreemem,d0 beq messagetest dont print if the same move.l d0,oldfreemem * free memory in d0.l, so convert to a hex string * converting to decimal is left as an exercise to the reader! lea thestring(pc),a0 bsr hexco2_k¼nvert * replace leading zeros with spaces lea thestring(pc),a0 moveq #7-1,d0 max to do convspaces cmp.b #'0',(a0) bne.s noconvspaces move.b #' ',(a0)+ dbf d0,convspaces convert them noconvspaces * move the cursor to a suitable place moveq #4,d0 x posn moveq #20,d1 y posn move.l windowptr(pc),a1 move.l wd_RPort(a1),a1 get rastport for window CALLGRAF Move * and print the string move.l windowptr(pc),a1 move.l wd_RPort(a1),a1 lea thestring(pc),a0 string m2d2(oveq #thestringlen,d0 length CALLGRAF Text * now see if a message is waiting for me messagetest move.l windowptr(pc),a0 move.l wd_UserPort(a0),a0 windows message port CALLEXEC GetMsg tst.l d0 beq.s nomessage * there was a message, which in our case must be CLOSEWINDOW, * so we should reply then go away move.l d0,a1 CALLEXEC ReplyMsg bra.s closewindow * no messages waiting, so suspend myself for a short while then * do it all agaun nomessage move.l #timeout,d1 CALLDOS Dar#A0tԁvւt08#B4pD(jdN#A8$)0r pH(jN#A<$)$#p(@$)0rpP(jN#ADBHJf$)#p(&0( #C`"t0#B&R#Ct")NRt ҂pX(jtN#A Jf`r ҩ R#A$)S#BLr#APLn&ҩtԁr0($)ԩP(rҩP`")ҩt ") v!")8() !H")8() !H") B ") !@"<|pX(j`Nr#AH$)(#p(Lr#APLn"ҩ(Jf #iP,` rҩP`J,f`"<©4Jg 4r4m`b#i<hG( &)4$<bIQ ") pX(jN#AJf`0")(ҩ,!&),$)r pX(jN" SYS:copylisBtԉ#B`Rrp(jtN#A JgB$B(""0p(jN$) !(")! #i ""Jf")N$B") pX(jxN") pX(jxNJfG" pX(j$NrpX(jNNNqBackground CLI [CLI %N] !Unable to create backgr2eR(elay wait a while bra mainloop * close clicked so close the window closewindow move.l windowptr(pc),a0 CALLINT CloseWindow * close all the libraries goawaycloseall move.l _DOSBase,a1 CALLEXEC CloseLibrary * close the graphics library goawayclosegraf move.l _GfxBase,a1 CALLEXEC CloseLibrary * finished so close Intuition library goawaycloseint move.l _IntuitionBase,a1 CALLEXEC CloseLibrary goawayfast moveq #0,d0 rts * convert d0.l into a string at (a0) onwards in he2f[bzx hexconvert moveq #8-1,d1 digit count hexclp rol.l #4,d0 move.l d0,d2 save it and.b #$f,d0 cmp.b #9,d0 ble.s hexdig addq.b #7,d0 hexdig add.b #'0',d0 move.b d0,(a0)+ do a digit move.l d2,d0 restore long dbf d1,hexclp do all of the digits rts * window definition here windowdef dc.w 50,50 x posn, y posn dc.w 200,25 width,height dc.b -1,-1 default pens dc.l CLOSEWINDOW easy IDCMP flag dc.l WINDOWDEPTH!WINDOWCLOSE!SMART_REFRESH!ACTIVATE!WINDOWDRAG dc.l2 Q! ! 0 no gadgets dc.l 0 no checkmarks dc.l windowtitle title of window dc.l 0 no screen dc.l 0 no bitmap dc.w 0,0,0,0 minimum, irrelevant as no sizing gadget dc.w WBENCHSCREEN in workbench * strings here intname INTNAME name of intuition lib grafname GRAFNAME name of graphics library dosname DOSNAME name of dos library windowtitle dc.b ' ',$a9,' HiSoft 1987 ',0 thestring dc.b '00000000 bytes free' thestringlen equ *-thestring * variables here _IntuiX' \[/]= SLAE2SH \[:]=. \[;]=.\[<]= LEH3S DHAEN \[=]= IY3KWULZ \[>]= GREY3TER DHAEN `[?]=.\[@]= AE2T \[(]=,\[)]=,\[^]= KAE2RIHT \[~]=TIH3LDAH \[\]= \[[]= \[{]= \[}]= \[|]=OHR `[_]= \[`]= \[]= \>:62.*&"v :[Y] =AY\ :[Y]#=AY\ :[Y]^+:#=IH\ :[Y]^#=AY\Y[Y]=\[Y]=IH\ :[Z]: = ZIY3 \Z[Z]=\[Z]=Z\[0]= ZIY4ROW \ [1ST]=FER4ST\ [10TH]=TEH4NTH\ [10 ]= TEH4N \[iQWilPen(a0) move.b #1,nw_BlockPen(a0) move.l #window_title,nw_Title(a0) _temp set WINDOWCLOSE!SMART_REFRESH!ACTIVATE!WINDOWSIZING move.l #_temp!WINDOWDRAG!WINDOWDEPTH,nw_Flags(a0) move.l #CLOSEWINDOW,nw_IDCMPFlags(a0) move.w #CUSTOMSCREEN,nw_Type(a0) clr.l nw_FirstGadget(a0) clr.l nw_CheckMark(a0) move.l MyScreen(pc),nw_Screen(a0) clr.l nw_BitMap(a0) move.w #100,nw_MinWidth(a0) move.w #25,nw_MinHeight(a0) move.w #640,nw_MaxWidth(a0) move.w #200,nw_MaxHeight(a0) * thats itj|~P set up, now open the window (a0=NewWindow already) CALLINT OpenWindow tst.l d0 beq exit_closescr if failed move.l d0,MyWindow save it move.l d0,a1 window move.l wd_RPort(a1),a1 rastport moveq #20,d0 X moveq #20,d1 Y CALLGRAF Move move the cursor move.l MyWindow(pc),a0 move.l wd_RPort(a0),a1 rastport lea hello_message(pc),a0 moveq #11,d0 CALLGRAF Text print something move.l MyWindow(pc),a0 move.l wd_UserPort(a0),a0 move.b MP_SIGBIT(a0),d1 (k|misprint in manual) moveq #0,d0 bset d1,d0 do a shift CALLEXEC Wait moveq #0,d4 return code * various exit routines that do tidying up, given a return code in d4 move.l MyWindow(pc),a0 CALLINT CloseWindow exit_closescr move.l MyScreen(pc),a0 CALLINT CloseScreen exit_closeall move.l _GfxBase(pc),a1 CALLEXEC CloseLibrary exit_closeint move.l _IntuitionBase(pc),a1 CALLEXEC CloseLibrary exit_false move.l d4,d0 return code rts * the definition of the screen l- note that in assembler you * MUST get the sizes of these fields correct, by consulting either * the RKM or the header files MyNewScreen dc.w 0,0 left, top dc.w 320,200 width, height dc.w 2 depth dc.b 0,1 pens dc.w 0 viewmodes dc.w CUSTOMSCREEN type dc.l MyFont font dc.l screen_title title dc.l 0 gadgets dc.l 0 bitmap * my font definition MyFont dc.l font_name dc.w TOPAZ_SIXTY dc.b FS_NORMAL dc.b FPF_ROMFONT * the variables _IntuitionBase dc.l 0 Intur ition lib pointer _GfxBase dc.l 0 graphics lib pointer MyScreen dc.l 0 MyWindow dc.l 0 MyNewWindow ds.b nw_SIZE a buffer * some strings int_name INTNAME graf_name GRAFNAME hello_message dc.b 'Hello World' * these are C strings, so have to be null terminated screen_title dc.b 'My Own Screen',0 font_name dc.b 'topaz.font',0 window_title dc.b 'A Simple Window',0 itionBase(pc),a1 CALLEXEC CloseLibrary exit_false move.l d4,d0 return code rts * the definition of the screen 0n6mbrarygraphics.libraryHello WorldMy Own Screentopaz.fontA Simple Window2<Lz"0dhtMyFonttMyScreenMyWindow_GfxBaseint_namefont_namegraf_nameexit_falsePMyNewScreenTMyNewWindowscreen_titlewindow_titleexit_closeall8exit_closeintDexit_closescr*hello_message_IntuitionBase0 |xdpC,xNJg<#|pC,xNJg#A,y|N:Jg#A:1|1|1|,1|d|| !|!|!| 1|.BB!zB"1|d&1|(1|*1|,,y|N4Jg\#"@"i2pr,yN z"h2Ap ,yN z hV(p,xNx zj,y|N zX,y|N"zF,xNb"z6,xNb Nu@t intuition.lipHiSoft 1987 00000000 bytes free0JTdn~(6hexclpHhexdigXdosnameintname_DOSBase_GfxBasegrafnamemainlooprnomessagethestringwindowdeffwindowptrconvspacesgoawayfastBhexconvertFoldfreememclosewindow messagetestwindowtitlex noconvspaces_IntuitionBasegoawaycloseallgoawaycloseint4goawayclosegraf&N4Jg##r,xN(gR#AGaA?p 0f Qpr"zF"i2,yN"z4"i2A p,yN z hV,xNJg "@,xN`"<,yN:`j z,yN"y,xNb"y,xNb"y,xNbpNur$< o^0 QNu22intuition.librarygraphics.librarydos.library 2\t~^dent and debug opt c+,d+ * firstly get the required constants and macros incdir ":include/" include intuition/intuition.i include intuition/intuition_lib.i include exec/exec_lib.i include graphics/graphics_lib.i include exec/memory.i include libraries/dos_lib.i include libraries/dos.i include misc/easystart.i * constant for frequency of re-display timeout equ 25 in 50ths of a second * firstly open the intuition library lea intname(pc),a1 moveq #0,d0 dont care w}sC= n,N^L~NuN2N,<[?NnDNu 2:* Z Jj a<NuNHNnL8N&&އg HGNuHG i Zi> Nud& |g ~f Jf` GJgJ~` ff`O~<`~`xBJg.jD< bHF܆[Jj dRNu!T3~SUU?} xngv??z,W}bGX@U @ @ MC68343 FLOATING POINT FIRMWARE(C) COPYRIGHT 1981 BY MOTOROLA INC./,y"oNb,_Nu/,yN,_Nu/,y"o / N,_Nu(~|*< Art`䤚ܐ(&䣞j.XRQ~NgR.$|Ag,jDzG܆[.1]= WAH4N \ [2ND]=SEH4KUND\[2]= TUW4 \ [3RD]=THER4D\[3]= THRIY4 \[4]= FOH4R \ [5TH]=FIH4FTH\[5]= FAY4V \[6]= SIH4KS \[7]= SEH4VUN \ [8TH]=EY4TH\[8]= EY4T \[9]= NAY4N \[ ]= \[...]= AEND SOW3 AA2N \[.]?= POYNT `[.] =.\[.]= \[!]=.\["] =-AH2NKWOWT- \["]=KWOW2T-\[##]=#\[#]= NAH2MBER \C['S]=S\G['S]=Z\&['S]=IHZ\.['S]=Z\#:&E['S]=IHZ\#:.E['S]=Z\#:^E['S]=S\#['S]=Z\['S]=S\['T]=T\['LL]=L\['D]=D\['M]=M\[$]= DAA2LER \[%]= PERSEH2NT \[&]= AEND `[']=\[*]= AE3STERIHSK \[+]= PLAH3S \[,]=,\ [-] =-\[-]={~#Pt @m`~݇ۇ m GJo H`L`z|`6<` l6<*<|D` A0@g `\H AL` fz| BL fvx jEFf gUDLP` A06@gJCL)Nu"<jd`\z<`|identMI2MINameresidentMI_MathSegListExp_InUseMIInitX{8MIOpenopenFaillibStructInitplibInit2hMIExtFunchMIExpungeMICloseclosedlibFuncInitMIIEEEDPAbs>MIIEEEDPAddNMIIEEEDPDivfMIIEEEDPCmp.MIIEEEDPFix MIIEEEDPFltMIIEEEDPNegFMIIEEEDPCeilntest_d6_d7MIIEEEDPMul^MIIEEEDPSubVMIIEEEDPTst6MIIEEEDPFloortdfi1|dfi2bdfi3tdfi4dfi5{xb99dfi6dfl1dfl2dfl3dfl4cc_1cc_2cc_3_CXA55N_CXC55._CXD55fdtst_1Hdtst_2L_CXM55^_CXN55F_CXS55V_CXT556exit_CXV35_CXV53 lt_zero_fabs>dfi11dcmp_1.dcmp_22dfix1DPAddPDPAbsDPCmpDPDivDPFix,DPFltDPNeg{3DPMulDPSublDPTst6dfa1dfa2dfa3dfa4dfa5dfa6dfd1Ndfa7Fdfa8:dfa9bdfd4dfd9ldfm1dfm2dfm4dfm5dfm7dfm8dfdrfptrapdfadd1Fdfa10dfa11hdfa13dfa14dfd10fdfd11Tdfd12xdfd13dfd14dfcmp1dfcmp2*{ ƉZdfcmp34dfcmp4Bdfcmp9DdfdbyzdfarokXdfneg2dfduo2dfadd<dfar2Zdfcmpdfdivdfauojdfduodfnegdfmr2dfmrokdfmuldfmuofpoptabdfsub*dfsetzdftstJdftst2XfpretXbadtrap^MIEndModuledx,DPFltDPNeg}jH&g <@"N"<@N$`2 N$`& Jf $<A`$<@"N"N$.JNDL |Nu VH@^XTP Nn&lH.rNHLNuH,.rNHLNuA.`A6`A>`AF`AN`AV`A^`Af`An`Av})-`A`~A`tA`jA``A `VA`LAH./rN _ LNuA4`$A`An`A&`A`A`A`A`A`A`dA`\A`6A`.A`DA`.NnXDxB΄,<CNn,.Nf$(< .BJkFD c~䯾o$`D c~DDl`z,,*y N*"<@NmR "<ANnbx <@"N"<@N"<BN&a"<N*a>$`,( "<No "N&$a$`$Jf6Jg "<@N"<@N$"Nj N$`^"Nk0J4ȜC with task runningPrinter device namePress any keyStop taskKill taskUnload symbols3p(Rz"( ^ d | r z  $ * 0 : @ ^ &(89999>9F9NZt@  5?_@5$[\Q@ y breakpoints!Run until PC=Kill all breakpoints Y/N?Breakpoint address<,param>HistorySearch for B/W/L/T/I? No printer device selectedRegister to lockEnter expressionSymbolsPREFERENCESRelative offsets Y/N? Ignore case Y/N? Symbol lengthCopy start,end,toFill start,end,withSet current drive/directorySave binary, filenamestart address,endRun: Go,Instruction HelpDisassemble start,endSave preferences Y/N? AmigaDOS error 12345Quity!lHn/N0 O f*p Jm"4%n5nnn RTp Rp0.b/NX`/.N/NhPHx/ N8PJl D`pLFONTS:.fontH> o"oJig*<4)hd 0Hڀ`0Hယt(p)Bx(p)DvBF0H2Hg,p)2Hg0@yzb |(`0@ |0H2Hg,p)2Hg0@ |h`0@ |HCRFpFn ` <L|NuNVH?<$n JCtQ/N-@HnN-@&nPg=kkk/t"$V&(V,<Ćg(Ȇg"F†Ɔ؂/$(()*< QBB~zHA<BFHFHC0B@H@܀HAHD0B@H@܀HBHC0B@H@܀0܀GHA0܀GHC0܀G1F<HFBEHC0܀GHCHA0܀G1F<HFHA܁*( x$<"< Q mRrہ݁ mR&<Ђkg !EJL`BB` l,< !|D`Hk@ A"BLL.,*< ̅g΅g? F…ƅz|~6m܆ۅԂӁQ`ԄӃn܆ۅԂӁQ.******** STRUCTURE TextAttr,0 APTR ta_Name ;name of the desired font UWORD ta_YSize ;size of the desired font UBYTE ta_Style ;desired font style UBYTE ta_Flags ;font preferences LABEL ta_SIZEOF ;*****; TextFont node ;*********************************************** STRUCTURE TextFont,MN_SIZE ; ;font name in LN \ used in this UWORD tf_YSize ;font height  | order to best UBYTE tf_Style ;font style | match a font UBYTE tf_Flags ;preference attributes / request. UWORD tf_XSize ;nominal font width UWORD tf_Baseline ;distance from the top of char to baseline UWORD tf_BoldSmear ;smear to affect a bold enhancement UWORD tf_Accessors ;access count UBYTE tf_LoChar ;the first character described here UBYTE tf_HiChar ;the l Dm+ast character described here APTR tf_CharData ;the bit character data UWORD tf_Modulo ;the row modulo for the strike font data APTR tf_CharLoc ;ptr to location data for the strike font ; ; 2 words: bit offset then size APTR tf_CharSpace ;ptr to words of proportional spacing data APTR tf_CharKern ;ptr to words of kerning data LABEL tf_SIZEOF ENDIF END tf_YSize ;font height 0 b$ԈNu Hn ЉNug Nua`Jg /apПfNu"A T$v/,nN,_" . TNutv"/,nN,_Nuv$`v$ԂԂ` @ Xg aSWNuJg/ nJggX`  _Nu"$ vրփփ//,nN,_  $Nu-xJ.Xg" :gx(@Jg BX-L,`X-L,Nura"<[$</,nN,_(graA T"$v/,nN,_Qf~ B Tfr . Xgl-@0r/,xN:,_JgV-@,(@"$ &.0/,nN,_"g6 ҁҁ(A"L(H$ !`f"HBHHԂԂAҰ("`B"g /,nN,_NuJ,g /  n,`NuLA"H1VZ nf/,nN,_NuP/r/,xN:,_"Jg @ -HX NupNu g&QCαgJg"Q`""H (/,xN.,_Nu .gP @a`NuLIBS:libfile.monamintuition.librarydos.librarygraphics.libraryconsole.devicePC:SR:A7'Divide by zeroCHK exceptionTRAPV exceptionPrivilege violationTraceBad interruptInvalid TRAPIllegal exceptionBreakpointD:A:Searching...Address errorBus error ; , Text: Data: BSS : Current Breakpoints: Data start,end<,size>Cross-reference listFilenameC2MAƓhecking for symbols.. Checking for libfile.. Loading libfile.. Task terminatedUnknown exceptionLine A exceptionLine F exceptionTask must be running!Task loaded!No task loaded!Task must be suspended!ExecutingNoneSuspendedFree memory Chip,Fast,All: Task: Hunk list:Memory list:DisassemblyMemoryRegistersSource code ESC to abort Window start address?[Return] Filename to loadSource file to loadExecutable file to loadCommand lineRegister=valueCannot runIn d4 equ 1 STRUCTURE Layer,0 LONG lr_front LONG lr_back LONG lr_ClipRect LONG lr_rp WORD lr_MinX WORD lr_MinY WORD lr_MaxX WORD lr_MaxY STRUCT lr_reserved,4 WORD lr_priority WORD lr_Flags LONG lr_SuperBitMap LONG lr_SuperClipRect APTR lr_Window WORD lr_Scroll_X WORD lr_Scroll_Y APTR lr_cr APTR lr_cr2 APTR lr_crnew APTR lr_SuperSav1&werClipRects APTR lr__cliprects APTR lr_LayerInfo ; just by lucky coincidence ; this is not confused with simplesprites STRUCT lr_Lock,SS_SIZE STRUCT lr_reserved3,8 APTR lr_ClipRegion APTR lr_saveClipRects STRUCT lr_reserved2,22 APTR lr_DamageList LABEL lr_SIZEOF STRUCTURE ClipRect,0 LONG cr_Next LONG cr_prev LONG cr_lobs LONG cr_BitMap b WORD cr_MinX WORD cr_MinY WORD cr_MaxX WORD cr_MaxY APTR cr__p1 APTR cr__p2 LONG cr_reserved LONG cr_Flags LABEL cr_SIZEOF ; internal cliprect flags CR_NEEDS_NO_CONCEALED_RASTERS equ 1 ; defines for clipping ISLESSX equ 1 ISLESSY equ 2 ISGRTRX equ 4 ISGRTRY equ 8 ; for ancient history reasons IFND lr_Front lr_Front equ lr_front lr_Back equ lr_back lr_RastPort equ lr_rp cr_Prev Uc& equ cr_prev cr_LObs equ cr_lobs ENDIF ENDIF END just by lucky coincidence ; this is not confused with simplesprites STRUCT lr_Lock,SS_SIZE STRUCT lr_reserved3,8 APTR lr_ClipRegion APTR lr_saveClipRects STRUCT lr_reserved2,22 APTR lr_DamageList LABEL lr_SIZEOF STRUCTURE ClipRect,0 LONG cr_Next LONG cr_prev LONG cr_lobs LONG cr_BitMap3^bROM!It's odd!Cannot write!Too many breakpoints!Run until PC=Kill all breakpoints Y/N?Breakpoint address<,param>HistorySearch for B/W/L/T/I? No printer device selectedRegister to lockEnter expressionSymbolsPREFERENCESRelative offsets Y/N? Ignore case Y/N? Symbol lengthCopy start,end,toFill start,end,withSet current drive/directorySave binary, filenamestart address,endRun: Go,Instruction HelpDisassemble start,endSave preferences Y/N? AmigaDOS error 12345QuitX(`e LABEL rg_SIZEOF STRUCTURE RegionRectangle,0 APTR rr_Next APTR rr_Prev STRUCT rr_bounds,ra_SIZEOF LABEL rr_SIZEOF ENDIF END rt CODERS PACK V1.5  Hutes ;/ STRUCTURE cprlist,0 APTR crl_Next APTR crl_start WORD crl_MaxCount LABEL crl_SIZEOF STRUCTURE CopList,0 APTR cl_Next ; next block for this copper list ;/ APTR cl__CopList ; system use ;/ APTR cl__ViewPort ; system use ;/ APTR cl_CopIns ; start of this block ;/ APTR cl_CopPtr ; intermediate ptr ;/ APTR cl_CopLStart ; mrgcop fills this in for Long Frame*/ APTR cl_CopSStart ; mrgcop fills t2Qhis in for Short Frame*/ WORD cl_Count ; intermediate counter ;/ WORD cl_MaxCount ; max # of copins for this block ;/ WORD cl_DyOffset ; offset this copper list vertical waits ;/ LABEL cl_SIZEOF STRUCTURE UCopList,0 APTR ucl_Next APTR ucl_FirstCopList ; head node of this copper list ;/ APTR ucl_CopList ; node in use ;/ LABEL ucl_SIZEOF ; private graphics data structure STRUCTURE copinit,0 STRUCT 9@copinit_diagstrt,8 STRUCT copinit_sprstrtup,2*((2*8*2)+2+(2*2)+2) STRUCT copinit_sprstop,4 LABEL copinit_SIZEOF ENDIF END APTR cl_Next ; next block for this copper list ;/ APTR cl__CopList ; system use ;/ APTR cl__ViewPort ; system use ;/ APTR cl_CopIns ; start of this block ;/ APTR cl_CopPtr ; intermediate ptr ;/ APTR cl_CopLStart ; mrgcop fills this in for Long Frame*/ APTR cl_CopSStart ; mrgcop fills tyNNVH?< .$. ".(@TUJmBTJm$@-@..ނ-Gg~ y hJgn"h xJgRD`p0..-Gp0v ЃJm>"h v` Ю*@Rp0b4%n5hhh RTp P`gBHxN &@Pg/