mirror of
https://github.com/marketideas/qasm.git
synced 2026-10-27 12:07:30 +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.0 KiB
Plaintext
1 line
3.0 KiB
Plaintext
;------------------------------------------------------------
|
|
; Quick Logoff
|
|
;
|
|
; A temporary init file for AppleShare GS/OS Booting
|
|
;
|
|
; by Mark Day
|
|
;------------------------------------------------------------
|
|
|
|
include 'M16.Memory'
|
|
include 'M16.Locator'
|
|
|
|
MyMsgType equ $0088 ; message type for AppleTalk
|
|
addMessage equ $0001 ; command to add a message
|
|
getMessage equ $0002 ; command to get a message
|
|
|
|
dp record 0
|
|
myuserid ds.w 1 ; my user ID (from MM)
|
|
msghandle ds.l 1 ; handle to message
|
|
msgptr ds.l 1 ; pointer to message
|
|
endr
|
|
|
|
aMessage record 0
|
|
next ds.l 1 ; handle to next message
|
|
type ds.w 1 ; type (ID) of message
|
|
data ds.w 1 ; message data
|
|
size
|
|
endr
|
|
|
|
;------------------------------------------------------------
|
|
; The data in the message is a word, formatted as follows:
|
|
; bit 15 Set if already booted (so switching users)
|
|
; bit 14 Set if QuickLogoff desired
|
|
; bits 13..0 <unused, should be clear>
|
|
;------------------------------------------------------------
|
|
QuickFlag equ $4000 ; bit for quick logoff
|
|
|
|
quick proc
|
|
with dp
|
|
|
|
phk
|
|
plb ; get current bank for short addressing
|
|
|
|
;------------------------------------------------------------
|
|
; Start up the memory manager.
|
|
;------------------------------------------------------------
|
|
pha ; space for user ID
|
|
_MMStartup
|
|
pla ; recover user ID
|
|
sta myuserid
|
|
|
|
;------------------------------------------------------------
|
|
; Allocate a new handle for getting/setting message info.
|
|
;------------------------------------------------------------
|
|
pha ; push long space
|
|
pha
|
|
pea aMessage.size>>16
|
|
pea aMessage.size
|
|
pei myuserid ; push my user ID
|
|
pea $0000 ; get me anything
|
|
pea 0>>16 ; don't care where
|
|
pea 0
|
|
_Newhandle
|
|
|
|
pla
|
|
sta msghandle
|
|
pla
|
|
sta msghandle+2
|
|
|
|
;------------------------------------------------------------
|
|
; Deref the handle to get a pointer to the data
|
|
;------------------------------------------------------------
|
|
lda [msghandle]
|
|
sta msgptr
|
|
ldy #2
|
|
lda [msghandle],y
|
|
sta msgptr+2
|
|
|
|
ldy #aMessage.data
|
|
lda #0 ; set data to default
|
|
sta [msgptr],y
|
|
|
|
;------------------------------------------------------------
|
|
; Get the current message
|
|
;------------------------------------------------------------
|
|
pea getMessage
|
|
pea MyMsgType
|
|
pei msghandle+2 ; push handle to message
|
|
pei msghandle
|
|
_MessageCenter
|
|
|
|
;------------------------------------------------------------
|
|
; Deref the handle to get a pointer to the data
|
|
;------------------------------------------------------------
|
|
lda [msghandle]
|
|
sta msgptr
|
|
ldy #2
|
|
lda [msghandle],y
|
|
sta msgptr+2
|
|
|
|
ldy #aMessage.data
|
|
lda [msgptr],y ; get current message data
|
|
ora #QuickFlag ; set QuickLogoff flag
|
|
sta [msgptr],y ; update message value
|
|
|
|
;------------------------------------------------------------
|
|
; Set the (modified) message
|
|
;------------------------------------------------------------
|
|
pea addMessage
|
|
pea MyMsgType
|
|
pei msghandle+2 ; push handle to message
|
|
pei msghandle
|
|
_MessageCenter
|
|
|
|
pei myuserid
|
|
_MMShutDown
|
|
|
|
rtl ; back to GLoader
|
|
|
|
endwith ; with dp
|
|
endp
|
|
|
|
end
|