mirror of
https://github.com/marketideas/qasm.git
synced 2026-10-25 13:02:45 +00:00
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.
1 line
2.7 KiB
Plaintext
1 line
2.7 KiB
Plaintext
TITLE ', Direct Page Usage'
|
|
|
|
include 'DP.a' ;in a separate file so LoadDump.DA can use it too
|
|
|
|
|
|
TITLE ', Global variables'
|
|
;====================================================================================================
|
|
;Local Data used by ExpressLoad.
|
|
;====================================================================================================
|
|
Globals Record
|
|
LoadSegCheck
|
|
|
|
boot_flag dc.w 'GB' ;reset to 0 after initial boot
|
|
|
|
dp_handle dc.l 00 ;saves the handle to our direct page
|
|
my_dir_page dc.w 00 ;my direct page
|
|
|
|
return_addr ds.b 03 ;return addresses to caller
|
|
return_addr2 ds.b 03
|
|
apps_dir_page dc.w 00
|
|
data_bank dc.w 00 ;holds the data bank for the tool call
|
|
users_prefs dc.w $00
|
|
|
|
; the following variables are used by JumpLoad and therefore MUST remain in
|
|
; normal memory (as opposed to direct page).
|
|
|
|
save_a dc.w 00
|
|
save_x dc.w 00
|
|
save_y dc.w 00
|
|
starting_addr ds.l 1
|
|
|
|
*
|
|
****************************************************************
|
|
*
|
|
* System Loader Globals
|
|
*
|
|
****************************************************************
|
|
*
|
|
Loader_Globals
|
|
;
|
|
; handles to Loader tables
|
|
;
|
|
SEGTBL ds.l 1 ;Handle to Memory Segment Table
|
|
JMPTBL ds.l 1 ;Handle to Segment Jump Table
|
|
PATHTBL ds.l 1 ;Handle to Pathname Table
|
|
USERID ds.w 1 ;Active Application UserID
|
|
;
|
|
; Loader Buffers
|
|
;
|
|
Header ds SegmentHeader ;fixed portion of Segment Header (up to DISPDATA)
|
|
Header_Var ds.l 1 ;pointer to variable portion of Segment Header
|
|
Record ds.b 16 ;OMF record buffer (must be > max load record size)
|
|
File_Buff ds.l 1 ;Address of File Buffer
|
|
File_Buff_Size ds.w 1 ;Size of File Buffer
|
|
File_Pt ds.w 1 ;File Buffer Pointer
|
|
File_EOB ds.w 1 ;File Buffer EOB
|
|
File_Mark ds.l 1 ;File Mark
|
|
Header_Mark ds.l 1 ;Segment Header File Mark
|
|
;
|
|
; ProDOS packets
|
|
;
|
|
POpen ds openParms ;Open packet
|
|
PRead ds readParms ;Read packet
|
|
PGetMark ds markParms ;Get Mark packet
|
|
PSetMark ds markParms ;Set Mark packet
|
|
PExpandPath ds expandParms ;Expand Path packet
|
|
PSysPrefs ds sysPrefsParms ;Get/Set System Preferences packet
|
|
PGetLevel ds levelParms ;Get system file level
|
|
PSetLevel ds levelParms ;Set system file level
|
|
PGetRefNum ds getRefNumParms ;Get reference number
|
|
PGetFileInfo ds getFileInfoParms ;Get File Information
|
|
;
|
|
; End of Globals
|
|
;
|
|
Last_Global
|
|
EndR
|
|
|
|
dir_page_buffer record
|
|
LoadSegCheck
|
|
ds.b DirectPage.dir_page_size+2 ;holds my direct page
|
|
endr
|
|
|
|
express_name record
|
|
LoadSegCheck
|
|
string pascal
|
|
dc.b 'EXPRESSLOAD'
|
|
string asis
|
|
endr
|
|
|
|
tilda_name record
|
|
LoadSegCheck
|
|
string pascal
|
|
dc.b '~EXPRESSLOAD'
|
|
string asis
|
|
endr
|
|
|
|
jump_load_instr record
|
|
LoadSegCheck
|
|
import JumpLoad
|
|
dc.b $22 ;JSL
|
|
dc.a JumpLoad ;address of Jump Load routine
|
|
endr
|