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

DataSegment RECORD
IMPORT MyDraw
EXPORT DIalogTable
EXPORT GetDialog640
EXPORT GetDialog320
EXPORT PutDialog640
EXPORT PutDialog320
EXPORT ListManagerRec
**********************************************************************
* Table of Dialogs. Index is GetPutFlag created in Newsf.aii.
* d0:640/320 mode. 0 = 640, 1 = 320
* d1:Get/Put flag. 0 = Get, 1 = Put
**********************************************************************
DialogTable dc.l GetDialog640, GetDialog320, PutDialog640, PutDialog320
*********************************************************************
* GetFile DIalog Data record, 08-June-1988 *
*********************************************************************
GetDialog640
* dc.w 40,320-200,154,320+200 ; drect of dialog (640 mode) recommended
dc.w 0,0,114,400 ; drect of dialog (640 mode) recommended
dc.w -1
dc.w 0,0 ; reserved word
dc.l OpenBut640
dc.l CloseBut640
dc.l NextBut640 ; volumes popup
dc.l CancelBut640
dc.l Scroll640 ; dummy item for compatability
dc.l Path640
dc.l Files640
dc.l Prompt640
dc.l 0
OpenBut640
dc.w 1 ;item #
dc.w 61,265,73,375 ;drect
dc.w ButtonItem ;type of item
dc.l OpenStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
CloseBut640
dc.w 2 ;item #
dc.w 79,265,91,375 ;drect
dc.w ButtonItem ;type of item
dc.l CloseStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
NextBut640
dc.w 3 ;item #
dc.w 25,265,37,375 ;drect
dc.w ButtonItem ;type of item
dc.l DriveStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
CancelBut640
dc.w 4 ;item #
dc.w 97,265,109,375 ;drect
dc.w ButtonItem ;type of item
dc.l CancelStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
Scroll640 ;dummy item or ACCEPT button for multi
dc.w 5 ;item #
dc.w 43,265,55,375 ;drect
dc.w ButtonItem ;type of item
dc.l AcceptStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
Path640
dc.w 6 ;item #
dc.w 12,15,24,395 ;drect
dc.w UserItem ;type
dc.l PathDraw ;Item descriptor
dc.w 0,0 ;Item value and bit flags
dc.l 0 ;color table
Files640
dc.w 7 ;item #
dc.w 25,18,107,215 ;drect
dc.w UserItem+ItemDisable ;type
dc.l 0 ;Item descriptor
dc.w 0,0 ;Item value and bit flags
dc.l 0 ;color table
Prompt640
dc.w 8 ;item #
dc.w 03,15,12,395 ;drect
dc.w StatText+ItemDisable ;type
dc.l 0 ;Item descriptor
dc.w 0 ;size of text
dc.w 0 ;Bit flags
dc.l 0 ;color table
GetDialog320
dc.w 0,0,114,260 ; drect of dialog (320 mode)
dc.w -1
dc.w 0,0 ; reserved word
dc.l OpenBut320
dc.l CloseBut320
dc.l NextBut320 ; volumes popup
dc.l CancelBut320
dc.l Scroll320 ; dummy item
dc.l Path320
dc.l Files320
dc.l Prompt320
dc.l 0
OpenBut320
dc.w 1 ;item #
dc.w 61,160,73,255 ;drect
dc.w ButtonItem ;type of item
dc.l OpenStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
CloseBut320
dc.w 2 ;item #
dc.w 79,160,91,255 ;drect
dc.w ButtonItem ;type of item
dc.l CloseStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
NextBut320
dc.w 3 ;item #
dc.w 25,160,37,255 ;drect
dc.w ButtonItem ;type of item
dc.l DriveStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
CancelBut320
dc.w 4 ;item #
dc.w 97,160,109,255 ;drect
dc.w ButtonItem ;type of item
dc.l CancelStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
Scroll320 ;dummy item or ACCEPT button for Multi
dc.w 5 ;item #
dc.w 43,160,55,255 ;drect
dc.w ButtonItem ;type of item
dc.l AcceptStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
Path320
dc.w 6 ;item #
dc.w 12,06,24,256 ;drect
dc.w UserItem ;type
dc.l PathDraw ;Item descriptor
dc.w 0,0 ;Item value and bit flags
dc.l 0 ;color table
Files320
dc.w 7 ;item #
dc.w 25,05,107,140 ;drect
dc.w UserItem+ItemDisable ;type
dc.l 0 ;Item descriptor
dc.w 0,0 ;Item value and bit flags
dc.l 0 ;color table
Prompt320
dc.w 8 ;item #
dc.w 03,05,12,255 ;drect
dc.w StatText+ItemDisable ;type
dc.l 0 ;Item descriptor
dc.w 0 ;length
dc.w 0 ;Bit flags
dc.l 0 ;color table
**********************************************************************
**********************************************************************
*********************************************************************
* PutFile DIalog Data record, 03-October-1988 *
*********************************************************************
PutDialog640
dc.w 0,0,120,320 ; drect of dialog (640 mode) recommended
dc.w -1
dc.w 0,0 ; reserved word
dc.l SaveButP640
dc.l OpenButP640
dc.l CloseButP640
dc.l NextButP640
dc.l CancelButP640
dc.l ScrollP640 ;DUMMY item
dc.l PathP640
dc.l FilesP640
dc.l PromptP640
dc.l EditP640
dc.l StatTextP640
dc.l CreateButP640
dc.l 0
SaveButP640
dc.w 1 ;item #
dc.w 87,204,99,310 ;drect
dc.w ButtonItem ;type of item
dc.l SaveStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
OpenButP640
dc.w 2 ;item #
dc.w 49,204,61,310 ;drect
dc.w ButtonItem ;type of item
dc.l OpenStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
CloseButP640
dc.w 3 ;item #
dc.w 64,204,76,310 ;drect
dc.w ButtonItem ;type of item
dc.l CloseStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
NextButP640
dc.w 4 ;item #
dc.w 15,204,27,310 ;drect
dc.w ButtonItem ;type of item
dc.l DriveStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
CancelButP640
dc.w 5 ;item #
dc.w 104,204,116,310 ;drect
dc.w ButtonItem ;type of item
dc.l CancelStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
ScrollP640
dc.w 6 ;item #
dc.w 0,0,0,0 ;drect
dc.w UserItem ;type
dc.l 0 ;Item descriptor
dc.w 0,0 ;Item value and bit flags
dc.l 0 ;color table
PathP640
dc.w 7 ;item #
dc.w 0,10,12,315 ;drect
dc.w UserItem ;type
dc.l PathDraw ;Item descriptor
dc.w 0,0 ;Item value and bit flags
dc.l 0 ;color table
FilesP640
dc.w 8 ;item #
dc.w 26,10,88,170 ;drect
dc.w UserItem+ItemDisable ;type
dc.l 0 ;Item descriptor
dc.w 0,0 ;Item value and bit flags
dc.l 0 ;color table
PromptP640
dc.w 9 ;item #
dc.w 88,10,100,200 ;drect
dc.w StatText+ItemDisable ;type
dc.l 0 ;Item descriptor
dc.w 0 ;size of text
dc.w 0 ;Bit flags
dc.l 0 ;color table
EditP640
dc.w 10 ;item #
dc.w 100,10,118,194 ;drect
dc.w EditLine+ItemDisable ;type
dc.l 0 ;Item descriptor
dc.w 32 ;size of text
dc.w 0 ;Bit flags
dc.l 0 ;color table
StatTextP640
dc.w 11 ;item #
dc.w 12,10,22,200 ;drect
dc.w StatText+ItemDisable ;type
dc.l KbFreeStr ;Item descriptor
dc.w 0 ;size of text
dc.w 0 ;Bit flags
dc.l 0 ;color table
CreateButP640
dc.w 12 ;item #
dc.w 29,204,41,310 ;drect
dc.w ButtonItem ;type
dc.l FolderStr ;Item descriptor
dc.w 0 ;size of text
dc.w 0 ;Bit flags
dc.l 0 ;color table
PutDialog320
dc.w 0,0,128,270 ; drect of dialog (320 mode)
dc.w -1
dc.w 0,0 ; reserved word
dc.l SaveButP320
dc.l OpenButP320
dc.l CloseButP320
dc.l NextButP320
dc.l CancelButP320
dc.l ScrollP320 ;DUMMY item
dc.l PathP320
dc.l FilesP320
dc.l PromptP320
dc.l EditP320
dc.l StatTextP320
dc.l CreateButP320
dc.l 0
SaveButP320
dc.w 1 ;item #
dc.w 93,165,105,265 ;drect
dc.w ButtonItem ;type of item
dc.l SaveStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
OpenButP320
dc.w 2 ;item #
dc.w 54,165,66,265 ;drect
dc.w ButtonItem ;type of item
dc.l OpenStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
CloseButP320
dc.w 3 ;item #
dc.w 72,165,84,265 ;drect
dc.w ButtonItem ;type of item
dc.l CloseStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
NextButP320
dc.w 4 ;item #
dc.w 15,165,27,265 ;drect
dc.w ButtonItem ;type of item
dc.l DriveStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
CancelButP320
dc.w 5 ;item #
dc.w 111,165,123,265 ;drect
dc.w ButtonItem ;type of item
dc.l CancelStr ;Item descriptor
dc.w 0,0 ;Item value & bit flags
dc.l 0 ;color table ptr (nill is default)
ScrollP320
dc.w 6 ;item #
dc.w 00,00,00,00 ;drect
dc.w UserItem ;type
dc.l 0 ;Item descriptor
dc.w 0,0 ;Item value and bit flags
dc.l 0 ;color table
PathP320
dc.w 7 ;item #
dc.w 00,10,12,265 ;drect
dc.w UserItem ;type
dc.l PathDraw ;Item descriptor
dc.w 0,0 ;Item value and bit flags
dc.l 0 ;color table
FilesP320
dc.w 8 ;item #
dc.w 26,10,88,145 ;drect
dc.w UserItem+ItemDisable ;type
dc.l 0 ;Item descriptor
dc.w 0,0 ;Item value and bit flags
dc.l 0 ;color table
PromptP320
dc.w 9 ;item #
dc.w 88,10,100,170 ;drect
dc.w StatText+ItemDisable ;type
dc.l 0 ;Item descriptor
dc.w 0
dc.w 0 ;Bit flags
dc.l 0 ;color table
EditP320
dc.w 10 ;item #
dc.w 100,10,118,157 ;drect
dc.w EditLine+ItemDisable ;type
dc.l 0 ;Item descriptor
dc.w 32 ;size of text max
dc.w 0 ;Bit flags
dc.l 0 ;color table
StatTextP320
dc.w 11 ;item #
dc.w 12,10,22,160 ;drect
dc.w StatText+ItemDisable ;type
dc.l KbFreeStr ;Item descriptor
dc.w 0 ;size of text
dc.w 0 ;Bit flags
dc.l 0 ;color table
CreateButP320
dc.w 12 ;item #
dc.w 33,165,45,265 ;drect
dc.w ButtonItem ;type
dc.l FolderStr ;Item descriptor
dc.w 0 ;size of text
dc.w 0 ;Bit flags
dc.l 0 ;color table
**********************************************************************
* needed strings for above dialogs
**********************************************************************
SaveStr str 'Save'
OpenStr str 'Open'
AcceptStr str 'Accept'
CloseStr str 'Close'
DriveStr str 'Disks' ;was Volumes (25-Mar-92 DAL)
CancelStr str 'Cancel'
FolderStr str 'New Folder'
*** KbFreeStr str '^0 free of ^1 k.' ;Dialog manager Routine replace strings
KbFreeStr str '^0 free of ^1K.' ;6-Feb-91 DAL
;UntitledStr str 'Untitled' ;discovered disused 15-Apr-91 DAL
**********************************************************************
* List manager Record (is moved this to ram because ROM based)
**********************************************************************
ListManagerRec
dc.w 0,0,0,0 ;size of rec
dc.w 0 ;number of list members total
dc.w 8 ;max viewable members
dc.w 2 ;Bit Flags (single selection, length type strings used)
dc.w 1 ;first member to view
dc.l 0 ;space for list control's handle
dc.l MyDraw ;space for pointer to custom drawing routine
dc.w 10 ;height of list members
dc.w 5 ;size of member records in MyList in bytes
GetListPtr
dc.l 0 ;Pointer to first element of list (put your pointer here!!!)
dc.l 0 ;Becomes Control's refCon (app defined)
dc.l 0 ;Color table for list's scroll bar (null is defalut)
**********************************************************************
* values that should be used for the files rect. in the list manager
* dc.w 25,18,107,215 ;size of rec for 640 mode
*
* dc.w 27,05,109,140 ;size of rec for 320 mode
*
* dc.w 26,10,88,170 ;size of rec for 640 mode
*
* dc.w 27,05,109,140 ;size of rec for 320 mode ***DEBUG*** check these numbers
*
**********************************************************************
ENDR
************************************************************************
* List Record template
**********************************************************************
ListRecord RECORD 0
theRect ds.w 4 ;size of rect
listCount ds.w 1 ;number of list members total
listView ds.w 1 ;max viewable members
listFlags ds.w 1 ;Bit Flags (single selection, length type strings used)
listFirst ds.w 1 ;first member to view
listControlH ds.l 1 ;space for list control's handle
listDraw ds.l 1 ;space for pointer to custom drawing routine
listHeight ds.w 1 ;height of list members
listSize ds.w 1 ;size of member records in MyList in bytes
listPtr ds.l 1 ;Pointer to first element of list (put your pointer here!!!)
listControl ds.l 1 ;Becomes Control's refCon (app defined)
listColor ds.l 1 ;Color table for list's scroll bar (null is defalut)
ENDR
TheStrings PROC
EXPORT valueTable
EXPORT endValue
EXPORT generr
EXPORT memorymessage
EXPORT noVolMessage
*********************************************************************
*
* Every string you could ever want! (Except for the ones above)
*
**********************************************************************
*
* the following string are used to display possible errors while creating
* a folder.
*
valueTable
*
* Used by 'DoCreate' routiune to pick a message for a given Error number.
* scan for the error # and use the following message.
*
dc.w $10
dc.l NoDevice ;no device
dc.w $2B
dc.l writeprot ;write protected
dc.w $40
dc.l badpath ;bad path
dc.w $44
dc.l badpath ;bad path
dc.w $45
dc.l novol ;no volume
dc.w $47
dc.l dupname ;duplicate name
dc.w $48
dc.l volFull ;volume full
dc.w $49
dc.l volFull ;volume directory full
endValue
writeprot dc.b 'Disk is write protected',0
badpath dc.b 'The pathname has changed or is now in error',0
novol dc.b 'Please replace the disk (Disk not found)',0
dupname dc.b 'That name is already in use. Please pick another',0
volFull dc.b 'The disk or disk directory is full',0
NoDevice dc.b 'The device was not found',0
GenErr dc.b 'A strange error occurred',0 ;15-Mar-91 DAL (was "...strange I/O error...")
*
* The following messages are passed to Alert Window if errors occur
*
MemoryMessage dc.b '62/Unable to allocate memory to run Standard File.',$0d,'Free mem: *0 bytes',$0d,'Requested: *1 bytes/^#1',0
noVolMessage dc.B '65/No disks are available. Please insert a disk./^#0/#1',0 ;25-Mar-92 DAL
ENDP