Files
Shawn Quick dfcaae62dd Add qlink, the disk tools, and a bootable ProDOS 8 image.
Move the assembler to src/qasm. qlink links OMF 1.0 and 2.0 from a script. makeBin flattens a load file, qomf dumps OMF, and qpro builds ProDOS volumes. APW and MPW assemble through the ORCA front end. Relocatable modules emit OMF objects. Listings stay off unless -l is set.

make boot assembles the GS/OS 6.0.1 ProDOS 8 kernel and BASIC.SYSTEM into an 800K volume. BASIC.SYSTEM accepts ls and pfx, and its splash reports PRODOS BASIC 2.0, copyright 1983-2026. IIGS.601.SRC is the source and the BASIC.SYSTEM oracle that image is built from.
2026-10-16 14:41:55 -07:00

1 line
5.2 KiB
Plaintext

****************************************************************
*
* GS/OS Driver Equates
*
****************************************************************
*
* Copyright © 1987 - 1989
* Apple Computer, Inc.
* All rights reserved.
*
****************************************************************
*
* REVISION HISTORY:
*
* mm/dd/yy who version what
*
* 3/01/89 RBM Ported equates for gen_drvr_ptr & fw_addr to
* common equates file for ease of maintainance.
*
****************************************************************
*
* The following are absolute zero page equates for use by
* slot resident firmware based BASIC character devices.
*
****************************************************************
out_hook equ $0036 ; (w) Output hook
in_hook equ $0038 ; (w) Input hook
****************************************************************
*
* The following are equates for the driver's DIB
*
****************************************************************
dib_size equ 76 ; 64 bytes per DIB + 12 bytes per GDIB
link_ptr equ 0 ; (lw) link pointer to next dib
entry_ptr equ link_ptr+4 ; (lw) pointer to driver entry point
dev_char equ entry_ptr+4 ; (w) device characteristics
blk_cnt equ dev_char+2 ; (lw) number of blocks on device
dev_name equ blk_cnt+4 ; (32) count and ascii name
slot_num equ dev_name+32 ; (w) slot where driver resides
unit_num equ slot_num+2 ; (w) unit within slot
ver_num equ unit_num+2 ; (w) version number of driver
dev_id_num equ ver_num+2 ; (w) device ID number
head_link equ dev_id_num+2 ; (w) backward device link by devnum
forward_link equ head_link+2 ; (w) forward device link by devnum
extended_dib equ forward_link+2 ; (w) reserved for future OS expansion
dib_dev_num equ extended_dib+4 ; (w) device # of this device
****************************************************************
*
* The following are equates for the driver's GDIB
*
****************************************************************
drvr_class equ dib_dev_num+2 ; (w) driver class
drvr_type equ drvr_class+2 ; (w) driver type
drvr_subtype equ drvr_type+2 ; (w) driver subtype
cache_mask equ drvr_subtype+2 ; (w) cache mask (block dev) or
open_flag equ cache_mask ; open flag (character dev)
block_size equ open_flag+2 ; (w) block size
hardware_unit equ block_size+2 ; (w) Hardware unit number
****************************************************************
*
* The following are equates for the driver's usage
*
****************************************************************
drvr_entry equ hardware_unit+2 ; (?) driver entry point
****************************************************************
*
* The following are bank 0 dispatcher direct page equates.
*
****************************************************************
buf_ptr equ $00007C ; (lw) buffer pointer to application
****************************************************************
*
* The following are general system equates.
*
****************************************************************
nop equ $EA ; NOP instruction
max_drvr_cmd equ $0009 ; maximum driver command number
slot5_dev_cnt equ $E10FB8 ; device count
*****************************************************************
*
* The following are supervisor driver equates.
*
* The following bit definitions are for the supervisor characteristics word.
* ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
* | | | | | | | | | | | | | | | | |
* | F | E | D | C | B | A | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
* |___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
* | | | | | | | | | | | | | | | |__ RESERVED
* | | | | | | | | | | | | | | |______ RESERVED
* | | | | | | | | | | | | | |__________ RESERVED
* | | | | | | | | | | | | |______________ RESERVED
* | | | | | | | | | | | |__________________ RESERVED
* | | | | | | | | | | |______________________ RESERVED
* | | | | | | | | | |__________________________ RESERVED
* | | | | | | | | |______________________________ RESERVED
* | | | | | | | |__________________________________ RESERVED
* | | | | | | |______________________________________ RESERVED
* | | | | | |__________________________________________ RESERVED
* | | | | |______________________________________________ RESERVED
* | | | |__________________________________________________ RESERVED
* | | |______________________________________________________ RESERVED
* | |__________________________________________________________ RESERVED
* |______________________________________________________________ Restartable
*
*****************************************************************
sib_address equ $0000
sib_id equ sib_address+4
sib_ver equ sib_id+2
sib_name equ sib_ver+2
sib_char equ sib_name+4
max_command equ $0009 ; Maximum command number + 1