mirror of
https://github.com/marketideas/qasm.git
synced 2026-10-24 22:02:28 +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
3.4 KiB
Plaintext
1 line
3.4 KiB
Plaintext
# GSOSlink
|
|
# By Bryan Atsatt
|
|
#
|
|
# This file links and builds the following files:
|
|
#
|
|
# GS.OS
|
|
# START.GS.OS
|
|
# ERROR.MSG
|
|
|
|
#
|
|
# Link everybody...
|
|
#
|
|
unset LnkOptions
|
|
if "{ListFlag}" || "{ListPartFlag}"
|
|
set LnkOptions "-l > {Listings}os.symbols"
|
|
end
|
|
|
|
linkiigs -apw -o {WorkFolder}scm.lnk {LnkOptions} ¶
|
|
-lseg scm_seg_0 # becomes scm.bin ¶
|
|
{Object}scm.obj(@start_seg0) ¶
|
|
{Object}scm.obj(@oscall_seg) ¶
|
|
{Object}scm.obj(@end_seg0) ¶
|
|
-lseg scm_seg_1 # becomes scm.bin.2 ¶
|
|
{Object}scm.obj(@start_seg1) ¶
|
|
{Object}scm.obj(@misc_seg) ¶
|
|
{Object}scm.obj(@end_seg1) ¶
|
|
-lseg scm_seg_2 # becomes scm.bin.3 ¶
|
|
{Object}scm.obj(@start_seg2) ¶
|
|
{Object}scm.obj(@scm_main) ¶
|
|
{Object}scm.obj(@end_seg2) ¶
|
|
-lseg scm_seg_3 # becomes scm.bin.4 ¶
|
|
{Object}scm.obj(@start_seg3) ¶
|
|
{Object}scm.obj(@system_svc) ¶
|
|
{Object}scm.obj(@end_seg3) ¶
|
|
-lseg scm_seg_4 # becomes scm.bin.5 ¶
|
|
{Object}scm.obj(@start_seg4) ¶
|
|
{Object}scm.obj(@bank_e1) ¶
|
|
{Object}scm.obj(@end_seg4) ¶
|
|
-lseg b00segr # becomes scm.bin.6 ¶
|
|
{Object}b00segr.s.obj ¶
|
|
{Object}bank0.obj ¶
|
|
{Object}b00segr.e.obj ¶
|
|
-lseg be0segr # becomes scm.bin.7 ¶
|
|
{Object}be0segr.s.obj ¶
|
|
{Object}device.dispatcher.obj ¶
|
|
{Object}be0segr.e.obj ¶
|
|
-lseg gquit.1 # becomes scm.bin.8 ¶
|
|
{Object}gquit.obj(@seg_gldr) ¶
|
|
-lseg gquit.2 # becomes scm.bin.9 ¶
|
|
{Object}gquit.obj(@seg_b0) ¶
|
|
-lseg gquit.3 # becomes scm.bin.10 ¶
|
|
{Object}gquit.obj(@seg_e1) ¶
|
|
-lseg gquit.4 # becomes scm.bin.11 ¶
|
|
{Object}gquit.obj(@seg_e0) ¶
|
|
-lseg cache # becomes scm.bin.12 ¶
|
|
{Object}cache.obj ¶
|
|
-lseg init.1 # becomes scm.bin.13 ¶
|
|
{Object}init1.obj ¶
|
|
-lseg init.2 # becomes scm.bin.14 ¶
|
|
{Object}init2.obj ¶
|
|
-lseg init.3 # becomes scm.bin.15 ¶
|
|
{Object}init3.obj ¶
|
|
-lseg init.4 # becomes scm.bin.16 ¶
|
|
{Object}init4.obj ¶
|
|
-lseg terminator # becomes scm.bin.17 ¶
|
|
{Object}scm.obj(@terminator)
|
|
#
|
|
# Make binary...
|
|
#
|
|
makebiniigs {WorkFolder}scm.lnk -o {WorkFolder}scm.bin
|
|
|
|
#
|
|
# Create "START.GS.OS" from binary...
|
|
#
|
|
catenate {WorkFolder}scm.bin.8 > {SDsystem}start.gs.os
|
|
catenate {WorkFolder}scm.bin.9 >> {SDsystem}start.gs.os
|
|
catenate {WorkFolder}scm.bin.10 >> {SDsystem}start.gs.os
|
|
catenate {WorkFolder}scm.bin.11 >> {SDsystem}start.gs.os
|
|
|
|
#
|
|
# Set filetype and auxtype...
|
|
#
|
|
set exit 0; echo "foo" | rez -o {SDsystem}start.gs.os -m -c pdos -t $70f90007 ³ dev:null; set exit 1
|
|
|
|
#
|
|
# Set the mod time to the current time
|
|
#
|
|
setfile -m . {SDsystem}start.gs.os
|
|
|
|
#
|
|
# Create "GS.OS" from binary...
|
|
#
|
|
catenate {WorkFolder}loader > {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin >> {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin.2 >> {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin.3 >> {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin.4 >> {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin.5 >> {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin.6 >> {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin.7 >> {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin.12 >> {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin.13 >> {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin.14 >> {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin.15 >> {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin.16 >> {SDsystem}gs.os
|
|
catenate {WorkFolder}scm.bin.17 >> {SDsystem}gs.os
|
|
|
|
#
|
|
# Set filetype and auxtype...
|
|
#
|
|
set exit 0; echo "foo" | rez -o {SDsystem}gs.os -m -c pdos -t $70f90000 ³ dev:null; set exit 1
|
|
|
|
#
|
|
# Set the mod time to the current time
|
|
#
|
|
setfile -m . {SDsystem}gs.os
|