1998-02-22 05:05:54 +00:00
|
|
|
* $Id: ctool.asm,v 1.2 1998/02/22 05:05:40 taubert Exp $
|
1998-02-02 08:20:59 +00:00
|
|
|
|
|
|
|
mcopy m/ctool.mac
|
|
|
|
|
|
|
|
case on
|
|
|
|
|
|
|
|
;TDISPOSEHAND START
|
|
|
|
; pha
|
|
|
|
; lda 9,s ; we have something on the stack dummy
|
|
|
|
; cmp #$8b98
|
|
|
|
; bne goold
|
|
|
|
; lda 11,s
|
|
|
|
; cmp #$00E0
|
|
|
|
; bne goold
|
|
|
|
; ldx #$2C03
|
|
|
|
; jsl $E10000
|
|
|
|
;always bra always
|
|
|
|
;goold pla
|
|
|
|
;OLDDISPHAND ENTRY
|
1998-02-22 05:05:54 +00:00
|
|
|
; jmp >$000000
|
1998-02-02 08:20:59 +00:00
|
|
|
; END
|
|
|
|
|
|
|
|
* all processes that end with RTL come here
|
|
|
|
endproc2 START
|
|
|
|
using KernelStruct
|
|
|
|
phk
|
|
|
|
plb
|
|
|
|
ldx curProcInd
|
|
|
|
sta exitCode,x
|
|
|
|
jmp >endproc
|
|
|
|
END
|
|
|
|
|
|
|
|
kernTable START KERN2
|
|
|
|
dc i4'(TheEnd-kernTable)/4'
|
|
|
|
|
|
|
|
dc i4'tBootInit-1' ; 1
|
|
|
|
dc i4'tStartUp-1' ; 2
|
|
|
|
dc i4'tShutDown-1' ; 3
|
|
|
|
dc i4'tVersion-1' ; 4
|
|
|
|
dc i4'tReset-1' ; 5
|
|
|
|
dc i4'tStatus-1' ; 6
|
|
|
|
dc i4'NotImpMM-1' ; 7
|
|
|
|
dc i4'NotImpMM-1' ; 8
|
|
|
|
|
|
|
|
dc i4'TIgetpid-1' ; 9
|
|
|
|
dc i4'TIkill-1' ; a
|
|
|
|
dc i4'TIfork-1' ; b
|
|
|
|
dc i4'NotImpMM-1' ; c Was exec...
|
|
|
|
dc i4'TIswait-1' ; d
|
|
|
|
dc i4'TIssignal-1' ; e
|
|
|
|
dc i4'TIscreate-1' ; f
|
|
|
|
dc i4'TIsdelete-1' ; 10
|
|
|
|
dc i4'TIkvm_open-1' ; 11
|
|
|
|
dc i4'TIkvm_close-1' ; 12
|
|
|
|
dc i4'TIkvm_getproc-1' ; 13
|
|
|
|
dc i4'TIkvm_nextproc-1' ; 14
|
|
|
|
dc i4'TIkvm_setproc-1' ; 15
|
|
|
|
dc i4'TIsignal-1' ; 16
|
|
|
|
dc i4'TIwait-1' ; 17
|
|
|
|
dc i4'TItcnewpgrp-1' ; 18
|
|
|
|
dc i4'TIsettpgrp-1' ; 19
|
|
|
|
dc i4'TItctpgrp-1' ; 1a
|
|
|
|
dc i4'TIsigsetmask-1' ; 1b
|
|
|
|
dc i4'TIsigblock-1' ; 1c
|
|
|
|
dc i4'TIexecve-1' ; 1d
|
|
|
|
dc i4'TIalarm-1' ; 1e
|
|
|
|
dc i4'TIsetdebug-1' ; 1f
|
|
|
|
dc i4'TIsetsystemvector-1' ; 20
|
|
|
|
dc i4'TIsigpause-1' ; 21
|
|
|
|
dc i4'TIdup-1' ; 22
|
|
|
|
dc i4'TIdup2-1' ; 23
|
|
|
|
dc i4'TIpipe-1' ; 24
|
|
|
|
dc i4'TIgetpgrp-1' ; 25
|
|
|
|
dc i4'TIioctl-1' ; 26
|
|
|
|
dc i4'TIstat-1' ; 27
|
|
|
|
dc i4'TIfstat-1' ; 28
|
|
|
|
dc i4'TIlstat-1' ; 29
|
|
|
|
dc i4'TIgetuid-1' ; 2A
|
|
|
|
dc i4'TIgetgid-1' ; 2B
|
|
|
|
dc i4'TIgeteuid-1' ; 2C
|
|
|
|
dc i4'TIgetegid-1' ; 2D
|
|
|
|
dc i4'TIsetuid-1' ; 2E
|
|
|
|
dc i4'TIsetgid-1' ; 2F
|
|
|
|
dc i4'TIprocsend-1' ; 30
|
|
|
|
dc i4'TIprocreceive-1' ; 31
|
|
|
|
dc i4'TIrecvclr-1' ; 32
|
|
|
|
dc i4'TIrecvtim-1' ; 33
|
|
|
|
dc i4'TIsetpgrp-1' ; 34
|
|
|
|
dc i4'TItimes-1' ; 35
|
|
|
|
dc i4'TIpcreate-1' ; 36
|
|
|
|
dc i4'TIpsend-1' ; 37
|
|
|
|
dc i4'TIpreceive-1' ; 38
|
|
|
|
dc i4'TIpdelete-1' ; 39
|
|
|
|
dc i4'TIpreset-1' ; 3A
|
|
|
|
dc i4'TIpbind-1' ; 3B
|
|
|
|
dc i4'TIpgetport-1' ; 3C
|
|
|
|
dc i4'TIpgetcount-1' ; 3D
|
|
|
|
dc i4'TIscount-1' ; 3E
|
|
|
|
dc i4'TIfork2-1' ; 3F
|
|
|
|
dc i4'TIgetppid-1' ; 40
|
|
|
|
dc i4'TISetGNOQuitRec-1' ; 41
|
|
|
|
dc i4'TIalarm10-1' ; 42
|
|
|
|
dc i4'TIselect-1' ; 43
|
|
|
|
dc i4'TIInstallNetDriver-1' ; 44
|
|
|
|
dc i4'TIsocket-1' ; 45
|
|
|
|
dc i4'TIbind-1' ; 46
|
|
|
|
dc i4'TIconnect-1' ; 47
|
|
|
|
dc i4'TIlisten-1' ; 48
|
|
|
|
dc i4'TIaccept-1' ; 49
|
|
|
|
dc i4'TIrecvfrom-1' ; 4A
|
|
|
|
dc i4'TIsendto-1' ; 4B
|
|
|
|
dc i4'TIrecv-1' ; 4C
|
|
|
|
dc i4'TIsend-1' ; 4D
|
|
|
|
dc i4'TIgetpeername-1' ; 4E
|
|
|
|
dc i4'TIgetsockname-1' ; 4F
|
|
|
|
dc i4'TIgetsockopt-1' ; 50
|
|
|
|
dc i4'TIsetsockopt-1' ; 51
|
|
|
|
dc i4'TIshutdown-1' ; 52
|
|
|
|
dc i4'TIsetreuid-1' ; 53
|
|
|
|
dc i4'TIsetregid-1' ; 54
|
|
|
|
|
|
|
|
TheEnd anop
|
|
|
|
END
|
|
|
|
|
|
|
|
QDSTARTUPPATCH START KERN2
|
|
|
|
using KernelStruct
|
|
|
|
|
|
|
|
php
|
|
|
|
long ai
|
|
|
|
|
|
|
|
phb
|
|
|
|
phk
|
|
|
|
plb
|
|
|
|
pha
|
|
|
|
phx
|
|
|
|
phy
|
|
|
|
|
|
|
|
pha
|
|
|
|
_QDStatus ; quickdraw is already started!
|
|
|
|
pla
|
|
|
|
bne killProc
|
|
|
|
|
|
|
|
lda >curProcInd
|
|
|
|
tax
|
|
|
|
lda >ttyID,x
|
|
|
|
cmp #3 ; no QDStartup from a terminal!
|
|
|
|
bne killProc
|
|
|
|
|
|
|
|
lda >flags,x
|
|
|
|
ora #64 ; COMPLIANT, NORESTART, QDSTARTUP
|
|
|
|
sta >flags,x
|
|
|
|
|
|
|
|
ply
|
|
|
|
plx
|
|
|
|
pla
|
|
|
|
plb
|
|
|
|
plp
|
|
|
|
jmp >DoOldQD
|
|
|
|
|
|
|
|
killProc anop
|
|
|
|
short m
|
|
|
|
lda #0
|
|
|
|
sta >$E100FF
|
|
|
|
long m
|
|
|
|
|
|
|
|
ph4 #badBoy
|
|
|
|
_WriteCString
|
|
|
|
|
|
|
|
jmp >endproc
|
|
|
|
|
|
|
|
badBoy dc c'QuickDraw is already started.'
|
|
|
|
|
|
|
|
END
|
|
|
|
|
|
|
|
DoOldQD START
|
|
|
|
OLDQDSTARTUP ENTRY
|
1998-02-22 05:05:54 +00:00
|
|
|
jmp >$000000
|
1998-02-02 08:20:59 +00:00
|
|
|
END
|
|
|
|
|
|
|
|
* The new Sane Startup only stores the program's chosen SANE DP space
|
|
|
|
* into the kernel process entry. The context switcher must now
|
|
|
|
* copy the sanedp around.
|
|
|
|
|
|
|
|
SANESUPATCH START
|
|
|
|
using KernelStruct
|
|
|
|
sanedp equ 7+1
|
|
|
|
|
|
|
|
phb
|
|
|
|
phk
|
|
|
|
plb
|
|
|
|
|
|
|
|
lda sanedp,s
|
|
|
|
ldx curProcInd
|
|
|
|
sta SANEwap,x
|
|
|
|
plb
|
|
|
|
OLDSANESU ENTRY
|
1998-02-22 05:05:54 +00:00
|
|
|
jmp >$000000
|
1998-02-02 08:20:59 +00:00
|
|
|
END
|
|
|
|
|
|
|
|
SANESDPATCH START
|
|
|
|
using KernelStruct
|
|
|
|
|
|
|
|
phb
|
|
|
|
phk
|
|
|
|
plb
|
|
|
|
|
|
|
|
lda #0
|
|
|
|
ldx curProcInd
|
|
|
|
sta SANEwap,x
|
|
|
|
plb
|
|
|
|
phd
|
|
|
|
jmp bye0
|
|
|
|
END
|
|
|
|
|
|
|
|
SANESTPATCH START
|
|
|
|
using KernelStruct
|
|
|
|
sanest equ 7+1
|
|
|
|
|
|
|
|
phb
|
|
|
|
phk
|
|
|
|
plb
|
|
|
|
ldx curProcInd
|
|
|
|
lda SANEwap,x
|
|
|
|
beq goway
|
|
|
|
lda #$FFFF
|
|
|
|
goway sta sanest,s
|
|
|
|
plb
|
|
|
|
phd
|
|
|
|
jmp bye0
|
|
|
|
END
|
|
|
|
|
|
|
|
OURSYSFAILMGR START
|
|
|
|
errorCode equ 7+3+4
|
|
|
|
strPtr equ 7+3
|
|
|
|
|
|
|
|
phb
|
|
|
|
phk
|
|
|
|
plb
|
|
|
|
phd
|
|
|
|
tsc
|
|
|
|
tcd
|
|
|
|
lda strPtr
|
|
|
|
ora strPtr+2
|
|
|
|
bne yString
|
|
|
|
ph4 #defaultStr
|
|
|
|
bra dostr
|
|
|
|
yString anop
|
|
|
|
pei (strPtr+2)
|
|
|
|
pei (strPtr)
|
|
|
|
dostr _ErrWriteString
|
|
|
|
lda errorCode
|
|
|
|
ErrWriteChar #' '
|
|
|
|
ErrWriteChar #'$'
|
|
|
|
lda errorCode
|
|
|
|
jsr writeacc
|
|
|
|
lda errorCode ; we must halt the system
|
|
|
|
cmp #$0305
|
|
|
|
beq dopanic ; on certain error codes, or
|
|
|
|
cmp #$0308
|
|
|
|
beq dopanic ; the system will act really goofy
|
|
|
|
cmp #$0681
|
|
|
|
beq dopanic
|
|
|
|
cmp #$0682
|
|
|
|
beq dopanic
|
|
|
|
cmp #$08FF
|
|
|
|
beq dopanic
|
|
|
|
ldx #$0903
|
|
|
|
jsl $E10008
|
|
|
|
pea $0009 ; kill us!
|
|
|
|
ldx #$0A03
|
|
|
|
jsl $E10008 ; goodbye cruel world!
|
|
|
|
bra dopanic
|
|
|
|
|
|
|
|
defaultStr str 'System Error ->'
|
|
|
|
|
|
|
|
dopanic short m
|
|
|
|
lda >$E0C029 ; turn off SHR graphics
|
|
|
|
and #$7F
|
|
|
|
sta >$E0C029
|
|
|
|
lda #$1F ; red on white, set text and bg
|
|
|
|
sta >$E0C022 ; color so error can always be seen
|
|
|
|
lda >$E100FF ; if busy flag is set, allow us to
|
|
|
|
bne dopanic1 ; enter GSBug to see what happened
|
|
|
|
sei
|
|
|
|
dopanic1 bra dopanic1
|
|
|
|
END
|
|
|
|
longa on
|
|
|
|
longi on
|
|
|
|
|
|
|
|
NotImpMM START KERN2
|
|
|
|
sec
|
|
|
|
rtl
|
|
|
|
END
|
|
|
|
|
|
|
|
NULLTOOLFUNC START KERN2
|
|
|
|
clc
|
|
|
|
rtl
|
|
|
|
END
|
|
|
|
|
|
|
|
tVersion START KERN2
|
|
|
|
lda #$0206
|
|
|
|
sta 7,s
|
|
|
|
lda #0
|
|
|
|
clc
|
|
|
|
rtl
|
|
|
|
END
|
|
|
|
|
|
|
|
tBootInit START KERN2
|
|
|
|
clc
|
|
|
|
RTL
|
|
|
|
END
|
|
|
|
|
|
|
|
tStartUp START KERN2
|
|
|
|
clc
|
|
|
|
RTL
|
|
|
|
END
|
|
|
|
|
|
|
|
tShutDown START KERN2
|
|
|
|
clc
|
|
|
|
RTL
|
|
|
|
END
|
|
|
|
|
|
|
|
tReset START KERN2
|
|
|
|
clc
|
|
|
|
RTL
|
|
|
|
END
|
|
|
|
|
|
|
|
tStatus START KERN2
|
|
|
|
lda #$8100
|
|
|
|
sta 7,s
|
|
|
|
lda #0
|
|
|
|
clc
|
|
|
|
rtl
|
|
|
|
END
|
|
|
|
|
|
|
|
TIalarm START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNalarm
|
|
|
|
END
|
|
|
|
|
|
|
|
TIalarm10 START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNalarm10
|
|
|
|
END
|
|
|
|
|
|
|
|
TIdup START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNdup
|
|
|
|
END
|
|
|
|
|
|
|
|
TIdup2 START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNdup2
|
|
|
|
END
|
|
|
|
|
|
|
|
TIgetpid START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNgetpid
|
|
|
|
END
|
|
|
|
|
|
|
|
TIgetppid START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNgetppid
|
|
|
|
END
|
|
|
|
|
|
|
|
TIgetpgrp START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNgetpgrp
|
|
|
|
END
|
|
|
|
|
|
|
|
TIsetpgrp START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsetpgrp
|
|
|
|
END
|
|
|
|
|
|
|
|
TIgetuid START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNgetuid
|
|
|
|
END
|
|
|
|
|
|
|
|
TIgetgid START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNgetgid
|
|
|
|
END
|
|
|
|
|
|
|
|
TIgeteuid START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNgeteuid
|
|
|
|
END
|
|
|
|
|
|
|
|
TIgetegid START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNgetegid
|
|
|
|
END
|
|
|
|
|
|
|
|
TIsetuid START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsetuid
|
|
|
|
END
|
|
|
|
|
|
|
|
TIsetreuid START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsetreuid
|
|
|
|
END
|
|
|
|
|
|
|
|
TIsetgid START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsetgid
|
|
|
|
END
|
|
|
|
|
|
|
|
TIsetregid START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsetregid
|
|
|
|
END
|
|
|
|
|
|
|
|
TIkill START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNkill
|
|
|
|
END
|
|
|
|
|
|
|
|
TIfork START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNfork
|
|
|
|
END
|
|
|
|
|
|
|
|
TIfork2 START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNFORK2
|
|
|
|
END
|
|
|
|
|
|
|
|
*TIexec START KERN2
|
|
|
|
* tsc
|
|
|
|
* clc
|
|
|
|
* adc #3
|
|
|
|
* tcs
|
|
|
|
* jmp >KERNexec
|
|
|
|
* END
|
|
|
|
|
|
|
|
TIexecve START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNexecve
|
|
|
|
END
|
|
|
|
|
|
|
|
TIswait START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNswait
|
|
|
|
END
|
|
|
|
|
|
|
|
TIssignal START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNssignal
|
|
|
|
END
|
|
|
|
|
|
|
|
TIscreate START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNscreate
|
|
|
|
END
|
|
|
|
|
|
|
|
TIsdelete START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsdelete
|
|
|
|
END
|
|
|
|
|
|
|
|
TIkvm_open START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNkvm_open
|
|
|
|
END
|
|
|
|
|
|
|
|
TIkvm_close START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNkvm_close
|
|
|
|
END
|
|
|
|
|
|
|
|
TIkvm_getproc START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNkvmgetproc
|
|
|
|
END
|
|
|
|
|
|
|
|
TIkvm_nextproc START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNkvmnextproc
|
|
|
|
END
|
|
|
|
|
|
|
|
TIkvm_setproc START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNkvmsetproc
|
|
|
|
END
|
|
|
|
|
|
|
|
TIpipe START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNpipe
|
|
|
|
END
|
|
|
|
|
|
|
|
TIsignal START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsignal
|
|
|
|
END
|
|
|
|
|
|
|
|
TIsigpause START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsigpause
|
|
|
|
END
|
|
|
|
|
|
|
|
TIsetdebug START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsetdebug
|
|
|
|
END
|
|
|
|
|
|
|
|
TIsetsystemvector START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsetsystemvector
|
|
|
|
END
|
|
|
|
|
|
|
|
TIstat START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNstat
|
|
|
|
END
|
|
|
|
|
|
|
|
TIfstat START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNfstat
|
|
|
|
END
|
|
|
|
|
|
|
|
TIlstat START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNlstat
|
|
|
|
END
|
|
|
|
|
|
|
|
TIwait START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNwait
|
|
|
|
END
|
|
|
|
|
|
|
|
**********************************************************
|
|
|
|
|
|
|
|
TItcnewpgrp START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNtcnewpgrp
|
|
|
|
END
|
|
|
|
TIsettpgrp START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsettpgrp
|
|
|
|
END
|
|
|
|
|
|
|
|
TItctpgrp START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNtctpgrp
|
|
|
|
END
|
|
|
|
|
|
|
|
**********************************************************
|
|
|
|
|
|
|
|
TIsigsetmask START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsigsetmask
|
|
|
|
END
|
|
|
|
TIsigblock START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsigblock
|
|
|
|
END
|
|
|
|
|
|
|
|
**********************************************************
|
|
|
|
|
|
|
|
TIprocsend START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNsend
|
|
|
|
END
|
|
|
|
TIprocreceive START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNreceive
|
|
|
|
END
|
|
|
|
TIrecvclr START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNrecvclr
|
|
|
|
END
|
|
|
|
TIrecvtim START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNrecvtim
|
|
|
|
END
|
|
|
|
|
|
|
|
TItimes START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNtimes
|
|
|
|
END
|
|
|
|
|
|
|
|
TIpcreate START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNPCREATE
|
|
|
|
END
|
|
|
|
|
|
|
|
TIpsend START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNPSEND
|
|
|
|
END
|
|
|
|
|
|
|
|
TIpreceive START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNPRECEIVE
|
|
|
|
END
|
|
|
|
|
|
|
|
TIpdelete START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNPDELETE
|
|
|
|
END
|
|
|
|
|
|
|
|
TIpreset START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNPRESET
|
|
|
|
END
|
|
|
|
|
|
|
|
TIpbind START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNPBIND
|
|
|
|
END
|
|
|
|
|
|
|
|
TIpgetport START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNPGETPORT
|
|
|
|
END
|
|
|
|
|
|
|
|
TIpgetcount START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNPGETCOUNT
|
|
|
|
END
|
|
|
|
|
|
|
|
TIscount START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNscount
|
|
|
|
END
|
|
|
|
|
|
|
|
TISetGNOQuitRec START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNSETGNOQUITREC
|
|
|
|
END
|
|
|
|
|
|
|
|
TIInstallNetDriver START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNINSTALLNETDRIVER
|
|
|
|
END
|
|
|
|
TIsocket START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNSOCKET
|
|
|
|
END
|
|
|
|
TIbind START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNBIND
|
|
|
|
END
|
|
|
|
TIconnect START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNCONNECT
|
|
|
|
END
|
|
|
|
TIlisten START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNLISTEN
|
|
|
|
END
|
|
|
|
TIaccept START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNACCEPT
|
|
|
|
END
|
|
|
|
TIrecvfrom START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNRECVFROM
|
|
|
|
END
|
|
|
|
TIsendto START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNSENDTO
|
|
|
|
END
|
|
|
|
TIrecv START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNRECV
|
|
|
|
END
|
|
|
|
TIsend START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNSEND
|
|
|
|
END
|
|
|
|
TIgetpeername START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNGETPEERNAME
|
|
|
|
END
|
|
|
|
TIgetsockname START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNGETSOCKNAME
|
|
|
|
END
|
|
|
|
TIgetsockopt START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNGETSOCKOPT
|
|
|
|
END
|
|
|
|
TIsetsockopt START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNSETSOCKOPT
|
|
|
|
END
|
|
|
|
TIshutdown START KERN2
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc #3
|
|
|
|
tcs
|
|
|
|
jmp >KERNSHUTDOWN
|
|
|
|
END
|
|
|
|
|
|
|
|
**********************************************************
|
|
|
|
|
|
|
|
addsig START
|
|
|
|
using KernelStruct
|
|
|
|
space equ 0
|
|
|
|
|
|
|
|
subroutine (2:s,2:p),space
|
|
|
|
lda p
|
|
|
|
asl2 a
|
|
|
|
asl2 a
|
|
|
|
asl2 a
|
|
|
|
asl a
|
|
|
|
tax
|
|
|
|
lda >flpid,x
|
|
|
|
ldx s
|
|
|
|
jsr queueSignal
|
|
|
|
return
|
|
|
|
END
|
|
|
|
|
|
|
|
execveHook START
|
|
|
|
using KernelStruct
|
|
|
|
using ctxtstuff
|
|
|
|
phk ; that this ever worked is amazing
|
|
|
|
plb ; 'sys' must usually be in another bank
|
|
|
|
lda ctx_S1
|
|
|
|
tcs
|
|
|
|
short a
|
|
|
|
lda ctx_PC+2
|
|
|
|
pha
|
|
|
|
long a
|
|
|
|
lda ctx_PC
|
|
|
|
dec a
|
|
|
|
pha ; rtl to the fledgling process
|
|
|
|
lda ctx_D
|
|
|
|
tcd
|
|
|
|
lda ctx_B
|
|
|
|
pha
|
|
|
|
ldx ctx_X
|
|
|
|
ldy ctx_Y
|
|
|
|
lda ctx_A
|
|
|
|
jsl decBusy ; heh heh, ha!
|
|
|
|
plb
|
|
|
|
plb
|
|
|
|
rtl
|
|
|
|
END
|
|
|
|
|
|
|
|
ctxtRestore START
|
|
|
|
using KernelStruct
|
|
|
|
using ctxtstuff
|
|
|
|
phk
|
|
|
|
plb
|
|
|
|
|
|
|
|
jsl cSignalHook ; unblock this signal
|
|
|
|
jsl incBusy
|
|
|
|
lda >curProcInd
|
|
|
|
tax
|
|
|
|
pla
|
|
|
|
sta >waitdone,x ; restore 'wait/block' status
|
|
|
|
pla
|
|
|
|
sta ctx_A
|
|
|
|
pla
|
|
|
|
sta ctx_X
|
|
|
|
pla
|
|
|
|
sta ctx_Y
|
|
|
|
pla
|
|
|
|
sta ctx_state ;S is implicit; use for process state
|
|
|
|
pla
|
|
|
|
sta ctx_D
|
|
|
|
pla
|
|
|
|
sta ctx_B
|
|
|
|
pla
|
|
|
|
sta ctx_P
|
|
|
|
pla
|
|
|
|
pla
|
|
|
|
sta ctx_PC
|
|
|
|
pla
|
|
|
|
sta ctx_K
|
|
|
|
|
|
|
|
; now restore the registers and jml to the old PC, dude
|
|
|
|
; short m
|
|
|
|
; lda >ctx_K
|
|
|
|
; pha
|
|
|
|
; long m
|
|
|
|
; lda >ctx_PC ; we'll rtl back to the routine
|
|
|
|
; dec a
|
|
|
|
; pha
|
|
|
|
|
|
|
|
sei
|
|
|
|
lda >curProcInd
|
|
|
|
tax
|
|
|
|
lda >ctx_state ; restore the old process state
|
|
|
|
sta >ProcessState,x
|
|
|
|
lda >ctx_Y
|
|
|
|
tay
|
|
|
|
lda >ctx_X
|
|
|
|
tax
|
|
|
|
lda >ctx_D
|
|
|
|
tcd
|
|
|
|
short a
|
|
|
|
lda >ctx_B
|
|
|
|
pha
|
|
|
|
plb
|
|
|
|
lda >ctx_P
|
|
|
|
pha
|
|
|
|
long a
|
|
|
|
lda >ctx_A
|
|
|
|
jsl decBusy
|
|
|
|
; plp
|
|
|
|
; xce
|
|
|
|
plp
|
|
|
|
; note that this rti isn't the one we created, it's the one shoved on
|
|
|
|
; the stack by an actual VBL or COP instruction. So we're pulling some major
|
|
|
|
; dick with this code.
|
|
|
|
|
|
|
|
cop $7f ; in case process state changes
|
|
|
|
rti ; rti back to the routine
|
|
|
|
END
|
|
|
|
|
|
|
|
ctxtstuff DATA
|
|
|
|
ctx_A dc i2'0'
|
|
|
|
ctx_X dc i2'0'
|
|
|
|
ctx_Y dc i2'0'
|
|
|
|
ctx_state dc i2'0'
|
|
|
|
ctx_D dc i2'0'
|
|
|
|
ctx_B dc i1'0'
|
|
|
|
ctx_B1 dc i1'0'
|
|
|
|
ctx_P dc i2'0'
|
|
|
|
ctx_S1 dc i2'0' ; argh- obsolete
|
|
|
|
ctx_PC dc i2'0'
|
|
|
|
ctx_K dc i2'0'
|
|
|
|
END
|
|
|
|
|
|
|
|
tool_exit START
|
|
|
|
phy
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc 1,s
|
|
|
|
tay
|
|
|
|
tsc
|
|
|
|
phx
|
|
|
|
tax
|
|
|
|
phb
|
|
|
|
pea $0000
|
|
|
|
plb
|
|
|
|
plb
|
|
|
|
lda |7,x
|
|
|
|
sta |7,y
|
|
|
|
lda |5,x
|
|
|
|
sta |5,y
|
|
|
|
lda |3,x
|
|
|
|
sta |3,y
|
|
|
|
plb
|
|
|
|
plx
|
|
|
|
tsc
|
|
|
|
clc
|
|
|
|
adc 1,s
|
|
|
|
adc #2
|
|
|
|
tcs
|
|
|
|
txa
|
|
|
|
cmp #1
|
|
|
|
rtl
|
|
|
|
END
|
|
|
|
|
|
|
|
exits START
|
|
|
|
bye4 ENTRY
|
|
|
|
ldx #0
|
|
|
|
pld
|
|
|
|
ldy #4
|
|
|
|
jmp tool_exit
|
|
|
|
bye6 ENTRY
|
|
|
|
ldx #0
|
|
|
|
pld
|
|
|
|
ldy #6
|
|
|
|
jmp tool_exit
|
|
|
|
bye0 ENTRY
|
|
|
|
ldx #0
|
|
|
|
pld
|
|
|
|
ldy #0
|
|
|
|
jmp tool_exit
|
|
|
|
bye2 ENTRY
|
|
|
|
ldx #0
|
|
|
|
pld
|
|
|
|
ldy #2
|
|
|
|
jmp tool_exit
|
|
|
|
bye8 ENTRY
|
|
|
|
ldx #0
|
|
|
|
pld
|
|
|
|
ldy #8
|
|
|
|
jmp tool_exit
|
|
|
|
bye10 ENTRY
|
|
|
|
ldx #0
|
|
|
|
pld
|
|
|
|
ldy #10
|
|
|
|
jmp tool_exit
|
|
|
|
bye14 ENTRY
|
|
|
|
ldx #0
|
|
|
|
pld
|
|
|
|
ldy #14
|
|
|
|
jmp tool_exit
|
|
|
|
END
|
|
|
|
|
|
|
|
enableBuf START
|
|
|
|
using InOutData
|
|
|
|
php
|
|
|
|
phy
|
|
|
|
phx
|
|
|
|
pha
|
|
|
|
lda >bufState
|
|
|
|
beq nodec
|
|
|
|
dec a
|
|
|
|
sta >bufState
|
|
|
|
cmp #0
|
|
|
|
bne nodec
|
|
|
|
IntSource #0 ; make sure Kbd ints are enabled
|
|
|
|
short mx
|
|
|
|
sta >$E0C001 ; re-enable 80-STORE
|
|
|
|
long mx
|
|
|
|
ph4 #cbuf
|
|
|
|
pea $011A
|
|
|
|
jsl $E100B0
|
|
|
|
nodec anop
|
|
|
|
pla
|
|
|
|
plx
|
|
|
|
ply
|
|
|
|
plp
|
|
|
|
rtl
|
|
|
|
cbuf dc i2'5'
|
|
|
|
END
|
|
|
|
|
|
|
|
disableBuf START
|
|
|
|
using InOutData
|
|
|
|
|
|
|
|
php
|
|
|
|
phy
|
|
|
|
phx
|
|
|
|
pha
|
|
|
|
|
|
|
|
lda >bufState
|
|
|
|
inc a
|
|
|
|
sta >bufState
|
|
|
|
cmp #1
|
|
|
|
bne goaway
|
|
|
|
lda #0
|
|
|
|
sta >OutStopped
|
|
|
|
|
|
|
|
IntSource #1 ; turn off our kbd "interrupt"
|
|
|
|
ph4 #cbuf
|
|
|
|
pea $011A
|
|
|
|
jsl $E100B0
|
|
|
|
goaway anop
|
|
|
|
pla
|
|
|
|
plx
|
|
|
|
ply
|
|
|
|
plp
|
|
|
|
rtl
|
|
|
|
cbuf dc i2'6'
|
|
|
|
END
|
|
|
|
|