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.3 KiB
Lua

#####################################################################################
# P8 Makefile
# By Bryan Atsatt
# from original by Grady Ward
# 06 Dec 88
#
#
# Modification history:
#
# Date Who What
# ------ --- -----------------------------------------------------------------
# 1/25/89 Monte Benaresh
# 06/14/90 GAB Included dependencies and build instructions for the new Quit code
# 08/22/90 GAB Included dependencies and build instructions for GQuit's dispatcher
#
#####################################################################################
DriverDir = "{P8}"P8.Drivers:
"{SDSystem}"p8 Ä "{Makefiles}"make.p8 ¶
"{workfolder}"cclock.bin ¶
"{workfolder}"tclock.bin ¶
"{workfolder}"ram.bin ¶
"{workfolder}"sel.bin ¶
"{workfolder}"sel.alt.bin ¶
"{workfolder}"QuitCode.bin ¶
"{workfolder}"xrwtot.bin ¶
"{workfolder}"ProdosBIN
OverlayIIGS "{workfolder}"ram.bin.2 "{workfolder}"ProdosBIN -a $0c80 # /RAM driver installer
OverlayIIGS "{workfolder}"ram.bin.3 "{workfolder}"ProdosBIN -a $0d00 # /Ram Main Bank driver
OverlayIIGS "{workfolder}"ProdosBIN.4 "{workfolder}"ProdosBIN -a $0d9B # page $FF interrupt handlers
OverlayIIGS "{workfolder}"ProdosBIN.2 "{workfolder}"ProdosBIN -a $0e00 # Global page
OverlayIIGS "{workfolder}"TClock.bin "{workfolder}"ProdosBIN -a $0f00 # Thunderclock driver
OverlayIIGS "{workfolder}"cclock.bin "{workfolder}"ProdosBIN -a $0f80 # GS Clock driver
OverlayIIGS "{workfolder}"ProdosBIN.3 "{workfolder}"ProdosBIN -a $1000 # Kernal
OverlayIIGS "{workfolder}"ram.bin "{workfolder}"ProdosBIN -a $3100 # /RAM Aux Bank driver
OverlayIIGS "{workfolder}"xrwtot.bin "{workfolder}"ProdosBIN -a $3300 # Disk ][ driver
OverlayIIGS "{workfolder}"sel.bin "{workfolder}"ProdosBIN -a $3a00 # _Quit call handler
OverlayIIGS "{workfolder}"QuitCode.bin "{workfolder}"ProdosBIN -a $3d00 # Better Bye _Quit call handler
OverlayIIGS "{workfolder}"SEL.alt.bin "{workfolder}"ProdosBIN -a $4000 # GQuit program loader and launcher (alternate quit code)
setfile -c pdos -t "FF " -m . "{workfolder}"ProdosBIN
duplicate -y "{workfolder}"ProdosBIN "{SDSystem}"p8
"{workfolder}"ProdosBIN Ä "{Makefiles}"make.p8 "{p8}"mlisrc.aii
if "{ListFlag}"; Set AsmOptions "-l -m -lo ¶"{Listings}¶"P8.lst"; end
AsmIIGS "{p8}"mlisrc.aii -o "{object}"mlisrc.obj {asmoptions}
linkiigs -t "06 " ¶
-lseg PROCONE -org $002000 "{object}"mlisrc.obj(PROCONE) ¶
-lseg PROCTWO -org $00BF00 "{object}"mlisrc.obj(PROCTWO) ¶
-lseg PROCTHREE -org $00DE00 "{object}"mlisrc.obj(PROCTHREE) ¶
-lseg PROCFOUR -org $00FF9B "{object}"mlisrc.obj(PROCFOUR) ¶
-o "{workfolder}"mli.out {lnkoptions}
MakeBinIIgs "{workfolder}"mli.out -o "{workfolder}"ProdosBIN
"{workfolder}"cclock.bin Ä "{Makefiles}"make.p8 "{DriverDir}"cclock.n
if "{ListFlag}"; Set AsmOptions "-l -m -lo ¶"{Listings}¶"CClock.lst"; end
AsmIIGS "{DriverDir}"cclock.n -o "{object}"cclock.n.obj {asmoptions}
linkiigs "{object}"cclock.n.obj -org $d742 -o "{workfolder}"cclock.out
MakeBinIIgs "{workfolder}"cclock.out -o "{workfolder}"cclock.bin
"{workfolder}"tclock.bin Ä "{Makefiles}"make.p8 "{DriverDir}"tclock.n
if "{ListFlag}"; Set AsmOptions "-l -m -lo ¶"{Listings}¶"tclock.lst"; end
AsmIIGS "{DriverDir}"tclock.n -o "{object}"TClock.n.obj {asmoptions}
linkiigs "{object}"tclock.n.obj -org $d742 -o "{workfolder}"tclock.out
MakeBinIIgs "{workfolder}"tclock.out -o "{workfolder}"tclock.bin
"{workfolder}"ram.bin Ä "{Makefiles}"make.p8 "{DriverDir}"ram.n
if "{ListFlag}"; Set AsmOptions "-l -m -lo ¶"{Listings}¶"Ram.lst"; end
AsmIIGS "{DriverDir}"ram.n -o "{object}"ram.n.obj {asmoptions}
linkiigs -o "{workfolder}"ram.out ¶
-lseg RAM1 -org $000200 "{object}"ram.n.obj(RAM1) ¶
-lseg RAM2 -org $002C80 "{object}"ram.n.obj(RAM2) ¶
-lseg RAM3 -org $00FF00 "{object}"ram.n.obj(RAM3) ¶
{lnkoptions}
makebiniigs "{workfolder}"ram.out -o "{workfolder}"ram.bin
"{workfolder}"sel.bin Ä "{Makefiles}"make.p8 "{DriverDir}"sel.n
if "{ListFlag}"; Set AsmOptions "-l -m -lo ¶"{Listings}¶"Sel.lst"; end
AsmIIGS "{DriverDir}"sel.n -o "{object}"sel.n.obj {asmoptions}
linkiigs "{object}"sel.n.obj -org $1000 -o "{workfolder}"sel.out
makebiniigs "{workfolder}"sel.out -o "{workfolder}"sel.bin
"{workfolder}"sel.alt.bin Ä "{Makefiles}"make.p8 "{DriverDir}"sel.alt.n
if "{ListFlag}"; Set AsmOptions "-l -m -lo ¶"{Listings}¶"Sel.Alt.lst"; end
AsmIIGS -i ""{Common}"" "{DriverDir}"sel.alt.n -o "{object}"sel.alt.obj {asmoptions}
LinkIIGS "{object}"sel.alt.obj -org $1000 -o "{workfolder}"sel.alt.out -t "06 "
MakeBinIIGS "{workfolder}"sel.alt.out -o "{workfolder}"sel.alt.bin
"{workfolder}"xrwtot.bin Ä "{Makefiles}"make.p8 "{DriverDir}"xrwtot.n
if "{ListFlag}"; Set AsmOptions "-l -m -lo ¶"{Listings}¶"XrwTot.lst"; end
AsmIIGS "{DriverDir}"xrwtot.n -o "{object}"xrwtot.n.obj {asmoptions}
linkiigs "{object}"xrwtot.n.obj -org $D000 -o "{workfolder}"xrwtot.out
makebiniigs "{workfolder}"xrwtot.out -o "{workfolder}"xrwtot.bin
"{workfolder}"QuitCode.bin Ä "{DriverDir}"QuitCode.aii ¶
"{DriverDir}"M16.P8 ¶
"{DriverDir}"E16.8Bit ¶
"{DriverDir}"E16.P8
if "{ListFlag}"; Set AsmOptions "-l -m -lo ¶"{Listings}¶"QuitCode.lst"; end
AsmIIGS "{DriverDir}"QuitCode.aii -i "{DriverDir}" -o "{Object}"QuitCode.obj {asmoptions}
LinkIIGS "{Object}"QuitCode.obj -o "{workfolder}"QuitCode.out
MakeBinIIGS "{workfolder}"QuitCode.out -o "{workfolder}"QuitCode.bin