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.3 KiB
OpenEdge ABL

;
; Direct Page Debug816
; (image of PCL to QR in TABLES1 file)
;
PCL equ 0
PCH equ PCL+1
PCK equ PCH+1 ;Program bank
BASL equ PCK+1 ;for output
BASH equ BASL+1
BASB equ BASH+1
AL equ BASB+1
AH equ AL+1
AB equ AH+1
T1 equ AB+1
T2 equ T1+1
T3 equ T2+1
T4 equ T3+1
T5 equ T4+1
T6 equ T5+1
AR equ T6+1 ;2-byte A
XR equ AR+2 ; X and
YR equ XR+2 ; Y
PR equ YR+2 ;status
SR equ PR+1 ;3-bytes for [d] use
eR equ SR+3 ;emulation bit as MSB
DR equ eR+1 ;Direct (allow [d] access)
BR equ DR+3 ;data Bank
MR equ BR+1 ;Machine State
QR equ MR+1 ;Quagmire CYA[7]+SHADOW[6-0]
CR equ QR+1 ;chrset
*
* My direct page variables
* I need to do this
*
*
base equ CR+1 ;three bytes used to search for RTL's
;
; Temporary location usage in bank0/zero page, start from A1....
;
MyID equ $00003c ;2-byte for MyID
HANDLELW equ MyID+2 ;low word of pointer to master pointe
HANDLEHG equ HANDLELW+2 ;high word of pointer to master pointer
*** Nuked - 24-May-93 JCM - These are now handled locally to the dp alloc subs.
;;;HDLWBK0 equ HANDLEHG+2 ;low word of handle to allocated bank00
;;;HDHGBK0 equ HDLWBK0+2 ;high word of handle to allocated bank00
*** End - 24-May-93 JCM
eject
MONRST equ $0003F2
USR equ $0003F8
MONZ equ $FF69
PFlag equ $E100BC ;ProDos flag 00=P8 01=P16
BRKV equ $E10071 ;4/25/86 roms or later
MLI_16 equ $E100A8 ;ProDOS/16
MLI_16_Stack equ $E100B0 ;ProDOS/16 stack based system call
OS_Public_Flags equ $E100B8 ;25-May-93 JCM - GS/OS flags (we're stealing some bits)
IRQ_INTFLAG equ $E100C3
IRQ_DATAREG equ $E100C4
IRQ_KMSTATUS equ $E100C5
IRQ_SECFLAG equ $E100C6
IRQ_ACTIVE equ $E100CB
irq_A equ $E10108 ;set by Monitor after BRK
irq_X equ $E1010A ; 4/25/86 roms or later
irq_Y equ $E1010C ;.
irq_S equ $E1010E ;.
irq_D equ $E10110 ;.
irq_P equ $E10112
irq_B equ $E10113
irq_e equ $E10114 ;in bit 0
irq_PCK equ $E10115
irq_PC equ $E10116
irq_M equ $E10118
irq_SHADOW equ $E10119
irq_CYA equ $E1011A
irq_MSLOT equ $E1011B
KBD equ $E1C000
CLR80STORE equ $E1C000
SET80STORE equ $E1C001
CLRINTCXROM equ $E1C006
SETINTCXROM equ $E1C007
CLR80COL equ $E1C00C
SET80COL equ $E1C00D
CLRALTCHR equ $E1C00E
SETALTCHR equ $E1C00F
RD80COL equ $E1C018
KBDSTRB equ $E1C010
P2STATE equ $E1C01C
ALTCHR equ $E1C01E
RDTEXT EQU $E1C01A
RDMIX EQU $E1C01B
RDPAGE2 EQU $E1C01C
RDHIRES EQU $E1C01D
KEYMODREG equ $E1C025
NEWVIDEO equ $E1C029
SPKR equ $E1C030
SHADOW equ $E1C035
CYA equ $E1C036
GR equ $E1C050
TXTCLR equ $E1C050
TXTSET equ $E1C051
TEXT equ $E1C051
FULL equ $E1C052
MIXCLR equ $E1C052
MIXSET equ $E1C053
MIXED equ $E1C053
PAGE1 equ $E1C054
TXTPAGE1 equ $E1C054
TXTPAGE2 equ $E1C055
PAGE2 equ $E1C055
LORES equ $E1C056
HIRES equ $E1C057
CLRAN3 equ $E1C05E
SETAN3 equ $E1C05F
PB1 equ $E1C061
MSTATE equ $E1C068
MNEMSTKPTR equ $010100 ;main stack pointer
ALEMSTKPTR equ $010101 ;alternate stack pointer
DebugB equ $e101A4 ;my reserved location in bank E1
;;;DebugCntl equ $e102b7 ; " 25-May-93 JCM - this isn't used anywhere
*
* My equates that I need
*
CDAVector equ $e10048 ;for special ROM 02B4 or normal 0048
OptionKey equ $00C025 ;soft switch to read in bit 6
;
; The following EQU's (constants) and dfb's (variables)
; control output where: Set by SET
;
N_STK equ 19 ;N_number
N_CELL equ 19
N_OPC equ 19
R_STK equ 3 ;R_row
R_CELL equ 3
R_OPC equ 3
C_STK equ 0 ;C_column
C_CELL equ 9
C_BP equ $1B
C_MP equ $1B
C_OPC equ $2B ;I_highlight row