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
30 KiB
Plaintext

******************************************************************************
*
* Common equates for GS/OS
*
* Created: 4/7/87
* Modified: See Revision History below
* Author: GS/OS Team
*
* Copyright (C) 1987-1988 Apple Computer, Inc. All rights reserved.
*
* REVISION HISTORY:
*
* DATE BY DESCRIPTION
*
* 04/27/87 RBM Correction: drvr_blk_size is a word wide parameter.
*
* 04/16/87 JJ Correction: changed error number for duplicate volume
* from $55 to $57
* 04/29/87 GRT Addition: added definition of path flag
* and defined "span1" and "span2"
*
* 05/18/87 RBM Addition: Added "boot_slot", "dev_id_ref",
* "drvr_char_config" & "drvr_pro_config"
* These parameters are passed from the F_Loader
* to the device dispatcher during boot init.
*
* 06/04/87 JJ Addition: Add global equates for system direct page base,
* stack top, and ProDOS FST header.
*
* 06/11/87 JJ Change: Direct page locations used by SCM to pass
* parameters to FST's fundamentally changed. Look
* between labels dev_num and span2, inclusive.
*
* 06/30/87 RM/RC Addition: Added cache manager equates.
* Cache priority now cache enable.
*
* 07/20/87 RM/AS Addition: Equates for control/status list pointers.
* Equates for control/status codes.
*
* 07/22/87 RM/RC Change: Cache enable now cache priority.
*
* 07/24/87 MSA Addition: System Service Table Equates & FCR Equates
*
* 07/29/87 RC Addition: Added cache header equates.
*
* 08/03/87 RC Addition: Added 4 byte pointer in direct page
*
* 08/05/87 MSA Change: System Service Table chgd to make GRT happy
* Added Parameter Block Equates
*
* 08/10/87 RC/RM Change: Changed c_volumeid in cache equates into c_devnum.
*
* 08/12/87 FAB Addition: Added gquit_stack_top
*
* MSA Addition: Added pblk equate for Get Boot Volume
* Star prefix equate added
*
* 08/13/87 RBM Deletion: Removed status and control codes for
* driver newline since it's not supported.
*
* 08/14/87 MSA Addition: Added pblk equate for SetLevel, GetLevel
*
* 08/18/87 RBM Deletion: Drvr_vol_id is now Drvr_reserved.
*
* 09/15/87 RBM Change: Moved control/status code location on direct page
*
* 09/24/87 MSA Addition: Added pblk equate for Close, Flush
*
* 10/02/87 ADS Deletion: Removed pro_fst_entry
*
* 10/06/87 MSA Addition: Added pblk equate for Expand_Path
*
* 10/29/87 MSA Addition: Added debug call flag, debug.calls
* and debug.type for SCM
*
* 11/12/87 RBM Change: Device dispatcher cmd numbers
*
* 11/13/87 MSA Addition: GS/OS System Death Error Codes
*
* 11/15/87 RBM Addition: Added 'DRVR_VOL_ID' on direct page.
*
* 11/17/87 RC Addition: Added 'c_volumeid' to cache header
*
* 12/6/87 JJ Addition: Added system call error codes $64, $65, and $66
*
* 1/5/88 fab addition: move commands word for moveinfo system service call
*
* 1/5/88 RBM addition: status and control codes.
*
* 1/13/88 fab addition: movevaliditymask equate added
*
* 1/14/88 RBM change: moved status/control code
*
* 1/14/88 BPA change: made all equ's gequ's
*
* 1/15/88 fab replace: move_block to move_info
*
* 1/19/88 rc addition: default_cache_size
*
* 1/20/88 MSA addition: system service table equates
*
* 1/23/88 RBM Addition: System service table equates
*
* 2/08/88 RBM Addition: driver busy error code ($0029)
* Addition: Supervisory driver direct page equates
*
* 3/04/88 MSA Addition: get, set boot_vol equates
*
* 3/08/88 MSA Change: above names now get, set boot_pfx
*
* 3/22/88 RBM Addition: An error code for duplicate device.
*
* 3/24/88 MSA Addition: System Service Call alloc_cache_seg
*
* 8/01/88 FAB Addition: Softerrorlow / Softerrorhigh added
*
* 10/18/88 BPA Change: Converted to MAX format (gequ -> equ).
*
* 11/15/88 BPA Addition: Added parse_pathname and post_switch.
*
* 11/16/88 BPA Addition: Added pblk_1a_flags for set and get level.
*
* 11/17/88 BPA Addition: Added GS/OS event codes and system service call
* handle_os_event.
*
* 11/28/88 CAE Addition: Added gquit_stack_end.
*
* 11/30/88 BPA Addition: Added volume_change event code.
*
* 12/1/88 BPA Change: Renamed system service call handle_os_event to
* post_os_event.
*
* ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
*
* 3/1/89 RBM Change: REMOVED PRINT ON DIRECTIVE. THIS DIRECTIVE SHOULD
* NOT BE USED IN AN INCLUDED FILE. PRINTING SHOULD
* BE CONTROLLED AT THE SOURCE LEVEL, NOT WITH A
* DEPENDENCY. PLEASE DO NOT CHANGE THIS!!!!!!!
*
* ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥
*
* 3/1/89 RBM Change: Added equate for FILE_LIST_PTR on GS/OS direct page
* for a length of four bytes at location $2C.
*
* 5/30/89 BPA Change: Changed sys_version to $0300, v3.00 final.
*
* 2/19/90 GAB Change: Changed sys_version to $0302, v3.02 final for Cocoon build.
*
* 4/03/90 GAB Change: Changed sys_version to $8303, V3.03 prototype
*
* 8/07/90 GAB Change: Changed sys_version to $0303, V3.03 final for System Disk 5.0.3
*
* 8/23/90 GAB Change: Changed sys_version to $8304, V3.04 prototype
*
* 11/06/90 CAE Addition: Added equate for fst_error.
*
* 02/08/91 GAB Addition: File System ID equates.
*
* 2/07/92 GAB Change: Changed sys_version to $0400, V4.00 prototype (6.0)
*
*******************************************************************************
*
* 18-Feb-92 DAL Change: Changed sys_version to $8401, v4.01 prototype (6.1)
*
* 2-Mar-92 DAL Change: Changed sys_version to $0401, v4.01 final (6.0!)
*
* 6-Mar-92 DAL Change: Changed sys_version to $8402, v4.02 prototype (6.1)
*
* 2-Apr-93 SS Change: Changed sys_version to $0402, v4.02 final (6.0.1)
*
*******************************************************************************
eject
****************************************************************
*
* The following are direct page equates on the GS/OS
* direct page for driver usage.
*
****************************************************************
stack_top equ $00BFFF ; initial value of system stack pointer
direct_base equ $00BD00 ; base address of system direct page
gquit_stack_top equ $00BCFF ; start of GQuit's stack space
gquit_stack_end equ $00BB00 ; end of GQuit's stack space
drvr_start equ $0000 ; start location of driver parameters
gs_start equ $0030 ; start of GS/OS parameters
fst_start equ $0080 ; start of FST parameters
cache_wspace equ $005A ; beginning addr of cache mgr w/space
drvr_wspace equ $006A ; ***** NUKE THIS LATER ****
sup_wspace equ $006C ; supervisory driver workspace
drvr_dev_num equ drvr_start ; (w) device number
drvr_call_num equ drvr_dev_num+2 ; (w) call number
drvr_buf_ptr equ drvr_call_num+2 ; (lw) buffer pointer
drvr_slist_ptr equ drvr_call_num+2 ; (lw) buffer pointer
drvr_clist_ptr equ drvr_call_num+2 ; (lw) buffer pointer
boot_slot equ drvr_buf_ptr ; (w) boot slot for dispatcher only
dev_id_ref equ drvr_buf_ptr ; (w) indirect device ID
dev_char_config equ drvr_buf_ptr+2 ; (w) BASIC/Pascal1.1 configuration
dev_pro_config equ drvr_buf_ptr+4 ; (w) ProDOS configuration
drvr_req_cnt equ drvr_buf_ptr+4 ; (lw) request count
drvr_tran_cnt equ drvr_req_cnt+4 ; (lw) transfer count
drvr_blk_num equ drvr_tran_cnt+4 ; (lw) block number
drvr_blk_size equ drvr_blk_num+4 ; (w) block size
drvr_fst_num equ drvr_blk_size+2 ; (w) File System Translator Number
drvr_stat_code equ drvr_fst_num ; (b) status code for status call
drvr_ctrl_code equ drvr_fst_num ; (b) control code for control call
drvr_vol_id equ drvr_fst_num+2 ; (w) volume id
drvr_cache equ drvr_vol_id+2 ; (w) Cache Priority
drvr_cach_ptr equ drvr_cache+2 ; (lw) pointer to cached block
drvr_dib_ptr equ drvr_cach_ptr+4 ; (lw) pointer to active DIB
drvr_dev_ptr equ drvr_dib_ptr+4 ; (lw) pointer to device list
gen_drvr_ptr equ drvr_dev_ptr+4 ; (lw) pointer to generated driver list
fw_addr equ gen_drvr_ptr ; (lw) pointer to current slot
boot_user_id equ $6A ; (w) User ID of BOOT.DRIVER
eject
****************************************************************
*
* The following are equates used to access the device dispatcher
* file list structure.
*
****************************************************************
file_list_ptr equ gen_drvr_ptr+4 ; pointer to GS/OS file name list
file_entry_ptr equ $56 ; (lw) pointer to file list entry
file_filetype equ 0 ; (w) driver filetype
file_auxtype equ file_filetype+2 ; (w) driver auxtype
file_user_id equ file_auxtype+2 ; (w) driver user id
file_load_addr equ file_user_id+2 ; (lw) driver load address
file_name equ file_load_addr+4 ; (32) file name (32 bytes maximum)
file_restart equ file_name+32 ; (w) driver restart flag
file_dev_num equ file_restart+2 ; (w) driver base device number
****************************************************************
*
* Cache Manager Direct Page
*
****************************************************************
cache_cur_ptr equ cache_wspace ; (lw) pointer to current cache cell
cache_nxt_ptr equ cache_cur_ptr+4 ; (lw) pointer to next cache cell
cache_pre_ptr equ cache_nxt_ptr+4 ; (lw) pointer to prev cache cell
cache_bkt_ptr equ cache_pre_ptr+4 ; (lw) pointer to bucket list
default_cache_size equ $0040 ;16k is default cache size
****************************************************************
*
* Supervisory Driver Direct Page
*
****************************************************************
post_drvr_tbl equ sup_wspace ; (lw) for dynamic driver installation
sup_drvr_ptr equ sup_wspace+4 ; (lw) ptr to supervisor driver list
sib_ptr equ sup_drvr_ptr+4 ; (lw) ptr to SIB
sup_parm_ptr equ sib_ptr+4 ; (lw) ptr to supervisor parameters
****************************************************************
*
* The following are absolute zero page equates for use by
* slot resident firmware based ProDOS block device drivers.
*
****************************************************************
pcmd equ $0042 ; (b) ProDOS device command
punit equ $0043 ; (b) ProDOS unit number
pbuffer equ $0044 ; (w) ProDOS buffer address
pblock equ $0046 ; (w) ProDOS block number
****************************************************************
*
* The following are equates for driver command types.
*
****************************************************************
drvr_startup equ $0000 ; driver startup command
drvr_open equ $0001 ; driver open command
drvr_read equ $0002 ; driver read command
drvr_write equ $0003 ; driver write command
drvr_close equ $0004 ; driver close command
drvr_status equ $0005 ; driver status command
drvr_control equ $0006 ; driver control command
drvr_flush equ $0007 ; driver flush command
drvr_shutdn equ $0008 ; driver shutdown command
****************************************************************
*
* The following are equates for dispatcher command types.
*
****************************************************************
dsptch_bootinit equ $0000 ; dispatcher boot init command
get_dib_ptr equ $0001 ; return a drivers DIB pointer
dsptch_shutdn equ $0002 ; dispatcher shutdown command
****************************************************************
*
* GS/OS Direct Page Equates
*
****************************************************************
call_number equ gs_start ; FST call number
param_blk_ptr equ call_number+2 ; pointer to user's parameter block
dev_num equ param_blk_ptr+4 ; device number from parameter block
dev1_num equ dev_num ; alias name for dev_num
dev2_num equ dev1_num+2 ; second device number
path1_ptr equ dev2_num+2 ; ptr to 1st partial/entire pathname
fcr_ptr equ path1_ptr ; pointer to file control record
path2_ptr equ path1_ptr+4 ; ptr to 2nd partial/entire pathname
vcr_ptr equ path2_ptr ; pointer to volume control record
path_flag equ path2_ptr+4 ; flag for path information
* ;
* ; bit 14: 0 = pathname1 is null
* ; 14: 1 = pathname1 is non-null
* ;
* ; 06: 0 = pathname2 is null
* ; 06: 1 = pathname2 is non-null
* ;
span1 equ path_flag+2 ; largest distance between path1 term.
span2 equ span1+2 ; max dist. between seperators for path2
****************************************************************
*
* The following are equates for GS/OS error codes.
*
****************************************************************
no_error equ $00 ; no error has occured
bad_system_call equ $01 ; bad system call number
fst_load_fail equ $02 ; couldn't load FST
invalid_pcount equ $04 ; invalid parameter count
gsos_active equ $07 ; gsos already active
dev_not_found equ $10 ; device not found
invalid_dev_num equ $11 ; invalid device number
drvr_bad_req equ $20 ; bad request or command
drvr_bad_code equ $21 ; bad control or status code
drvr_bad_parm equ $22 ; bad call parameter
drvr_not_open equ $23 ; character device not open
drvr_prior_open equ $24 ; character device already open
irq_table_full equ $25 ; interrupt table full
drvr_no_resrc equ $26 ; resources not available
drvr_io_error equ $27 ; I/O error
drvr_no_dev equ $28 ; device not connected
drvr_busy equ $29 ; driver is busy & not available
drvr_wr_prot equ $2B ; device is write protected
drvr_bad_count equ $2C ; invalid byte count
drvr_bad_block equ $2D ; invalid block number
drvr_disk_sw equ $2E ; disk has been switched
drvr_off_line equ $2F ; device off line / no media present
bad_path_syntax equ $40 ; invalid pathname syntax
invalid_ref_num equ $43 ; invalid reference number
path_not_found equ $44 ; subdirectory does not exist
vol_not_found equ $45 ; volume not found
file_not_found equ $46 ;
dup_pathname equ $47 ; create or rename with existing name
volume_full equ $48 ;
vol_dir_full equ $49 ; volume directory full
version_error equ $4A ;
bad_store_type equ $4B ; bad storage type
end_of_file equ $4C ;
out_of_range equ $4D ; position out of range
invalid_access equ $4E ; access not allowed
buff_too_small equ $4F ; buffer too small
softerrorlow equ $50 ; errors from $50 to $6f are soft errors
file_busy equ $50 ; file is already open
dir_error equ $51 ; directory error
unknown_vol equ $52 ; unknown volume type
parm_range_err equ $53 ; parameter out of range
out_of_mem equ $54 ; out of memory
dup_volume equ $57 ; duplicate volume name
not_block_dev equ $58 ; not a block device
invalid_level equ $59 ; specified level outside legal range
damaged_bitmap equ $5A ; block number too large
bad_path_names equ $5B ; invalid pathnames for change_path
not_system_file equ $5C ; not an executable file
os_unsupported equ $5D ; operating system not supported
stack_overflow equ $5F ; too many applications on stack
data_unavail equ $60 ; data unavailable
end_of_dir equ $61 ; end of directory has been reached
invalid_class equ $62 ; invalid FST call class
res_not_found equ $63 ; file does not contain req. resource
invalid_fst_id equ $64 ; specified FST is not present in system
invalid_fst_op equ $65 ; FST does not handle this type of call
fst_caution equ $66 ; FST handled call, but result is weird
dup_device equ $67 ; used internally only!!!
dev_list_full equ $68 ; device list is full
sup_list_full equ $69 ; supervisor list is full
fst_error equ $6A ;generic FST error
softerrorhigh equ $6f ; maximum soft error number allowed
resource_exist equ $70 ;Cannot expand file, resource already exist
res_add_err equ $71 ;cannot add resource fork to this type file.
network_error equ $88 ;Generic network error.
*******************************************************************************
*
* Fatal Errors:
*
****************************************************************
unclaimed_irq equ $01 ; unclaimed interrupt
sd_scm_dealloc equ $02 ; deallocation error
sd_scm_alloc equ $03 ; allocation error
wrong_os_ver equ $11 ; wrong operating system version
bad_queue equ $77 ; the notification_queue is corrupted.
****************************************************************
*
* FST equates: to be removed when lou loader is working!!!!!!!!!
*
****************************************************************
char_fst_entry equ $095000 ;address of Character FST header
****************************************************************
*
* DRIVER Equates:
*
****************************************************************
drvr_dev_stat equ $0000 ; device status code
drvr_ctrl_stat equ $0001 ; return control parms
drvr_get_wait equ $0002 ; return wait/no-wait mode
drvr_get_format equ $0003 ; get format options
drvr_reset equ $0000 ; reset the device
drvr_format equ $0001 ; physically format the device
drvr_eject equ $0002 ; eject the media
drvr_set_ctrl equ $0003 ; set control parms
drvr_set_wait equ $0004 ; set wait/no-wait mode
drvr_set_format equ $0005 ; set format options
drvr_set_ptn equ $0006 ; assign partition owner
drvr_insert equ $0007 ; logical media insertion
****************************************************************
*
* System Service Table Equates:
*
****************************************************************
dev_dispatcher equ $01FC00 ;dev_dispatch (initialized by new dev dispatcher)
cache_find_blk equ $01FC04 ;cash_find
cache_add_blk equ $01FC08 ;cash_add
cache_init equ $01FC0C ;cache initialization
cache_shutdn equ $01FC10 ;cash_shutdown
cache_del_blk equ $01FC14 ;cash_delete
cache_del_vol equ $01FC18 ;cash_del_vol
alloc_seg equ $01FC1C ;alloc_zero
release_seg equ $01FC20 ;deallocate
alloc_vcr equ $01FC24 ;allocvcr
release_vcr equ $01FC28 ;releasevcr
alloc_fcr equ $01FC2C ;allocfcr
release_fcr equ $01FC30 ;releasefcr
swap_out equ $01FC34 ;swapout
deref equ $01FC38 ;deref2
get_sys_gbuf equ $01FC3C ;s_get_sys_gbuf
sys_exit equ $01FC40 ;s_sys_exit
sys_death equ $01FC44 ;s_sys_death
find_vcr equ $01FC48 ;findvcr
find_fcr equ $01FC4C ;findfcr
set_sys_speed equ $01FC50 ;set system speed (initialized by new dev dispatcher)
cache_flsh_def equ $01FC54 ;flush deferred blocks from cache
rename_vcr equ $01FC58 ;renamevcr
rename_fcr equ $01FC5C ;renamefcr
get_vcr equ $01FC60 ;getvcr
get_fcr equ $01FC64 ;getfcr
lock_mem equ $01FC68 ;lockmem
unlock_mem equ $01FC6C ;unlockmem
move_info equ $01FC70 ;block move routines
cvt_0to1 equ $01FC74 ;cvt0to1
cvt_1to0 equ $01FC78 ;cvt1to0
replace_80 equ $01FC7C ;replace80
to_b0_core equ $01FC80 ;to_bank0_core
gen_dispatch equ $01FC84 ;g_dispatch
signal equ $01FC88 ;signal_event
get_sys_buf equ $01FC8C ;get_b0_buf
set_disksw equ $01FC90 ;set_disk_sw (initialized by new dev dispatcher)
report_error equ $01FC94 ;s_report_error
mount_message equ $01FC98 ;s_mount_msg
full_error equ $01FC9C ;s_full_error
report_fatal equ $01FCA0 ;s_report_fatal
sup_drvr_disp equ $01FCA4 ;supervisory dispatcher
install_driver equ $01FCA8 ;install device driver
get_boot_pfx equ $01FCAC ;s_get_boot_pfx
set_boot_pfx equ $01FCB0 ;s_set_boot_pfx
alloc_cache_seg equ $01FCB4 ;low_allocate
get_stked_id equ $01FCB8 ;get id of prog at top of GQUIT stack
dyn_slot_arbiter equ $01FCBC ;slot arbitration routine (initialized by new dev dispatcher)
parse_pathname equ $01FCC0 ;parse a pathname
post_os_event equ $01FCC4 ;notify external code about os event.
dynamic_install equ $01FCC8 ;install drivers (new init by SCM to JML INSERT_DRIVER)
dev_mgr_svc equ $01FCCC ;device manager entry (initialized by new dev dispatcher)
old_dev_disp equ $01FCD0 ;old device dispatcher (new init by SCM to JML DEV_DISPATCH)
init_parse_path equ $01FCD4 ;initialize for parse_path.
****************************************************************
*
* Volume Control Record (VCR) Equates
*
****************************************************************
vcr_size equ 18 ;Currently 18 bytes in length
vcr_id equ $0000 ;offset to volume ID
vcr_name equ vcr_id+2 ;offset to volume name pointer
vcr_status equ vcr_name+4 ;offset volume status
vcr_open_cnt equ vcr_status+2 ;offset to number of open files on vol.
vcr_fst_id equ vcr_open_cnt+2 ;offset to owner ID number
vcr_dev equ vcr_fst_id+2 ;offset to where volume was last seen
vcr_fst_ptr equ vcr_dev+2 ;offset to where volume was last seen
vcr_swapped equ $4000 ;FLAG:Volume is swapped out (1 = true)
vcr_swapped_in equ $BFFF ;FLAG:Volume is swapped in
vcr_wr_enable equ $2000 ;FLAG:Volume has been seen write enabled
vcr_wr_unknown equ $DFFF ;FLAG:Volume has not been seen wrenbld
****************************************************************
*
* File Control Record Equates:
*
****************************************************************
fcr_ref_num equ $0000
fcr_path_name equ fcr_ref_num+2
fcr_fst_id equ fcr_path_name+4
fcr_vol_id equ fcr_fst_id+2
fcr_level equ fcr_vol_id+2
fcr_newline equ fcr_level+2
fcr_newline_len equ fcr_newline+4
fcr_mask equ fcr_newline_len+2
fcr_access equ fcr_mask+2
;--------------------------------------------------------------------------
; cache header equates
;
; Copyright (c) 1987 Apple Computer Inc. All rights reserved.
; author: Ray (Rowdy Yates) Chiang
;--------------------------------------------------------------------------
c_lru_fwd equ $0000 ;vp to forward LRU vp link
c_lru_bwd equ c_lru_fwd+4 ;vp to backward LRU vp link
c_bkt_fwd equ c_lru_bwd+4 ;vp to forward bucket vp link
c_bkt_bwd equ c_bkt_fwd+4 ;vp to backward bucket vp link
c_blknum equ c_bkt_bwd+4 ;block number of cached block
c_blksize equ c_blknum+4 ;block size of cached block
c_fstnum equ c_blksize+2 ;FST number of cached block
c_volumeid equ c_fstnum+2 ;volume id of cached block
c_devnum equ c_volumeid+2 ;device number of cached block
c_priority equ c_devnum+2 ;cache priority
c_cellsize equ c_priority+2 ;size of this cache cell
c_reserved equ c_cellsize+2 ;reserved
c_headerlen equ c_reserved+4 ;length of cache header
c_cached_data equ c_reserved+4 ;offset to cached data block
;--------------------------------------------------------------------------
; general and miscellaneous equates
;--------------------------------------------------------------------------
ram_cache_size equ $0081 ;battery ram location for this
star_pfx_num equ 32 ;Prefix #32 is the star prefix
sys_version equ $0402 ;Version 4.02 final
debug_calls equ $0000 ;Turn off debugging calls
debug_type equ $0010 ;Highest numbered type
****************************************************************
*
* Parameter Block Equates
*
****************************************************************
pblk_09_pfxnum equ $0000 ;Set and Get Prefix
pblk_09_pname equ $0002
pblk_0E_pname1 equ $0000 ;Expand Path
pblk_0E_pname2 equ $0004
pblk_14_refnum equ $0000 ;Close and Flush
pblk_1a_level equ $0000 ;Set and Get Level
pblk_1a_flags equ $0002 ;Set and Get Level flags.
pblk_28_pname equ $0000 ;Get Boot Volume
pblk_2a_version equ $0000 ;Get Version Number
pblk_37_pfxnum equ $0000 ;Get_Std_Ref_Num.
pblk_37_refnum equ $0002
*****************************************************************
*
* Emulation mode stack pointer
*
*****************************************************************
emulstack equ $010100
*****************************************************************
*
* command word for the moveinfo routine
*
*****************************************************************
moveblkcmd equ $0800 ;tell hardware to do block move option
; the movevaliditymask is a mask used to determine if a user's command word
; is using any invalid (reserved bits or not). this value changes as reserved
; bits become active!!!!!!!
movevaliditymask equ $f7f0 ;invalid move if any of these bits =1
; most common command
move_sinc_dinc equ $05+moveblkcmd ;source incs - destination incs
; less common commands
move_sinc_ddec equ $09+moveblkcmd ;source incs - destination decs
move_sdec_dinc equ $06+moveblkcmd ;source decs - destination incs
move_sdec_ddec equ $0a+moveblkcmd ;source decs - destination decs
move_scon_dcon equ $00+moveblkcmd ;source constant - destination constant
move_sinc_dcon equ $01+moveblkcmd ;source incs - destination constant
move_sdec_dcon equ $02+moveblkcmd ;source decs - destination constant
move_scon_dinc equ $04+moveblkcmd ;source constant - destination incs
move_scon_ddec equ $08+moveblkcmd ;source constant - destination decs
*****************************************************************
*
* GS/OS event codes
*
*****************************************************************
switch_to_p8 equ $00000002 ;Switch from GS/OS to P8.
switch_to_gsos equ $00000004 ;Switch from P8 to GS/OS.
disk_insert equ $00000008 ;Disk inserted.
disk_eject equ $00000010 ;Disk ejected.
gsos_shutdown equ $00000020 ;OS shutdown.
volume_change equ $00000040 ;Volume changed.
*****************************************************************
*
* GS/OS globals (Grows downwards from $00b9ff)
*
*****************************************************************
session_stat equ $00b9fe ;$0000 = no session in progress
;$0001 = session in progress
current_speed equ $00b9fc
post_index equ $00b9fa ;# drivers remaining to install.
char_dev_flag equ $00b9f8 ;non-zero if get_dnum finds
;character device.
sys_prefs equ $00b9f6 ;System behavior preferences
;bit 15=0 MOUNT procedure will not
; display mount dialog. It
; will respond as if user had
; selected Cancel in mount
; dialog.
; =1 MOUNT procedure will display
; mount dialog and return user
; response.
;bit 14=0 MOUNT dialog will have cancel
; button.
; =1 MOUNT dialog will not have
; cancel button.
;bit 13=0 Error dialogs (dialogs with
; only one button) will not be
; suppressed.
; =1 Error dialogs will be
; suppressed.
;
;bits 12:0 reserved for Apple
fst_tbl_ptr equ $00b9f2 ;Set by SCM to point to fst table.
dev_start_flag equ $00b9f0 ;set to non zero during device dispatcher
;startup.
;>>>>>>>>> !!! NOTE !!! <<<<<<<<<<<<<
;This equate defines the end of the
globals_end equ $00b9ee ;globals space and MUST be moved down
;each time something is added to the
;globals.
;>>>>>>>>> !!! NOTE !!! <<<<<<<<<<<<<
****************************************************************************************************
*
* File System ID equates
*
****************************************************************************************************
proDOSFSID EQU $0001 ; ProDOS/SOS
dos33FSID EQU $0002 ; DOS 3.3
dos32FSID EQU $0003 ; DOS 3.2
dos31FSID EQU $0003 ; DOS 3.1
appleIIPascalFSID EQU $0004 ; Apple II Pascal
mfsFSID EQU $0005 ; Macintosh (flat file system)
hfsFSID EQU $0006 ; Macintosh (hierarchical file system)
lisaFSID EQU $0007 ; Lisa file system
appleCPMFSID EQU $0008 ; Apple CP/M
charFSTFSID EQU $0009 ; Character FST
msDOSFSID EQU $000A ; MS/DOS
highSierraFSID EQU $000B ; High Sierra
iso9660FSID EQU $000C ; ISO 9660
appleShareFSID EQU $000D ; ISO 9660