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

### Build Script for Mark Twain 'FF' ROM ###
#
# Usage: BuildFFROM
#
#
# ASSUMPTION: All subdirectories containing GSFirmware source are in the
# directory containing this script file.
#
# The following Code permits this script to be executed from anywhere,
# and
# for subsidiary scripts to do anything they want to the directory prefixes
# WITHOUT messing up the overall build.
#
# CREDITS: Jim Mensch for the regular expression in the "evaluate" below
set myparent `files -f {Command}`
(evaluate "{myparent}" =~ /(([Â:]*:)+)¨1[Â:]*/ ) > Dev:Null
set myparent "{¨1}"
IF "{myparent}" == ""
echo "*** ERROR: Script buildFFROM can NOT determine its home directory!"
exit
END
set startTime `Date -n`
directory {myparent}
echo " "
directory {myparent}SmartPort:
BuildProgram {Parameters} SmartPort
echo " "
directory {myparent}Applesoft:
BuildProgram {Parameters} Applesoft
echo " "
directory {myparent}Monitor:
BuildProgram {Parameters} Monitor
echo " "
directory {myparent}Diagnostics:
BuildProgram {Parameters} Diagnostics
echo " "
directory {myparent}AD3.5Driver:
BuildProgram {Parameters} AD35Driver
echo " "
directory {myparent}Serial:
BuildProgram {Parameters} Serial
echo " "
directory {myparent}ATALK:
BuildProgram {Parameters} ATALK
echo " "
directory {myparent}
echo Combining the Mark Twain $FF ROM segments
date -a
echo Fill the ROM image with zeros...
filliigs {myparent}ROM:rom.ff -c -s $10000
echo Overlaying Diagnostics...
overlayiigs {myparent}bin:diag.bin {myparent}ROM:rom.ff -a $6400
echo Overlaying Monitor...
overlayiigs {myparent}bin:monitor.bin {myparent}ROM:rom.ff -a $7600
echo Overlaying Serial...
overlayiigs {myparent}bin:C1xx.bin {myparent}ROM:rom.ff -a $C100
overlayiigs {myparent}bin:C2xx.bin {myparent}ROM:rom.ff -a $C200
overlayiigs {myparent}bin:serial.bin {myparent}ROM:rom.ff -a $0000
echo Overlaying AppleTalk...
overlayiigs {myparent}bin:atpatch.bin {myparent}ROM:rom.ff -a $1C06
overlayiigs {myparent}bin:c7xx.bin {myparent}ROM:rom.ff -a $C700
echo Overlaying AD3.5Driver...
overlayiigs {myparent}bin:C5xx.bin {myparent}ROM:rom.ff -a $C500
overlayiigs {myparent}bin:Smartport.bin {myparent}ROM:rom.ff -a $5600
overlayiigs {myparent}bin:AD35drvr.bin {myparent}ROM:rom.ff -a $3400
echo Overlaying Applesoft...
overlayiigs {myparent}bin:Applesoft.bin {myparent}ROM:rom.ff -a $D000
## echo Finishing up...
## not in ROM 04 overlayiigs {myparent}bin:appleTwo0.bin {myparent}ROM:rom.ff -a $1000
## not in ROM 04 overlayiigs {myparent}bin:appleTwo1.bin {myparent}ROM:rom.ff -a $1D00
### Now combine the two 64K pieces into one 128K piece ###
### The FE/FF image is reversed due to hardware design ##
Echo Combine the $FE and $FF banks...
duplicate {myparent}ROM:rom.ff {myparent}ROM:rom.fe.and.ff -y
overlayiigs {myparent}ROM:rom.fe {myparent}ROM:rom.fe.and.ff -a $10000
directory {myparent}
# This executes the tool that calculates and inserts the ROM checksum
# It assumes the input filename is rom.fe.and.ff AND
# it assumes that the $FF bank begins at $00000 and the $FE bank begins at $10000
{myparent}TSCsum {myparent}ROM
date -a
Echo Done!
set endTime `Date -n`
echo " "
echo '# '`Date -t` ----- Build Completed in ¶
`Evaluate {endTime} - {startTime}` seconds.
directory {myparent}