; AUTOGENERATED by scripts/genToolbox.py from NList.Data.
; DO NOT EDIT by hand — regenerate to update.
; Source: tools/nlist/NList.Data.txt (Dave Lyons' NiftyList database).
;
; IIgs toolbox multi-arg wrappers.
;
; C ABI: arg0 (i16) in A, arg0 (i32) in A:X, arg1+ on stack (4,S etc.).
; Each wrapper re-pushes args in toolbox (Pascal-style L-to-R) order,
; preceded by result space if non-void return, then JSL $E10000
; (or $E100A8 for GS/OS).  Pops result if non-void.
;
; Tool number: high byte = function, low byte = tool set.

	.text

; Create(Pointer, Word, Word, LongWord, Word, LongWord, LongWord) -> void
; tool 0x2001, set 0x01 (ToolLocator)
	.section .text.Create,"ax"
	.globl Create
Create:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 24, s
	pha
	; --- arg5 (LongWord, 4B) ---
	lda 30, s
	pha
	lda 30, s
	pha
	; --- arg6 (LongWord, 4B) ---
	lda 38, s
	pha
	lda 38, s
	pha
	ldx #0x2001
	jsl 0xe100a8
	rtl

; Destroy(Pointer) -> void
; tool 0x2002, set 0x02 (MemoryManager)
	.section .text.Destroy,"ax"
	.globl Destroy
Destroy:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2002
	jsl 0xe100a8
	rtl

; ChangePath(Pointer, Pointer, Word) -> void
; tool 0x2004, set 0x04 (QuickDraw)
	.section .text.ChangePath,"ax"
	.globl ChangePath
ChangePath:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x2004
	jsl 0xe100a8
	rtl

; GetFileInfo(Pointer, Word, Word, LongWord, Word, 8B, 8B, Pointer, LongWord, LongWord, LongWord, LongWord) -> void
; tool 0x2006, set 0x06 (EventManager)
	.section .text.GetFileInfo,"ax"
	.globl GetFileInfo
GetFileInfo:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 24, s
	pha
	; --- arg5 (8B, 8B) ---
	lda 28, s
	pha
	lda 30, s
	pha
	lda 32, s
	pha
	lda 34, s
	pha
	; --- arg6 (8B, 8B) ---
	lda 44, s
	pha
	lda 46, s
	pha
	lda 48, s
	pha
	lda 50, s
	pha
	; --- arg7 (Pointer, 4B) ---
	lda 62, s
	pha
	lda 62, s
	pha
	; --- arg8 (LongWord, 4B) ---
	lda 70, s
	pha
	lda 70, s
	pha
	; --- arg9 (LongWord, 4B) ---
	lda 78, s
	pha
	lda 78, s
	pha
	; --- arg10 (LongWord, 4B) ---
	lda 86, s
	pha
	lda 86, s
	pha
	; --- arg11 (LongWord, 4B) ---
	lda 94, s
	pha
	lda 94, s
	pha
	ldx #0x2006
	jsl 0xe100a8
	rtl

; JudgeName(Word, Word, Pointer, Word, Pointer, Word) -> void
; tool 0x2007, set 0x07 (Scheduler)
	.section .text.JudgeName,"ax"
	.globl JudgeName
JudgeName:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 30, s
	pha
	ldx #0x2007
	jsl 0xe100a8
	rtl

; Volume(Pointer, Pointer, LongWord, LongWord, Word, Word, Word, Word) -> void
; tool 0x2008, set 0x08 (SoundManager)
	.section .text.Volume,"ax"
	.globl Volume
Volume:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 26, s
	pha
	lda 26, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 32, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 36, s
	pha
	; --- arg6 (Word, 2B) ---
	lda 40, s
	pha
	; --- arg7 (Word, 2B) ---
	lda 44, s
	pha
	ldx #0x2008
	jsl 0xe100a8
	rtl

; SetPrefix(Word, Pointer) -> void
; tool 0x2009, set 0x09 (AppleDeskBus)
	.section .text.SetPrefix,"ax"
	.globl SetPrefix
SetPrefix:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x2009
	jsl 0xe100a8
	rtl

; GetPrefix(Word, Pointer) -> void
; tool 0x200A, set 0x0A (SANE)
	.section .text.GetPrefix,"ax"
	.globl GetPrefix
GetPrefix:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x200A
	jsl 0xe100a8
	rtl

; ClearBackup(Pointer) -> void
; tool 0x200B, set 0x0B (IntegerMath)
	.section .text.ClearBackup,"ax"
	.globl ClearBackup
ClearBackup:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x200B
	jsl 0xe100a8
	rtl

; ExpandPath(Pointer, Pointer, Word) -> void
; tool 0x200E, set 0x0E (WindowManager)
	.section .text.ExpandPath,"ax"
	.globl ExpandPath
ExpandPath:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x200E
	jsl 0xe100a8
	rtl

; Open(Word, Pointer, Word, Word, Word, Word) -> void
; tool 0x2010, set 0x10 (ControlManager)
	.section .text.Open,"ax"
	.globl Open
Open:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 22, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 26, s
	pha
	ldx #0x2010
	jsl 0xe100a8
	rtl

; NewLine(Word, Word, Word, Pointer) -> void
; tool 0x2011, set 0x11 (Loader)
	.section .text.NewLine,"ax"
	.globl NewLine
NewLine:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x2011
	jsl 0xe100a8
	rtl

; Read(Word, Pointer, LongWord, LongWord, Word) -> void
; tool 0x2012, set 0x12 (QDAuxiliary)
	.section .text.Read,"ax"
	.globl Read
Read:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 30, s
	pha
	ldx #0x2012
	jsl 0xe100a8
	rtl

; Write(Word, Pointer, LongWord, LongWord, Word) -> void
; tool 0x2013, set 0x13 (PrintManager)
	.section .text.Write,"ax"
	.globl Write
Write:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 30, s
	pha
	ldx #0x2013
	jsl 0xe100a8
	rtl

; Flush(Word, Word) -> void
; tool 0x2015, set 0x15 (DialogManager)
	.section .text.Flush,"ax"
	.globl Flush
Flush:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x2015
	jsl 0xe100a8
	rtl

; SetMark(Word, Word, LongWord) -> void
; tool 0x2016, set 0x16 (ScrapManager)
	.section .text.SetMark,"ax"
	.globl SetMark
SetMark:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x2016
	jsl 0xe100a8
	rtl

; GetMark(Word, LongWord) -> void
; tool 0x2017, set 0x17 (StandardFile)
	.section .text.GetMark,"ax"
	.globl GetMark
GetMark:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x2017
	jsl 0xe100a8
	rtl

; SetEOF(Word, Word, LongWord) -> void
; tool 0x2018, set 0x18 (DiskUtil)
	.section .text.SetEOF,"ax"
	.globl SetEOF
SetEOF:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x2018
	jsl 0xe100a8
	rtl

; GetEOF(Word, LongWord) -> void
; tool 0x2019, set 0x19 (NoteSynth)
	.section .text.GetEOF,"ax"
	.globl GetEOF
GetEOF:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x2019
	jsl 0xe100a8
	rtl

; SetLevel(Word, Word) -> void
; tool 0x201A, set 0x1A (NoteSequencer)
	.section .text.SetLevel,"ax"
	.globl SetLevel
SetLevel:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x201A
	jsl 0xe100a8
	rtl

; GetLevel(Word, Word) -> void
; tool 0x201B, set 0x1B (FontManager)
	.section .text.GetLevel,"ax"
	.globl GetLevel
GetLevel:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x201B
	jsl 0xe100a8
	rtl

; GetDirEntry(Word, Word, Word, Word, Pointer, Word, Word, LongWord, LongWord, 8B, 8B, Word, LongWord, Word, Pointer, LongWord, LongWord) -> void
; tool 0x201C, set 0x1C (ListManager)
	.section .text.GetDirEntry,"ax"
	.globl GetDirEntry
GetDirEntry:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 26, s
	pha
	; --- arg6 (Word, 2B) ---
	lda 30, s
	pha
	; --- arg7 (LongWord, 4B) ---
	lda 36, s
	pha
	lda 36, s
	pha
	; --- arg8 (LongWord, 4B) ---
	lda 44, s
	pha
	lda 44, s
	pha
	; --- arg9 (8B, 8B) ---
	lda 50, s
	pha
	lda 52, s
	pha
	lda 54, s
	pha
	lda 56, s
	pha
	; --- arg10 (8B, 8B) ---
	lda 66, s
	pha
	lda 68, s
	pha
	lda 70, s
	pha
	lda 72, s
	pha
	; --- arg11 (Word, 2B) ---
	lda 82, s
	pha
	; --- arg12 (LongWord, 4B) ---
	lda 88, s
	pha
	lda 88, s
	pha
	; --- arg13 (Word, 2B) ---
	lda 94, s
	pha
	; --- arg14 (Pointer, 4B) ---
	lda 100, s
	pha
	lda 100, s
	pha
	; --- arg15 (LongWord, 4B) ---
	lda 108, s
	pha
	lda 108, s
	pha
	; --- arg16 (LongWord, 4B) ---
	lda 116, s
	pha
	lda 116, s
	pha
	ldx #0x201C
	jsl 0xe100a8
	rtl

; GetDevNumber(Pointer, Word) -> void
; tool 0x2020, set 0x20 (VideoOverlay)
	.section .text.GetDevNumber,"ax"
	.globl GetDevNumber
GetDevNumber:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x2020
	jsl 0xe100a8
	rtl

; Format(Pointer, Pointer, Word, Word, Word, Word) -> void
; tool 0x2024, set 0x24 (?)
	.section .text.Format,"ax"
	.globl Format
Format:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 20, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 24, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 28, s
	pha
	ldx #0x2024
	jsl 0xe100a8
	rtl

; EraseDisk(Pointer, Pointer, Word, Word, Word, Word) -> void
; tool 0x2025, set 0x25 (?)
	.section .text.EraseDisk,"ax"
	.globl EraseDisk
EraseDisk:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 20, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 24, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 28, s
	pha
	ldx #0x2025
	jsl 0xe100a8
	rtl

; GetName(Pointer) -> void
; tool 0x2027, set 0x27 (?)
	.section .text.GetName,"ax"
	.globl GetName
GetName:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2027
	jsl 0xe100a8
	rtl

; GetBootvol(Pointer) -> void
; tool 0x2028, set 0x28 (?)
	.section .text.GetBootvol,"ax"
	.globl GetBootvol
GetBootvol:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2028
	jsl 0xe100a8
	rtl

; Quit(Pointer, Word) -> void
; tool 0x2029, set 0x29 (?)
	.section .text.Quit,"ax"
	.globl Quit
Quit:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x2029
	jsl 0xe100a8
	rtl

; GetFSTInfo(Word, Word, Pointer, Word, Word, Word, LongWord, LongWord) -> void
; tool 0x202B, set 0x2B (?)
	.section .text.GetFSTInfo,"ax"
	.globl GetFSTInfo
GetFSTInfo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 22, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 26, s
	pha
	; --- arg6 (LongWord, 4B) ---
	lda 32, s
	pha
	lda 32, s
	pha
	; --- arg7 (LongWord, 4B) ---
	lda 40, s
	pha
	lda 40, s
	pha
	ldx #0x202B
	jsl 0xe100a8
	rtl

; DInfo(Word, Pointer, Word, LongWord, Word, Word, Word, Word, Pointer, Pointer) -> void
; tool 0x202C, set 0x2C (?)
	.section .text.DInfo,"ax"
	.globl DInfo
DInfo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 26, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 30, s
	pha
	; --- arg6 (Word, 2B) ---
	lda 34, s
	pha
	; --- arg7 (Word, 2B) ---
	lda 38, s
	pha
	; --- arg8 (Pointer, 4B) ---
	lda 44, s
	pha
	lda 44, s
	pha
	; --- arg9 (Pointer, 4B) ---
	lda 52, s
	pha
	lda 52, s
	pha
	ldx #0x202C
	jsl 0xe100a8
	rtl

; DStatus(Word, Word, Pointer, LongWord, LongWord) -> void
; tool 0x202D, set 0x2D (?)
	.section .text.DStatus,"ax"
	.globl DStatus
DStatus:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg4 (LongWord, 4B) ---
	lda 28, s
	pha
	lda 28, s
	pha
	ldx #0x202D
	jsl 0xe100a8
	rtl

; DControl(Word, Word, Pointer, LongWord, LongWord) -> void
; tool 0x202E, set 0x2E (?)
	.section .text.DControl,"ax"
	.globl DControl
DControl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg4 (LongWord, 4B) ---
	lda 28, s
	pha
	lda 28, s
	pha
	ldx #0x202E
	jsl 0xe100a8
	rtl

; DRead(Word, Pointer, LongWord, LongWord, Word, LongWord) -> void
; tool 0x202F, set 0x2F (?)
	.section .text.DRead,"ax"
	.globl DRead
DRead:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 30, s
	pha
	; --- arg5 (LongWord, 4B) ---
	lda 36, s
	pha
	lda 36, s
	pha
	ldx #0x202F
	jsl 0xe100a8
	rtl

; DWrite(Word, Pointer, LongWord, LongWord, Word, LongWord) -> void
; tool 0x2030, set 0x30 (?)
	.section .text.DWrite,"ax"
	.globl DWrite
DWrite:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 30, s
	pha
	; --- arg5 (LongWord, 4B) ---
	lda 36, s
	pha
	lda 36, s
	pha
	ldx #0x2030
	jsl 0xe100a8
	rtl

; BindInt(Word, Word, Pointer) -> void
; tool 0x2031, set 0x31 (?)
	.section .text.BindInt,"ax"
	.globl BindInt
BindInt:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x2031
	jsl 0xe100a8
	rtl

; AddNotifyProc(Pointer) -> void
; tool 0x2034, set 0x34 (?)
	.section .text.AddNotifyProc,"ax"
	.globl AddNotifyProc
AddNotifyProc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2034
	jsl 0xe100a8
	rtl

; DelNotifyProc(Pointer) -> void
; tool 0x2035, set 0x35 (?)
	.section .text.DelNotifyProc,"ax"
	.globl DelNotifyProc
DelNotifyProc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2035
	jsl 0xe100a8
	rtl

; DRename(Word, Pointer) -> void
; tool 0x2036, set 0x36 (?)
	.section .text.DRename,"ax"
	.globl DRename
DRename:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x2036
	jsl 0xe100a8
	rtl

; GetStdRefNum(Word, Word) -> void
; tool 0x2037, set 0x37 (?)
	.section .text.GetStdRefNum,"ax"
	.globl GetStdRefNum
GetStdRefNum:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x2037
	jsl 0xe100a8
	rtl

; GetRefNum(Pointer, Word, Word, Word, Word, Word) -> void
; tool 0x2038, set 0x38 (?)
	.section .text.GetRefNum,"ax"
	.globl GetRefNum
GetRefNum:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 16, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 20, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 24, s
	pha
	ldx #0x2038
	jsl 0xe100a8
	rtl

; GetRefInfo(Word, Word, Pointer, Word, Word) -> void
; tool 0x2039, set 0x39 (?)
	.section .text.GetRefInfo,"ax"
	.globl GetRefInfo
GetRefInfo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 22, s
	pha
	ldx #0x2039
	jsl 0xe100a8
	rtl

; SetStdRefNum(Word, Word) -> void
; tool 0x203A, set 0x3A (?)
	.section .text.SetStdRefNum,"ax"
	.globl SetStdRefNum
SetStdRefNum:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x203A
	jsl 0xe100a8
	rtl

; GetTSPtr(Word, Word) -> Pointer
; tool 0x0901, set 0x01 (ToolLocator)
	.section .text.GetTSPtr,"ax"
	.globl GetTSPtr
GetTSPtr:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0901
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetTSPtr(Word, Word, Pointer) -> void
; tool 0x0A01, set 0x01 (ToolLocator)
	.section .text.SetTSPtr,"ax"
	.globl SetTSPtr
SetTSPtr:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x0A01
	jsl 0xe10000
	rtl

; GetFuncPtr(Word, Word) -> Pointer
; tool 0x0B01, set 0x01 (ToolLocator)
	.section .text.GetFuncPtr,"ax"
	.globl GetFuncPtr
GetFuncPtr:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0B01
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetWAP(Word, Word) -> Pointer
; tool 0x0C01, set 0x01 (ToolLocator)
	.section .text.GetWAP,"ax"
	.globl GetWAP
GetWAP:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0C01
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetWAP(Word, Word, Pointer) -> void
; tool 0x0D01, set 0x01 (ToolLocator)
	.section .text.SetWAP,"ax"
	.globl SetWAP
SetWAP:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x0D01
	jsl 0xe10000
	rtl

; LoadTools(Pointer) -> void
; tool 0x0E01, set 0x01 (ToolLocator)
	.section .text.LoadTools,"ax"
	.globl LoadTools
LoadTools:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0E01
	jsl 0xe10000
	rtl

; LoadOneTool(Word, Word) -> void
; tool 0x0F01, set 0x01 (ToolLocator)
	.section .text.LoadOneTool,"ax"
	.globl LoadOneTool
LoadOneTool:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0F01
	jsl 0xe10000
	rtl

; TLMountVolume(Word, Word, Pointer, Pointer, Pointer, Pointer) -> Word
; tool 0x1101, set 0x01 (ToolLocator)
	.section .text.TLMountVolume,"ax"
	.globl TLMountVolume
TLMountVolume:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 22, s
	pha
	lda 22, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 30, s
	pha
	lda 30, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 38, s
	pha
	lda 38, s
	pha
	ldx #0x1101
	jsl 0xe10000
	pla              ; result -> A
	rtl

; TLTextMountVolume(Pointer, Pointer, Pointer, Pointer) -> Word
; tool 0x1201, set 0x01 (ToolLocator)
	.section .text.TLTextMountVolume,"ax"
	.globl TLTextMountVolume
TLTextMountVolume:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 28, s
	pha
	lda 28, s
	pha
	ldx #0x1201
	jsl 0xe10000
	pla              ; result -> A
	rtl

; SaveTextState(void) -> Pointer
; tool 0x1301, set 0x01 (ToolLocator)
	.section .text.SaveTextState,"ax"
	.globl SaveTextState
SaveTextState:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1301
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; RestoreTextState(Pointer) -> void
; tool 0x1401, set 0x01 (ToolLocator)
	.section .text.RestoreTextState,"ax"
	.globl RestoreTextState
RestoreTextState:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1401
	jsl 0xe10000
	rtl

; MessageCenter(Word, Word, Pointer) -> void
; tool 0x1501, set 0x01 (ToolLocator)
	.section .text.MessageCenter,"ax"
	.globl MessageCenter
MessageCenter:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1501
	jsl 0xe10000
	rtl

; MessageByName(Word, Pointer) -> LongWord
; tool 0x1701, set 0x01 (ToolLocator)
	.section .text.MessageByName,"ax"
	.globl MessageByName
MessageByName:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1701
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; StartUpTools(Word, Word, LongWord) -> LongWord
; tool 0x1801, set 0x01 (ToolLocator)
	.section .text.StartUpTools,"ax"
	.globl StartUpTools
StartUpTools:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x1801
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; ShutDownTools(Word, LongWord) -> void
; tool 0x1901, set 0x01 (ToolLocator)
	.section .text.ShutDownTools,"ax"
	.globl ShutDownTools
ShutDownTools:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x1901
	jsl 0xe10000
	rtl

; GetMsgHandle(Word, LongWord) -> Pointer
; tool 0x1A01, set 0x01 (ToolLocator)
	.section .text.GetMsgHandle,"ax"
	.globl GetMsgHandle
GetMsgHandle:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1A01
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; AcceptRequests(Pointer, Word, Pointer) -> void
; tool 0x1B01, set 0x01 (ToolLocator)
	.section .text.AcceptRequests,"ax"
	.globl AcceptRequests
AcceptRequests:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x1B01
	jsl 0xe10000
	rtl

; SendRequest(Word, Word, LongWord, Pointer, Pointer) -> void
; tool 0x1C01, set 0x01 (ToolLocator)
	.section .text.SendRequest,"ax"
	.globl SendRequest
SendRequest:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 28, s
	pha
	lda 28, s
	pha
	ldx #0x1C01
	jsl 0xe10000
	rtl

; NewHandle(LongWord, Word, Word, Pointer) -> Pointer
; tool 0x0902, set 0x02 (MemoryManager)
	.section .text.NewHandle,"ax"
	.globl NewHandle
NewHandle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 22, s
	pha
	lda 22, s
	pha
	ldx #0x0902
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; ReAllocHandle(LongWord, Word, Word, Pointer, Pointer) -> void
; tool 0x0A02, set 0x02 (MemoryManager)
	.section .text.ReAllocHandle,"ax"
	.globl ReAllocHandle
ReAllocHandle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 26, s
	pha
	lda 26, s
	pha
	ldx #0x0A02
	jsl 0xe10000
	rtl

; RestoreHandle(Pointer) -> void
; tool 0x0B02, set 0x02 (MemoryManager)
	.section .text.RestoreHandle,"ax"
	.globl RestoreHandle
RestoreHandle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0B02
	jsl 0xe10000
	rtl

; AddToOOMQueue(Pointer) -> void
; tool 0x0C02, set 0x02 (MemoryManager)
	.section .text.AddToOOMQueue,"ax"
	.globl AddToOOMQueue
AddToOOMQueue:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0C02
	jsl 0xe10000
	rtl

; RemoveFromOOMQueue(Pointer) -> void
; tool 0x0D02, set 0x02 (MemoryManager)
	.section .text.RemoveFromOOMQueue,"ax"
	.globl RemoveFromOOMQueue
RemoveFromOOMQueue:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0D02
	jsl 0xe10000
	rtl

; DisposeHandle(Pointer) -> void
; tool 0x1002, set 0x02 (MemoryManager)
	.section .text.DisposeHandle,"ax"
	.globl DisposeHandle
DisposeHandle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1002
	jsl 0xe10000
	rtl

; PurgeHandle(Pointer) -> void
; tool 0x1202, set 0x02 (MemoryManager)
	.section .text.PurgeHandle,"ax"
	.globl PurgeHandle
PurgeHandle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1202
	jsl 0xe10000
	rtl

; GetHandleSize(Pointer) -> LongWord
; tool 0x1802, set 0x02 (MemoryManager)
	.section .text.GetHandleSize,"ax"
	.globl GetHandleSize
GetHandleSize:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1802
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetHandleSize(LongWord, Pointer) -> void
; tool 0x1902, set 0x02 (MemoryManager)
	.section .text.SetHandleSize,"ax"
	.globl SetHandleSize
SetHandleSize:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1902
	jsl 0xe10000
	rtl

; FindHandle(Pointer) -> Pointer
; tool 0x1A02, set 0x02 (MemoryManager)
	.section .text.FindHandle,"ax"
	.globl FindHandle
FindHandle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1A02
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FreeMem(void) -> LongWord
; tool 0x1B02, set 0x02 (MemoryManager)
	.section .text.FreeMem,"ax"
	.globl FreeMem
FreeMem:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1B02
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MaxBlock(void) -> LongWord
; tool 0x1C02, set 0x02 (MemoryManager)
	.section .text.MaxBlock,"ax"
	.globl MaxBlock
MaxBlock:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1C02
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; TotalMem(void) -> LongWord
; tool 0x1D02, set 0x02 (MemoryManager)
	.section .text.TotalMem,"ax"
	.globl TotalMem
TotalMem:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1D02
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; CheckHandle(Pointer) -> void
; tool 0x1E02, set 0x02 (MemoryManager)
	.section .text.CheckHandle,"ax"
	.globl CheckHandle
CheckHandle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1E02
	jsl 0xe10000
	rtl

; HLock(Pointer) -> void
; tool 0x2002, set 0x02 (MemoryManager)
	.section .text.HLock,"ax"
	.globl HLock
HLock:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2002
	jsl 0xe10000
	rtl

; HUnlock(Pointer) -> void
; tool 0x2202, set 0x02 (MemoryManager)
	.section .text.HUnlock,"ax"
	.globl HUnlock
HUnlock:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2202
	jsl 0xe10000
	rtl

; SetPurge(Word, Pointer) -> void
; tool 0x2402, set 0x02 (MemoryManager)
	.section .text.SetPurge,"ax"
	.globl SetPurge
SetPurge:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x2402
	jsl 0xe10000
	rtl

; SetPurgeAll(Word, Word) -> void
; tool 0x2502, set 0x02 (MemoryManager)
	.section .text.SetPurgeAll,"ax"
	.globl SetPurgeAll
SetPurgeAll:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x2502
	jsl 0xe10000
	rtl

; PtrToHand(Pointer, Pointer, LongWord) -> void
; tool 0x2802, set 0x02 (MemoryManager)
	.section .text.PtrToHand,"ax"
	.globl PtrToHand
PtrToHand:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x2802
	jsl 0xe10000
	rtl

; HandToPtr(Pointer, Pointer, LongWord) -> void
; tool 0x2902, set 0x02 (MemoryManager)
	.section .text.HandToPtr,"ax"
	.globl HandToPtr
HandToPtr:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x2902
	jsl 0xe10000
	rtl

; HandToHand(Pointer, Pointer, LongWord) -> void
; tool 0x2A02, set 0x02 (MemoryManager)
	.section .text.HandToHand,"ax"
	.globl HandToHand
HandToHand:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x2A02
	jsl 0xe10000
	rtl

; BlockMove(Pointer, Pointer, LongWord) -> void
; tool 0x2B02, set 0x02 (MemoryManager)
	.section .text.BlockMove,"ax"
	.globl BlockMove
BlockMove:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x2B02
	jsl 0xe10000
	rtl

; RealFreeMem(void) -> LongWord
; tool 0x2F02, set 0x02 (MemoryManager)
	.section .text.RealFreeMem,"ax"
	.globl RealFreeMem
RealFreeMem:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x2F02
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetHandleID(Word, Word) -> Word
; tool 0x3002, set 0x02 (MemoryManager)
	.section .text.SetHandleID,"ax"
	.globl SetHandleID
SetHandleID:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x3002
	jsl 0xe10000
	pla              ; result -> A
	rtl

; WriteBRam(Pointer) -> void
; tool 0x0903, set 0x03 (MiscTools)
	.section .text.WriteBRam,"ax"
	.globl WriteBRam
WriteBRam:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0903
	jsl 0xe10000
	rtl

; ReadBRam(Pointer) -> void
; tool 0x0A03, set 0x03 (MiscTools)
	.section .text.ReadBRam,"ax"
	.globl ReadBRam
ReadBRam:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0A03
	jsl 0xe10000
	rtl

; WriteBParam(Word, Word) -> void
; tool 0x0B03, set 0x03 (MiscTools)
	.section .text.WriteBParam,"ax"
	.globl WriteBParam
WriteBParam:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0B03
	jsl 0xe10000
	rtl

; ReadTimeHex(void) -> 8B
; tool 0x0D03, set 0x03 (MiscTools)
	.section .text.ReadTimeHex,"ax"
	.globl ReadTimeHex
ReadTimeHex:
	; --- result space (8 bytes) ---
	pea 0
	pea 0
	pea 0
	pea 0
	ldx #0x0D03
	jsl 0xe10000
	pla
	pla
	pla
	pla
	rtl

; WriteTimeHex(Word, Word, Word) -> void
; tool 0x0E03, set 0x03 (MiscTools)
	.section .text.WriteTimeHex,"ax"
	.globl WriteTimeHex
WriteTimeHex:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0E03
	jsl 0xe10000
	rtl

; ReadAsciiTime(Pointer) -> void
; tool 0x0F03, set 0x03 (MiscTools)
	.section .text.ReadAsciiTime,"ax"
	.globl ReadAsciiTime
ReadAsciiTime:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0F03
	jsl 0xe10000
	rtl

; SetVector(Word, Pointer) -> void
; tool 0x1003, set 0x03 (MiscTools)
	.section .text.SetVector,"ax"
	.globl SetVector
SetVector:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x1003
	jsl 0xe10000
	rtl

; GetVector(Word) -> Pointer
; tool 0x1103, set 0x03 (MiscTools)
	.section .text.GetVector,"ax"
	.globl GetVector
GetVector:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x1103
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetHeartBeat(Pointer) -> void
; tool 0x1203, set 0x03 (MiscTools)
	.section .text.SetHeartBeat,"ax"
	.globl SetHeartBeat
SetHeartBeat:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1203
	jsl 0xe10000
	rtl

; DelHeartBeat(Pointer) -> void
; tool 0x1303, set 0x03 (MiscTools)
	.section .text.DelHeartBeat,"ax"
	.globl DelHeartBeat
DelHeartBeat:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1303
	jsl 0xe10000
	rtl

; SysFailMgr(Word, Pointer) -> void
; tool 0x1503, set 0x03 (MiscTools)
	.section .text.SysFailMgr,"ax"
	.globl SysFailMgr
SysFailMgr:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x1503
	jsl 0xe10000
	rtl

; GetAddr(Word) -> Pointer
; tool 0x1603, set 0x03 (MiscTools)
	.section .text.GetAddr,"ax"
	.globl GetAddr
GetAddr:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x1603
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; ReadMouse(void) -> Pointer
; tool 0x1703, set 0x03 (MiscTools)
	.section .text.ReadMouse,"ax"
	.globl ReadMouse
ReadMouse:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1703
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; ClampMouse(Word, Word, Word, Word) -> void
; tool 0x1C03, set 0x03 (MiscTools)
	.section .text.ClampMouse,"ax"
	.globl ClampMouse
ClampMouse:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x1C03
	jsl 0xe10000
	rtl

; GetMouseClamp(void) -> 8B
; tool 0x1D03, set 0x03 (MiscTools)
	.section .text.GetMouseClamp,"ax"
	.globl GetMouseClamp
GetMouseClamp:
	; --- result space (8 bytes) ---
	pea 0
	pea 0
	pea 0
	pea 0
	ldx #0x1D03
	jsl 0xe10000
	pla
	pla
	pla
	pla
	rtl

; PosMouse(Word, Word) -> void
; tool 0x1E03, set 0x03 (MiscTools)
	.section .text.PosMouse,"ax"
	.globl PosMouse
PosMouse:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x1E03
	jsl 0xe10000
	rtl

; FWEntry(Word, Word, Word, Word) -> 8B
; tool 0x2403, set 0x03 (MiscTools)
	.section .text.FWEntry,"ax"
	.globl FWEntry
FWEntry:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (8 bytes) ---
	pea 0
	pea 0
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 22, s
	pha
	ldx #0x2403
	jsl 0xe10000
	pla
	pla
	pla
	pla
	rtl

; GetTick(void) -> LongWord
; tool 0x2503, set 0x03 (MiscTools)
	.section .text.GetTick,"ax"
	.globl GetTick
GetTick:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x2503
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PackBytes(Pointer, Pointer, Pointer, Word) -> Word
; tool 0x2603, set 0x03 (MiscTools)
	.section .text.PackBytes,"ax"
	.globl PackBytes
PackBytes:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 26, s
	pha
	ldx #0x2603
	jsl 0xe10000
	pla              ; result -> A
	rtl

; UnPackBytes(Pointer, Word, Pointer, Pointer) -> Word
; tool 0x2703, set 0x03 (MiscTools)
	.section .text.UnPackBytes,"ax"
	.globl UnPackBytes
UnPackBytes:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	ldx #0x2703
	jsl 0xe10000
	pla              ; result -> A
	rtl

; Munger(Pointer, Pointer, Pointer, Word, Pointer, Word, Pointer) -> Word
; tool 0x2803, set 0x03 (MiscTools)
	.section .text.Munger,"ax"
	.globl Munger
Munger:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 26, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 32, s
	pha
	lda 32, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 38, s
	pha
	; --- arg6 (Pointer, 4B) ---
	lda 44, s
	pha
	lda 44, s
	pha
	ldx #0x2803
	jsl 0xe10000
	pla              ; result -> A
	rtl

; SetAbsClamp(Word, Word, Word, Word) -> void
; tool 0x2A03, set 0x03 (MiscTools)
	.section .text.SetAbsClamp,"ax"
	.globl SetAbsClamp
SetAbsClamp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x2A03
	jsl 0xe10000
	rtl

; GetAbsClamp(void) -> 8B
; tool 0x2B03, set 0x03 (MiscTools)
	.section .text.GetAbsClamp,"ax"
	.globl GetAbsClamp
GetAbsClamp:
	; --- result space (8 bytes) ---
	pea 0
	pea 0
	pea 0
	pea 0
	ldx #0x2B03
	jsl 0xe10000
	pla
	pla
	pla
	pla
	rtl

; AddToQueue(Pointer, Pointer) -> void
; tool 0x2E03, set 0x03 (MiscTools)
	.section .text.AddToQueue,"ax"
	.globl AddToQueue
AddToQueue:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x2E03
	jsl 0xe10000
	rtl

; DeleteFromQueue(Pointer, Pointer) -> void
; tool 0x2F03, set 0x03 (MiscTools)
	.section .text.DeleteFromQueue,"ax"
	.globl DeleteFromQueue
DeleteFromQueue:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x2F03
	jsl 0xe10000
	rtl

; SetInterruptState(Pointer, Word) -> void
; tool 0x3003, set 0x03 (MiscTools)
	.section .text.SetInterruptState,"ax"
	.globl SetInterruptState
SetInterruptState:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x3003
	jsl 0xe10000
	rtl

; GetInterruptState(Pointer, Word) -> void
; tool 0x3103, set 0x03 (MiscTools)
	.section .text.GetInterruptState,"ax"
	.globl GetInterruptState
GetInterruptState:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x3103
	jsl 0xe10000
	rtl

; ReadMouse2(void) -> Pointer
; tool 0x3303, set 0x03 (MiscTools)
	.section .text.ReadMouse2,"ax"
	.globl ReadMouse2
ReadMouse2:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x3303
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetCodeResConverter(void) -> Pointer
; tool 0x3403, set 0x03 (MiscTools)
	.section .text.GetCodeResConverter,"ax"
	.globl GetCodeResConverter
GetCodeResConverter:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x3403
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetROMResource(Word, LongWord) -> Word
; tool 0x3503, set 0x03 (MiscTools)
	.section .text.GetROMResource,"ax"
	.globl GetROMResource
GetROMResource:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x3503
	jsl 0xe10000
	pla              ; result -> A
	rtl

; ReleaseROMResource(Word, LongWord) -> void
; tool 0x3603, set 0x03 (MiscTools)
	.section .text.ReleaseROMResource,"ax"
	.globl ReleaseROMResource
ReleaseROMResource:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x3603
	jsl 0xe10000
	rtl

; ConvSeconds(Word, LongWord, Pointer) -> LongWord
; tool 0x3703, set 0x03 (MiscTools)
	.section .text.ConvSeconds,"ax"
	.globl ConvSeconds
ConvSeconds:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	ldx #0x3703
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; VersionString(Word, LongWord, Pointer) -> void
; tool 0x3903, set 0x03 (MiscTools)
	.section .text.VersionString,"ax"
	.globl VersionString
VersionString:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x3903
	jsl 0xe10000
	rtl

; WaitUntil(Word, Word) -> Word
; tool 0x3A03, set 0x03 (MiscTools)
	.section .text.WaitUntil,"ax"
	.globl WaitUntil
WaitUntil:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x3A03
	jsl 0xe10000
	pla              ; result -> A
	rtl

; StringToText(Word, Pointer, Word, Pointer) -> LongWord
; tool 0x3B03, set 0x03 (MiscTools)
	.section .text.StringToText,"ax"
	.globl StringToText
StringToText:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	ldx #0x3B03
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; ShowBootInfo(Pointer, Pointer) -> void
; tool 0x3C03, set 0x03 (MiscTools)
	.section .text.ShowBootInfo,"ax"
	.globl ShowBootInfo
ShowBootInfo:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x3C03
	jsl 0xe10000
	rtl

; AlertMessage(Pointer, Word, Pointer) -> Word
; tool 0x3E03, set 0x03 (MiscTools)
	.section .text.AlertMessage,"ax"
	.globl AlertMessage
AlertMessage:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x3E03
	jsl 0xe10000
	pla              ; result -> A
	rtl

; DoSysPrefs(Word, Word) -> Word
; tool 0x3F03, set 0x03 (MiscTools)
	.section .text.DoSysPrefs,"ax"
	.globl DoSysPrefs
DoSysPrefs:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x3F03
	jsl 0xe10000
	pla              ; result -> A
	rtl

; QDStartUp(Word, Word, Word, Word) -> void
; tool 0x0204, set 0x04 (QuickDraw)
	.section .text.QDStartUp,"ax"
	.globl QDStartUp
QDStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x0204
	jsl 0xe10000
	rtl

; GetAddress(Word) -> Pointer
; tool 0x0904, set 0x04 (QuickDraw)
	.section .text.GetAddress,"ax"
	.globl GetAddress
GetAddress:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x0904
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; InitColorTable(Pointer) -> void
; tool 0x0D04, set 0x04 (QuickDraw)
	.section .text.InitColorTable,"ax"
	.globl InitColorTable
InitColorTable:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0D04
	jsl 0xe10000
	rtl

; SetColorTable(Word, Pointer) -> void
; tool 0x0E04, set 0x04 (QuickDraw)
	.section .text.SetColorTable,"ax"
	.globl SetColorTable
SetColorTable:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x0E04
	jsl 0xe10000
	rtl

; GetColorTable(Word, Pointer) -> void
; tool 0x0F04, set 0x04 (QuickDraw)
	.section .text.GetColorTable,"ax"
	.globl GetColorTable
GetColorTable:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x0F04
	jsl 0xe10000
	rtl

; SetColorEntry(Word, Word, Word) -> void
; tool 0x1004, set 0x04 (QuickDraw)
	.section .text.SetColorEntry,"ax"
	.globl SetColorEntry
SetColorEntry:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x1004
	jsl 0xe10000
	rtl

; GetColorEntry(Word, Word) -> Word
; tool 0x1104, set 0x04 (QuickDraw)
	.section .text.GetColorEntry,"ax"
	.globl GetColorEntry
GetColorEntry:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x1104
	jsl 0xe10000
	pla              ; result -> A
	rtl

; SetSCB(Word, Word) -> void
; tool 0x1204, set 0x04 (QuickDraw)
	.section .text.SetSCB,"ax"
	.globl SetSCB
SetSCB:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x1204
	jsl 0xe10000
	rtl

; OpenPort(Pointer) -> void
; tool 0x1804, set 0x04 (QuickDraw)
	.section .text.OpenPort,"ax"
	.globl OpenPort
OpenPort:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1804
	jsl 0xe10000
	rtl

; InitPort(Pointer) -> void
; tool 0x1904, set 0x04 (QuickDraw)
	.section .text.InitPort,"ax"
	.globl InitPort
InitPort:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1904
	jsl 0xe10000
	rtl

; ClosePort(Pointer) -> void
; tool 0x1A04, set 0x04 (QuickDraw)
	.section .text.ClosePort,"ax"
	.globl ClosePort
ClosePort:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1A04
	jsl 0xe10000
	rtl

; SetPort(Pointer) -> void
; tool 0x1B04, set 0x04 (QuickDraw)
	.section .text.SetPort,"ax"
	.globl SetPort
SetPort:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1B04
	jsl 0xe10000
	rtl

; GetPort(void) -> Pointer
; tool 0x1C04, set 0x04 (QuickDraw)
	.section .text.GetPort,"ax"
	.globl GetPort
GetPort:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1C04
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetPortLoc(Pointer) -> void
; tool 0x1D04, set 0x04 (QuickDraw)
	.section .text.SetPortLoc,"ax"
	.globl SetPortLoc
SetPortLoc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1D04
	jsl 0xe10000
	rtl

; GetPortLoc(Pointer) -> void
; tool 0x1E04, set 0x04 (QuickDraw)
	.section .text.GetPortLoc,"ax"
	.globl GetPortLoc
GetPortLoc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1E04
	jsl 0xe10000
	rtl

; SetPortRect(Pointer) -> void
; tool 0x1F04, set 0x04 (QuickDraw)
	.section .text.SetPortRect,"ax"
	.globl SetPortRect
SetPortRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1F04
	jsl 0xe10000
	rtl

; GetPortRect(Pointer) -> void
; tool 0x2004, set 0x04 (QuickDraw)
	.section .text.GetPortRect,"ax"
	.globl GetPortRect
GetPortRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2004
	jsl 0xe10000
	rtl

; SetPortSize(Word, Word) -> void
; tool 0x2104, set 0x04 (QuickDraw)
	.section .text.SetPortSize,"ax"
	.globl SetPortSize
SetPortSize:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x2104
	jsl 0xe10000
	rtl

; MovePortTo(Word, Word) -> void
; tool 0x2204, set 0x04 (QuickDraw)
	.section .text.MovePortTo,"ax"
	.globl MovePortTo
MovePortTo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x2204
	jsl 0xe10000
	rtl

; SetOrigin(Word, Word) -> void
; tool 0x2304, set 0x04 (QuickDraw)
	.section .text.SetOrigin,"ax"
	.globl SetOrigin
SetOrigin:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x2304
	jsl 0xe10000
	rtl

; SetClip(Pointer) -> void
; tool 0x2404, set 0x04 (QuickDraw)
	.section .text.SetClip,"ax"
	.globl SetClip
SetClip:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2404
	jsl 0xe10000
	rtl

; GetClip(Pointer) -> void
; tool 0x2504, set 0x04 (QuickDraw)
	.section .text.GetClip,"ax"
	.globl GetClip
GetClip:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2504
	jsl 0xe10000
	rtl

; ClipRect(Pointer) -> void
; tool 0x2604, set 0x04 (QuickDraw)
	.section .text.ClipRect,"ax"
	.globl ClipRect
ClipRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2604
	jsl 0xe10000
	rtl

; GetPen(Pointer) -> void
; tool 0x2904, set 0x04 (QuickDraw)
	.section .text.GetPen,"ax"
	.globl GetPen
GetPen:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2904
	jsl 0xe10000
	rtl

; SetPenState(Pointer) -> void
; tool 0x2A04, set 0x04 (QuickDraw)
	.section .text.SetPenState,"ax"
	.globl SetPenState
SetPenState:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2A04
	jsl 0xe10000
	rtl

; GetPenState(Pointer) -> void
; tool 0x2B04, set 0x04 (QuickDraw)
	.section .text.GetPenState,"ax"
	.globl GetPenState
GetPenState:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2B04
	jsl 0xe10000
	rtl

; SetPenSize(Word, Word) -> void
; tool 0x2C04, set 0x04 (QuickDraw)
	.section .text.SetPenSize,"ax"
	.globl SetPenSize
SetPenSize:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x2C04
	jsl 0xe10000
	rtl

; GetPenSize(Pointer) -> void
; tool 0x2D04, set 0x04 (QuickDraw)
	.section .text.GetPenSize,"ax"
	.globl GetPenSize
GetPenSize:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2D04
	jsl 0xe10000
	rtl

; SetPenPat(Pointer) -> void
; tool 0x3004, set 0x04 (QuickDraw)
	.section .text.SetPenPat,"ax"
	.globl SetPenPat
SetPenPat:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3004
	jsl 0xe10000
	rtl

; GetPenPat(Pointer) -> void
; tool 0x3104, set 0x04 (QuickDraw)
	.section .text.GetPenPat,"ax"
	.globl GetPenPat
GetPenPat:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3104
	jsl 0xe10000
	rtl

; SetPenMask(Pointer) -> void
; tool 0x3204, set 0x04 (QuickDraw)
	.section .text.SetPenMask,"ax"
	.globl SetPenMask
SetPenMask:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3204
	jsl 0xe10000
	rtl

; GetPenMask(Pointer) -> void
; tool 0x3304, set 0x04 (QuickDraw)
	.section .text.GetPenMask,"ax"
	.globl GetPenMask
GetPenMask:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3304
	jsl 0xe10000
	rtl

; SetBackPat(Pointer) -> void
; tool 0x3404, set 0x04 (QuickDraw)
	.section .text.SetBackPat,"ax"
	.globl SetBackPat
SetBackPat:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3404
	jsl 0xe10000
	rtl

; GetBackPat(Pointer) -> void
; tool 0x3504, set 0x04 (QuickDraw)
	.section .text.GetBackPat,"ax"
	.globl GetBackPat
GetBackPat:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3504
	jsl 0xe10000
	rtl

; SolidPattern(Word, Pointer) -> void
; tool 0x3904, set 0x04 (QuickDraw)
	.section .text.SolidPattern,"ax"
	.globl SolidPattern
SolidPattern:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x3904
	jsl 0xe10000
	rtl

; MoveTo(Word, Word) -> void
; tool 0x3A04, set 0x04 (QuickDraw)
	.section .text.MoveTo,"ax"
	.globl MoveTo
MoveTo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x3A04
	jsl 0xe10000
	rtl

; Move(Word, Word) -> void
; tool 0x3B04, set 0x04 (QuickDraw)
	.section .text.Move,"ax"
	.globl Move
Move:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x3B04
	jsl 0xe10000
	rtl

; LineTo(Word, Word) -> void
; tool 0x3C04, set 0x04 (QuickDraw)
	.section .text.LineTo,"ax"
	.globl LineTo
LineTo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x3C04
	jsl 0xe10000
	rtl

; Line(Word, Word) -> void
; tool 0x3D04, set 0x04 (QuickDraw)
	.section .text.Line,"ax"
	.globl Line
Line:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x3D04
	jsl 0xe10000
	rtl

; SetPicSave(LongWord) -> void
; tool 0x3E04, set 0x04 (QuickDraw)
	.section .text.SetPicSave,"ax"
	.globl SetPicSave
SetPicSave:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3E04
	jsl 0xe10000
	rtl

; GetPicSave(void) -> LongWord
; tool 0x3F04, set 0x04 (QuickDraw)
	.section .text.GetPicSave,"ax"
	.globl GetPicSave
GetPicSave:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x3F04
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetRgnSave(LongWord) -> void
; tool 0x4004, set 0x04 (QuickDraw)
	.section .text.SetRgnSave,"ax"
	.globl SetRgnSave
SetRgnSave:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x4004
	jsl 0xe10000
	rtl

; GetRgnSave(void) -> LongWord
; tool 0x4104, set 0x04 (QuickDraw)
	.section .text.GetRgnSave,"ax"
	.globl GetRgnSave
GetRgnSave:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x4104
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetPolySave(LongWord) -> void
; tool 0x4204, set 0x04 (QuickDraw)
	.section .text.SetPolySave,"ax"
	.globl SetPolySave
SetPolySave:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x4204
	jsl 0xe10000
	rtl

; GetPolySave(void) -> LongWord
; tool 0x4304, set 0x04 (QuickDraw)
	.section .text.GetPolySave,"ax"
	.globl GetPolySave
GetPolySave:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x4304
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetGrafProcs(Pointer) -> void
; tool 0x4404, set 0x04 (QuickDraw)
	.section .text.SetGrafProcs,"ax"
	.globl SetGrafProcs
SetGrafProcs:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x4404
	jsl 0xe10000
	rtl

; GetGrafProcs(void) -> Pointer
; tool 0x4504, set 0x04 (QuickDraw)
	.section .text.GetGrafProcs,"ax"
	.globl GetGrafProcs
GetGrafProcs:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x4504
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetUserField(LongWord) -> void
; tool 0x4604, set 0x04 (QuickDraw)
	.section .text.SetUserField,"ax"
	.globl SetUserField
SetUserField:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x4604
	jsl 0xe10000
	rtl

; GetUserField(void) -> LongWord
; tool 0x4704, set 0x04 (QuickDraw)
	.section .text.GetUserField,"ax"
	.globl GetUserField
GetUserField:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x4704
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetSysField(LongWord) -> void
; tool 0x4804, set 0x04 (QuickDraw)
	.section .text.SetSysField,"ax"
	.globl SetSysField
SetSysField:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x4804
	jsl 0xe10000
	rtl

; GetSysField(void) -> LongWord
; tool 0x4904, set 0x04 (QuickDraw)
	.section .text.GetSysField,"ax"
	.globl GetSysField
GetSysField:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x4904
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetRect(Pointer, Word, Word, Word, Word) -> void
; tool 0x4A04, set 0x04 (QuickDraw)
	.section .text.SetRect,"ax"
	.globl SetRect
SetRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 16, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 20, s
	pha
	ldx #0x4A04
	jsl 0xe10000
	rtl

; OffsetRect(Pointer, Word, Word) -> void
; tool 0x4B04, set 0x04 (QuickDraw)
	.section .text.OffsetRect,"ax"
	.globl OffsetRect
OffsetRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x4B04
	jsl 0xe10000
	rtl

; InsetRect(Pointer, Word, Word) -> void
; tool 0x4C04, set 0x04 (QuickDraw)
	.section .text.InsetRect,"ax"
	.globl InsetRect
InsetRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x4C04
	jsl 0xe10000
	rtl

; SectRect(Pointer, Pointer, Pointer) -> Word
; tool 0x4D04, set 0x04 (QuickDraw)
	.section .text.SectRect,"ax"
	.globl SectRect
SectRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	ldx #0x4D04
	jsl 0xe10000
	pla              ; result -> A
	rtl

; UnionRect(Pointer, Pointer, Pointer) -> void
; tool 0x4E04, set 0x04 (QuickDraw)
	.section .text.UnionRect,"ax"
	.globl UnionRect
UnionRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x4E04
	jsl 0xe10000
	rtl

; PtInRect(Pointer, Pointer) -> Word
; tool 0x4F04, set 0x04 (QuickDraw)
	.section .text.PtInRect,"ax"
	.globl PtInRect
PtInRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x4F04
	jsl 0xe10000
	pla              ; result -> A
	rtl

; Pt2Rect(Pointer, Pointer, Pointer) -> void
; tool 0x5004, set 0x04 (QuickDraw)
	.section .text.Pt2Rect,"ax"
	.globl Pt2Rect
Pt2Rect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x5004
	jsl 0xe10000
	rtl

; EqualRect(Pointer, Pointer) -> Word
; tool 0x5104, set 0x04 (QuickDraw)
	.section .text.EqualRect,"ax"
	.globl EqualRect
EqualRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x5104
	jsl 0xe10000
	pla              ; result -> A
	rtl

; NotEmptyRect(Pointer) -> Word
; tool 0x5204, set 0x04 (QuickDraw)
	.section .text.NotEmptyRect,"ax"
	.globl NotEmptyRect
NotEmptyRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x5204
	jsl 0xe10000
	pla              ; result -> A
	rtl

; FrameRect(Pointer) -> void
; tool 0x5304, set 0x04 (QuickDraw)
	.section .text.FrameRect,"ax"
	.globl FrameRect
FrameRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x5304
	jsl 0xe10000
	rtl

; PaintRect(Pointer) -> void
; tool 0x5404, set 0x04 (QuickDraw)
	.section .text.PaintRect,"ax"
	.globl PaintRect
PaintRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x5404
	jsl 0xe10000
	rtl

; EraseRect(Pointer) -> void
; tool 0x5504, set 0x04 (QuickDraw)
	.section .text.EraseRect,"ax"
	.globl EraseRect
EraseRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x5504
	jsl 0xe10000
	rtl

; InvertRect(Pointer) -> void
; tool 0x5604, set 0x04 (QuickDraw)
	.section .text.InvertRect,"ax"
	.globl InvertRect
InvertRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x5604
	jsl 0xe10000
	rtl

; FillRect(Pointer, Pointer) -> void
; tool 0x5704, set 0x04 (QuickDraw)
	.section .text.FillRect,"ax"
	.globl FillRect
FillRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x5704
	jsl 0xe10000
	rtl

; FrameOval(Pointer) -> void
; tool 0x5804, set 0x04 (QuickDraw)
	.section .text.FrameOval,"ax"
	.globl FrameOval
FrameOval:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x5804
	jsl 0xe10000
	rtl

; PaintOval(Pointer) -> void
; tool 0x5904, set 0x04 (QuickDraw)
	.section .text.PaintOval,"ax"
	.globl PaintOval
PaintOval:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x5904
	jsl 0xe10000
	rtl

; EraseOval(Pointer) -> void
; tool 0x5A04, set 0x04 (QuickDraw)
	.section .text.EraseOval,"ax"
	.globl EraseOval
EraseOval:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x5A04
	jsl 0xe10000
	rtl

; InvertOval(Pointer) -> void
; tool 0x5B04, set 0x04 (QuickDraw)
	.section .text.InvertOval,"ax"
	.globl InvertOval
InvertOval:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x5B04
	jsl 0xe10000
	rtl

; FillOval(Pointer, Pointer) -> void
; tool 0x5C04, set 0x04 (QuickDraw)
	.section .text.FillOval,"ax"
	.globl FillOval
FillOval:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x5C04
	jsl 0xe10000
	rtl

; FrameRRect(Pointer, Word, Word) -> void
; tool 0x5D04, set 0x04 (QuickDraw)
	.section .text.FrameRRect,"ax"
	.globl FrameRRect
FrameRRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x5D04
	jsl 0xe10000
	rtl

; PaintRRect(Pointer, Word, Word) -> void
; tool 0x5E04, set 0x04 (QuickDraw)
	.section .text.PaintRRect,"ax"
	.globl PaintRRect
PaintRRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x5E04
	jsl 0xe10000
	rtl

; EraseRRect(Pointer, Word, Word) -> void
; tool 0x5F04, set 0x04 (QuickDraw)
	.section .text.EraseRRect,"ax"
	.globl EraseRRect
EraseRRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x5F04
	jsl 0xe10000
	rtl

; InvertRRect(Pointer, Word, Word) -> void
; tool 0x6004, set 0x04 (QuickDraw)
	.section .text.InvertRRect,"ax"
	.globl InvertRRect
InvertRRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x6004
	jsl 0xe10000
	rtl

; FillRRect(Pointer, Word, Word, Pointer) -> void
; tool 0x6104, set 0x04 (QuickDraw)
	.section .text.FillRRect,"ax"
	.globl FillRRect
FillRRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x6104
	jsl 0xe10000
	rtl

; FrameArc(Pointer, Word, Word) -> void
; tool 0x6204, set 0x04 (QuickDraw)
	.section .text.FrameArc,"ax"
	.globl FrameArc
FrameArc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x6204
	jsl 0xe10000
	rtl

; PaintArc(Pointer, Word, Word) -> void
; tool 0x6304, set 0x04 (QuickDraw)
	.section .text.PaintArc,"ax"
	.globl PaintArc
PaintArc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x6304
	jsl 0xe10000
	rtl

; EraseArc(Pointer, Word, Word) -> void
; tool 0x6404, set 0x04 (QuickDraw)
	.section .text.EraseArc,"ax"
	.globl EraseArc
EraseArc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x6404
	jsl 0xe10000
	rtl

; InvertArc(Pointer, Word, Word) -> void
; tool 0x6504, set 0x04 (QuickDraw)
	.section .text.InvertArc,"ax"
	.globl InvertArc
InvertArc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x6504
	jsl 0xe10000
	rtl

; FillArc(Pointer, Word, Word, Pointer) -> void
; tool 0x6604, set 0x04 (QuickDraw)
	.section .text.FillArc,"ax"
	.globl FillArc
FillArc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x6604
	jsl 0xe10000
	rtl

; NewRgn(void) -> Pointer
; tool 0x6704, set 0x04 (QuickDraw)
	.section .text.NewRgn,"ax"
	.globl NewRgn
NewRgn:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x6704
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; DisposeRgn(Pointer) -> void
; tool 0x6804, set 0x04 (QuickDraw)
	.section .text.DisposeRgn,"ax"
	.globl DisposeRgn
DisposeRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x6804
	jsl 0xe10000
	rtl

; CopyRgn(Pointer, Pointer) -> void
; tool 0x6904, set 0x04 (QuickDraw)
	.section .text.CopyRgn,"ax"
	.globl CopyRgn
CopyRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x6904
	jsl 0xe10000
	rtl

; SetEmptyRgn(Pointer) -> void
; tool 0x6A04, set 0x04 (QuickDraw)
	.section .text.SetEmptyRgn,"ax"
	.globl SetEmptyRgn
SetEmptyRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x6A04
	jsl 0xe10000
	rtl

; SetRectRgn(Pointer, Word, Word, Word, Word) -> void
; tool 0x6B04, set 0x04 (QuickDraw)
	.section .text.SetRectRgn,"ax"
	.globl SetRectRgn
SetRectRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 16, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 20, s
	pha
	ldx #0x6B04
	jsl 0xe10000
	rtl

; RectRgn(Pointer, Pointer) -> void
; tool 0x6C04, set 0x04 (QuickDraw)
	.section .text.RectRgn,"ax"
	.globl RectRgn
RectRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x6C04
	jsl 0xe10000
	rtl

; CloseRgn(Pointer) -> void
; tool 0x6E04, set 0x04 (QuickDraw)
	.section .text.CloseRgn,"ax"
	.globl CloseRgn
CloseRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x6E04
	jsl 0xe10000
	rtl

; OffsetRgn(Pointer, Word, Word) -> void
; tool 0x6F04, set 0x04 (QuickDraw)
	.section .text.OffsetRgn,"ax"
	.globl OffsetRgn
OffsetRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x6F04
	jsl 0xe10000
	rtl

; InsetRgn(Pointer, Word, Word) -> void
; tool 0x7004, set 0x04 (QuickDraw)
	.section .text.InsetRgn,"ax"
	.globl InsetRgn
InsetRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x7004
	jsl 0xe10000
	rtl

; SectRgn(Word, Word, Pointer) -> void
; tool 0x7104, set 0x04 (QuickDraw)
	.section .text.SectRgn,"ax"
	.globl SectRgn
SectRgn:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x7104
	jsl 0xe10000
	rtl

; UnionRgn(Word, Word, Pointer) -> void
; tool 0x7204, set 0x04 (QuickDraw)
	.section .text.UnionRgn,"ax"
	.globl UnionRgn
UnionRgn:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x7204
	jsl 0xe10000
	rtl

; DiffRgn(Word, Word, Pointer) -> void
; tool 0x7304, set 0x04 (QuickDraw)
	.section .text.DiffRgn,"ax"
	.globl DiffRgn
DiffRgn:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x7304
	jsl 0xe10000
	rtl

; XorRgn(Word, Word, Pointer) -> void
; tool 0x7404, set 0x04 (QuickDraw)
	.section .text.XorRgn,"ax"
	.globl XorRgn
XorRgn:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x7404
	jsl 0xe10000
	rtl

; PtInRgn(Pointer, Pointer) -> Word
; tool 0x7504, set 0x04 (QuickDraw)
	.section .text.PtInRgn,"ax"
	.globl PtInRgn
PtInRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x7504
	jsl 0xe10000
	pla              ; result -> A
	rtl

; RectInRgn(Pointer, Pointer) -> Word
; tool 0x7604, set 0x04 (QuickDraw)
	.section .text.RectInRgn,"ax"
	.globl RectInRgn
RectInRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x7604
	jsl 0xe10000
	pla              ; result -> A
	rtl

; EqualRgn(Word, Word) -> Word
; tool 0x7704, set 0x04 (QuickDraw)
	.section .text.EqualRgn,"ax"
	.globl EqualRgn
EqualRgn:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x7704
	jsl 0xe10000
	pla              ; result -> A
	rtl

; EmptyRgn(Pointer) -> Word
; tool 0x7804, set 0x04 (QuickDraw)
	.section .text.EmptyRgn,"ax"
	.globl EmptyRgn
EmptyRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x7804
	jsl 0xe10000
	pla              ; result -> A
	rtl

; FrameRgn(Pointer) -> void
; tool 0x7904, set 0x04 (QuickDraw)
	.section .text.FrameRgn,"ax"
	.globl FrameRgn
FrameRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x7904
	jsl 0xe10000
	rtl

; PaintRgn(Pointer) -> void
; tool 0x7A04, set 0x04 (QuickDraw)
	.section .text.PaintRgn,"ax"
	.globl PaintRgn
PaintRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x7A04
	jsl 0xe10000
	rtl

; EraseRgn(Pointer) -> void
; tool 0x7B04, set 0x04 (QuickDraw)
	.section .text.EraseRgn,"ax"
	.globl EraseRgn
EraseRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x7B04
	jsl 0xe10000
	rtl

; InvertRgn(Pointer) -> void
; tool 0x7C04, set 0x04 (QuickDraw)
	.section .text.InvertRgn,"ax"
	.globl InvertRgn
InvertRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x7C04
	jsl 0xe10000
	rtl

; FillRgn(Pointer, Pointer) -> void
; tool 0x7D04, set 0x04 (QuickDraw)
	.section .text.FillRgn,"ax"
	.globl FillRgn
FillRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x7D04
	jsl 0xe10000
	rtl

; ScrollRect(Pointer, Word, Word, Pointer) -> void
; tool 0x7E04, set 0x04 (QuickDraw)
	.section .text.ScrollRect,"ax"
	.globl ScrollRect
ScrollRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x7E04
	jsl 0xe10000
	rtl

; PaintPixels(Pointer) -> void
; tool 0x7F04, set 0x04 (QuickDraw)
	.section .text.PaintPixels,"ax"
	.globl PaintPixels
PaintPixels:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x7F04
	jsl 0xe10000
	rtl

; AddPt(Pointer, Pointer) -> void
; tool 0x8004, set 0x04 (QuickDraw)
	.section .text.AddPt,"ax"
	.globl AddPt
AddPt:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x8004
	jsl 0xe10000
	rtl

; SubPt(Pointer, Pointer) -> void
; tool 0x8104, set 0x04 (QuickDraw)
	.section .text.SubPt,"ax"
	.globl SubPt
SubPt:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x8104
	jsl 0xe10000
	rtl

; SetPt(Pointer, Word, Word) -> void
; tool 0x8204, set 0x04 (QuickDraw)
	.section .text.SetPt,"ax"
	.globl SetPt
SetPt:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x8204
	jsl 0xe10000
	rtl

; EqualPt(Pointer, Pointer) -> Word
; tool 0x8304, set 0x04 (QuickDraw)
	.section .text.EqualPt,"ax"
	.globl EqualPt
EqualPt:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x8304
	jsl 0xe10000
	pla              ; result -> A
	rtl

; LocalToGlobal(Pointer) -> void
; tool 0x8404, set 0x04 (QuickDraw)
	.section .text.LocalToGlobal,"ax"
	.globl LocalToGlobal
LocalToGlobal:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x8404
	jsl 0xe10000
	rtl

; GlobalToLocal(Pointer) -> void
; tool 0x8504, set 0x04 (QuickDraw)
	.section .text.GlobalToLocal,"ax"
	.globl GlobalToLocal
GlobalToLocal:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x8504
	jsl 0xe10000
	rtl

; SetRandSeed(LongWord) -> void
; tool 0x8704, set 0x04 (QuickDraw)
	.section .text.SetRandSeed,"ax"
	.globl SetRandSeed
SetRandSeed:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x8704
	jsl 0xe10000
	rtl

; GetPixel(Word, Word) -> Word
; tool 0x8804, set 0x04 (QuickDraw)
	.section .text.GetPixel,"ax"
	.globl GetPixel
GetPixel:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x8804
	jsl 0xe10000
	pla              ; result -> A
	rtl

; ScalePt(Pointer, Pointer, Pointer) -> void
; tool 0x8904, set 0x04 (QuickDraw)
	.section .text.ScalePt,"ax"
	.globl ScalePt
ScalePt:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x8904
	jsl 0xe10000
	rtl

; MapPt(Pointer, Pointer, Pointer) -> void
; tool 0x8A04, set 0x04 (QuickDraw)
	.section .text.MapPt,"ax"
	.globl MapPt
MapPt:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x8A04
	jsl 0xe10000
	rtl

; MapRect(Pointer, Pointer, Pointer) -> void
; tool 0x8B04, set 0x04 (QuickDraw)
	.section .text.MapRect,"ax"
	.globl MapRect
MapRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x8B04
	jsl 0xe10000
	rtl

; MapRgn(Pointer, Pointer, Pointer) -> void
; tool 0x8C04, set 0x04 (QuickDraw)
	.section .text.MapRgn,"ax"
	.globl MapRgn
MapRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x8C04
	jsl 0xe10000
	rtl

; SetStdProcs(Pointer) -> void
; tool 0x8D04, set 0x04 (QuickDraw)
	.section .text.SetStdProcs,"ax"
	.globl SetStdProcs
SetStdProcs:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x8D04
	jsl 0xe10000
	rtl

; SetCursor(Pointer) -> void
; tool 0x8E04, set 0x04 (QuickDraw)
	.section .text.SetCursor,"ax"
	.globl SetCursor
SetCursor:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x8E04
	jsl 0xe10000
	rtl

; GetCursorAdr(void) -> Pointer
; tool 0x8F04, set 0x04 (QuickDraw)
	.section .text.GetCursorAdr,"ax"
	.globl GetCursorAdr
GetCursorAdr:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x8F04
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetFont(Pointer) -> void
; tool 0x9404, set 0x04 (QuickDraw)
	.section .text.SetFont,"ax"
	.globl SetFont
SetFont:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x9404
	jsl 0xe10000
	rtl

; GetFont(void) -> Pointer
; tool 0x9504, set 0x04 (QuickDraw)
	.section .text.GetFont,"ax"
	.globl GetFont
GetFont:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x9504
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetFontInfo(Pointer) -> void
; tool 0x9604, set 0x04 (QuickDraw)
	.section .text.GetFontInfo,"ax"
	.globl GetFontInfo
GetFontInfo:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x9604
	jsl 0xe10000
	rtl

; GetFontGlobals(Pointer) -> void
; tool 0x9704, set 0x04 (QuickDraw)
	.section .text.GetFontGlobals,"ax"
	.globl GetFontGlobals
GetFontGlobals:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x9704
	jsl 0xe10000
	rtl

; DrawString(Pointer) -> void
; tool 0xA504, set 0x04 (QuickDraw)
	.section .text.DrawString,"ax"
	.globl DrawString
DrawString:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xA504
	jsl 0xe10000
	rtl

; DrawCString(Pointer) -> void
; tool 0xA604, set 0x04 (QuickDraw)
	.section .text.DrawCString,"ax"
	.globl DrawCString
DrawCString:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xA604
	jsl 0xe10000
	rtl

; DrawText(Pointer, Word) -> void
; tool 0xA704, set 0x04 (QuickDraw)
	.section .text.DrawText,"ax"
	.globl DrawText
DrawText:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0xA704
	jsl 0xe10000
	rtl

; StringWidth(Pointer) -> Word
; tool 0xA904, set 0x04 (QuickDraw)
	.section .text.StringWidth,"ax"
	.globl StringWidth
StringWidth:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xA904
	jsl 0xe10000
	pla              ; result -> A
	rtl

; CStringWidth(Pointer) -> Word
; tool 0xAA04, set 0x04 (QuickDraw)
	.section .text.CStringWidth,"ax"
	.globl CStringWidth
CStringWidth:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xAA04
	jsl 0xe10000
	pla              ; result -> A
	rtl

; TextWidth(Pointer, Word) -> Word
; tool 0xAB04, set 0x04 (QuickDraw)
	.section .text.TextWidth,"ax"
	.globl TextWidth
TextWidth:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0xAB04
	jsl 0xe10000
	pla              ; result -> A
	rtl

; CharBounds(Word, Pointer) -> void
; tool 0xAC04, set 0x04 (QuickDraw)
	.section .text.CharBounds,"ax"
	.globl CharBounds
CharBounds:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0xAC04
	jsl 0xe10000
	rtl

; StringBounds(Pointer, Pointer) -> void
; tool 0xAD04, set 0x04 (QuickDraw)
	.section .text.StringBounds,"ax"
	.globl StringBounds
StringBounds:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0xAD04
	jsl 0xe10000
	rtl

; CStringBounds(Pointer, Pointer) -> void
; tool 0xAE04, set 0x04 (QuickDraw)
	.section .text.CStringBounds,"ax"
	.globl CStringBounds
CStringBounds:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0xAE04
	jsl 0xe10000
	rtl

; TextBounds(Pointer, Word, Pointer) -> void
; tool 0xAF04, set 0x04 (QuickDraw)
	.section .text.TextBounds,"ax"
	.globl TextBounds
TextBounds:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0xAF04
	jsl 0xe10000
	rtl

; SetSysFont(Pointer) -> void
; tool 0xB204, set 0x04 (QuickDraw)
	.section .text.SetSysFont,"ax"
	.globl SetSysFont
SetSysFont:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xB204
	jsl 0xe10000
	rtl

; GetSysFont(void) -> Pointer
; tool 0xB304, set 0x04 (QuickDraw)
	.section .text.GetSysFont,"ax"
	.globl GetSysFont
GetSysFont:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0xB304
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetVisRgn(Pointer) -> void
; tool 0xB404, set 0x04 (QuickDraw)
	.section .text.SetVisRgn,"ax"
	.globl SetVisRgn
SetVisRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xB404
	jsl 0xe10000
	rtl

; GetVisRgn(Pointer) -> void
; tool 0xB504, set 0x04 (QuickDraw)
	.section .text.GetVisRgn,"ax"
	.globl GetVisRgn
GetVisRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xB504
	jsl 0xe10000
	rtl

; OpenPicture(Pointer) -> Pointer
; tool 0xB704, set 0x04 (QuickDraw)
	.section .text.OpenPicture,"ax"
	.globl OpenPicture
OpenPicture:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xB704
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PicComment(Word, Word, Pointer) -> void
; tool 0xB804, set 0x04 (QuickDraw)
	.section .text.PicComment,"ax"
	.globl PicComment
PicComment:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0xB804
	jsl 0xe10000
	rtl

; DrawPicture(Pointer, Pointer) -> void
; tool 0xBA04, set 0x04 (QuickDraw)
	.section .text.DrawPicture,"ax"
	.globl DrawPicture
DrawPicture:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0xBA04
	jsl 0xe10000
	rtl

; KillPicture(Pointer) -> void
; tool 0xBB04, set 0x04 (QuickDraw)
	.section .text.KillPicture,"ax"
	.globl KillPicture
KillPicture:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xBB04
	jsl 0xe10000
	rtl

; FramePoly(Pointer) -> void
; tool 0xBC04, set 0x04 (QuickDraw)
	.section .text.FramePoly,"ax"
	.globl FramePoly
FramePoly:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xBC04
	jsl 0xe10000
	rtl

; PaintPoly(Pointer) -> void
; tool 0xBD04, set 0x04 (QuickDraw)
	.section .text.PaintPoly,"ax"
	.globl PaintPoly
PaintPoly:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xBD04
	jsl 0xe10000
	rtl

; ErasePoly(Pointer) -> void
; tool 0xBE04, set 0x04 (QuickDraw)
	.section .text.ErasePoly,"ax"
	.globl ErasePoly
ErasePoly:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xBE04
	jsl 0xe10000
	rtl

; InvertPoly(Pointer) -> void
; tool 0xBF04, set 0x04 (QuickDraw)
	.section .text.InvertPoly,"ax"
	.globl InvertPoly
InvertPoly:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xBF04
	jsl 0xe10000
	rtl

; FillPoly(Pointer, Pointer) -> void
; tool 0xC004, set 0x04 (QuickDraw)
	.section .text.FillPoly,"ax"
	.globl FillPoly
FillPoly:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0xC004
	jsl 0xe10000
	rtl

; OpenPoly(void) -> Pointer
; tool 0xC104, set 0x04 (QuickDraw)
	.section .text.OpenPoly,"ax"
	.globl OpenPoly
OpenPoly:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0xC104
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; KillPoly(Pointer) -> void
; tool 0xC304, set 0x04 (QuickDraw)
	.section .text.KillPoly,"ax"
	.globl KillPoly
KillPoly:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xC304
	jsl 0xe10000
	rtl

; OffsetPoly(Pointer, Word, Word) -> void
; tool 0xC404, set 0x04 (QuickDraw)
	.section .text.OffsetPoly,"ax"
	.globl OffsetPoly
OffsetPoly:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0xC404
	jsl 0xe10000
	rtl

; MapPoly(Pointer, Pointer, Pointer) -> void
; tool 0xC504, set 0x04 (QuickDraw)
	.section .text.MapPoly,"ax"
	.globl MapPoly
MapPoly:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0xC504
	jsl 0xe10000
	rtl

; SetClipHandle(Pointer) -> void
; tool 0xC604, set 0x04 (QuickDraw)
	.section .text.SetClipHandle,"ax"
	.globl SetClipHandle
SetClipHandle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xC604
	jsl 0xe10000
	rtl

; GetClipHandle(void) -> Pointer
; tool 0xC704, set 0x04 (QuickDraw)
	.section .text.GetClipHandle,"ax"
	.globl GetClipHandle
GetClipHandle:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0xC704
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetVisHandle(Pointer) -> void
; tool 0xC804, set 0x04 (QuickDraw)
	.section .text.SetVisHandle,"ax"
	.globl SetVisHandle
SetVisHandle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xC804
	jsl 0xe10000
	rtl

; GetVisHandle(void) -> Pointer
; tool 0xC904, set 0x04 (QuickDraw)
	.section .text.GetVisHandle,"ax"
	.globl GetVisHandle
GetVisHandle:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0xC904
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetBufDims(Word, Word, Word) -> void
; tool 0xCB04, set 0x04 (QuickDraw)
	.section .text.SetBufDims,"ax"
	.globl SetBufDims
SetBufDims:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0xCB04
	jsl 0xe10000
	rtl

; ForceBufDims(Word, Word, Word) -> void
; tool 0xCC04, set 0x04 (QuickDraw)
	.section .text.ForceBufDims,"ax"
	.globl ForceBufDims
ForceBufDims:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0xCC04
	jsl 0xe10000
	rtl

; SaveBufDims(Pointer) -> void
; tool 0xCD04, set 0x04 (QuickDraw)
	.section .text.SaveBufDims,"ax"
	.globl SaveBufDims
SaveBufDims:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xCD04
	jsl 0xe10000
	rtl

; RestoreBufDims(Pointer) -> void
; tool 0xCE04, set 0x04 (QuickDraw)
	.section .text.RestoreBufDims,"ax"
	.globl RestoreBufDims
RestoreBufDims:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xCE04
	jsl 0xe10000
	rtl

; SetFontID(LongWord) -> void
; tool 0xD004, set 0x04 (QuickDraw)
	.section .text.SetFontID,"ax"
	.globl SetFontID
SetFontID:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xD004
	jsl 0xe10000
	rtl

; GetFontID(void) -> LongWord
; tool 0xD104, set 0x04 (QuickDraw)
	.section .text.GetFontID,"ax"
	.globl GetFontID
GetFontID:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0xD104
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PPToPort(Pointer, Pointer, Word, Word, Word) -> void
; tool 0xD604, set 0x04 (QuickDraw)
	.section .text.PPToPort,"ax"
	.globl PPToPort
PPToPort:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 20, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 24, s
	pha
	ldx #0xD604
	jsl 0xe10000
	rtl

; InflateTextBuffer(Word, Word) -> void
; tool 0xD704, set 0x04 (QuickDraw)
	.section .text.InflateTextBuffer,"ax"
	.globl InflateTextBuffer
InflateTextBuffer:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0xD704
	jsl 0xe10000
	rtl

; GetRomFont(Pointer) -> void
; tool 0xD804, set 0x04 (QuickDraw)
	.section .text.GetRomFont,"ax"
	.globl GetRomFont
GetRomFont:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0xD804
	jsl 0xe10000
	rtl

; GetFontLore(Pointer, Word) -> Word
; tool 0xD904, set 0x04 (QuickDraw)
	.section .text.GetFontLore,"ax"
	.globl GetFontLore
GetFontLore:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0xD904
	jsl 0xe10000
	pla              ; result -> A
	rtl

; Get640Colors(void) -> Pointer
; tool 0xDA04, set 0x04 (QuickDraw)
	.section .text.Get640Colors,"ax"
	.globl Get640Colors
Get640Colors:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0xDA04
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetDAStrPtr(Pointer, Pointer) -> void
; tool 0x1305, set 0x05 (DeskManager)
	.section .text.SetDAStrPtr,"ax"
	.globl SetDAStrPtr
SetDAStrPtr:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1305
	jsl 0xe10000
	rtl

; GetDAStrPtr(void) -> Pointer
; tool 0x1405, set 0x05 (DeskManager)
	.section .text.GetDAStrPtr,"ax"
	.globl GetDAStrPtr
GetDAStrPtr:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1405
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SystemClick(Pointer, Pointer, Word) -> void
; tool 0x1705, set 0x05 (DeskManager)
	.section .text.SystemClick,"ax"
	.globl SystemClick
SystemClick:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x1705
	jsl 0xe10000
	rtl

; SystemEvent(Word, LongWord, LongWord, LongWord, Word) -> Word
; tool 0x1A05, set 0x05 (DeskManager)
	.section .text.SystemEvent,"ax"
	.globl SystemEvent
SystemEvent:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 26, s
	pha
	lda 26, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 32, s
	pha
	ldx #0x1A05
	jsl 0xe10000
	pla              ; result -> A
	rtl

; CloseNDAbyWinPtr(Pointer) -> void
; tool 0x1C05, set 0x05 (DeskManager)
	.section .text.CloseNDAbyWinPtr,"ax"
	.globl CloseNDAbyWinPtr
CloseNDAbyWinPtr:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1C05
	jsl 0xe10000
	rtl

; AddToRunQ(Pointer) -> void
; tool 0x1F05, set 0x05 (DeskManager)
	.section .text.AddToRunQ,"ax"
	.globl AddToRunQ
AddToRunQ:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1F05
	jsl 0xe10000
	rtl

; RemoveFromRunQ(Pointer) -> void
; tool 0x2005, set 0x05 (DeskManager)
	.section .text.RemoveFromRunQ,"ax"
	.globl RemoveFromRunQ
RemoveFromRunQ:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2005
	jsl 0xe10000
	rtl

; GetDeskAccInfo(Word, LongWord, Word, Pointer) -> void
; tool 0x2305, set 0x05 (DeskManager)
	.section .text.GetDeskAccInfo,"ax"
	.globl GetDeskAccInfo
GetDeskAccInfo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	ldx #0x2305
	jsl 0xe10000
	rtl

; CallDeskAcc(Word, LongWord, Word, LongWord) -> Word
; tool 0x2405, set 0x05 (DeskManager)
	.section .text.CallDeskAcc,"ax"
	.globl CallDeskAcc
CallDeskAcc:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 22, s
	pha
	lda 22, s
	pha
	ldx #0x2405
	jsl 0xe10000
	pla              ; result -> A
	rtl

; GetDeskGlobal(Word) -> LongWord
; tool 0x2505, set 0x05 (DeskManager)
	.section .text.GetDeskGlobal,"ax"
	.globl GetDeskGlobal
GetDeskGlobal:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x2505
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; EMStartUp(Word, Word, Word, Word, Word, Word, Word) -> void
; tool 0x0206, set 0x06 (EventManager)
	.section .text.EMStartUp,"ax"
	.globl EMStartUp
EMStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 22, s
	pha
	; --- arg6 (Word, 2B) ---
	lda 26, s
	pha
	ldx #0x0206
	jsl 0xe10000
	rtl

; GetNextEvent(Word, Pointer) -> Word
; tool 0x0A06, set 0x06 (EventManager)
	.section .text.GetNextEvent,"ax"
	.globl GetNextEvent
GetNextEvent:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x0A06
	jsl 0xe10000
	pla              ; result -> A
	rtl

; EventAvail(Word, Pointer) -> Word
; tool 0x0B06, set 0x06 (EventManager)
	.section .text.EventAvail,"ax"
	.globl EventAvail
EventAvail:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x0B06
	jsl 0xe10000
	pla              ; result -> A
	rtl

; GetMouse(Pointer) -> void
; tool 0x0C06, set 0x06 (EventManager)
	.section .text.GetMouse,"ax"
	.globl GetMouse
GetMouse:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0C06
	jsl 0xe10000
	rtl

; TickCount(void) -> LongWord
; tool 0x1006, set 0x06 (EventManager)
	.section .text.TickCount,"ax"
	.globl TickCount
TickCount:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1006
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetDblTime(void) -> LongWord
; tool 0x1106, set 0x06 (EventManager)
	.section .text.GetDblTime,"ax"
	.globl GetDblTime
GetDblTime:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1106
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetCaretTime(void) -> LongWord
; tool 0x1206, set 0x06 (EventManager)
	.section .text.GetCaretTime,"ax"
	.globl GetCaretTime
GetCaretTime:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1206
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PostEvent(Word, LongWord) -> Word
; tool 0x1406, set 0x06 (EventManager)
	.section .text.PostEvent,"ax"
	.globl PostEvent
PostEvent:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1406
	jsl 0xe10000
	pla              ; result -> A
	rtl

; FlushEvents(Word, Word) -> Word
; tool 0x1506, set 0x06 (EventManager)
	.section .text.FlushEvents,"ax"
	.globl FlushEvents
FlushEvents:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x1506
	jsl 0xe10000
	pla              ; result -> A
	rtl

; GetOSEvent(Word, Pointer) -> Word
; tool 0x1606, set 0x06 (EventManager)
	.section .text.GetOSEvent,"ax"
	.globl GetOSEvent
GetOSEvent:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1606
	jsl 0xe10000
	pla              ; result -> A
	rtl

; OSEventAvail(Word, Pointer) -> Word
; tool 0x1706, set 0x06 (EventManager)
	.section .text.OSEventAvail,"ax"
	.globl OSEventAvail
OSEventAvail:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1706
	jsl 0xe10000
	pla              ; result -> A
	rtl

; FakeMouse(Word, Word, Word, Word, Word) -> void
; tool 0x1906, set 0x06 (EventManager)
	.section .text.FakeMouse,"ax"
	.globl FakeMouse
FakeMouse:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 18, s
	pha
	ldx #0x1906
	jsl 0xe10000
	rtl

; SchAddTask(Pointer) -> Word
; tool 0x0907, set 0x07 (Scheduler)
	.section .text.SchAddTask,"ax"
	.globl SchAddTask
SchAddTask:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0907
	jsl 0xe10000
	pla              ; result -> A
	rtl

; WriteRamBlock(Pointer, Word, Word) -> void
; tool 0x0908, set 0x08 (SoundManager)
	.section .text.WriteRamBlock,"ax"
	.globl WriteRamBlock
WriteRamBlock:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x0908
	jsl 0xe10000
	rtl

; ReadRamBlock(Pointer, Word, Word) -> void
; tool 0x0A08, set 0x08 (SoundManager)
	.section .text.ReadRamBlock,"ax"
	.globl ReadRamBlock
ReadRamBlock:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x0A08
	jsl 0xe10000
	rtl

; GetTableAddress(void) -> Pointer
; tool 0x0B08, set 0x08 (SoundManager)
	.section .text.GetTableAddress,"ax"
	.globl GetTableAddress
GetTableAddress:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x0B08
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetSoundVolume(Word, Word) -> void
; tool 0x0D08, set 0x08 (SoundManager)
	.section .text.SetSoundVolume,"ax"
	.globl SetSoundVolume
SetSoundVolume:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0D08
	jsl 0xe10000
	rtl

; FFStartSound(Word, Pointer) -> void
; tool 0x0E08, set 0x08 (SoundManager)
	.section .text.FFStartSound,"ax"
	.globl FFStartSound
FFStartSound:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x0E08
	jsl 0xe10000
	rtl

; SetSoundMIRQV(Pointer) -> void
; tool 0x1208, set 0x08 (SoundManager)
	.section .text.SetSoundMIRQV,"ax"
	.globl SetSoundMIRQV
SetSoundMIRQV:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1208
	jsl 0xe10000
	rtl

; SetUserSoundIRQV(Pointer) -> Pointer
; tool 0x1308, set 0x08 (SoundManager)
	.section .text.SetUserSoundIRQV,"ax"
	.globl SetUserSoundIRQV
SetUserSoundIRQV:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1308
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FFSetUpSound(Word, Pointer) -> void
; tool 0x1508, set 0x08 (SoundManager)
	.section .text.FFSetUpSound,"ax"
	.globl FFSetUpSound
FFSetUpSound:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x1508
	jsl 0xe10000
	rtl

; SetDocReg(Pointer) -> void
; tool 0x1708, set 0x08 (SoundManager)
	.section .text.SetDocReg,"ax"
	.globl SetDocReg
SetDocReg:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1708
	jsl 0xe10000
	rtl

; ReadDocReg(Pointer) -> void
; tool 0x1808, set 0x08 (SoundManager)
	.section .text.ReadDocReg,"ax"
	.globl ReadDocReg
ReadDocReg:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1808
	jsl 0xe10000
	rtl

; SendInfo(Word, Pointer, Word) -> void
; tool 0x0909, set 0x09 (AppleDeskBus)
	.section .text.SendInfo,"ax"
	.globl SendInfo
SendInfo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x0909
	jsl 0xe10000
	rtl

; ReadKeyMicroData(Word, Pointer, Word) -> void
; tool 0x0A09, set 0x09 (AppleDeskBus)
	.section .text.ReadKeyMicroData,"ax"
	.globl ReadKeyMicroData
ReadKeyMicroData:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x0A09
	jsl 0xe10000
	rtl

; ReadKeyMicroMemory(Pointer, Pointer, Word) -> void
; tool 0x0B09, set 0x09 (AppleDeskBus)
	.section .text.ReadKeyMicroMemory,"ax"
	.globl ReadKeyMicroMemory
ReadKeyMicroMemory:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x0B09
	jsl 0xe10000
	rtl

; AsyncADBReceive(Pointer, Word) -> void
; tool 0x0D09, set 0x09 (AppleDeskBus)
	.section .text.AsyncADBReceive,"ax"
	.globl AsyncADBReceive
AsyncADBReceive:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x0D09
	jsl 0xe10000
	rtl

; SyncADBReceive(Word, Pointer, Word) -> void
; tool 0x0E09, set 0x09 (AppleDeskBus)
	.section .text.SyncADBReceive,"ax"
	.globl SyncADBReceive
SyncADBReceive:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x0E09
	jsl 0xe10000
	rtl

; SetAbsScale(Pointer) -> void
; tool 0x1209, set 0x09 (AppleDeskBus)
	.section .text.SetAbsScale,"ax"
	.globl SetAbsScale
SetAbsScale:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1209
	jsl 0xe10000
	rtl

; GetAbsScale(Pointer) -> void
; tool 0x1309, set 0x09 (AppleDeskBus)
	.section .text.GetAbsScale,"ax"
	.globl GetAbsScale
GetAbsScale:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1309
	jsl 0xe10000
	rtl

; SRQPoll(Pointer, Word) -> void
; tool 0x1409, set 0x09 (AppleDeskBus)
	.section .text.SRQPoll,"ax"
	.globl SRQPoll
SRQPoll:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x1409
	jsl 0xe10000
	rtl

; Multiply(Word, Word) -> LongWord
; tool 0x090B, set 0x0B (IntegerMath)
	.section .text.Multiply,"ax"
	.globl Multiply
Multiply:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x090B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SDivide(Word, Word) -> LongWord
; tool 0x0A0B, set 0x0B (IntegerMath)
	.section .text.SDivide,"ax"
	.globl SDivide
SDivide:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0A0B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; UDivide(Word, Word) -> LongWord
; tool 0x0B0B, set 0x0B (IntegerMath)
	.section .text.UDivide,"ax"
	.globl UDivide
UDivide:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0B0B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; LongMul(LongWord, LongWord) -> 8B
; tool 0x0C0B, set 0x0B (IntegerMath)
	.section .text.LongMul,"ax"
	.globl LongMul
LongMul:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (8 bytes) ---
	pea 0
	pea 0
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x0C0B
	jsl 0xe10000
	pla
	pla
	pla
	pla
	rtl

; LongDivide(LongWord, LongWord) -> 8B
; tool 0x0D0B, set 0x0B (IntegerMath)
	.section .text.LongDivide,"ax"
	.globl LongDivide
LongDivide:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (8 bytes) ---
	pea 0
	pea 0
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x0D0B
	jsl 0xe10000
	pla
	pla
	pla
	pla
	rtl

; FixRatio(Word, Word) -> LongWord
; tool 0x0E0B, set 0x0B (IntegerMath)
	.section .text.FixRatio,"ax"
	.globl FixRatio
FixRatio:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0E0B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FixMul(LongWord, LongWord) -> LongWord
; tool 0x0F0B, set 0x0B (IntegerMath)
	.section .text.FixMul,"ax"
	.globl FixMul
FixMul:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x0F0B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FracMul(LongWord, LongWord) -> LongWord
; tool 0x100B, set 0x0B (IntegerMath)
	.section .text.FracMul,"ax"
	.globl FracMul
FracMul:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x100B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FixDiv(LongWord, LongWord) -> LongWord
; tool 0x110B, set 0x0B (IntegerMath)
	.section .text.FixDiv,"ax"
	.globl FixDiv
FixDiv:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x110B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FracDiv(LongWord, LongWord) -> LongWord
; tool 0x120B, set 0x0B (IntegerMath)
	.section .text.FracDiv,"ax"
	.globl FracDiv
FracDiv:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x120B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FixRound(LongWord) -> Word
; tool 0x130B, set 0x0B (IntegerMath)
	.section .text.FixRound,"ax"
	.globl FixRound
FixRound:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x130B
	jsl 0xe10000
	pla              ; result -> A
	rtl

; FracSqrt(LongWord) -> LongWord
; tool 0x140B, set 0x0B (IntegerMath)
	.section .text.FracSqrt,"ax"
	.globl FracSqrt
FracSqrt:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x140B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FracCos(LongWord) -> LongWord
; tool 0x150B, set 0x0B (IntegerMath)
	.section .text.FracCos,"ax"
	.globl FracCos
FracCos:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x150B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FracSin(LongWord) -> LongWord
; tool 0x160B, set 0x0B (IntegerMath)
	.section .text.FracSin,"ax"
	.globl FracSin
FracSin:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x160B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FixATan2(LongWord, LongWord) -> LongWord
; tool 0x170B, set 0x0B (IntegerMath)
	.section .text.FixATan2,"ax"
	.globl FixATan2
FixATan2:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x170B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; HiWord(LongWord) -> Word
; tool 0x180B, set 0x0B (IntegerMath)
	.section .text.HiWord,"ax"
	.globl HiWord
HiWord:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x180B
	jsl 0xe10000
	pla              ; result -> A
	rtl

; LoWord(LongWord) -> Word
; tool 0x190B, set 0x0B (IntegerMath)
	.section .text.LoWord,"ax"
	.globl LoWord
LoWord:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x190B
	jsl 0xe10000
	pla              ; result -> A
	rtl

; Long2Fix(LongWord) -> LongWord
; tool 0x1A0B, set 0x0B (IntegerMath)
	.section .text.Long2Fix,"ax"
	.globl Long2Fix
Long2Fix:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1A0B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; Fix2Long(LongWord) -> LongWord
; tool 0x1B0B, set 0x0B (IntegerMath)
	.section .text.Fix2Long,"ax"
	.globl Fix2Long
Fix2Long:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1B0B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; Fix2Frac(LongWord) -> LongWord
; tool 0x1C0B, set 0x0B (IntegerMath)
	.section .text.Fix2Frac,"ax"
	.globl Fix2Frac
Fix2Frac:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1C0B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; Frac2Fix(LongWord) -> LongWord
; tool 0x1D0B, set 0x0B (IntegerMath)
	.section .text.Frac2Fix,"ax"
	.globl Frac2Fix
Frac2Fix:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1D0B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; Fix2X(LongWord, Pointer) -> void
; tool 0x1E0B, set 0x0B (IntegerMath)
	.section .text.Fix2X,"ax"
	.globl Fix2X
Fix2X:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1E0B
	jsl 0xe10000
	rtl

; Frac2X(LongWord, Pointer) -> void
; tool 0x1F0B, set 0x0B (IntegerMath)
	.section .text.Frac2X,"ax"
	.globl Frac2X
Frac2X:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1F0B
	jsl 0xe10000
	rtl

; X2Fix(Pointer) -> LongWord
; tool 0x200B, set 0x0B (IntegerMath)
	.section .text.X2Fix,"ax"
	.globl X2Fix
X2Fix:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x200B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; X2Frac(Pointer) -> LongWord
; tool 0x210B, set 0x0B (IntegerMath)
	.section .text.X2Frac,"ax"
	.globl X2Frac
X2Frac:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x210B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; Int2Hex(Word, Pointer, Word) -> void
; tool 0x220B, set 0x0B (IntegerMath)
	.section .text.Int2Hex,"ax"
	.globl Int2Hex
Int2Hex:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x220B
	jsl 0xe10000
	rtl

; Long2Hex(LongWord, Pointer, Word) -> void
; tool 0x230B, set 0x0B (IntegerMath)
	.section .text.Long2Hex,"ax"
	.globl Long2Hex
Long2Hex:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x230B
	jsl 0xe10000
	rtl

; Hex2Int(Pointer, Word) -> Word
; tool 0x240B, set 0x0B (IntegerMath)
	.section .text.Hex2Int,"ax"
	.globl Hex2Int
Hex2Int:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x240B
	jsl 0xe10000
	pla              ; result -> A
	rtl

; Hex2Long(Pointer, Word) -> LongWord
; tool 0x250B, set 0x0B (IntegerMath)
	.section .text.Hex2Long,"ax"
	.globl Hex2Long
Hex2Long:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x250B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; Int2Dec(Word, Pointer, Word, Word) -> void
; tool 0x260B, set 0x0B (IntegerMath)
	.section .text.Int2Dec,"ax"
	.globl Int2Dec
Int2Dec:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	ldx #0x260B
	jsl 0xe10000
	rtl

; Long2Dec(LongWord, Pointer, Word, Word) -> void
; tool 0x270B, set 0x0B (IntegerMath)
	.section .text.Long2Dec,"ax"
	.globl Long2Dec
Long2Dec:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 20, s
	pha
	ldx #0x270B
	jsl 0xe10000
	rtl

; Dec2Int(Pointer, Word, Word) -> Word
; tool 0x280B, set 0x0B (IntegerMath)
	.section .text.Dec2Int,"ax"
	.globl Dec2Int
Dec2Int:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x280B
	jsl 0xe10000
	pla              ; result -> A
	rtl

; Dec2Long(Pointer, Word, Word) -> LongWord
; tool 0x290B, set 0x0B (IntegerMath)
	.section .text.Dec2Long,"ax"
	.globl Dec2Long
Dec2Long:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x290B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; HexIt(Word) -> LongWord
; tool 0x2A0B, set 0x0B (IntegerMath)
	.section .text.HexIt,"ax"
	.globl HexIt
HexIt:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x2A0B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetInGlobals(Word, Word) -> void
; tool 0x090C, set 0x0C (TextTools)
	.section .text.SetInGlobals,"ax"
	.globl SetInGlobals
SetInGlobals:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x090C
	jsl 0xe10000
	rtl

; SetOutGlobals(Word, Word) -> void
; tool 0x0A0C, set 0x0C (TextTools)
	.section .text.SetOutGlobals,"ax"
	.globl SetOutGlobals
SetOutGlobals:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0A0C
	jsl 0xe10000
	rtl

; SetErrGlobals(Word, Word) -> void
; tool 0x0B0C, set 0x0C (TextTools)
	.section .text.SetErrGlobals,"ax"
	.globl SetErrGlobals
SetErrGlobals:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0B0C
	jsl 0xe10000
	rtl

; GetInGlobals(void) -> LongWord
; tool 0x0C0C, set 0x0C (TextTools)
	.section .text.GetInGlobals,"ax"
	.globl GetInGlobals
GetInGlobals:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x0C0C
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetOutGlobals(void) -> LongWord
; tool 0x0D0C, set 0x0C (TextTools)
	.section .text.GetOutGlobals,"ax"
	.globl GetOutGlobals
GetOutGlobals:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x0D0C
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetErrGlobals(void) -> LongWord
; tool 0x0E0C, set 0x0C (TextTools)
	.section .text.GetErrGlobals,"ax"
	.globl GetErrGlobals
GetErrGlobals:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x0E0C
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetInputDevice(Word, Pointer) -> void
; tool 0x0F0C, set 0x0C (TextTools)
	.section .text.SetInputDevice,"ax"
	.globl SetInputDevice
SetInputDevice:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x0F0C
	jsl 0xe10000
	rtl

; SetOutputDevice(Word, Pointer) -> void
; tool 0x100C, set 0x0C (TextTools)
	.section .text.SetOutputDevice,"ax"
	.globl SetOutputDevice
SetOutputDevice:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x100C
	jsl 0xe10000
	rtl

; SetErrorDevice(Word, Pointer) -> void
; tool 0x110C, set 0x0C (TextTools)
	.section .text.SetErrorDevice,"ax"
	.globl SetErrorDevice
SetErrorDevice:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x110C
	jsl 0xe10000
	rtl

; GetInputDevice(void) -> Pointer
; tool 0x120C, set 0x0C (TextTools)
	.section .text.GetInputDevice,"ax"
	.globl GetInputDevice
GetInputDevice:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x120C
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetOutputDevice(void) -> Pointer
; tool 0x130C, set 0x0C (TextTools)
	.section .text.GetOutputDevice,"ax"
	.globl GetOutputDevice
GetOutputDevice:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x130C
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetErrorDevice(void) -> Pointer
; tool 0x140C, set 0x0C (TextTools)
	.section .text.GetErrorDevice,"ax"
	.globl GetErrorDevice
GetErrorDevice:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x140C
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; CtlTextDev(Word, Word) -> void
; tool 0x160C, set 0x0C (TextTools)
	.section .text.CtlTextDev,"ax"
	.globl CtlTextDev
CtlTextDev:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x160C
	jsl 0xe10000
	rtl

; StatusTextDev(Word, Word) -> void
; tool 0x170C, set 0x0C (TextTools)
	.section .text.StatusTextDev,"ax"
	.globl StatusTextDev
StatusTextDev:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x170C
	jsl 0xe10000
	rtl

; WriteLine(Pointer) -> void
; tool 0x1A0C, set 0x0C (TextTools)
	.section .text.WriteLine,"ax"
	.globl WriteLine
WriteLine:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1A0C
	jsl 0xe10000
	rtl

; ErrWriteLine(Pointer) -> void
; tool 0x1B0C, set 0x0C (TextTools)
	.section .text.ErrWriteLine,"ax"
	.globl ErrWriteLine
ErrWriteLine:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1B0C
	jsl 0xe10000
	rtl

; WriteString(Pointer) -> void
; tool 0x1C0C, set 0x0C (TextTools)
	.section .text.WriteString,"ax"
	.globl WriteString
WriteString:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1C0C
	jsl 0xe10000
	rtl

; ErrWriteString(Pointer) -> void
; tool 0x1D0C, set 0x0C (TextTools)
	.section .text.ErrWriteString,"ax"
	.globl ErrWriteString
ErrWriteString:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1D0C
	jsl 0xe10000
	rtl

; TextWriteBlock(Pointer, Word, Word) -> void
; tool 0x1E0C, set 0x0C (TextTools)
	.section .text.TextWriteBlock,"ax"
	.globl TextWriteBlock
TextWriteBlock:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x1E0C
	jsl 0xe10000
	rtl

; ErrWriteBlock(Pointer, Word, Word) -> void
; tool 0x1F0C, set 0x0C (TextTools)
	.section .text.ErrWriteBlock,"ax"
	.globl ErrWriteBlock
ErrWriteBlock:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x1F0C
	jsl 0xe10000
	rtl

; WriteCString(Pointer) -> void
; tool 0x200C, set 0x0C (TextTools)
	.section .text.WriteCString,"ax"
	.globl WriteCString
WriteCString:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x200C
	jsl 0xe10000
	rtl

; ErrWriteCString(Pointer) -> void
; tool 0x210C, set 0x0C (TextTools)
	.section .text.ErrWriteCString,"ax"
	.globl ErrWriteCString
ErrWriteCString:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x210C
	jsl 0xe10000
	rtl

; TextReadBlock(Pointer, Word, Word, Word) -> void
; tool 0x230C, set 0x0C (TextTools)
	.section .text.TextReadBlock,"ax"
	.globl TextReadBlock
TextReadBlock:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x230C
	jsl 0xe10000
	rtl

; ReadLine(Pointer, Word, Word, Word) -> Word
; tool 0x240C, set 0x0C (TextTools)
	.section .text.ReadLine,"ax"
	.globl ReadLine
ReadLine:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	ldx #0x240C
	jsl 0xe10000
	pla              ; result -> A
	rtl

; NewWindow(Pointer) -> Pointer
; tool 0x090E, set 0x0E (WindowManager)
	.section .text.NewWindow,"ax"
	.globl NewWindow
NewWindow:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x090E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; CheckUpdate(Pointer) -> Word
; tool 0x0A0E, set 0x0E (WindowManager)
	.section .text.CheckUpdate,"ax"
	.globl CheckUpdate
CheckUpdate:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0A0E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; CloseWindow(Pointer) -> void
; tool 0x0B0E, set 0x0E (WindowManager)
	.section .text.CloseWindow,"ax"
	.globl CloseWindow
CloseWindow:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0B0E
	jsl 0xe10000
	rtl

; Desktop(Word, LongWord) -> LongWord
; tool 0x0C0E, set 0x0E (WindowManager)
	.section .text.Desktop,"ax"
	.globl Desktop
Desktop:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x0C0E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetWTitle(Pointer, Pointer) -> void
; tool 0x0D0E, set 0x0E (WindowManager)
	.section .text.SetWTitle,"ax"
	.globl SetWTitle
SetWTitle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x0D0E
	jsl 0xe10000
	rtl

; GetWTitle(Pointer) -> Pointer
; tool 0x0E0E, set 0x0E (WindowManager)
	.section .text.GetWTitle,"ax"
	.globl GetWTitle
GetWTitle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0E0E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetFrameColor(Pointer, Pointer) -> void
; tool 0x0F0E, set 0x0E (WindowManager)
	.section .text.SetFrameColor,"ax"
	.globl SetFrameColor
SetFrameColor:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x0F0E
	jsl 0xe10000
	rtl

; GetFrameColor(Pointer, Pointer) -> void
; tool 0x100E, set 0x0E (WindowManager)
	.section .text.GetFrameColor,"ax"
	.globl GetFrameColor
GetFrameColor:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x100E
	jsl 0xe10000
	rtl

; SelectWindow(Pointer) -> void
; tool 0x110E, set 0x0E (WindowManager)
	.section .text.SelectWindow,"ax"
	.globl SelectWindow
SelectWindow:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x110E
	jsl 0xe10000
	rtl

; HideWindow(Pointer) -> void
; tool 0x120E, set 0x0E (WindowManager)
	.section .text.HideWindow,"ax"
	.globl HideWindow
HideWindow:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x120E
	jsl 0xe10000
	rtl

; ShowWindow(Pointer) -> void
; tool 0x130E, set 0x0E (WindowManager)
	.section .text.ShowWindow,"ax"
	.globl ShowWindow
ShowWindow:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x130E
	jsl 0xe10000
	rtl

; SendBehind(Pointer, Pointer) -> void
; tool 0x140E, set 0x0E (WindowManager)
	.section .text.SendBehind,"ax"
	.globl SendBehind
SendBehind:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x140E
	jsl 0xe10000
	rtl

; FrontWindow(void) -> Pointer
; tool 0x150E, set 0x0E (WindowManager)
	.section .text.FrontWindow,"ax"
	.globl FrontWindow
FrontWindow:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x150E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetInfoDraw(Pointer, Pointer) -> void
; tool 0x160E, set 0x0E (WindowManager)
	.section .text.SetInfoDraw,"ax"
	.globl SetInfoDraw
SetInfoDraw:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x160E
	jsl 0xe10000
	rtl

; FindWindow(Pointer, Word, Word) -> Word
; tool 0x170E, set 0x0E (WindowManager)
	.section .text.FindWindow,"ax"
	.globl FindWindow
FindWindow:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x170E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; TrackGoAway(Word, Word, Pointer) -> Word
; tool 0x180E, set 0x0E (WindowManager)
	.section .text.TrackGoAway,"ax"
	.globl TrackGoAway
TrackGoAway:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x180E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; MoveWindow(Word, Word, Pointer) -> void
; tool 0x190E, set 0x0E (WindowManager)
	.section .text.MoveWindow,"ax"
	.globl MoveWindow
MoveWindow:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x190E
	jsl 0xe10000
	rtl

; DragWindow(Word, Word, Word, Word, Pointer, Pointer) -> void
; tool 0x1A0E, set 0x0E (WindowManager)
	.section .text.DragWindow,"ax"
	.globl DragWindow
DragWindow:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 28, s
	pha
	lda 28, s
	pha
	ldx #0x1A0E
	jsl 0xe10000
	rtl

; GrowWindow(Word, Word, Word, Word, Pointer) -> LongWord
; tool 0x1B0E, set 0x0E (WindowManager)
	.section .text.GrowWindow,"ax"
	.globl GrowWindow
GrowWindow:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	ldx #0x1B0E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SizeWindow(Word, Word, Pointer) -> void
; tool 0x1C0E, set 0x0E (WindowManager)
	.section .text.SizeWindow,"ax"
	.globl SizeWindow
SizeWindow:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1C0E
	jsl 0xe10000
	rtl

; TaskMaster(Word, Pointer) -> Word
; tool 0x1D0E, set 0x0E (WindowManager)
	.section .text.TaskMaster,"ax"
	.globl TaskMaster
TaskMaster:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1D0E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; BeginUpdate(Pointer) -> void
; tool 0x1E0E, set 0x0E (WindowManager)
	.section .text.BeginUpdate,"ax"
	.globl BeginUpdate
BeginUpdate:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1E0E
	jsl 0xe10000
	rtl

; EndUpdate(Pointer) -> void
; tool 0x1F0E, set 0x0E (WindowManager)
	.section .text.EndUpdate,"ax"
	.globl EndUpdate
EndUpdate:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1F0E
	jsl 0xe10000
	rtl

; GetWMgrPort(void) -> Pointer
; tool 0x200E, set 0x0E (WindowManager)
	.section .text.GetWMgrPort,"ax"
	.globl GetWMgrPort
GetWMgrPort:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x200E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PinRect(Word, Word, Pointer) -> LongWord
; tool 0x210E, set 0x0E (WindowManager)
	.section .text.PinRect,"ax"
	.globl PinRect
PinRect:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x210E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; HiliteWindow(Word, Pointer) -> void
; tool 0x220E, set 0x0E (WindowManager)
	.section .text.HiliteWindow,"ax"
	.globl HiliteWindow
HiliteWindow:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x220E
	jsl 0xe10000
	rtl

; ShowHide(Word, Pointer) -> void
; tool 0x230E, set 0x0E (WindowManager)
	.section .text.ShowHide,"ax"
	.globl ShowHide
ShowHide:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x230E
	jsl 0xe10000
	rtl

; BringToFront(Pointer) -> void
; tool 0x240E, set 0x0E (WindowManager)
	.section .text.BringToFront,"ax"
	.globl BringToFront
BringToFront:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x240E
	jsl 0xe10000
	rtl

; TrackZoom(Word, Word, Pointer) -> Word
; tool 0x260E, set 0x0E (WindowManager)
	.section .text.TrackZoom,"ax"
	.globl TrackZoom
TrackZoom:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x260E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; ZoomWindow(Pointer) -> void
; tool 0x270E, set 0x0E (WindowManager)
	.section .text.ZoomWindow,"ax"
	.globl ZoomWindow
ZoomWindow:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x270E
	jsl 0xe10000
	rtl

; SetWRefCon(LongWord, Pointer) -> void
; tool 0x280E, set 0x0E (WindowManager)
	.section .text.SetWRefCon,"ax"
	.globl SetWRefCon
SetWRefCon:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x280E
	jsl 0xe10000
	rtl

; GetWRefCon(Pointer) -> LongWord
; tool 0x290E, set 0x0E (WindowManager)
	.section .text.GetWRefCon,"ax"
	.globl GetWRefCon
GetWRefCon:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x290E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetNextWindow(Pointer) -> Pointer
; tool 0x2A0E, set 0x0E (WindowManager)
	.section .text.GetNextWindow,"ax"
	.globl GetNextWindow
GetNextWindow:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2A0E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetWKind(Pointer) -> Word
; tool 0x2B0E, set 0x0E (WindowManager)
	.section .text.GetWKind,"ax"
	.globl GetWKind
GetWKind:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2B0E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; GetWFrame(Pointer) -> Word
; tool 0x2C0E, set 0x0E (WindowManager)
	.section .text.GetWFrame,"ax"
	.globl GetWFrame
GetWFrame:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2C0E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; SetWFrame(Word, Pointer) -> void
; tool 0x2D0E, set 0x0E (WindowManager)
	.section .text.SetWFrame,"ax"
	.globl SetWFrame
SetWFrame:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x2D0E
	jsl 0xe10000
	rtl

; GetStructRgn(Pointer) -> Pointer
; tool 0x2E0E, set 0x0E (WindowManager)
	.section .text.GetStructRgn,"ax"
	.globl GetStructRgn
GetStructRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2E0E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetContentRgn(Pointer) -> Pointer
; tool 0x2F0E, set 0x0E (WindowManager)
	.section .text.GetContentRgn,"ax"
	.globl GetContentRgn
GetContentRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2F0E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetUpdateRgn(Pointer) -> Pointer
; tool 0x300E, set 0x0E (WindowManager)
	.section .text.GetUpdateRgn,"ax"
	.globl GetUpdateRgn
GetUpdateRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x300E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetDefProc(Pointer) -> Pointer
; tool 0x310E, set 0x0E (WindowManager)
	.section .text.GetDefProc,"ax"
	.globl GetDefProc
GetDefProc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x310E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetDefProc(Pointer, Pointer) -> void
; tool 0x320E, set 0x0E (WindowManager)
	.section .text.SetDefProc,"ax"
	.globl SetDefProc
SetDefProc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x320E
	jsl 0xe10000
	rtl

; GetWControls(Pointer) -> Pointer
; tool 0x330E, set 0x0E (WindowManager)
	.section .text.GetWControls,"ax"
	.globl GetWControls
GetWControls:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x330E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetOriginMask(Word, Pointer) -> void
; tool 0x340E, set 0x0E (WindowManager)
	.section .text.SetOriginMask,"ax"
	.globl SetOriginMask
SetOriginMask:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x340E
	jsl 0xe10000
	rtl

; GetInfoRefCon(Pointer) -> LongWord
; tool 0x350E, set 0x0E (WindowManager)
	.section .text.GetInfoRefCon,"ax"
	.globl GetInfoRefCon
GetInfoRefCon:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x350E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetInfoRefCon(LongWord, Pointer) -> void
; tool 0x360E, set 0x0E (WindowManager)
	.section .text.SetInfoRefCon,"ax"
	.globl SetInfoRefCon
SetInfoRefCon:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x360E
	jsl 0xe10000
	rtl

; GetZoomRect(Pointer) -> Pointer
; tool 0x370E, set 0x0E (WindowManager)
	.section .text.GetZoomRect,"ax"
	.globl GetZoomRect
GetZoomRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x370E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetZoomRect(Pointer, Pointer) -> void
; tool 0x380E, set 0x0E (WindowManager)
	.section .text.SetZoomRect,"ax"
	.globl SetZoomRect
SetZoomRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x380E
	jsl 0xe10000
	rtl

; RefreshDesktop(Pointer) -> void
; tool 0x390E, set 0x0E (WindowManager)
	.section .text.RefreshDesktop,"ax"
	.globl RefreshDesktop
RefreshDesktop:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x390E
	jsl 0xe10000
	rtl

; InvalRect(Pointer) -> void
; tool 0x3A0E, set 0x0E (WindowManager)
	.section .text.InvalRect,"ax"
	.globl InvalRect
InvalRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3A0E
	jsl 0xe10000
	rtl

; InvalRgn(Pointer) -> void
; tool 0x3B0E, set 0x0E (WindowManager)
	.section .text.InvalRgn,"ax"
	.globl InvalRgn
InvalRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3B0E
	jsl 0xe10000
	rtl

; ValidRect(Pointer) -> void
; tool 0x3C0E, set 0x0E (WindowManager)
	.section .text.ValidRect,"ax"
	.globl ValidRect
ValidRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3C0E
	jsl 0xe10000
	rtl

; ValidRgn(Pointer) -> void
; tool 0x3D0E, set 0x0E (WindowManager)
	.section .text.ValidRgn,"ax"
	.globl ValidRgn
ValidRgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3D0E
	jsl 0xe10000
	rtl

; GetContentOrigin(Pointer) -> LongWord
; tool 0x3E0E, set 0x0E (WindowManager)
	.section .text.GetContentOrigin,"ax"
	.globl GetContentOrigin
GetContentOrigin:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3E0E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetContentOrigin(Word, Word, Pointer) -> void
; tool 0x3F0E, set 0x0E (WindowManager)
	.section .text.SetContentOrigin,"ax"
	.globl SetContentOrigin
SetContentOrigin:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x3F0E
	jsl 0xe10000
	rtl

; GetDataSize(Pointer) -> LongWord
; tool 0x400E, set 0x0E (WindowManager)
	.section .text.GetDataSize,"ax"
	.globl GetDataSize
GetDataSize:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x400E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetDataSize(Word, Word, Pointer) -> void
; tool 0x410E, set 0x0E (WindowManager)
	.section .text.SetDataSize,"ax"
	.globl SetDataSize
SetDataSize:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x410E
	jsl 0xe10000
	rtl

; GetMaxGrow(Pointer) -> LongWord
; tool 0x420E, set 0x0E (WindowManager)
	.section .text.GetMaxGrow,"ax"
	.globl GetMaxGrow
GetMaxGrow:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x420E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetMaxGrow(Word, Word, Pointer) -> void
; tool 0x430E, set 0x0E (WindowManager)
	.section .text.SetMaxGrow,"ax"
	.globl SetMaxGrow
SetMaxGrow:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x430E
	jsl 0xe10000
	rtl

; GetScroll(Pointer) -> LongWord
; tool 0x440E, set 0x0E (WindowManager)
	.section .text.GetScroll,"ax"
	.globl GetScroll
GetScroll:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x440E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetScroll(Word, Word, Pointer) -> void
; tool 0x450E, set 0x0E (WindowManager)
	.section .text.SetScroll,"ax"
	.globl SetScroll
SetScroll:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x450E
	jsl 0xe10000
	rtl

; GetPage(Pointer) -> LongWord
; tool 0x460E, set 0x0E (WindowManager)
	.section .text.GetPage,"ax"
	.globl GetPage
GetPage:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x460E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetPage(Word, Word, Pointer) -> void
; tool 0x470E, set 0x0E (WindowManager)
	.section .text.SetPage,"ax"
	.globl SetPage
SetPage:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x470E
	jsl 0xe10000
	rtl

; GetContentDraw(Pointer) -> Pointer
; tool 0x480E, set 0x0E (WindowManager)
	.section .text.GetContentDraw,"ax"
	.globl GetContentDraw
GetContentDraw:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x480E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetContentDraw(Pointer, Pointer) -> void
; tool 0x490E, set 0x0E (WindowManager)
	.section .text.SetContentDraw,"ax"
	.globl SetContentDraw
SetContentDraw:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x490E
	jsl 0xe10000
	rtl

; GetInfoDraw(Pointer) -> Pointer
; tool 0x4A0E, set 0x0E (WindowManager)
	.section .text.GetInfoDraw,"ax"
	.globl GetInfoDraw
GetInfoDraw:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x4A0E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetSysWindow(Pointer) -> void
; tool 0x4B0E, set 0x0E (WindowManager)
	.section .text.SetSysWindow,"ax"
	.globl SetSysWindow
SetSysWindow:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x4B0E
	jsl 0xe10000
	rtl

; GetSysWFlag(Pointer) -> Word
; tool 0x4C0E, set 0x0E (WindowManager)
	.section .text.GetSysWFlag,"ax"
	.globl GetSysWFlag
GetSysWFlag:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x4C0E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; StartDrawing(Pointer) -> void
; tool 0x4D0E, set 0x0E (WindowManager)
	.section .text.StartDrawing,"ax"
	.globl StartDrawing
StartDrawing:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x4D0E
	jsl 0xe10000
	rtl

; SetWindowIcons(Pointer) -> Pointer
; tool 0x4E0E, set 0x0E (WindowManager)
	.section .text.SetWindowIcons,"ax"
	.globl SetWindowIcons
SetWindowIcons:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x4E0E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetRectInfo(Pointer, Pointer) -> void
; tool 0x4F0E, set 0x0E (WindowManager)
	.section .text.GetRectInfo,"ax"
	.globl GetRectInfo
GetRectInfo:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x4F0E
	jsl 0xe10000
	rtl

; StartInfoDrawing(Pointer, Pointer) -> void
; tool 0x500E, set 0x0E (WindowManager)
	.section .text.StartInfoDrawing,"ax"
	.globl StartInfoDrawing
StartInfoDrawing:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x500E
	jsl 0xe10000
	rtl

; GetFirstWindow(void) -> Pointer
; tool 0x520E, set 0x0E (WindowManager)
	.section .text.GetFirstWindow,"ax"
	.globl GetFirstWindow
GetFirstWindow:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x520E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; WindDragRect(Pointer, Pointer, Word, Word, Pointer, Pointer, Pointer, Word) -> LongWord
; tool 0x530E, set 0x0E (WindowManager)
	.section .text.WindDragRect,"ax"
	.globl WindDragRect
WindDragRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 20, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 24, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 30, s
	pha
	lda 30, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 38, s
	pha
	lda 38, s
	pha
	; --- arg6 (Pointer, 4B) ---
	lda 46, s
	pha
	lda 46, s
	pha
	; --- arg7 (Word, 2B) ---
	lda 52, s
	pha
	ldx #0x530E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; Private01(void) -> Pointer
; tool 0x540E, set 0x0E (WindowManager)
	.section .text.Private01,"ax"
	.globl Private01
Private01:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x540E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; DrawInfoBar(Pointer) -> void
; tool 0x550E, set 0x0E (WindowManager)
	.section .text.DrawInfoBar,"ax"
	.globl DrawInfoBar
DrawInfoBar:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x550E
	jsl 0xe10000
	rtl

; SetContentOrigin2(Word, Word, Word, Pointer) -> void
; tool 0x570E, set 0x0E (WindowManager)
	.section .text.SetContentOrigin2,"ax"
	.globl SetContentOrigin2
SetContentOrigin2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x570E
	jsl 0xe10000
	rtl

; GetWindowMgrGlobals(void) -> Pointer
; tool 0x580E, set 0x0E (WindowManager)
	.section .text.GetWindowMgrGlobals,"ax"
	.globl GetWindowMgrGlobals
GetWindowMgrGlobals:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x580E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; AlertWindow(Word, Pointer, LongWord) -> Word
; tool 0x590E, set 0x0E (WindowManager)
	.section .text.AlertWindow,"ax"
	.globl AlertWindow
AlertWindow:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x590E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; StartFrameDrawing(Pointer) -> void
; tool 0x5A0E, set 0x0E (WindowManager)
	.section .text.StartFrameDrawing,"ax"
	.globl StartFrameDrawing
StartFrameDrawing:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x5A0E
	jsl 0xe10000
	rtl

; ResizeWindow(Word, Pointer, Pointer) -> void
; tool 0x5C0E, set 0x0E (WindowManager)
	.section .text.ResizeWindow,"ax"
	.globl ResizeWindow
ResizeWindow:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x5C0E
	jsl 0xe10000
	rtl

; TaskMasterDA(Word, Pointer) -> Word
; tool 0x5F0E, set 0x0E (WindowManager)
	.section .text.TaskMasterDA,"ax"
	.globl TaskMasterDA
TaskMasterDA:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x5F0E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; CompileText(Word, Pointer, Pointer, Word) -> Pointer
; tool 0x600E, set 0x0E (WindowManager)
	.section .text.CompileText,"ax"
	.globl CompileText
CompileText:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 26, s
	pha
	ldx #0x600E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; NewWindow2(Pointer, LongWord, Pointer, Pointer, Word, LongWord, Word) -> Pointer
; tool 0x610E, set 0x0E (WindowManager)
	.section .text.NewWindow2,"ax"
	.globl NewWindow2
NewWindow2:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 22, s
	pha
	lda 22, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 30, s
	pha
	lda 30, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 36, s
	pha
	; --- arg5 (LongWord, 4B) ---
	lda 42, s
	pha
	lda 42, s
	pha
	; --- arg6 (Word, 2B) ---
	lda 48, s
	pha
	ldx #0x610E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; ErrorWindow(Word, Pointer, Word) -> Word
; tool 0x620E, set 0x0E (WindowManager)
	.section .text.ErrorWindow,"ax"
	.globl ErrorWindow
ErrorWindow:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x620E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; GetAuxWindInfo(Pointer) -> Pointer
; tool 0x630E, set 0x0E (WindowManager)
	.section .text.GetAuxWindInfo,"ax"
	.globl GetAuxWindInfo
GetAuxWindInfo:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x630E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; DoModalWindow(Pointer, Pointer, Pointer, Pointer, Word) -> LongWord
; tool 0x640E, set 0x0E (WindowManager)
	.section .text.DoModalWindow,"ax"
	.globl DoModalWindow
DoModalWindow:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 22, s
	pha
	lda 22, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 30, s
	pha
	lda 30, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 36, s
	pha
	ldx #0x640E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MWSetMenuProc(Pointer) -> Pointer
; tool 0x660E, set 0x0E (WindowManager)
	.section .text.MWSetMenuProc,"ax"
	.globl MWSetMenuProc
MWSetMenuProc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x660E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FindCursorCtl(Pointer, Word, Word, Pointer) -> Word
; tool 0x690E, set 0x0E (WindowManager)
	.section .text.FindCursorCtl,"ax"
	.globl FindCursorCtl
FindCursorCtl:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	ldx #0x690E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; ResizeInfoBar(Word, Word, Pointer) -> void
; tool 0x6A0E, set 0x0E (WindowManager)
	.section .text.ResizeInfoBar,"ax"
	.globl ResizeInfoBar
ResizeInfoBar:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x6A0E
	jsl 0xe10000
	rtl

; HandleDiskInsert(Word, Word) -> LongWord
; tool 0x6B0E, set 0x0E (WindowManager)
	.section .text.HandleDiskInsert,"ax"
	.globl HandleDiskInsert
HandleDiskInsert:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x6B0E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; UpdateWindow(Word, Pointer) -> void
; tool 0x6C0E, set 0x0E (WindowManager)
	.section .text.UpdateWindow,"ax"
	.globl UpdateWindow
UpdateWindow:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x6C0E
	jsl 0xe10000
	rtl

; MenuStartUp(Word, Word) -> void
; tool 0x020F, set 0x0F (MenuManager)
	.section .text.MenuStartUp,"ax"
	.globl MenuStartUp
MenuStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x020F
	jsl 0xe10000
	rtl

; MenuKey(Pointer, Pointer) -> void
; tool 0x090F, set 0x0F (MenuManager)
	.section .text.MenuKey,"ax"
	.globl MenuKey
MenuKey:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x090F
	jsl 0xe10000
	rtl

; GetMenuBar(void) -> Pointer
; tool 0x0A0F, set 0x0F (MenuManager)
	.section .text.GetMenuBar,"ax"
	.globl GetMenuBar
GetMenuBar:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x0A0F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MenuRefresh(Pointer) -> void
; tool 0x0B0F, set 0x0F (MenuManager)
	.section .text.MenuRefresh,"ax"
	.globl MenuRefresh
MenuRefresh:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0B0F
	jsl 0xe10000
	rtl

; InsertMenu(Pointer, Word) -> void
; tool 0x0D0F, set 0x0F (MenuManager)
	.section .text.InsertMenu,"ax"
	.globl InsertMenu
InsertMenu:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x0D0F
	jsl 0xe10000
	rtl

; InsertMItem(Pointer, Word, Word) -> void
; tool 0x0F0F, set 0x0F (MenuManager)
	.section .text.InsertMItem,"ax"
	.globl InsertMItem
InsertMItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x0F0F
	jsl 0xe10000
	rtl

; GetSysBar(void) -> Pointer
; tool 0x110F, set 0x0F (MenuManager)
	.section .text.GetSysBar,"ax"
	.globl GetSysBar
GetSysBar:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x110F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetSysBar(Pointer) -> void
; tool 0x120F, set 0x0F (MenuManager)
	.section .text.SetSysBar,"ax"
	.globl SetSysBar
SetSysBar:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x120F
	jsl 0xe10000
	rtl

; NewMenuBar(Pointer) -> Pointer
; tool 0x150F, set 0x0F (MenuManager)
	.section .text.NewMenuBar,"ax"
	.globl NewMenuBar
NewMenuBar:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x150F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetMHandle(Word) -> Pointer
; tool 0x160F, set 0x0F (MenuManager)
	.section .text.GetMHandle,"ax"
	.globl GetMHandle
GetMHandle:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x160F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetBarColors(Word, Word, Word) -> void
; tool 0x170F, set 0x0F (MenuManager)
	.section .text.SetBarColors,"ax"
	.globl SetBarColors
SetBarColors:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x170F
	jsl 0xe10000
	rtl

; GetBarColors(void) -> LongWord
; tool 0x180F, set 0x0F (MenuManager)
	.section .text.GetBarColors,"ax"
	.globl GetBarColors
GetBarColors:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x180F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetMenuMgrPort(void) -> Pointer
; tool 0x1B0F, set 0x0F (MenuManager)
	.section .text.GetMenuMgrPort,"ax"
	.globl GetMenuMgrPort
GetMenuMgrPort:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1B0F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; CalcMenuSize(Word, Word, Word) -> void
; tool 0x1C0F, set 0x0F (MenuManager)
	.section .text.CalcMenuSize,"ax"
	.globl CalcMenuSize
CalcMenuSize:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x1C0F
	jsl 0xe10000
	rtl

; SetMTitleWidth(Word, Word) -> void
; tool 0x1D0F, set 0x0F (MenuManager)
	.section .text.SetMTitleWidth,"ax"
	.globl SetMTitleWidth
SetMTitleWidth:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x1D0F
	jsl 0xe10000
	rtl

; SetMenuFlag(Word, Word) -> void
; tool 0x1F0F, set 0x0F (MenuManager)
	.section .text.SetMenuFlag,"ax"
	.globl SetMenuFlag
SetMenuFlag:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x1F0F
	jsl 0xe10000
	rtl

; SetMenuTitle(Pointer, Word) -> void
; tool 0x210F, set 0x0F (MenuManager)
	.section .text.SetMenuTitle,"ax"
	.globl SetMenuTitle
SetMenuTitle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x210F
	jsl 0xe10000
	rtl

; GetMenuTitle(Word) -> Pointer
; tool 0x220F, set 0x0F (MenuManager)
	.section .text.GetMenuTitle,"ax"
	.globl GetMenuTitle
GetMenuTitle:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x220F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetMItem(Pointer, Word) -> void
; tool 0x240F, set 0x0F (MenuManager)
	.section .text.SetMItem,"ax"
	.globl SetMItem
SetMItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x240F
	jsl 0xe10000
	rtl

; GetMItem(Word) -> Pointer
; tool 0x250F, set 0x0F (MenuManager)
	.section .text.GetMItem,"ax"
	.globl GetMItem
GetMItem:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x250F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetMItemFlag(Word, Word) -> void
; tool 0x260F, set 0x0F (MenuManager)
	.section .text.SetMItemFlag,"ax"
	.globl SetMItemFlag
SetMItemFlag:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x260F
	jsl 0xe10000
	rtl

; MenuSelect(Pointer, Pointer) -> void
; tool 0x2B0F, set 0x0F (MenuManager)
	.section .text.MenuSelect,"ax"
	.globl MenuSelect
MenuSelect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x2B0F
	jsl 0xe10000
	rtl

; HiliteMenu(Word, Word) -> void
; tool 0x2C0F, set 0x0F (MenuManager)
	.section .text.HiliteMenu,"ax"
	.globl HiliteMenu
HiliteMenu:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x2C0F
	jsl 0xe10000
	rtl

; NewMenu(Pointer) -> Pointer
; tool 0x2D0F, set 0x0F (MenuManager)
	.section .text.NewMenu,"ax"
	.globl NewMenu
NewMenu:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2D0F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; DisposeMenu(Pointer) -> void
; tool 0x2E0F, set 0x0F (MenuManager)
	.section .text.DisposeMenu,"ax"
	.globl DisposeMenu
DisposeMenu:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2E0F
	jsl 0xe10000
	rtl

; CheckMItem(Word, Word) -> void
; tool 0x320F, set 0x0F (MenuManager)
	.section .text.CheckMItem,"ax"
	.globl CheckMItem
CheckMItem:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x320F
	jsl 0xe10000
	rtl

; SetMItemMark(Word, Word) -> void
; tool 0x330F, set 0x0F (MenuManager)
	.section .text.SetMItemMark,"ax"
	.globl SetMItemMark
SetMItemMark:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x330F
	jsl 0xe10000
	rtl

; SetMItemStyle(Word, Word) -> void
; tool 0x350F, set 0x0F (MenuManager)
	.section .text.SetMItemStyle,"ax"
	.globl SetMItemStyle
SetMItemStyle:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x350F
	jsl 0xe10000
	rtl

; SetMenuID(Word, Word) -> void
; tool 0x370F, set 0x0F (MenuManager)
	.section .text.SetMenuID,"ax"
	.globl SetMenuID
SetMenuID:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x370F
	jsl 0xe10000
	rtl

; SetMItemID(Word, Word) -> void
; tool 0x380F, set 0x0F (MenuManager)
	.section .text.SetMItemID,"ax"
	.globl SetMItemID
SetMItemID:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x380F
	jsl 0xe10000
	rtl

; SetMenuBar(Pointer) -> void
; tool 0x390F, set 0x0F (MenuManager)
	.section .text.SetMenuBar,"ax"
	.globl SetMenuBar
SetMenuBar:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x390F
	jsl 0xe10000
	rtl

; SetMItemName(Pointer, Word) -> void
; tool 0x3A0F, set 0x0F (MenuManager)
	.section .text.SetMItemName,"ax"
	.globl SetMItemName
SetMItemName:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x3A0F
	jsl 0xe10000
	rtl

; GetPopUpDefProc(void) -> Pointer
; tool 0x3B0F, set 0x0F (MenuManager)
	.section .text.GetPopUpDefProc,"ax"
	.globl GetPopUpDefProc
GetPopUpDefProc:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x3B0F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PopUpMenuSelect(Word, Word, Word, Word, Pointer) -> Word
; tool 0x3C0F, set 0x0F (MenuManager)
	.section .text.PopUpMenuSelect,"ax"
	.globl PopUpMenuSelect
PopUpMenuSelect:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 16, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 22, s
	pha
	lda 22, s
	pha
	ldx #0x3C0F
	jsl 0xe10000
	pla              ; result -> A
	rtl

; NewMenu2(Word, LongWord) -> Pointer
; tool 0x3E0F, set 0x0F (MenuManager)
	.section .text.NewMenu2,"ax"
	.globl NewMenu2
NewMenu2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x3E0F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; InsertMItem2(Word, LongWord, Word, Word) -> void
; tool 0x3F0F, set 0x0F (MenuManager)
	.section .text.InsertMItem2,"ax"
	.globl InsertMItem2
InsertMItem2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	ldx #0x3F0F
	jsl 0xe10000
	rtl

; SetMenuTitle2(Word, LongWord, Word) -> void
; tool 0x400F, set 0x0F (MenuManager)
	.section .text.SetMenuTitle2,"ax"
	.globl SetMenuTitle2
SetMenuTitle2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x400F
	jsl 0xe10000
	rtl

; SetMItem2(Word, LongWord, Word) -> void
; tool 0x410F, set 0x0F (MenuManager)
	.section .text.SetMItem2,"ax"
	.globl SetMItem2
SetMItem2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x410F
	jsl 0xe10000
	rtl

; SetMItemName2(Word, LongWord, Word) -> void
; tool 0x420F, set 0x0F (MenuManager)
	.section .text.SetMItemName2,"ax"
	.globl SetMItemName2
SetMItemName2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x420F
	jsl 0xe10000
	rtl

; NewMenuBar2(Word, LongWord, Pointer) -> Pointer
; tool 0x430F, set 0x0F (MenuManager)
	.section .text.NewMenuBar2,"ax"
	.globl NewMenuBar2
NewMenuBar2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	ldx #0x430F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetMItemIcon(Word, LongWord, Word) -> void
; tool 0x470F, set 0x0F (MenuManager)
	.section .text.SetMItemIcon,"ax"
	.globl SetMItemIcon
SetMItemIcon:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x470F
	jsl 0xe10000
	rtl

; GetMItemIcon(Word) -> LongWord
; tool 0x480F, set 0x0F (MenuManager)
	.section .text.GetMItemIcon,"ax"
	.globl GetMItemIcon
GetMItemIcon:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x480F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetMItemStruct(Word, LongWord, Word) -> void
; tool 0x490F, set 0x0F (MenuManager)
	.section .text.SetMItemStruct,"ax"
	.globl SetMItemStruct
SetMItemStruct:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x490F
	jsl 0xe10000
	rtl

; GetMItemStruct(Word) -> LongWord
; tool 0x4A0F, set 0x0F (MenuManager)
	.section .text.GetMItemStruct,"ax"
	.globl GetMItemStruct
GetMItemStruct:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x4A0F
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetMItemFlag2(Word, Word) -> void
; tool 0x4D0F, set 0x0F (MenuManager)
	.section .text.SetMItemFlag2,"ax"
	.globl SetMItemFlag2
SetMItemFlag2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x4D0F
	jsl 0xe10000
	rtl

; InsertPathMItems(Word, Pointer, Word, Word, Word, Word, Pointer) -> void
; tool 0x500F, set 0x0F (MenuManager)
	.section .text.InsertPathMItems,"ax"
	.globl InsertPathMItems
InsertPathMItems:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 22, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 26, s
	pha
	; --- arg6 (Pointer, 4B) ---
	lda 32, s
	pha
	lda 32, s
	pha
	ldx #0x500F
	jsl 0xe10000
	rtl

; CtlStartUp(Word, Word) -> void
; tool 0x0210, set 0x10 (ControlManager)
	.section .text.CtlStartUp,"ax"
	.globl CtlStartUp
CtlStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0210
	jsl 0xe10000
	rtl

; NewControl(Pointer, Pointer, Pointer, Word, Word, Word, Word, Pointer, LongWord, Pointer) -> Word
; tool 0x0910, set 0x10 (ControlManager)
	.section .text.NewControl,"ax"
	.globl NewControl
NewControl:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 26, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 30, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 34, s
	pha
	; --- arg6 (Word, 2B) ---
	lda 38, s
	pha
	; --- arg7 (Pointer, 4B) ---
	lda 44, s
	pha
	lda 44, s
	pha
	; --- arg8 (LongWord, 4B) ---
	lda 52, s
	pha
	lda 52, s
	pha
	; --- arg9 (Pointer, 4B) ---
	lda 60, s
	pha
	lda 60, s
	pha
	ldx #0x0910
	jsl 0xe10000
	pla              ; result -> A
	rtl

; DisposeControl(Pointer) -> void
; tool 0x0A10, set 0x10 (ControlManager)
	.section .text.DisposeControl,"ax"
	.globl DisposeControl
DisposeControl:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0A10
	jsl 0xe10000
	rtl

; KillControls(Pointer) -> void
; tool 0x0B10, set 0x10 (ControlManager)
	.section .text.KillControls,"ax"
	.globl KillControls
KillControls:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0B10
	jsl 0xe10000
	rtl

; SetCtlTitle(Pointer, Pointer) -> void
; tool 0x0C10, set 0x10 (ControlManager)
	.section .text.SetCtlTitle,"ax"
	.globl SetCtlTitle
SetCtlTitle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x0C10
	jsl 0xe10000
	rtl

; GetCtlTitle(Pointer) -> Pointer
; tool 0x0D10, set 0x10 (ControlManager)
	.section .text.GetCtlTitle,"ax"
	.globl GetCtlTitle
GetCtlTitle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0D10
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; HideControl(Pointer) -> void
; tool 0x0E10, set 0x10 (ControlManager)
	.section .text.HideControl,"ax"
	.globl HideControl
HideControl:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0E10
	jsl 0xe10000
	rtl

; ShowControl(Pointer) -> void
; tool 0x0F10, set 0x10 (ControlManager)
	.section .text.ShowControl,"ax"
	.globl ShowControl
ShowControl:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0F10
	jsl 0xe10000
	rtl

; DrawControls(Pointer) -> void
; tool 0x1010, set 0x10 (ControlManager)
	.section .text.DrawControls,"ax"
	.globl DrawControls
DrawControls:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1010
	jsl 0xe10000
	rtl

; HiliteControl(Word, Pointer) -> void
; tool 0x1110, set 0x10 (ControlManager)
	.section .text.HiliteControl,"ax"
	.globl HiliteControl
HiliteControl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x1110
	jsl 0xe10000
	rtl

; FindControl(Pointer, Word, Word, Pointer) -> Word
; tool 0x1310, set 0x10 (ControlManager)
	.section .text.FindControl,"ax"
	.globl FindControl
FindControl:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	ldx #0x1310
	jsl 0xe10000
	pla              ; result -> A
	rtl

; TestControl(Word, Word, Pointer) -> Word
; tool 0x1410, set 0x10 (ControlManager)
	.section .text.TestControl,"ax"
	.globl TestControl
TestControl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x1410
	jsl 0xe10000
	pla              ; result -> A
	rtl

; TrackControl(Word, Word, Pointer, Pointer) -> Word
; tool 0x1510, set 0x10 (ControlManager)
	.section .text.TrackControl,"ax"
	.globl TrackControl
TrackControl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 22, s
	pha
	lda 22, s
	pha
	ldx #0x1510
	jsl 0xe10000
	pla              ; result -> A
	rtl

; MoveControl(Word, Word, Pointer) -> void
; tool 0x1610, set 0x10 (ControlManager)
	.section .text.MoveControl,"ax"
	.globl MoveControl
MoveControl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1610
	jsl 0xe10000
	rtl

; DragControl(Word, Word, Pointer, Pointer, Word, Pointer) -> void
; tool 0x1710, set 0x10 (ControlManager)
	.section .text.DragControl,"ax"
	.globl DragControl
DragControl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 26, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 32, s
	pha
	lda 32, s
	pha
	ldx #0x1710
	jsl 0xe10000
	rtl

; SetCtlIcons(Pointer) -> Pointer
; tool 0x1810, set 0x10 (ControlManager)
	.section .text.SetCtlIcons,"ax"
	.globl SetCtlIcons
SetCtlIcons:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1810
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetCtlValue(Word, Pointer) -> void
; tool 0x1910, set 0x10 (ControlManager)
	.section .text.SetCtlValue,"ax"
	.globl SetCtlValue
SetCtlValue:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x1910
	jsl 0xe10000
	rtl

; GetCtlValue(Pointer) -> Word
; tool 0x1A10, set 0x10 (ControlManager)
	.section .text.GetCtlValue,"ax"
	.globl GetCtlValue
GetCtlValue:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1A10
	jsl 0xe10000
	pla              ; result -> A
	rtl

; SetCtlParams(Word, Word, Pointer) -> void
; tool 0x1B10, set 0x10 (ControlManager)
	.section .text.SetCtlParams,"ax"
	.globl SetCtlParams
SetCtlParams:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1B10
	jsl 0xe10000
	rtl

; GetCtlParams(Pointer) -> LongWord
; tool 0x1C10, set 0x10 (ControlManager)
	.section .text.GetCtlParams,"ax"
	.globl GetCtlParams
GetCtlParams:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1C10
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; DragRect(Pointer, Pointer, Word, Word, Pointer, Pointer, Pointer, Word) -> LongWord
; tool 0x1D10, set 0x10 (ControlManager)
	.section .text.DragRect,"ax"
	.globl DragRect
DragRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 20, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 24, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 30, s
	pha
	lda 30, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 38, s
	pha
	lda 38, s
	pha
	; --- arg6 (Pointer, 4B) ---
	lda 46, s
	pha
	lda 46, s
	pha
	; --- arg7 (Word, 2B) ---
	lda 52, s
	pha
	ldx #0x1D10
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GrowSize(void) -> LongWord
; tool 0x1E10, set 0x10 (ControlManager)
	.section .text.GrowSize,"ax"
	.globl GrowSize
GrowSize:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1E10
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetCtlAction(Pointer, Pointer) -> void
; tool 0x2010, set 0x10 (ControlManager)
	.section .text.SetCtlAction,"ax"
	.globl SetCtlAction
SetCtlAction:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x2010
	jsl 0xe10000
	rtl

; GetCtlAction(Pointer) -> LongWord
; tool 0x2110, set 0x10 (ControlManager)
	.section .text.GetCtlAction,"ax"
	.globl GetCtlAction
GetCtlAction:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2110
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetCtlRefCon(LongWord, Pointer) -> void
; tool 0x2210, set 0x10 (ControlManager)
	.section .text.SetCtlRefCon,"ax"
	.globl SetCtlRefCon
SetCtlRefCon:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x2210
	jsl 0xe10000
	rtl

; GetCtlRefCon(Pointer) -> LongWord
; tool 0x2310, set 0x10 (ControlManager)
	.section .text.GetCtlRefCon,"ax"
	.globl GetCtlRefCon
GetCtlRefCon:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2310
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; EraseControl(Pointer) -> void
; tool 0x2410, set 0x10 (ControlManager)
	.section .text.EraseControl,"ax"
	.globl EraseControl
EraseControl:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2410
	jsl 0xe10000
	rtl

; DrawOneCtl(Pointer) -> void
; tool 0x2510, set 0x10 (ControlManager)
	.section .text.DrawOneCtl,"ax"
	.globl DrawOneCtl
DrawOneCtl:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2510
	jsl 0xe10000
	rtl

; FindTargetCtl(void) -> Pointer
; tool 0x2610, set 0x10 (ControlManager)
	.section .text.FindTargetCtl,"ax"
	.globl FindTargetCtl
FindTargetCtl:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x2610
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MakeNextCtlTarget(void) -> Pointer
; tool 0x2710, set 0x10 (ControlManager)
	.section .text.MakeNextCtlTarget,"ax"
	.globl MakeNextCtlTarget
MakeNextCtlTarget:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x2710
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MakeThisCtlTarget(Pointer) -> void
; tool 0x2810, set 0x10 (ControlManager)
	.section .text.MakeThisCtlTarget,"ax"
	.globl MakeThisCtlTarget
MakeThisCtlTarget:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2810
	jsl 0xe10000
	rtl

; SendEventToCtl(Word, Pointer, Pointer) -> Word
; tool 0x2910, set 0x10 (ControlManager)
	.section .text.SendEventToCtl,"ax"
	.globl SendEventToCtl
SendEventToCtl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x2910
	jsl 0xe10000
	pla              ; result -> A
	rtl

; GetCtlID(Pointer) -> LongWord
; tool 0x2A10, set 0x10 (ControlManager)
	.section .text.GetCtlID,"ax"
	.globl GetCtlID
GetCtlID:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2A10
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetCtlID(LongWord, Pointer) -> void
; tool 0x2B10, set 0x10 (ControlManager)
	.section .text.SetCtlID,"ax"
	.globl SetCtlID
SetCtlID:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x2B10
	jsl 0xe10000
	rtl

; CallCtlDefProc(Pointer, Word, LongWord) -> LongWord
; tool 0x2C10, set 0x10 (ControlManager)
	.section .text.CallCtlDefProc,"ax"
	.globl CallCtlDefProc
CallCtlDefProc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x2C10
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; NotifyCtls(Word, Word, LongWord, Pointer) -> void
; tool 0x2D10, set 0x10 (ControlManager)
	.section .text.NotifyCtls,"ax"
	.globl NotifyCtls
NotifyCtls:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	ldx #0x2D10
	jsl 0xe10000
	rtl

; GetCtlMoreFlags(Pointer) -> Word
; tool 0x2E10, set 0x10 (ControlManager)
	.section .text.GetCtlMoreFlags,"ax"
	.globl GetCtlMoreFlags
GetCtlMoreFlags:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2E10
	jsl 0xe10000
	pla              ; result -> A
	rtl

; SetCtlMoreFlags(Word, Pointer) -> void
; tool 0x2F10, set 0x10 (ControlManager)
	.section .text.SetCtlMoreFlags,"ax"
	.globl SetCtlMoreFlags
SetCtlMoreFlags:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x2F10
	jsl 0xe10000
	rtl

; GetCtlHandleFromID(Pointer, LongWord) -> Pointer
; tool 0x3010, set 0x10 (ControlManager)
	.section .text.GetCtlHandleFromID,"ax"
	.globl GetCtlHandleFromID
GetCtlHandleFromID:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x3010
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; NewControl2(Pointer, Word, LongWord) -> Pointer
; tool 0x3110, set 0x10 (ControlManager)
	.section .text.NewControl2,"ax"
	.globl NewControl2
NewControl2:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x3110
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; CMLoadResource(Word, LongWord) -> Word
; tool 0x3210, set 0x10 (ControlManager)
	.section .text.CMLoadResource,"ax"
	.globl CMLoadResource
CMLoadResource:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x3210
	jsl 0xe10000
	pla              ; result -> A
	rtl

; CMReleaseResource(Word, LongWord) -> void
; tool 0x3310, set 0x10 (ControlManager)
	.section .text.CMReleaseResource,"ax"
	.globl CMReleaseResource
CMReleaseResource:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x3310
	jsl 0xe10000
	rtl

; SetCtlParamPtr(Pointer) -> void
; tool 0x3410, set 0x10 (ControlManager)
	.section .text.SetCtlParamPtr,"ax"
	.globl SetCtlParamPtr
SetCtlParamPtr:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3410
	jsl 0xe10000
	rtl

; GetCtlParamPtr(void) -> Pointer
; tool 0x3510, set 0x10 (ControlManager)
	.section .text.GetCtlParamPtr,"ax"
	.globl GetCtlParamPtr
GetCtlParamPtr:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x3510
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; InvalCtls(Pointer) -> void
; tool 0x3710, set 0x10 (ControlManager)
	.section .text.InvalCtls,"ax"
	.globl InvalCtls
InvalCtls:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3710
	jsl 0xe10000
	rtl

; FindRadioButton(Pointer, Word) -> Word
; tool 0x3910, set 0x10 (ControlManager)
	.section .text.FindRadioButton,"ax"
	.globl FindRadioButton
FindRadioButton:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x3910
	jsl 0xe10000
	pla              ; result -> A
	rtl

; SetLETextByID(Pointer, LongWord, Pointer) -> void
; tool 0x3A10, set 0x10 (ControlManager)
	.section .text.SetLETextByID,"ax"
	.globl SetLETextByID
SetLETextByID:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x3A10
	jsl 0xe10000
	rtl

; GetLETextByID(Pointer, LongWord, Pointer) -> void
; tool 0x3B10, set 0x10 (ControlManager)
	.section .text.GetLETextByID,"ax"
	.globl GetLETextByID
GetLETextByID:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x3B10
	jsl 0xe10000
	rtl

; SetCtlValueByID(Word, Pointer, LongWord) -> void
; tool 0x3C10, set 0x10 (ControlManager)
	.section .text.SetCtlValueByID,"ax"
	.globl SetCtlValueByID
SetCtlValueByID:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x3C10
	jsl 0xe10000
	rtl

; GetCtlValueByID(Pointer, LongWord) -> Word
; tool 0x3D10, set 0x10 (ControlManager)
	.section .text.GetCtlValueByID,"ax"
	.globl GetCtlValueByID
GetCtlValueByID:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x3D10
	jsl 0xe10000
	pla              ; result -> A
	rtl

; InvalOneCtlByID(Pointer, LongWord) -> void
; tool 0x3E10, set 0x10 (ControlManager)
	.section .text.InvalOneCtlByID,"ax"
	.globl InvalOneCtlByID
InvalOneCtlByID:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x3E10
	jsl 0xe10000
	rtl

; HiliteCtlByID(Word, Pointer, LongWord) -> void
; tool 0x3F10, set 0x10 (ControlManager)
	.section .text.HiliteCtlByID,"ax"
	.globl HiliteCtlByID
HiliteCtlByID:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x3F10
	jsl 0xe10000
	rtl

; InitialLoad(Word, Pointer, Word) -> 10B
; tool 0x0911, set 0x11 (Loader)
	.section .text.InitialLoad,"ax"
	.globl InitialLoad
InitialLoad:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (10 bytes) ---
	pea 0
	pea 0
	pea 0
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 24, s
	pha
	ldx #0x0911
	jsl 0xe10000
	pla
	pla
	pla
	pla
	pla
	rtl

; Restart(Word) -> 10B
; tool 0x0A11, set 0x11 (Loader)
	.section .text.Restart,"ax"
	.globl Restart
Restart:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (10 bytes) ---
	pea 0
	pea 0
	pea 0
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x0A11
	jsl 0xe10000
	pla
	pla
	pla
	pla
	pla
	rtl

; LoadSegNum(Word, Word, Word) -> Pointer
; tool 0x0B11, set 0x11 (Loader)
	.section .text.LoadSegNum,"ax"
	.globl LoadSegNum
LoadSegNum:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x0B11
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; UnloadSegNum(Word, Word, Word) -> void
; tool 0x0C11, set 0x11 (Loader)
	.section .text.UnloadSegNum,"ax"
	.globl UnloadSegNum
UnloadSegNum:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0C11
	jsl 0xe10000
	rtl

; LoadSegName(Word, Pointer, Pointer) -> 10B
; tool 0x0D11, set 0x11 (Loader)
	.section .text.LoadSegName,"ax"
	.globl LoadSegName
LoadSegName:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (10 bytes) ---
	pea 0
	pea 0
	pea 0
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 26, s
	pha
	lda 26, s
	pha
	ldx #0x0D11
	jsl 0xe10000
	pla
	pla
	pla
	pla
	pla
	rtl

; UnloadSeg(Pointer) -> Pointer
; tool 0x0E11, set 0x11 (Loader)
	.section .text.UnloadSeg,"ax"
	.globl UnloadSeg
UnloadSeg:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0E11
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetLoadSegInfo(Word, Word, Word, Pointer) -> void
; tool 0x0F11, set 0x11 (Loader)
	.section .text.GetLoadSegInfo,"ax"
	.globl GetLoadSegInfo
GetLoadSegInfo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x0F11
	jsl 0xe10000
	rtl

; GetUserID(Pointer) -> Word
; tool 0x1011, set 0x11 (Loader)
	.section .text.GetUserID,"ax"
	.globl GetUserID
GetUserID:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1011
	jsl 0xe10000
	pla              ; result -> A
	rtl

; LGetPathname(Word, Word) -> Pointer
; tool 0x1111, set 0x11 (Loader)
	.section .text.LGetPathname,"ax"
	.globl LGetPathname
LGetPathname:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x1111
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; UserShutDown(Word, Word) -> Word
; tool 0x1211, set 0x11 (Loader)
	.section .text.UserShutDown,"ax"
	.globl UserShutDown
UserShutDown:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x1211
	jsl 0xe10000
	pla              ; result -> A
	rtl

; RenamePathname(Pointer, Pointer) -> void
; tool 0x1311, set 0x11 (Loader)
	.section .text.RenamePathname,"ax"
	.globl RenamePathname
RenamePathname:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1311
	jsl 0xe10000
	rtl

; InitialLoad2(Word, Pointer, Word, Word) -> 10B
; tool 0x2011, set 0x11 (Loader)
	.section .text.InitialLoad2,"ax"
	.globl InitialLoad2
InitialLoad2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (10 bytes) ---
	pea 0
	pea 0
	pea 0
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 24, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 28, s
	pha
	ldx #0x2011
	jsl 0xe10000
	pla
	pla
	pla
	pla
	pla
	rtl

; GetUserID2(Pointer) -> Word
; tool 0x2111, set 0x11 (Loader)
	.section .text.GetUserID2,"ax"
	.globl GetUserID2
GetUserID2:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2111
	jsl 0xe10000
	pla              ; result -> A
	rtl

; LGetPathname2(Word, Word) -> Pointer
; tool 0x2211, set 0x11 (Loader)
	.section .text.LGetPathname2,"ax"
	.globl LGetPathname2
LGetPathname2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x2211
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; CopyPixels(Pointer, Pointer, Pointer, Pointer, Word, Pointer) -> void
; tool 0x0912, set 0x12 (QDAuxiliary)
	.section .text.CopyPixels,"ax"
	.globl CopyPixels
CopyPixels:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 26, s
	pha
	lda 26, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 32, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 38, s
	pha
	lda 38, s
	pha
	ldx #0x0912
	jsl 0xe10000
	rtl

; DrawIcon(Pointer, Word, Word, Word) -> void
; tool 0x0B12, set 0x12 (QDAuxiliary)
	.section .text.DrawIcon,"ax"
	.globl DrawIcon
DrawIcon:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x0B12
	jsl 0xe10000
	rtl

; SpecialRect(Pointer, Word, Word) -> void
; tool 0x0C12, set 0x12 (QDAuxiliary)
	.section .text.SpecialRect,"ax"
	.globl SpecialRect
SpecialRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x0C12
	jsl 0xe10000
	rtl

; SeedFill(Pointer, Pointer, Pointer, Pointer, Word, Word, Word, Pointer, Pointer) -> void
; tool 0x0D12, set 0x12 (QDAuxiliary)
	.section .text.SeedFill,"ax"
	.globl SeedFill
SeedFill:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 26, s
	pha
	lda 26, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 32, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 36, s
	pha
	; --- arg6 (Word, 2B) ---
	lda 40, s
	pha
	; --- arg7 (Pointer, 4B) ---
	lda 46, s
	pha
	lda 46, s
	pha
	; --- arg8 (Pointer, 4B) ---
	lda 54, s
	pha
	lda 54, s
	pha
	ldx #0x0D12
	jsl 0xe10000
	rtl

; CalcMask(Pointer, Pointer, Pointer, Pointer, Word, Pointer, Pointer) -> void
; tool 0x0E12, set 0x12 (QDAuxiliary)
	.section .text.CalcMask,"ax"
	.globl CalcMask
CalcMask:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 26, s
	pha
	lda 26, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 32, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 38, s
	pha
	lda 38, s
	pha
	; --- arg6 (Pointer, 4B) ---
	lda 46, s
	pha
	lda 46, s
	pha
	ldx #0x0E12
	jsl 0xe10000
	rtl

; GetSysIcon(Word, Word, LongWord) -> Pointer
; tool 0x0F12, set 0x12 (QDAuxiliary)
	.section .text.GetSysIcon,"ax"
	.globl GetSysIcon
GetSysIcon:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x0F12
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PixelMap2Rgn(Pointer, Word, Word) -> Pointer
; tool 0x1012, set 0x12 (QDAuxiliary)
	.section .text.PixelMap2Rgn,"ax"
	.globl PixelMap2Rgn
PixelMap2Rgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x1012
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; WhooshRect(LongWord, Pointer, Pointer) -> void
; tool 0x1412, set 0x12 (QDAuxiliary)
	.section .text.WhooshRect,"ax"
	.globl WhooshRect
WhooshRect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x1412
	jsl 0xe10000
	rtl

; DrawStringWidth(Word, LongWord, Word) -> void
; tool 0x1512, set 0x12 (QDAuxiliary)
	.section .text.DrawStringWidth,"ax"
	.globl DrawStringWidth
DrawStringWidth:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x1512
	jsl 0xe10000
	rtl

; UseColorTable(Word, Pointer, Word) -> Pointer
; tool 0x1612, set 0x12 (QDAuxiliary)
	.section .text.UseColorTable,"ax"
	.globl UseColorTable
UseColorTable:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 18, s
	pha
	ldx #0x1612
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; RestoreColorTable(Pointer, Word) -> void
; tool 0x1712, set 0x12 (QDAuxiliary)
	.section .text.RestoreColorTable,"ax"
	.globl RestoreColorTable
RestoreColorTable:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x1712
	jsl 0xe10000
	rtl

; PMStartUp(Word, Word) -> void
; tool 0x0213, set 0x13 (PrintManager)
	.section .text.PMStartUp,"ax"
	.globl PMStartUp
PMStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0213
	jsl 0xe10000
	rtl

; PrDefault(Pointer) -> void
; tool 0x0913, set 0x13 (PrintManager)
	.section .text.PrDefault,"ax"
	.globl PrDefault
PrDefault:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0913
	jsl 0xe10000
	rtl

; PrValidate(Pointer) -> Word
; tool 0x0A13, set 0x13 (PrintManager)
	.section .text.PrValidate,"ax"
	.globl PrValidate
PrValidate:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0A13
	jsl 0xe10000
	pla              ; result -> A
	rtl

; PrStlDialog(Pointer) -> Word
; tool 0x0B13, set 0x13 (PrintManager)
	.section .text.PrStlDialog,"ax"
	.globl PrStlDialog
PrStlDialog:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0B13
	jsl 0xe10000
	pla              ; result -> A
	rtl

; PrJobDialog(Pointer) -> Word
; tool 0x0C13, set 0x13 (PrintManager)
	.section .text.PrJobDialog,"ax"
	.globl PrJobDialog
PrJobDialog:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0C13
	jsl 0xe10000
	pla              ; result -> A
	rtl

; PrPixelMap(Pointer, Pointer, Word) -> void
; tool 0x0D13, set 0x13 (PrintManager)
	.section .text.PrPixelMap,"ax"
	.globl PrPixelMap
PrPixelMap:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x0D13
	jsl 0xe10000
	rtl

; PrOpenDoc(Pointer, Pointer) -> Pointer
; tool 0x0E13, set 0x13 (PrintManager)
	.section .text.PrOpenDoc,"ax"
	.globl PrOpenDoc
PrOpenDoc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x0E13
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PrCloseDoc(Pointer) -> void
; tool 0x0F13, set 0x13 (PrintManager)
	.section .text.PrCloseDoc,"ax"
	.globl PrCloseDoc
PrCloseDoc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0F13
	jsl 0xe10000
	rtl

; PrOpenPage(Pointer, Pointer) -> void
; tool 0x1013, set 0x13 (PrintManager)
	.section .text.PrOpenPage,"ax"
	.globl PrOpenPage
PrOpenPage:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1013
	jsl 0xe10000
	rtl

; PrClosePage(Pointer) -> void
; tool 0x1113, set 0x13 (PrintManager)
	.section .text.PrClosePage,"ax"
	.globl PrClosePage
PrClosePage:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1113
	jsl 0xe10000
	rtl

; PrPicFile(Pointer, Pointer, Pointer) -> void
; tool 0x1213, set 0x13 (PrintManager)
	.section .text.PrPicFile,"ax"
	.globl PrPicFile
PrPicFile:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x1213
	jsl 0xe10000
	rtl

; PrGetPrinterSpecs(void) -> LongWord
; tool 0x1813, set 0x13 (PrintManager)
	.section .text.PrGetPrinterSpecs,"ax"
	.globl PrGetPrinterSpecs
PrGetPrinterSpecs:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1813
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PrDevPrChanged(Pointer) -> void
; tool 0x1913, set 0x13 (PrintManager)
	.section .text.PrDevPrChanged,"ax"
	.globl PrDevPrChanged
PrDevPrChanged:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1913
	jsl 0xe10000
	rtl

; PrDevStartup(Pointer, Pointer) -> void
; tool 0x1A13, set 0x13 (PrintManager)
	.section .text.PrDevStartup,"ax"
	.globl PrDevStartup
PrDevStartup:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1A13
	jsl 0xe10000
	rtl

; PrDevOpen(Pointer, LongWord) -> void
; tool 0x1C13, set 0x13 (PrintManager)
	.section .text.PrDevOpen,"ax"
	.globl PrDevOpen
PrDevOpen:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1C13
	jsl 0xe10000
	rtl

; PrDevRead(Pointer, Word) -> Word
; tool 0x1D13, set 0x13 (PrintManager)
	.section .text.PrDevRead,"ax"
	.globl PrDevRead
PrDevRead:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x1D13
	jsl 0xe10000
	pla              ; result -> A
	rtl

; PrDevWrite(Pointer, Pointer, Word) -> void
; tool 0x1E13, set 0x13 (PrintManager)
	.section .text.PrDevWrite,"ax"
	.globl PrDevWrite
PrDevWrite:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x1E13
	jsl 0xe10000
	rtl

; PrDevStatus(Pointer) -> void
; tool 0x2013, set 0x13 (PrintManager)
	.section .text.PrDevStatus,"ax"
	.globl PrDevStatus
PrDevStatus:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2013
	jsl 0xe10000
	rtl

; PrDevAsyncRead(Pointer, Word, Pointer) -> Word
; tool 0x2113, set 0x13 (PrintManager)
	.section .text.PrDevAsyncRead,"ax"
	.globl PrDevAsyncRead
PrDevAsyncRead:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x2113
	jsl 0xe10000
	pla              ; result -> A
	rtl

; PrDevWriteBackground(Pointer, Word, Pointer) -> void
; tool 0x2213, set 0x13 (PrintManager)
	.section .text.PrDevWriteBackground,"ax"
	.globl PrDevWriteBackground
PrDevWriteBackground:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x2213
	jsl 0xe10000
	rtl

; PrGetZoneName(void) -> Pointer
; tool 0x2513, set 0x13 (PrintManager)
	.section .text.PrGetZoneName,"ax"
	.globl PrGetZoneName
PrGetZoneName:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x2513
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PrGetPrinterDvrName(void) -> Pointer
; tool 0x2813, set 0x13 (PrintManager)
	.section .text.PrGetPrinterDvrName,"ax"
	.globl PrGetPrinterDvrName
PrGetPrinterDvrName:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x2813
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PrGetPortDvrName(void) -> Pointer
; tool 0x2913, set 0x13 (PrintManager)
	.section .text.PrGetPortDvrName,"ax"
	.globl PrGetPortDvrName
PrGetPortDvrName:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x2913
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PrGetUserName(void) -> Pointer
; tool 0x2A13, set 0x13 (PrintManager)
	.section .text.PrGetUserName,"ax"
	.globl PrGetUserName
PrGetUserName:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x2A13
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PrGetNetworkName(void) -> Pointer
; tool 0x2B13, set 0x13 (PrintManager)
	.section .text.PrGetNetworkName,"ax"
	.globl PrGetNetworkName
PrGetNetworkName:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x2B13
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PrGetDocName(void) -> Pointer
; tool 0x3613, set 0x13 (PrintManager)
	.section .text.PrGetDocName,"ax"
	.globl PrGetDocName
PrGetDocName:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x3613
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; PrSetDocName(Pointer) -> void
; tool 0x3713, set 0x13 (PrintManager)
	.section .text.PrSetDocName,"ax"
	.globl PrSetDocName
PrSetDocName:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3713
	jsl 0xe10000
	rtl

; PrGetPgOrientation(Pointer) -> Word
; tool 0x3813, set 0x13 (PrintManager)
	.section .text.PrGetPgOrientation,"ax"
	.globl PrGetPgOrientation
PrGetPgOrientation:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3813
	jsl 0xe10000
	pla              ; result -> A
	rtl

; LEStartUp(Word, Word) -> void
; tool 0x0214, set 0x14 (LineEdit)
	.section .text.LEStartUp,"ax"
	.globl LEStartUp
LEStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0214
	jsl 0xe10000
	rtl

; LENew(Pointer, Pointer, Word) -> Word
; tool 0x0914, set 0x14 (LineEdit)
	.section .text.LENew,"ax"
	.globl LENew
LENew:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 18, s
	pha
	ldx #0x0914
	jsl 0xe10000
	pla              ; result -> A
	rtl

; LESetText(Pointer, Word, Word) -> void
; tool 0x0B14, set 0x14 (LineEdit)
	.section .text.LESetText,"ax"
	.globl LESetText
LESetText:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x0B14
	jsl 0xe10000
	rtl

; LEClick(Pointer, Word) -> void
; tool 0x0D14, set 0x14 (LineEdit)
	.section .text.LEClick,"ax"
	.globl LEClick
LEClick:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x0D14
	jsl 0xe10000
	rtl

; LESetSelect(Word, Word, Word) -> void
; tool 0x0E14, set 0x14 (LineEdit)
	.section .text.LESetSelect,"ax"
	.globl LESetSelect
LESetSelect:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0E14
	jsl 0xe10000
	rtl

; LEKey(Word, Word, Word) -> void
; tool 0x1114, set 0x14 (LineEdit)
	.section .text.LEKey,"ax"
	.globl LEKey
LEKey:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x1114
	jsl 0xe10000
	rtl

; LEInsert(Pointer, Word, Word) -> void
; tool 0x1614, set 0x14 (LineEdit)
	.section .text.LEInsert,"ax"
	.globl LEInsert
LEInsert:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x1614
	jsl 0xe10000
	rtl

; LETextBox(Pointer, Word, Pointer, Word) -> void
; tool 0x1814, set 0x14 (LineEdit)
	.section .text.LETextBox,"ax"
	.globl LETextBox
LETextBox:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 20, s
	pha
	ldx #0x1814
	jsl 0xe10000
	rtl

; LEScrapHandle(void) -> Pointer
; tool 0x1B14, set 0x14 (LineEdit)
	.section .text.LEScrapHandle,"ax"
	.globl LEScrapHandle
LEScrapHandle:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1B14
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; LESetHilite(Pointer, Word) -> void
; tool 0x1E14, set 0x14 (LineEdit)
	.section .text.LESetHilite,"ax"
	.globl LESetHilite
LESetHilite:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x1E14
	jsl 0xe10000
	rtl

; LESetCaret(Pointer, Word) -> void
; tool 0x1F14, set 0x14 (LineEdit)
	.section .text.LESetCaret,"ax"
	.globl LESetCaret
LESetCaret:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x1F14
	jsl 0xe10000
	rtl

; LETextBox2(Pointer, Word, Pointer, Word) -> void
; tool 0x2014, set 0x14 (LineEdit)
	.section .text.LETextBox2,"ax"
	.globl LETextBox2
LETextBox2:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 20, s
	pha
	ldx #0x2014
	jsl 0xe10000
	rtl

; LESetJust(Word, Word) -> void
; tool 0x2114, set 0x14 (LineEdit)
	.section .text.LESetJust,"ax"
	.globl LESetJust
LESetJust:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x2114
	jsl 0xe10000
	rtl

; LEGetTextHand(Word) -> Pointer
; tool 0x2214, set 0x14 (LineEdit)
	.section .text.LEGetTextHand,"ax"
	.globl LEGetTextHand
LEGetTextHand:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x2214
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetLEDefProc(void) -> Pointer
; tool 0x2414, set 0x14 (LineEdit)
	.section .text.GetLEDefProc,"ax"
	.globl GetLEDefProc
GetLEDefProc:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x2414
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; LEClassifyKey(Pointer) -> Word
; tool 0x2514, set 0x14 (LineEdit)
	.section .text.LEClassifyKey,"ax"
	.globl LEClassifyKey
LEClassifyKey:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2514
	jsl 0xe10000
	pla              ; result -> A
	rtl

; ErrorSound(Pointer) -> void
; tool 0x0915, set 0x15 (DialogManager)
	.section .text.ErrorSound,"ax"
	.globl ErrorSound
ErrorSound:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0915
	jsl 0xe10000
	rtl

; NewModalDialog(Pointer, Word, LongWord) -> Pointer
; tool 0x0A15, set 0x15 (DialogManager)
	.section .text.NewModalDialog,"ax"
	.globl NewModalDialog
NewModalDialog:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x0A15
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; NewModelessDialog(Pointer, Pointer, Pointer, Word, LongWord, Pointer) -> Pointer
; tool 0x0B15, set 0x15 (DialogManager)
	.section .text.NewModelessDialog,"ax"
	.globl NewModelessDialog
NewModelessDialog:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 22, s
	pha
	lda 22, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 28, s
	pha
	; --- arg4 (LongWord, 4B) ---
	lda 34, s
	pha
	lda 34, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 42, s
	pha
	lda 42, s
	pha
	ldx #0x0B15
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; CloseDialog(Pointer) -> void
; tool 0x0C15, set 0x15 (DialogManager)
	.section .text.CloseDialog,"ax"
	.globl CloseDialog
CloseDialog:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0C15
	jsl 0xe10000
	rtl

; NewDItem(Pointer, Word, Pointer, Word, LongWord, Word, Word, Pointer) -> void
; tool 0x0D15, set 0x15 (DialogManager)
	.section .text.NewDItem,"ax"
	.globl NewDItem
NewDItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 20, s
	pha
	; --- arg4 (LongWord, 4B) ---
	lda 26, s
	pha
	lda 26, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 32, s
	pha
	; --- arg6 (Word, 2B) ---
	lda 36, s
	pha
	; --- arg7 (Pointer, 4B) ---
	lda 42, s
	pha
	lda 42, s
	pha
	ldx #0x0D15
	jsl 0xe10000
	rtl

; RemoveDItem(Pointer, Word) -> void
; tool 0x0E15, set 0x15 (DialogManager)
	.section .text.RemoveDItem,"ax"
	.globl RemoveDItem
RemoveDItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x0E15
	jsl 0xe10000
	rtl

; ModalDialog(Pointer) -> Word
; tool 0x0F15, set 0x15 (DialogManager)
	.section .text.ModalDialog,"ax"
	.globl ModalDialog
ModalDialog:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0F15
	jsl 0xe10000
	pla              ; result -> A
	rtl

; IsDialogEvent(Pointer) -> Word
; tool 0x1015, set 0x15 (DialogManager)
	.section .text.IsDialogEvent,"ax"
	.globl IsDialogEvent
IsDialogEvent:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1015
	jsl 0xe10000
	pla              ; result -> A
	rtl

; DialogSelect(Pointer, Pointer, Pointer) -> Word
; tool 0x1115, set 0x15 (DialogManager)
	.section .text.DialogSelect,"ax"
	.globl DialogSelect
DialogSelect:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	ldx #0x1115
	jsl 0xe10000
	pla              ; result -> A
	rtl

; DlgCut(Pointer) -> void
; tool 0x1215, set 0x15 (DialogManager)
	.section .text.DlgCut,"ax"
	.globl DlgCut
DlgCut:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1215
	jsl 0xe10000
	rtl

; DlgCopy(Pointer) -> void
; tool 0x1315, set 0x15 (DialogManager)
	.section .text.DlgCopy,"ax"
	.globl DlgCopy
DlgCopy:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1315
	jsl 0xe10000
	rtl

; DlgPaste(Pointer) -> void
; tool 0x1415, set 0x15 (DialogManager)
	.section .text.DlgPaste,"ax"
	.globl DlgPaste
DlgPaste:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1415
	jsl 0xe10000
	rtl

; DlgDelete(Pointer) -> void
; tool 0x1515, set 0x15 (DialogManager)
	.section .text.DlgDelete,"ax"
	.globl DlgDelete
DlgDelete:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1515
	jsl 0xe10000
	rtl

; DrawDialog(Pointer) -> void
; tool 0x1615, set 0x15 (DialogManager)
	.section .text.DrawDialog,"ax"
	.globl DrawDialog
DrawDialog:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1615
	jsl 0xe10000
	rtl

; Alert(Pointer, Pointer) -> Word
; tool 0x1715, set 0x15 (DialogManager)
	.section .text.Alert,"ax"
	.globl Alert
Alert:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1715
	jsl 0xe10000
	pla              ; result -> A
	rtl

; StopAlert(Pointer, Pointer) -> Word
; tool 0x1815, set 0x15 (DialogManager)
	.section .text.StopAlert,"ax"
	.globl StopAlert
StopAlert:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1815
	jsl 0xe10000
	pla              ; result -> A
	rtl

; NoteAlert(Pointer, Pointer) -> Word
; tool 0x1915, set 0x15 (DialogManager)
	.section .text.NoteAlert,"ax"
	.globl NoteAlert
NoteAlert:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1915
	jsl 0xe10000
	pla              ; result -> A
	rtl

; CautionAlert(Pointer, Pointer) -> Word
; tool 0x1A15, set 0x15 (DialogManager)
	.section .text.CautionAlert,"ax"
	.globl CautionAlert
CautionAlert:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1A15
	jsl 0xe10000
	pla              ; result -> A
	rtl

; ParamText(Pointer, Pointer, Pointer, Pointer) -> void
; tool 0x1B15, set 0x15 (DialogManager)
	.section .text.ParamText,"ax"
	.globl ParamText
ParamText:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 26, s
	pha
	lda 26, s
	pha
	ldx #0x1B15
	jsl 0xe10000
	rtl

; SetDAFont(Pointer) -> void
; tool 0x1C15, set 0x15 (DialogManager)
	.section .text.SetDAFont,"ax"
	.globl SetDAFont
SetDAFont:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1C15
	jsl 0xe10000
	rtl

; GetControlDItem(Pointer, Word) -> Pointer
; tool 0x1E15, set 0x15 (DialogManager)
	.section .text.GetControlDItem,"ax"
	.globl GetControlDItem
GetControlDItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x1E15
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetIText(Pointer, Word, Pointer) -> void
; tool 0x1F15, set 0x15 (DialogManager)
	.section .text.GetIText,"ax"
	.globl GetIText
GetIText:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x1F15
	jsl 0xe10000
	rtl

; SetIText(Pointer, Word, Pointer) -> void
; tool 0x2015, set 0x15 (DialogManager)
	.section .text.SetIText,"ax"
	.globl SetIText
SetIText:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x2015
	jsl 0xe10000
	rtl

; SelectIText(Pointer, Word, Word, Word) -> void
; tool 0x2115, set 0x15 (DialogManager)
	.section .text.SelectIText,"ax"
	.globl SelectIText
SelectIText:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x2115
	jsl 0xe10000
	rtl

; HideDItem(Pointer, Word) -> void
; tool 0x2215, set 0x15 (DialogManager)
	.section .text.HideDItem,"ax"
	.globl HideDItem
HideDItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x2215
	jsl 0xe10000
	rtl

; ShowDItem(Pointer, Word) -> void
; tool 0x2315, set 0x15 (DialogManager)
	.section .text.ShowDItem,"ax"
	.globl ShowDItem
ShowDItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x2315
	jsl 0xe10000
	rtl

; FindDItem(Pointer, LongWord) -> Word
; tool 0x2415, set 0x15 (DialogManager)
	.section .text.FindDItem,"ax"
	.globl FindDItem
FindDItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x2415
	jsl 0xe10000
	pla              ; result -> A
	rtl

; UpdateDialog(Pointer, Pointer) -> void
; tool 0x2515, set 0x15 (DialogManager)
	.section .text.UpdateDialog,"ax"
	.globl UpdateDialog
UpdateDialog:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x2515
	jsl 0xe10000
	rtl

; GetDItemType(Pointer, Word) -> Word
; tool 0x2615, set 0x15 (DialogManager)
	.section .text.GetDItemType,"ax"
	.globl GetDItemType
GetDItemType:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x2615
	jsl 0xe10000
	pla              ; result -> A
	rtl

; SetDItemType(Word, Pointer, Word) -> void
; tool 0x2715, set 0x15 (DialogManager)
	.section .text.SetDItemType,"ax"
	.globl SetDItemType
SetDItemType:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x2715
	jsl 0xe10000
	rtl

; GetDItemBox(Pointer, Word, Pointer) -> void
; tool 0x2815, set 0x15 (DialogManager)
	.section .text.GetDItemBox,"ax"
	.globl GetDItemBox
GetDItemBox:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x2815
	jsl 0xe10000
	rtl

; SetDItemBox(Pointer, Word, Pointer) -> void
; tool 0x2915, set 0x15 (DialogManager)
	.section .text.SetDItemBox,"ax"
	.globl SetDItemBox
SetDItemBox:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x2915
	jsl 0xe10000
	rtl

; GetFirstDItem(Pointer) -> Word
; tool 0x2A15, set 0x15 (DialogManager)
	.section .text.GetFirstDItem,"ax"
	.globl GetFirstDItem
GetFirstDItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2A15
	jsl 0xe10000
	pla              ; result -> A
	rtl

; GetNextDItem(Pointer, Word) -> Word
; tool 0x2B15, set 0x15 (DialogManager)
	.section .text.GetNextDItem,"ax"
	.globl GetNextDItem
GetNextDItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x2B15
	jsl 0xe10000
	pla              ; result -> A
	rtl

; ModalDialog2(Pointer) -> LongWord
; tool 0x2C15, set 0x15 (DialogManager)
	.section .text.ModalDialog2,"ax"
	.globl ModalDialog2
ModalDialog2:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2C15
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetDItemValue(Pointer, Word) -> Word
; tool 0x2E15, set 0x15 (DialogManager)
	.section .text.GetDItemValue,"ax"
	.globl GetDItemValue
GetDItemValue:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x2E15
	jsl 0xe10000
	pla              ; result -> A
	rtl

; SetDItemValue(Word, Pointer, Word) -> void
; tool 0x2F15, set 0x15 (DialogManager)
	.section .text.SetDItemValue,"ax"
	.globl SetDItemValue
SetDItemValue:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x2F15
	jsl 0xe10000
	rtl

; GetNewModalDialog(Pointer) -> Pointer
; tool 0x3215, set 0x15 (DialogManager)
	.section .text.GetNewModalDialog,"ax"
	.globl GetNewModalDialog
GetNewModalDialog:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3215
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetNewDItem(Pointer, Pointer) -> void
; tool 0x3315, set 0x15 (DialogManager)
	.section .text.GetNewDItem,"ax"
	.globl GetNewDItem
GetNewDItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x3315
	jsl 0xe10000
	rtl

; DefaultFilter(Pointer, Pointer, Pointer) -> Word
; tool 0x3615, set 0x15 (DialogManager)
	.section .text.DefaultFilter,"ax"
	.globl DefaultFilter
DefaultFilter:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	ldx #0x3615
	jsl 0xe10000
	pla              ; result -> A
	rtl

; GetDefButton(Pointer) -> Word
; tool 0x3715, set 0x15 (DialogManager)
	.section .text.GetDefButton,"ax"
	.globl GetDefButton
GetDefButton:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x3715
	jsl 0xe10000
	pla              ; result -> A
	rtl

; SetDefButton(Word, Pointer) -> void
; tool 0x3815, set 0x15 (DialogManager)
	.section .text.SetDefButton,"ax"
	.globl SetDefButton
SetDefButton:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x3815
	jsl 0xe10000
	rtl

; DisableDItem(Pointer, Word) -> void
; tool 0x3915, set 0x15 (DialogManager)
	.section .text.DisableDItem,"ax"
	.globl DisableDItem
DisableDItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x3915
	jsl 0xe10000
	rtl

; EnableDItem(Pointer, Word) -> void
; tool 0x3A15, set 0x15 (DialogManager)
	.section .text.EnableDItem,"ax"
	.globl EnableDItem
EnableDItem:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x3A15
	jsl 0xe10000
	rtl

; PutScrap(LongWord, Word, Pointer) -> void
; tool 0x0C16, set 0x16 (ScrapManager)
	.section .text.PutScrap,"ax"
	.globl PutScrap
PutScrap:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x0C16
	jsl 0xe10000
	rtl

; GetScrap(Pointer, Word) -> void
; tool 0x0D16, set 0x16 (ScrapManager)
	.section .text.GetScrap,"ax"
	.globl GetScrap
GetScrap:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x0D16
	jsl 0xe10000
	rtl

; GetScrapHandle(Word) -> Pointer
; tool 0x0E16, set 0x16 (ScrapManager)
	.section .text.GetScrapHandle,"ax"
	.globl GetScrapHandle
GetScrapHandle:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x0E16
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetScrapSize(Word) -> LongWord
; tool 0x0F16, set 0x16 (ScrapManager)
	.section .text.GetScrapSize,"ax"
	.globl GetScrapSize
GetScrapSize:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x0F16
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetScrapPath(void) -> Pointer
; tool 0x1016, set 0x16 (ScrapManager)
	.section .text.GetScrapPath,"ax"
	.globl GetScrapPath
GetScrapPath:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1016
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetScrapPath(Pointer) -> void
; tool 0x1116, set 0x16 (ScrapManager)
	.section .text.SetScrapPath,"ax"
	.globl SetScrapPath
SetScrapPath:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1116
	jsl 0xe10000
	rtl

; GetIndScrap(Word, Pointer) -> void
; tool 0x1416, set 0x16 (ScrapManager)
	.section .text.GetIndScrap,"ax"
	.globl GetIndScrap
GetIndScrap:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x1416
	jsl 0xe10000
	rtl

; ShowClipboard(Word, Pointer) -> Pointer
; tool 0x1516, set 0x16 (ScrapManager)
	.section .text.ShowClipboard,"ax"
	.globl ShowClipboard
ShowClipboard:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1516
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SFStartUp(Word, Word) -> void
; tool 0x0217, set 0x17 (StandardFile)
	.section .text.SFStartUp,"ax"
	.globl SFStartUp
SFStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0217
	jsl 0xe10000
	rtl

; SFGetFile(Word, Word, Pointer, Pointer, Pointer, Pointer) -> void
; tool 0x0917, set 0x17 (StandardFile)
	.section .text.SFGetFile,"ax"
	.globl SFGetFile
SFGetFile:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 28, s
	pha
	lda 28, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 36, s
	pha
	lda 36, s
	pha
	ldx #0x0917
	jsl 0xe10000
	rtl

; SFPutFile(Word, Word, Pointer, Pointer, Word, Pointer) -> void
; tool 0x0A17, set 0x17 (StandardFile)
	.section .text.SFPutFile,"ax"
	.globl SFPutFile
SFPutFile:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 26, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 32, s
	pha
	lda 32, s
	pha
	ldx #0x0A17
	jsl 0xe10000
	rtl

; SFPGetFile(Word, Word, Pointer, Pointer, Pointer, Pointer, Pointer, Pointer) -> void
; tool 0x0B17, set 0x17 (StandardFile)
	.section .text.SFPGetFile,"ax"
	.globl SFPGetFile
SFPGetFile:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 28, s
	pha
	lda 28, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 36, s
	pha
	lda 36, s
	pha
	; --- arg6 (Pointer, 4B) ---
	lda 44, s
	pha
	lda 44, s
	pha
	; --- arg7 (Pointer, 4B) ---
	lda 52, s
	pha
	lda 52, s
	pha
	ldx #0x0B17
	jsl 0xe10000
	rtl

; SFPPutFile(Word, Word, Pointer, Pointer, Word, Pointer, Pointer, Pointer) -> void
; tool 0x0C17, set 0x17 (StandardFile)
	.section .text.SFPPutFile,"ax"
	.globl SFPPutFile
SFPPutFile:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 26, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 32, s
	pha
	lda 32, s
	pha
	; --- arg6 (Pointer, 4B) ---
	lda 40, s
	pha
	lda 40, s
	pha
	; --- arg7 (Pointer, 4B) ---
	lda 48, s
	pha
	lda 48, s
	pha
	ldx #0x0C17
	jsl 0xe10000
	rtl

; SFGetFile2(Word, Word, Word, LongWord, Pointer, Pointer, Pointer) -> void
; tool 0x0E17, set 0x17 (StandardFile)
	.section .text.SFGetFile2,"ax"
	.globl SFGetFile2
SFGetFile2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 32, s
	pha
	lda 32, s
	pha
	; --- arg6 (Pointer, 4B) ---
	lda 40, s
	pha
	lda 40, s
	pha
	ldx #0x0E17
	jsl 0xe10000
	rtl

; SFPutFile2(Word, Word, Word, LongWord, Word, LongWord, Pointer) -> void
; tool 0x0F17, set 0x17 (StandardFile)
	.section .text.SFPutFile2,"ax"
	.globl SFPutFile2
SFPutFile2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 22, s
	pha
	; --- arg5 (LongWord, 4B) ---
	lda 28, s
	pha
	lda 28, s
	pha
	; --- arg6 (Pointer, 4B) ---
	lda 36, s
	pha
	lda 36, s
	pha
	ldx #0x0F17
	jsl 0xe10000
	rtl

; SFPGetFile2(Word, Word, Pointer, Word, LongWord, Pointer, Pointer, Pointer, Pointer, Pointer) -> void
; tool 0x1017, set 0x17 (StandardFile)
	.section .text.SFPGetFile2,"ax"
	.globl SFPGetFile2
SFPGetFile2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg4 (LongWord, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 32, s
	pha
	lda 32, s
	pha
	; --- arg6 (Pointer, 4B) ---
	lda 40, s
	pha
	lda 40, s
	pha
	; --- arg7 (Pointer, 4B) ---
	lda 48, s
	pha
	lda 48, s
	pha
	; --- arg8 (Pointer, 4B) ---
	lda 56, s
	pha
	lda 56, s
	pha
	; --- arg9 (Pointer, 4B) ---
	lda 64, s
	pha
	lda 64, s
	pha
	ldx #0x1017
	jsl 0xe10000
	rtl

; SFPPutFile2(Word, Word, Pointer, Word, LongWord, Word, LongWord, Pointer, Pointer, Pointer) -> void
; tool 0x1117, set 0x17 (StandardFile)
	.section .text.SFPPutFile2,"ax"
	.globl SFPPutFile2
SFPPutFile2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg4 (LongWord, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 30, s
	pha
	; --- arg6 (LongWord, 4B) ---
	lda 36, s
	pha
	lda 36, s
	pha
	; --- arg7 (Pointer, 4B) ---
	lda 44, s
	pha
	lda 44, s
	pha
	; --- arg8 (Pointer, 4B) ---
	lda 52, s
	pha
	lda 52, s
	pha
	; --- arg9 (Pointer, 4B) ---
	lda 60, s
	pha
	lda 60, s
	pha
	ldx #0x1117
	jsl 0xe10000
	rtl

; SFReScan(Pointer, Pointer) -> void
; tool 0x1317, set 0x17 (StandardFile)
	.section .text.SFReScan,"ax"
	.globl SFReScan
SFReScan:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1317
	jsl 0xe10000
	rtl

; SFMultiGet2(Word, Word, Word, LongWord, Pointer, Pointer, Pointer) -> void
; tool 0x1417, set 0x17 (StandardFile)
	.section .text.SFMultiGet2,"ax"
	.globl SFMultiGet2
SFMultiGet2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	; --- arg4 (Pointer, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 32, s
	pha
	lda 32, s
	pha
	; --- arg6 (Pointer, 4B) ---
	lda 40, s
	pha
	lda 40, s
	pha
	ldx #0x1417
	jsl 0xe10000
	rtl

; SFPMultiGet2(Word, Word, Pointer, Word, LongWord, Pointer, Pointer, Pointer, Pointer, Pointer) -> void
; tool 0x1517, set 0x17 (StandardFile)
	.section .text.SFPMultiGet2,"ax"
	.globl SFPMultiGet2
SFPMultiGet2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg4 (LongWord, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 32, s
	pha
	lda 32, s
	pha
	; --- arg6 (Pointer, 4B) ---
	lda 40, s
	pha
	lda 40, s
	pha
	; --- arg7 (Pointer, 4B) ---
	lda 48, s
	pha
	lda 48, s
	pha
	; --- arg8 (Pointer, 4B) ---
	lda 56, s
	pha
	lda 56, s
	pha
	; --- arg9 (Pointer, 4B) ---
	lda 64, s
	pha
	lda 64, s
	pha
	ldx #0x1517
	jsl 0xe10000
	rtl

; NSStartUp(Word, Pointer) -> void
; tool 0x0219, set 0x19 (NoteSynth)
	.section .text.NSStartUp,"ax"
	.globl NSStartUp
NSStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x0219
	jsl 0xe10000
	rtl

; NoteOn(Word, Word, Word, Pointer) -> void
; tool 0x0B19, set 0x19 (NoteSynth)
	.section .text.NoteOn,"ax"
	.globl NoteOn
NoteOn:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x0B19
	jsl 0xe10000
	rtl

; NoteOff(Word, Word) -> void
; tool 0x0C19, set 0x19 (NoteSynth)
	.section .text.NoteOff,"ax"
	.globl NoteOff
NoteOff:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0C19
	jsl 0xe10000
	rtl

; NSSetUserUpdateRtn(Pointer) -> Pointer
; tool 0x0F19, set 0x19 (NoteSynth)
	.section .text.NSSetUserUpdateRtn,"ax"
	.globl NSSetUserUpdateRtn
NSSetUserUpdateRtn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0F19
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SeqStartUp(Word, Word, Word, Word) -> void
; tool 0x021A, set 0x1A (NoteSequencer)
	.section .text.SeqStartUp,"ax"
	.globl SeqStartUp
SeqStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x021A
	jsl 0xe10000
	rtl

; GetLoc(void) -> Pointer
; tool 0x0C1A, set 0x1A (NoteSequencer)
	.section .text.GetLoc,"ax"
	.globl GetLoc
GetLoc:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x0C1A
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetTrkInfo(Word, Word, Word) -> void
; tool 0x0E1A, set 0x1A (NoteSequencer)
	.section .text.SetTrkInfo,"ax"
	.globl SetTrkInfo
SetTrkInfo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0E1A
	jsl 0xe10000
	rtl

; StartSeq(Pointer, Pointer, Pointer) -> void
; tool 0x0F1A, set 0x1A (NoteSequencer)
	.section .text.StartSeq,"ax"
	.globl StartSeq
StartSeq:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x0F1A
	jsl 0xe10000
	rtl

; SetInstTable(Pointer) -> void
; tool 0x121A, set 0x1A (NoteSequencer)
	.section .text.SetInstTable,"ax"
	.globl SetInstTable
SetInstTable:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x121A
	jsl 0xe10000
	rtl

; StartSeqRel(Pointer, Pointer, Pointer) -> void
; tool 0x151A, set 0x1A (NoteSequencer)
	.section .text.StartSeqRel,"ax"
	.globl StartSeqRel
StartSeqRel:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x151A
	jsl 0xe10000
	rtl

; FMStartUp(Word, Word) -> void
; tool 0x021B, set 0x1B (FontManager)
	.section .text.FMStartUp,"ax"
	.globl FMStartUp
FMStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x021B
	jsl 0xe10000
	rtl

; FindFamily(Word, Word, Pointer) -> Word
; tool 0x0A1B, set 0x1B (FontManager)
	.section .text.FindFamily,"ax"
	.globl FindFamily
FindFamily:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x0A1B
	jsl 0xe10000
	pla              ; result -> A
	rtl

; GetFamInfo(Word, Pointer) -> Word
; tool 0x0B1B, set 0x1B (FontManager)
	.section .text.GetFamInfo,"ax"
	.globl GetFamInfo
GetFamInfo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x0B1B
	jsl 0xe10000
	pla              ; result -> A
	rtl

; GetFamNum(Pointer) -> Word
; tool 0x0C1B, set 0x1B (FontManager)
	.section .text.GetFamNum,"ax"
	.globl GetFamNum
GetFamNum:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0C1B
	jsl 0xe10000
	pla              ; result -> A
	rtl

; AddFamily(Word, Pointer) -> void
; tool 0x0D1B, set 0x1B (FontManager)
	.section .text.AddFamily,"ax"
	.globl AddFamily
AddFamily:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x0D1B
	jsl 0xe10000
	rtl

; InstallFont(LongWord, Word) -> void
; tool 0x0E1B, set 0x1B (FontManager)
	.section .text.InstallFont,"ax"
	.globl InstallFont
InstallFont:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x0E1B
	jsl 0xe10000
	rtl

; SetPurgeStat(LongWord, Word) -> void
; tool 0x0F1B, set 0x1B (FontManager)
	.section .text.SetPurgeStat,"ax"
	.globl SetPurgeStat
SetPurgeStat:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x0F1B
	jsl 0xe10000
	rtl

; CountFonts(LongWord, Word) -> Word
; tool 0x101B, set 0x1B (FontManager)
	.section .text.CountFonts,"ax"
	.globl CountFonts
CountFonts:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x101B
	jsl 0xe10000
	pla              ; result -> A
	rtl

; FindFontStats(LongWord, Word, Word, Pointer) -> void
; tool 0x111B, set 0x1B (FontManager)
	.section .text.FindFontStats,"ax"
	.globl FindFontStats
FindFontStats:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x111B
	jsl 0xe10000
	rtl

; LoadFont(LongWord, Word, Word, Pointer) -> void
; tool 0x121B, set 0x1B (FontManager)
	.section .text.LoadFont,"ax"
	.globl LoadFont
LoadFont:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x121B
	jsl 0xe10000
	rtl

; AddFontVar(Pointer, Word) -> void
; tool 0x141B, set 0x1B (FontManager)
	.section .text.AddFontVar,"ax"
	.globl AddFontVar
AddFontVar:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x141B
	jsl 0xe10000
	rtl

; FixFontMenu(Word, Word, Word) -> void
; tool 0x151B, set 0x1B (FontManager)
	.section .text.FixFontMenu,"ax"
	.globl FixFontMenu
FixFontMenu:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x151B
	jsl 0xe10000
	rtl

; ChooseFont(LongWord, Word) -> LongWord
; tool 0x161B, set 0x1B (FontManager)
	.section .text.ChooseFont,"ax"
	.globl ChooseFont
ChooseFont:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x161B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FMSetSysFont(LongWord) -> void
; tool 0x181B, set 0x1B (FontManager)
	.section .text.FMSetSysFont,"ax"
	.globl FMSetSysFont
FMSetSysFont:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x181B
	jsl 0xe10000
	rtl

; FMGetSysFID(void) -> LongWord
; tool 0x191B, set 0x1B (FontManager)
	.section .text.FMGetSysFID,"ax"
	.globl FMGetSysFID
FMGetSysFID:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x191B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; FMGetCurFID(void) -> LongWord
; tool 0x1A1B, set 0x1B (FontManager)
	.section .text.FMGetCurFID,"ax"
	.globl FMGetCurFID
FMGetCurFID:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1A1B
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; InstallWithStats(LongWord, Word, Pointer) -> void
; tool 0x1C1B, set 0x1B (FontManager)
	.section .text.InstallWithStats,"ax"
	.globl InstallWithStats
InstallWithStats:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x1C1B
	jsl 0xe10000
	rtl

; CreateList(Pointer, Pointer) -> Pointer
; tool 0x091C, set 0x1C (ListManager)
	.section .text.CreateList,"ax"
	.globl CreateList
CreateList:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x091C
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SortList(Pointer, Pointer) -> void
; tool 0x0A1C, set 0x1C (ListManager)
	.section .text.SortList,"ax"
	.globl SortList
SortList:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x0A1C
	jsl 0xe10000
	rtl

; NextMember(Pointer, Pointer) -> Pointer
; tool 0x0B1C, set 0x1C (ListManager)
	.section .text.NextMember,"ax"
	.globl NextMember
NextMember:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x0B1C
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; DrawMember(Pointer, Pointer) -> void
; tool 0x0C1C, set 0x1C (ListManager)
	.section .text.DrawMember,"ax"
	.globl DrawMember
DrawMember:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x0C1C
	jsl 0xe10000
	rtl

; SelectMember(Pointer, Pointer) -> void
; tool 0x0D1C, set 0x1C (ListManager)
	.section .text.SelectMember,"ax"
	.globl SelectMember
SelectMember:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x0D1C
	jsl 0xe10000
	rtl

; GetListDefProc(void) -> Pointer
; tool 0x0E1C, set 0x1C (ListManager)
	.section .text.GetListDefProc,"ax"
	.globl GetListDefProc
GetListDefProc:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x0E1C
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; ResetMember(Pointer) -> LongWord
; tool 0x0F1C, set 0x1C (ListManager)
	.section .text.ResetMember,"ax"
	.globl ResetMember
ResetMember:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0F1C
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; NewList(Pointer, Pointer) -> void
; tool 0x101C, set 0x1C (ListManager)
	.section .text.NewList,"ax"
	.globl NewList
NewList:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x101C
	jsl 0xe10000
	rtl

; DrawMember2(Word, Pointer) -> void
; tool 0x111C, set 0x1C (ListManager)
	.section .text.DrawMember2,"ax"
	.globl DrawMember2
DrawMember2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x111C
	jsl 0xe10000
	rtl

; NextMember2(Word, Pointer) -> Word
; tool 0x121C, set 0x1C (ListManager)
	.section .text.NextMember2,"ax"
	.globl NextMember2
NextMember2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x121C
	jsl 0xe10000
	pla              ; result -> A
	rtl

; ResetMember2(Pointer) -> Word
; tool 0x131C, set 0x1C (ListManager)
	.section .text.ResetMember2,"ax"
	.globl ResetMember2
ResetMember2:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x131C
	jsl 0xe10000
	pla              ; result -> A
	rtl

; SelectMember2(Word, Pointer) -> void
; tool 0x141C, set 0x1C (ListManager)
	.section .text.SelectMember2,"ax"
	.globl SelectMember2
SelectMember2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x141C
	jsl 0xe10000
	rtl

; SortList2(Pointer, Pointer) -> void
; tool 0x151C, set 0x1C (ListManager)
	.section .text.SortList2,"ax"
	.globl SortList2
SortList2:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x151C
	jsl 0xe10000
	rtl

; NewList2(Pointer, Word, LongWord, Word, Word, Pointer) -> void
; tool 0x161C, set 0x1C (ListManager)
	.section .text.NewList2,"ax"
	.globl NewList2
NewList2:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 20, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 24, s
	pha
	; --- arg5 (Pointer, 4B) ---
	lda 30, s
	pha
	lda 30, s
	pha
	ldx #0x161C
	jsl 0xe10000
	rtl

; ListKey(Word, Pointer, Pointer) -> void
; tool 0x171C, set 0x1C (ListManager)
	.section .text.ListKey,"ax"
	.globl ListKey
ListKey:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x171C
	jsl 0xe10000
	rtl

; CompareStrings(Word, Pointer, Pointer) -> Word
; tool 0x181C, set 0x1C (ListManager)
	.section .text.CompareStrings,"ax"
	.globl CompareStrings
CompareStrings:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x181C
	jsl 0xe10000
	pla              ; result -> A
	rtl

; ACEInfo(Word) -> LongWord
; tool 0x071D, set 0x1D (ACETools)
	.section .text.ACEInfo,"ax"
	.globl ACEInfo
ACEInfo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x071D
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; ACECompress(Pointer, LongWord, Pointer, LongWord, Word, Word) -> void
; tool 0x091D, set 0x1D (ACETools)
	.section .text.ACECompress,"ax"
	.globl ACECompress
ACECompress:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 26, s
	pha
	lda 26, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 32, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 36, s
	pha
	ldx #0x091D
	jsl 0xe10000
	rtl

; ACEExpand(Pointer, LongWord, Pointer, LongWord, Word, Word) -> void
; tool 0x0A1D, set 0x1D (ACETools)
	.section .text.ACEExpand,"ax"
	.globl ACEExpand
ACEExpand:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 26, s
	pha
	lda 26, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 32, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 36, s
	pha
	ldx #0x0A1D
	jsl 0xe10000
	rtl

; GetACEExpState(Pointer) -> void
; tool 0x0D1D, set 0x1D (ACETools)
	.section .text.GetACEExpState,"ax"
	.globl GetACEExpState
GetACEExpState:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0D1D
	jsl 0xe10000
	rtl

; SetACEExpState(Pointer) -> void
; tool 0x0E1D, set 0x1D (ACETools)
	.section .text.SetACEExpState,"ax"
	.globl SetACEExpState
SetACEExpState:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0E1D
	jsl 0xe10000
	rtl

; CreateResourceFile(LongWord, Word, Word, Pointer) -> void
; tool 0x091E, set 0x1E (ResourceManager)
	.section .text.CreateResourceFile,"ax"
	.globl CreateResourceFile
CreateResourceFile:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x091E
	jsl 0xe10000
	rtl

; OpenResourceFile(Word, Pointer, Pointer) -> Word
; tool 0x0A1E, set 0x1E (ResourceManager)
	.section .text.OpenResourceFile,"ax"
	.globl OpenResourceFile
OpenResourceFile:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x0A1E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; AddResource(Pointer, Word, Word, LongWord) -> void
; tool 0x0C1E, set 0x1E (ResourceManager)
	.section .text.AddResource,"ax"
	.globl AddResource
AddResource:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x0C1E
	jsl 0xe10000
	rtl

; LoadResource(Word, LongWord) -> Pointer
; tool 0x0E1E, set 0x1E (ResourceManager)
	.section .text.LoadResource,"ax"
	.globl LoadResource
LoadResource:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x0E1E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; RemoveResource(Word, LongWord) -> void
; tool 0x0F1E, set 0x1E (ResourceManager)
	.section .text.RemoveResource,"ax"
	.globl RemoveResource
RemoveResource:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x0F1E
	jsl 0xe10000
	rtl

; MarkResourceChange(Word, Word, LongWord) -> void
; tool 0x101E, set 0x1E (ResourceManager)
	.section .text.MarkResourceChange,"ax"
	.globl MarkResourceChange
MarkResourceChange:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x101E
	jsl 0xe10000
	rtl

; HomeResourceFile(Word, LongWord) -> Word
; tool 0x151E, set 0x1E (ResourceManager)
	.section .text.HomeResourceFile,"ax"
	.globl HomeResourceFile
HomeResourceFile:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x151E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; WriteResource(Word, LongWord) -> void
; tool 0x161E, set 0x1E (ResourceManager)
	.section .text.WriteResource,"ax"
	.globl WriteResource
WriteResource:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x161E
	jsl 0xe10000
	rtl

; ReleaseResource(Word, Word, LongWord) -> void
; tool 0x171E, set 0x1E (ResourceManager)
	.section .text.ReleaseResource,"ax"
	.globl ReleaseResource
ReleaseResource:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x171E
	jsl 0xe10000
	rtl

; DetachResource(Word, LongWord) -> void
; tool 0x181E, set 0x1E (ResourceManager)
	.section .text.DetachResource,"ax"
	.globl DetachResource
DetachResource:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x181E
	jsl 0xe10000
	rtl

; UniqueResourceID(Word, Word) -> LongWord
; tool 0x191E, set 0x1E (ResourceManager)
	.section .text.UniqueResourceID,"ax"
	.globl UniqueResourceID
UniqueResourceID:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x191E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetResourceID(LongWord, Word, LongWord) -> void
; tool 0x1A1E, set 0x1E (ResourceManager)
	.section .text.SetResourceID,"ax"
	.globl SetResourceID
SetResourceID:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x1A1E
	jsl 0xe10000
	rtl

; GetResourceAttr(Word, LongWord) -> Word
; tool 0x1B1E, set 0x1E (ResourceManager)
	.section .text.GetResourceAttr,"ax"
	.globl GetResourceAttr
GetResourceAttr:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1B1E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; SetResourceAttr(Word, Word, LongWord) -> void
; tool 0x1C1E, set 0x1E (ResourceManager)
	.section .text.SetResourceAttr,"ax"
	.globl SetResourceAttr
SetResourceAttr:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1C1E
	jsl 0xe10000
	rtl

; GetResourceSize(Word, LongWord) -> LongWord
; tool 0x1D1E, set 0x1E (ResourceManager)
	.section .text.GetResourceSize,"ax"
	.globl GetResourceSize
GetResourceSize:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1D1E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MatchResourceHandle(Pointer, Pointer) -> void
; tool 0x1E1E, set 0x1E (ResourceManager)
	.section .text.MatchResourceHandle,"ax"
	.globl MatchResourceHandle
MatchResourceHandle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1E1E
	jsl 0xe10000
	rtl

; CountResources(Word) -> LongWord
; tool 0x221E, set 0x1E (ResourceManager)
	.section .text.CountResources,"ax"
	.globl CountResources
CountResources:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x221E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetIndResource(Word, LongWord) -> LongWord
; tool 0x231E, set 0x1E (ResourceManager)
	.section .text.GetIndResource,"ax"
	.globl GetIndResource
GetIndResource:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x231E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; GetMapHandle(Word) -> Pointer
; tool 0x261E, set 0x1E (ResourceManager)
	.section .text.GetMapHandle,"ax"
	.globl GetMapHandle
GetMapHandle:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x261E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; LoadAbsResource(Pointer, LongWord, Word, LongWord) -> LongWord
; tool 0x271E, set 0x1E (ResourceManager)
	.section .text.LoadAbsResource,"ax"
	.globl LoadAbsResource
LoadAbsResource:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 20, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 26, s
	pha
	lda 26, s
	pha
	ldx #0x271E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; ResourceConverter(Pointer, Word, Word) -> void
; tool 0x281E, set 0x1E (ResourceManager)
	.section .text.ResourceConverter,"ax"
	.globl ResourceConverter
ResourceConverter:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x281E
	jsl 0xe10000
	rtl

; LoadResource2(Word, Pointer, Word, LongWord) -> Pointer
; tool 0x291E, set 0x1E (ResourceManager)
	.section .text.LoadResource2,"ax"
	.globl LoadResource2
LoadResource2:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 18, s
	pha
	; --- arg3 (LongWord, 4B) ---
	lda 24, s
	pha
	lda 24, s
	pha
	ldx #0x291E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; RMFindNamedResource(Word, Pointer, Pointer) -> LongWord
; tool 0x2A1E, set 0x1E (ResourceManager)
	.section .text.RMFindNamedResource,"ax"
	.globl RMFindNamedResource
RMFindNamedResource:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	ldx #0x2A1E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; RMGetResourceName(Word, LongWord, Pointer) -> void
; tool 0x2B1E, set 0x1E (ResourceManager)
	.section .text.RMGetResourceName,"ax"
	.globl RMGetResourceName
RMGetResourceName:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x2B1E
	jsl 0xe10000
	rtl

; RMLoadNamedResource(Word, Pointer) -> Pointer
; tool 0x2C1E, set 0x1E (ResourceManager)
	.section .text.RMLoadNamedResource,"ax"
	.globl RMLoadNamedResource
RMLoadNamedResource:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x2C1E
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; RMSetResourceName(Word, LongWord, Pointer) -> void
; tool 0x2D1E, set 0x1E (ResourceManager)
	.section .text.RMSetResourceName,"ax"
	.globl RMSetResourceName
RMSetResourceName:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x2D1E
	jsl 0xe10000
	rtl

; OpenResourceFileByID(Word, Word) -> Word
; tool 0x2E1E, set 0x1E (ResourceManager)
	.section .text.OpenResourceFileByID,"ax"
	.globl OpenResourceFileByID
OpenResourceFileByID:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x2E1E
	jsl 0xe10000
	pla              ; result -> A
	rtl

; CompactResourceFile(Word, Word) -> void
; tool 0x2F1E, set 0x1E (ResourceManager)
	.section .text.CompactResourceFile,"ax"
	.globl CompactResourceFile
CompactResourceFile:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x2F1E
	jsl 0xe10000
	rtl

; MidiStartUp(Word, Word) -> void
; tool 0x0220, set 0x20 (VideoOverlay)
	.section .text.MidiStartUp,"ax"
	.globl MidiStartUp
MidiStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0220
	jsl 0xe10000
	rtl

; MidiControl(Word, LongWord) -> void
; tool 0x0920, set 0x20 (VideoOverlay)
	.section .text.MidiControl,"ax"
	.globl MidiControl
MidiControl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x0920
	jsl 0xe10000
	rtl

; MidiDevice(Word, Pointer) -> void
; tool 0x0A20, set 0x20 (VideoOverlay)
	.section .text.MidiDevice,"ax"
	.globl MidiDevice
MidiDevice:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x0A20
	jsl 0xe10000
	rtl

; MidiClock(Word, LongWord) -> void
; tool 0x0B20, set 0x20 (VideoOverlay)
	.section .text.MidiClock,"ax"
	.globl MidiClock
MidiClock:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x0B20
	jsl 0xe10000
	rtl

; MidiInfo(Word) -> LongWord
; tool 0x0C20, set 0x20 (VideoOverlay)
	.section .text.MidiInfo,"ax"
	.globl MidiInfo
MidiInfo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x0C20
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MidiReadPacket(Pointer, Word) -> Word
; tool 0x0D20, set 0x20 (VideoOverlay)
	.section .text.MidiReadPacket,"ax"
	.globl MidiReadPacket
MidiReadPacket:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0D20
	jsl 0xe10000
	pla              ; result -> A
	rtl

; MidiWritePacket(Pointer) -> Word
; tool 0x0E20, set 0x20 (VideoOverlay)
	.section .text.MidiWritePacket,"ax"
	.globl MidiWritePacket
MidiWritePacket:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0E20
	jsl 0xe10000
	pla              ; result -> A
	rtl

; VDInConvAdj(Word, Word) -> void
; tool 0x0C21, set 0x21 (Teletext)
	.section .text.VDInConvAdj,"ax"
	.globl VDInConvAdj
VDInConvAdj:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0C21
	jsl 0xe10000
	rtl

; VDKeyControl(Word, Word) -> void
; tool 0x0D21, set 0x21 (Teletext)
	.section .text.VDKeyControl,"ax"
	.globl VDKeyControl
VDKeyControl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0D21
	jsl 0xe10000
	rtl

; VDKeySetKCol(Word, Word, Word) -> void
; tool 0x0F21, set 0x21 (Teletext)
	.section .text.VDKeySetKCol,"ax"
	.globl VDKeySetKCol
VDKeySetKCol:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0F21
	jsl 0xe10000
	rtl

; VDOutControl(Word, Word) -> void
; tool 0x1921, set 0x21 (Teletext)
	.section .text.VDOutControl,"ax"
	.globl VDOutControl
VDOutControl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x1921
	jsl 0xe10000
	rtl

; VDInControl(Word, Word) -> void
; tool 0x1C21, set 0x21 (Teletext)
	.section .text.VDInControl,"ax"
	.globl VDInControl
VDInControl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x1C21
	jsl 0xe10000
	rtl

; VDGGControl(Word, Word) -> void
; tool 0x1D21, set 0x21 (Teletext)
	.section .text.VDGGControl,"ax"
	.globl VDGGControl
VDGGControl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x1D21
	jsl 0xe10000
	rtl

; TEStartUp(Word, Word) -> void
; tool 0x0222, set 0x22 (TextEdit)
	.section .text.TEStartUp,"ax"
	.globl TEStartUp
TEStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0222
	jsl 0xe10000
	rtl

; TENew(Pointer) -> Word
; tool 0x0922, set 0x22 (TextEdit)
	.section .text.TENew,"ax"
	.globl TENew
TENew:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0922
	jsl 0xe10000
	pla              ; result -> A
	rtl

; TESetText(Word, LongWord, LongWord, Word, LongWord, Word) -> void
; tool 0x0B22, set 0x22 (TextEdit)
	.section .text.TESetText,"ax"
	.globl TESetText
TESetText:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 22, s
	pha
	; --- arg4 (LongWord, 4B) ---
	lda 28, s
	pha
	lda 28, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 34, s
	pha
	ldx #0x0B22
	jsl 0xe10000
	rtl

; TEGetText(Word, LongWord, LongWord, Word, LongWord, Word) -> LongWord
; tool 0x0C22, set 0x22 (TextEdit)
	.section .text.TEGetText,"ax"
	.globl TEGetText
TEGetText:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 26, s
	pha
	; --- arg4 (LongWord, 4B) ---
	lda 32, s
	pha
	lda 32, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 38, s
	pha
	ldx #0x0C22
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; TEGetTextInfo(Pointer, Word, Word) -> void
; tool 0x0D22, set 0x22 (TextEdit)
	.section .text.TEGetTextInfo,"ax"
	.globl TEGetTextInfo
TEGetTextInfo:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 12, s
	pha
	ldx #0x0D22
	jsl 0xe10000
	rtl

; TEClick(Pointer, Word) -> void
; tool 0x1122, set 0x22 (TextEdit)
	.section .text.TEClick,"ax"
	.globl TEClick
TEClick:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x1122
	jsl 0xe10000
	rtl

; TEPaintText(Pointer, LongWord, Pointer, Word, Word) -> LongWord
; tool 0x1322, set 0x22 (TextEdit)
	.section .text.TEPaintText,"ax"
	.globl TEPaintText
TEPaintText:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 22, s
	pha
	lda 22, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 28, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 32, s
	pha
	ldx #0x1322
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; TEKey(Pointer, Word) -> void
; tool 0x1422, set 0x22 (TextEdit)
	.section .text.TEKey,"ax"
	.globl TEKey
TEKey:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x1422
	jsl 0xe10000
	rtl

; TEInsert(Word, LongWord, LongWord, Word, LongWord, Word) -> void
; tool 0x1A22, set 0x22 (TextEdit)
	.section .text.TEInsert,"ax"
	.globl TEInsert
TEInsert:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 22, s
	pha
	; --- arg4 (LongWord, 4B) ---
	lda 28, s
	pha
	lda 28, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 34, s
	pha
	ldx #0x1A22
	jsl 0xe10000
	rtl

; TEReplace(Word, LongWord, LongWord, Word, LongWord, Word) -> void
; tool 0x1B22, set 0x22 (TextEdit)
	.section .text.TEReplace,"ax"
	.globl TEReplace
TEReplace:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 22, s
	pha
	; --- arg4 (LongWord, 4B) ---
	lda 28, s
	pha
	lda 28, s
	pha
	; --- arg5 (Word, 2B) ---
	lda 34, s
	pha
	ldx #0x1B22
	jsl 0xe10000
	rtl

; TEGetSelection(Pointer, Pointer, Word) -> void
; tool 0x1C22, set 0x22 (TextEdit)
	.section .text.TEGetSelection,"ax"
	.globl TEGetSelection
TEGetSelection:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x1C22
	jsl 0xe10000
	rtl

; TESetSelection(LongWord, LongWord, Word) -> void
; tool 0x1D22, set 0x22 (TextEdit)
	.section .text.TESetSelection,"ax"
	.globl TESetSelection
TESetSelection:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x1D22
	jsl 0xe10000
	rtl

; TEGetSelectionStyle(Pointer, Word, Word) -> Word
; tool 0x1E22, set 0x22 (TextEdit)
	.section .text.TEGetSelectionStyle,"ax"
	.globl TEGetSelectionStyle
TEGetSelectionStyle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x1E22
	jsl 0xe10000
	pla              ; result -> A
	rtl

; TEStyleChange(Word, Pointer, Word) -> void
; tool 0x1F22, set 0x22 (TextEdit)
	.section .text.TEStyleChange,"ax"
	.globl TEStyleChange
TEStyleChange:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x1F22
	jsl 0xe10000
	rtl

; TEOffsetToPoint(LongWord, Pointer, Pointer, Word) -> void
; tool 0x2022, set 0x22 (TextEdit)
	.section .text.TEOffsetToPoint,"ax"
	.globl TEOffsetToPoint
TEOffsetToPoint:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 24, s
	pha
	ldx #0x2022
	jsl 0xe10000
	rtl

; TEPointToOffset(LongWord, LongWord, Word) -> LongWord
; tool 0x2122, set 0x22 (TextEdit)
	.section .text.TEPointToOffset,"ax"
	.globl TEPointToOffset
TEPointToOffset:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 20, s
	pha
	ldx #0x2122
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; TEGetDefProc(void) -> Pointer
; tool 0x2222, set 0x22 (TextEdit)
	.section .text.TEGetDefProc,"ax"
	.globl TEGetDefProc
TEGetDefProc:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x2222
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; TEGetRuler(Word, LongWord, Word) -> void
; tool 0x2322, set 0x22 (TextEdit)
	.section .text.TEGetRuler,"ax"
	.globl TEGetRuler
TEGetRuler:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x2322
	jsl 0xe10000
	rtl

; TESetRuler(Word, LongWord, Word) -> void
; tool 0x2422, set 0x22 (TextEdit)
	.section .text.TESetRuler,"ax"
	.globl TESetRuler
TESetRuler:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x2422
	jsl 0xe10000
	rtl

; TEScroll(Word, LongWord, LongWord, Word) -> LongWord
; tool 0x2522, set 0x22 (TextEdit)
	.section .text.TEScroll,"ax"
	.globl TEScroll
TEScroll:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 26, s
	pha
	ldx #0x2522
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; TEGetInternalProc(void) -> Pointer
; tool 0x2622, set 0x22 (TextEdit)
	.section .text.TEGetInternalProc,"ax"
	.globl TEGetInternalProc
TEGetInternalProc:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x2622
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; TEGetLastError(Word, Word) -> Word
; tool 0x2722, set 0x22 (TextEdit)
	.section .text.TEGetLastError,"ax"
	.globl TEGetLastError
TEGetLastError:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x2722
	jsl 0xe10000
	pla              ; result -> A
	rtl

; PlayNote(Word, Word, Word) -> void
; tool 0x0B23, set 0x23 (MediaControl)
	.section .text.PlayNote,"ax"
	.globl PlayNote
PlayNote:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x0B23
	jsl 0xe10000
	rtl

; StopNote(Word, Word) -> void
; tool 0x0C23, set 0x23 (MediaControl)
	.section .text.StopNote,"ax"
	.globl StopNote
StopNote:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0C23
	jsl 0xe10000
	rtl

; SetPlayTrack(Word, Word) -> void
; tool 0x0F23, set 0x23 (MediaControl)
	.section .text.SetPlayTrack,"ax"
	.globl SetPlayTrack
SetPlayTrack:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x0F23
	jsl 0xe10000
	rtl

; TrackToChannel(Word, Word) -> void
; tool 0x1023, set 0x23 (MediaControl)
	.section .text.TrackToChannel,"ax"
	.globl TrackToChannel
TrackToChannel:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x1023
	jsl 0xe10000
	rtl

; Locate(LongWord, Pointer) -> Pointer
; tool 0x1123, set 0x23 (MediaControl)
	.section .text.Locate,"ax"
	.globl Locate
Locate:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x1123
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetMIDIPort(Word, Word) -> void
; tool 0x1323, set 0x23 (MediaControl)
	.section .text.SetMIDIPort,"ax"
	.globl SetMIDIPort
SetMIDIPort:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x1323
	jsl 0xe10000
	rtl

; SetInstrument(Pointer, Word) -> void
; tool 0x1423, set 0x23 (MediaControl)
	.section .text.SetInstrument,"ax"
	.globl SetInstrument
SetInstrument:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x1423
	jsl 0xe10000
	rtl

; SeqPlayer(Pointer) -> void
; tool 0x1523, set 0x23 (MediaControl)
	.section .text.SeqPlayer,"ax"
	.globl SeqPlayer
SeqPlayer:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1523
	jsl 0xe10000
	rtl

; SetCallBack(Pointer) -> void
; tool 0x1723, set 0x23 (MediaControl)
	.section .text.SetCallBack,"ax"
	.globl SetCallBack
SetCallBack:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1723
	jsl 0xe10000
	rtl

; SysExOut(Pointer, Word, Pointer) -> void
; tool 0x1823, set 0x23 (MediaControl)
	.section .text.SysExOut,"ax"
	.globl SysExOut
SysExOut:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x1823
	jsl 0xe10000
	rtl

; MIDIMessage(Word, Word, Word, Word, Word) -> void
; tool 0x1A23, set 0x23 (MediaControl)
	.section .text.MIDIMessage,"ax"
	.globl MIDIMessage
MIDIMessage:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 18, s
	pha
	ldx #0x1A23
	jsl 0xe10000
	rtl

; LocateEnd(Pointer) -> Pointer
; tool 0x1B23, set 0x23 (MediaControl)
	.section .text.LocateEnd,"ax"
	.globl LocateEnd
LocateEnd:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1B23
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; Merge(Pointer, Pointer) -> void
; tool 0x1C23, set 0x23 (MediaControl)
	.section .text.Merge,"ax"
	.globl Merge
Merge:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1C23
	jsl 0xe10000
	rtl

; DeleteTrack(Word, Pointer) -> void
; tool 0x1D23, set 0x23 (MediaControl)
	.section .text.DeleteTrack,"ax"
	.globl DeleteTrack
DeleteTrack:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x1D23
	jsl 0xe10000
	rtl

; SetMetro(Word, Word, Pointer) -> void
; tool 0x1E23, set 0x23 (MediaControl)
	.section .text.SetMetro,"ax"
	.globl SetMetro
SetMetro:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1E23
	jsl 0xe10000
	rtl

; GetMSData(void) -> 8B
; tool 0x1F23, set 0x23 (MediaControl)
	.section .text.GetMSData,"ax"
	.globl GetMSData
GetMSData:
	; --- result space (8 bytes) ---
	pea 0
	pea 0
	pea 0
	pea 0
	ldx #0x1F23
	jsl 0xe10000
	pla
	pla
	pla
	pla
	rtl

; ConvertToTime(Word, Word, Word, Word) -> LongWord
; tool 0x2023, set 0x23 (MediaControl)
	.section .text.ConvertToTime,"ax"
	.globl ConvertToTime
ConvertToTime:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	ldx #0x2023
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; ConvertToMeasure(Word, Word, LongWord) -> Pointer
; tool 0x2123, set 0x23 (MediaControl)
	.section .text.ConvertToMeasure,"ax"
	.globl ConvertToMeasure
ConvertToMeasure:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x2123
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetTuningTable(Pointer) -> void
; tool 0x2423, set 0x23 (MediaControl)
	.section .text.SetTuningTable,"ax"
	.globl SetTuningTable
SetTuningTable:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2423
	jsl 0xe10000
	rtl

; GetTuningTable(Pointer) -> void
; tool 0x2523, set 0x23 (MediaControl)
	.section .text.GetTuningTable,"ax"
	.globl GetTuningTable
GetTuningTable:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x2523
	jsl 0xe10000
	rtl

; SetTrackOut(Word, Word) -> void
; tool 0x2623, set 0x23 (MediaControl)
	.section .text.SetTrackOut,"ax"
	.globl SetTrackOut
SetTrackOut:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x2623
	jsl 0xe10000
	rtl

; InitMIDIDriver(Word, Word, Word, Pointer) -> void
; tool 0x2723, set 0x23 (MediaControl)
	.section .text.InitMIDIDriver,"ax"
	.globl InitMIDIDriver
InitMIDIDriver:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x2723
	jsl 0xe10000
	rtl

; MCGetErrorMsg(Word, Pointer) -> void
; tool 0x0926, set 0x26 (?)
	.section .text.MCGetErrorMsg,"ax"
	.globl MCGetErrorMsg
MCGetErrorMsg:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x0926
	jsl 0xe10000
	rtl

; MCTimeToBin(LongWord) -> LongWord
; tool 0x0C26, set 0x26 (?)
	.section .text.MCTimeToBin,"ax"
	.globl MCTimeToBin
MCTimeToBin:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0C26
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MCBinToTime(LongWord) -> LongWord
; tool 0x0D26, set 0x26 (?)
	.section .text.MCBinToTime,"ax"
	.globl MCBinToTime
MCBinToTime:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0D26
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MCGetTrackTitle(LongWord, Word, Pointer) -> void
; tool 0x0E26, set 0x26 (?)
	.section .text.MCGetTrackTitle,"ax"
	.globl MCGetTrackTitle
MCGetTrackTitle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x0E26
	jsl 0xe10000
	rtl

; MCSetTrackTitle(LongWord, Word, Pointer) -> void
; tool 0x0F26, set 0x26 (?)
	.section .text.MCSetTrackTitle,"ax"
	.globl MCSetTrackTitle
MCSetTrackTitle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x0F26
	jsl 0xe10000
	rtl

; MCGetProgram(LongWord, Pointer) -> void
; tool 0x1026, set 0x26 (?)
	.section .text.MCGetProgram,"ax"
	.globl MCGetProgram
MCGetProgram:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1026
	jsl 0xe10000
	rtl

; MCSetProgram(LongWord, Pointer) -> void
; tool 0x1126, set 0x26 (?)
	.section .text.MCSetProgram,"ax"
	.globl MCSetProgram
MCSetProgram:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1126
	jsl 0xe10000
	rtl

; MCGetDiscTitle(LongWord, Pointer) -> void
; tool 0x1226, set 0x26 (?)
	.section .text.MCGetDiscTitle,"ax"
	.globl MCGetDiscTitle
MCGetDiscTitle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1226
	jsl 0xe10000
	rtl

; MCSetDiscTitle(LongWord, Pointer) -> void
; tool 0x1326, set 0x26 (?)
	.section .text.MCSetDiscTitle,"ax"
	.globl MCSetDiscTitle
MCSetDiscTitle:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x1326
	jsl 0xe10000
	rtl

; MCDStartUp(Word, Pointer, Word) -> void
; tool 0x1426, set 0x26 (?)
	.section .text.MCDStartUp,"ax"
	.globl MCDStartUp
MCDStartUp:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	ldx #0x1426
	jsl 0xe10000
	rtl

; MCGetFeatures(Word, Word) -> LongWord
; tool 0x1626, set 0x26 (?)
	.section .text.MCGetFeatures,"ax"
	.globl MCGetFeatures
MCGetFeatures:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x1626
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MCSendRawData(Word, Pointer) -> void
; tool 0x1926, set 0x26 (?)
	.section .text.MCSendRawData,"ax"
	.globl MCSendRawData
MCSendRawData:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x1926
	jsl 0xe10000
	rtl

; MCGetStatus(Word, Word) -> Word
; tool 0x1A26, set 0x26 (?)
	.section .text.MCGetStatus,"ax"
	.globl MCGetStatus
MCGetStatus:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 8, s
	pha
	ldx #0x1A26
	jsl 0xe10000
	pla              ; result -> A
	rtl

; MCControl(Word, Word) -> void
; tool 0x1B26, set 0x26 (?)
	.section .text.MCControl,"ax"
	.globl MCControl
MCControl:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x1B26
	jsl 0xe10000
	rtl

; MCScan(Word, Word) -> void
; tool 0x1C26, set 0x26 (?)
	.section .text.MCScan,"ax"
	.globl MCScan
MCScan:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x1C26
	jsl 0xe10000
	rtl

; MCGetSpeeds(Word, Pointer) -> void
; tool 0x1D26, set 0x26 (?)
	.section .text.MCGetSpeeds,"ax"
	.globl MCGetSpeeds
MCGetSpeeds:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x1D26
	jsl 0xe10000
	rtl

; MCSpeed(Word, Word) -> void
; tool 0x1E26, set 0x26 (?)
	.section .text.MCSpeed,"ax"
	.globl MCSpeed
MCSpeed:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x1E26
	jsl 0xe10000
	rtl

; MCStopAt(Word, Word, LongWord) -> void
; tool 0x1F26, set 0x26 (?)
	.section .text.MCStopAt,"ax"
	.globl MCStopAt
MCStopAt:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1F26
	jsl 0xe10000
	rtl

; MCJog(Word, Word, LongWord, Word) -> void
; tool 0x2026, set 0x26 (?)
	.section .text.MCJog,"ax"
	.globl MCJog
MCJog:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	ldx #0x2026
	jsl 0xe10000
	rtl

; MCSearchTo(Word, Word, LongWord) -> void
; tool 0x2126, set 0x26 (?)
	.section .text.MCSearchTo,"ax"
	.globl MCSearchTo
MCSearchTo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x2126
	jsl 0xe10000
	rtl

; MCGetPosition(Word, Word) -> LongWord
; tool 0x2426, set 0x26 (?)
	.section .text.MCGetPosition,"ax"
	.globl MCGetPosition
MCGetPosition:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x2426
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MCSetAudio(Word, Word) -> void
; tool 0x2526, set 0x26 (?)
	.section .text.MCSetAudio,"ax"
	.globl MCSetAudio
MCSetAudio:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x2526
	jsl 0xe10000
	rtl

; MCGetTimes(Word, Word) -> LongWord
; tool 0x2626, set 0x26 (?)
	.section .text.MCGetTimes,"ax"
	.globl MCGetTimes
MCGetTimes:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x2626
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MCGetDiscTOC(Word, Word) -> LongWord
; tool 0x2726, set 0x26 (?)
	.section .text.MCGetDiscTOC,"ax"
	.globl MCGetDiscTOC
MCGetDiscTOC:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x2726
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MCGetDiscID(Word) -> LongWord
; tool 0x2826, set 0x26 (?)
	.section .text.MCGetDiscID,"ax"
	.globl MCGetDiscID
MCGetDiscID:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x2826
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; MCWaitRawData(Word, Pointer, Word, Word) -> void
; tool 0x2C26, set 0x26 (?)
	.section .text.MCWaitRawData,"ax"
	.globl MCWaitRawData
MCWaitRawData:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 18, s
	pha
	ldx #0x2C26
	jsl 0xe10000
	rtl

; MCGetName(Word, Pointer) -> void
; tool 0x2D26, set 0x26 (?)
	.section .text.MCGetName,"ax"
	.globl MCGetName
MCGetName:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 8, s
	pha
	lda 8, s
	pha
	ldx #0x2D26
	jsl 0xe10000
	rtl

; MCSetVolume(Word, Word, Word) -> void
; tool 0x2E26, set 0x26 (?)
	.section .text.MCSetVolume,"ax"
	.globl MCSetVolume
MCSetVolume:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	ldx #0x2E26
	jsl 0xe10000
	rtl

; MaleSpeak(Word, Word, Word, Pointer) -> void
; tool 0x0932, set 0x32 (MediaControl2)
	.section .text.MaleSpeak,"ax"
	.globl MaleSpeak
MaleSpeak:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x0932
	jsl 0xe10000
	rtl

; FemaleSpeak(Word, Word, Word, Pointer) -> void
; tool 0x0933, set 0x33 (?)
	.section .text.FemaleSpeak,"ax"
	.globl FemaleSpeak
FemaleSpeak:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 16, s
	pha
	lda 16, s
	pha
	ldx #0x0933
	jsl 0xe10000
	rtl

; Parse(Pointer, Pointer, Word) -> void
; tool 0x0934, set 0x34 (?)
	.section .text.Parse,"ax"
	.globl Parse
Parse:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x0934
	jsl 0xe10000
	rtl

; DictInsert(Pointer, Pointer) -> void
; tool 0x0A34, set 0x34 (?)
	.section .text.DictInsert,"ax"
	.globl DictInsert
DictInsert:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	ldx #0x0A34
	jsl 0xe10000
	rtl

; DictDelete(Pointer) -> void
; tool 0x0B34, set 0x34 (?)
	.section .text.DictDelete,"ax"
	.globl DictDelete
DictDelete:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0B34
	jsl 0xe10000
	rtl

; DictDump(Pointer, Pointer) -> Pointer
; tool 0x0C34, set 0x34 (?)
	.section .text.DictDump,"ax"
	.globl DictDump
DictDump:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	ldx #0x0C34
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; SetSayGlobals(Word, Word, Word, Word, Word) -> void
; tool 0x0D34, set 0x34 (?)
	.section .text.SetSayGlobals,"ax"
	.globl SetSayGlobals
SetSayGlobals:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 18, s
	pha
	ldx #0x0D34
	jsl 0xe10000
	rtl

; Say(Pointer) -> void
; tool 0x0F34, set 0x34 (?)
	.section .text.Say,"ax"
	.globl Say
Say:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0F34
	jsl 0xe10000
	rtl

; DebugStr(Pointer) -> void
; tool 0x09FF, set 0xFF (?)
	.section .text.DebugStr,"ax"
	.globl DebugStr
DebugStr:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x09FF
	jsl 0xe10000
	rtl

; SetMileStone(Pointer) -> void
; tool 0x0AFF, set 0xFF (?)
	.section .text.SetMileStone,"ax"
	.globl SetMileStone
SetMileStone:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0AFF
	jsl 0xe10000
	rtl

; DebugSetHook(Pointer) -> void
; tool 0x0BFF, set 0xFF (?)
	.section .text.DebugSetHook,"ax"
	.globl DebugSetHook
DebugSetHook:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0BFF
	jsl 0xe10000
	rtl

; DebugGetInfo(Word) -> LongWord
; tool 0x0CFF, set 0xFF (?)
	.section .text.DebugGetInfo,"ax"
	.globl DebugGetInfo
DebugGetInfo:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE0
	pha
	ldx #0x0CFF
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; DebugControl(LongWord, LongWord, Word, Word) -> void
; tool 0x0DFF, set 0xFF (?)
	.section .text.DebugControl,"ax"
	.globl DebugControl
DebugControl:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	; --- arg3 (Word, 2B) ---
	lda 20, s
	pha
	ldx #0x0DFF
	jsl 0xe10000
	rtl

; DebugQuery(LongWord, Word, Word) -> LongWord
; tool 0x0EFF, set 0xFF (?)
	.section .text.DebugQuery,"ax"
	.globl DebugQuery
DebugQuery:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x0EFF
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; fakeModalDialog(Pointer, Pointer, Pointer, Pointer, Word) -> LongWord
; tool 0x0901, set 0x01 (ToolLocator)
	.section .text.fakeModalDialog,"ax"
	.globl fakeModalDialog
fakeModalDialog:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Pointer, 4B) ---
	lda 14, s
	pha
	lda 14, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 22, s
	pha
	lda 22, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 30, s
	pha
	lda 30, s
	pha
	; --- arg4 (Word, 2B) ---
	lda 36, s
	pha
	ldx #0x0901
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; fmdSetMenuProc(Pointer) -> void
; tool 0x0A01, set 0x01 (ToolLocator)
	.section .text.fmdSetMenuProc,"ax"
	.globl fmdSetMenuProc
fmdSetMenuProc:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0A01
	jsl 0xe10000
	rtl

; fmdGetMenuProc(void) -> Pointer
; tool 0x0B01, set 0x01 (ToolLocator)
	.section .text.fmdGetMenuProc,"ax"
	.globl fmdGetMenuProc
fmdGetMenuProc:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x0B01
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; fmdFindCursorCtl(Pointer, Word, Word, Pointer) -> Word
; tool 0x0E01, set 0x01 (ToolLocator)
	.section .text.fmdFindCursorCtl,"ax"
	.globl fmdFindCursorCtl
fmdFindCursorCtl:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 10, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 14, s
	pha
	; --- arg3 (Pointer, 4B) ---
	lda 20, s
	pha
	lda 20, s
	pha
	ldx #0x0E01
	jsl 0xe10000
	pla              ; result -> A
	rtl

; fmdLESetText(Pointer, LongWord, Pointer) -> void
; tool 0x0F01, set 0x01 (ToolLocator)
	.section .text.fmdLESetText,"ax"
	.globl fmdLESetText
fmdLESetText:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x0F01
	jsl 0xe10000
	rtl

; fmdLEGetText(Pointer, LongWord, Pointer) -> void
; tool 0x1001, set 0x01 (ToolLocator)
	.section .text.fmdLEGetText,"ax"
	.globl fmdLEGetText
fmdLEGetText:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 10, s
	pha
	lda 10, s
	pha
	; --- arg2 (Pointer, 4B) ---
	lda 18, s
	pha
	lda 18, s
	pha
	ldx #0x1001
	jsl 0xe10000
	rtl

; fmdWhichRadio(Pointer, LongWord) -> Word
; tool 0x1101, set 0x01 (ToolLocator)
	.section .text.fmdWhichRadio,"ax"
	.globl fmdWhichRadio
fmdWhichRadio:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (2 bytes) ---
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (LongWord, 4B) ---
	lda 12, s
	pha
	lda 12, s
	pha
	ldx #0x1101
	jsl 0xe10000
	pla              ; result -> A
	rtl

; fmdSetIBeam(Pointer) -> void
; tool 0x1401, set 0x01 (ToolLocator)
	.section .text.fmdSetIBeam,"ax"
	.globl fmdSetIBeam
fmdSetIBeam:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x1401
	jsl 0xe10000
	rtl

; fmdGetIBeamAdr(void) -> Pointer
; tool 0x1501, set 0x01 (ToolLocator)
	.section .text.fmdGetIBeamAdr,"ax"
	.globl fmdGetIBeamAdr
fmdGetIBeamAdr:
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	ldx #0x1501
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; pixelMap2Rgn(Pointer, Word, Word) -> Pointer
; tool 0x0902, set 0x02 (MemoryManager)
	.section .text.pixelMap2Rgn,"ax"
	.globl pixelMap2Rgn
pixelMap2Rgn:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 12, s
	pha
	; --- arg2 (Word, 2B) ---
	lda 16, s
	pha
	ldx #0x0902
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; newPort(Pointer) -> Pointer
; tool 0x0A02, set 0x02 (MemoryManager)
	.section .text.newPort,"ax"
	.globl newPort
newPort:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- result space (4 bytes) ---
	pea 0
	pea 0
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0A02
	jsl 0xe10000
	pla              ; result lo -> A
	plx              ; result hi -> X
	rtl

; killPort(Pointer) -> void
; tool 0x0B02, set 0x02 (MemoryManager)
	.section .text.killPort,"ax"
	.globl killPort
killPort:
	; --- stash arg0 (in A/X) ---
	sta 0xE0
	stx 0xE2
	; --- arg0 ---
	lda 0xE2
	pha
	lda 0xE0
	pha
	ldx #0x0B02
	jsl 0xe10000
	rtl

; OS_KIND(Word, Word) -> void
; tool 0x00BC, set 0xBC (?)
	.section .text.OS_KIND,"ax"
	.globl OS_KIND
OS_KIND:
	; --- stash arg0 (in A) ---
	sta 0xE0
	; --- arg0 ---
	lda 0xE0
	pha
	; --- arg1 (Word, 2B) ---
	lda 6, s
	pha
	ldx #0x00BC
	jsl 0xe10000
	rtl
