mirror of
https://github.com/antoinevignau/source.git
synced 2025-01-06 01:31:57 +00:00
eacce65018
Support new bits & the Animation toolset
5550 lines
106 KiB
ArmAsm
5550 lines
106 KiB
ArmAsm
*
|
|
* Genesys v1.2.4
|
|
* Tool Table editor
|
|
*
|
|
|
|
mx %00
|
|
rel
|
|
lst off
|
|
|
|
*----------------------------
|
|
|
|
use 4/Ctl.Macs
|
|
use 4/Int.Macs
|
|
use 4/Mem.Macs
|
|
use 4/QD.Macs
|
|
use 4/Resource.Macs
|
|
use 4/Text.Macs
|
|
use 4/Util.Macs
|
|
use 4/Window.Macs
|
|
|
|
*----------------------------
|
|
|
|
GSOS EQU $E100A8
|
|
|
|
sizeHEADER = $000c ; standard header size
|
|
sizeSTDREC = $0054 ; 12 entries x 4 + header = $54
|
|
sizeFULLREC = $0084 ; 30 entries x 4 + header = $84
|
|
resTYPE = $8013 ; resource type supported by the editor
|
|
|
|
*----------------------------
|
|
|
|
LDA $04,S
|
|
STA ptrBUFFER
|
|
LDA $06,S
|
|
STA ptrBUFFER+2
|
|
JMPL entryPOINT
|
|
|
|
*--- Show my editor window
|
|
|
|
showWINDOW
|
|
PHD
|
|
PHB
|
|
PHK
|
|
PLB
|
|
PEA $0000
|
|
PEA $0000
|
|
PEA $0000
|
|
PEA $0000
|
|
PEA $0000
|
|
PEA $0000
|
|
PEA ^refreshWINDOW
|
|
PEA refreshWINDOW
|
|
PEA $0000
|
|
PEA $0000
|
|
PEA $0000
|
|
PEA ^myWINDOW
|
|
PEA myWINDOW
|
|
PEA $800E
|
|
_NewWindow2
|
|
PLA
|
|
STA haWINDOW
|
|
PLA
|
|
STA haWINDOW+2
|
|
LDA haWINDOW+2
|
|
PHA
|
|
LDA haWINDOW
|
|
PHA
|
|
_SetPort
|
|
PEA $0000
|
|
PEA $0000
|
|
LDA haWINDOW+2
|
|
PHA
|
|
LDA haWINDOW
|
|
PHA
|
|
PEA $0003
|
|
PEA ^ctlWINDOW
|
|
PEA ctlWINDOW
|
|
_NewControl2
|
|
PLA
|
|
PLA
|
|
PLB
|
|
PLD
|
|
RTL
|
|
|
|
ctlWINDOW
|
|
ADRL L010D
|
|
ADRL L012D
|
|
ADRL L014D
|
|
ADRL L016D
|
|
ADRL L018D
|
|
ADRL L01AD
|
|
ADRL L01CD
|
|
ADRL L01ED
|
|
ADRL L020D
|
|
ADRL L022D
|
|
ADRL L024D
|
|
ADRL L026D
|
|
ADRL L028D
|
|
ADRL L02AD
|
|
ADRL L02CD
|
|
ADRL L02ED
|
|
ADRL L030D
|
|
ADRL L032D
|
|
ADRL L034D
|
|
ADRL L036D
|
|
ADRL L038D
|
|
ADRL L03AD
|
|
ADRL L03CD
|
|
ADRL L03ED
|
|
ADRL L040D
|
|
ADRL L042D
|
|
ADRL L044D
|
|
ADRL L046D
|
|
ADRL L048D
|
|
ADRL L04AD
|
|
adrl cTANIM
|
|
ADRL c320
|
|
ADRL c640
|
|
ADRL cFAAW
|
|
ADRL cHWSHA
|
|
adrl cSHRON ; new
|
|
ADRL cPREF
|
|
ADRL $00000000
|
|
|
|
L010D DW $0008 ; pCount
|
|
ADRL $00000001 ; ID
|
|
DW $0005 ; rect
|
|
DW $000C
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000001 ; refCon
|
|
ADRL L0714 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L012D DW $0008 ; pCount
|
|
ADRL $00000002 ; ID
|
|
DW $000F ; rect
|
|
DW $000C
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000002 ; refCon
|
|
ADRL L0705 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L014D DW $0008 ; pCount
|
|
ADRL $00000003 ; ID
|
|
DW $0019 ; rect
|
|
DW $000C
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000003 ; refCon
|
|
ADRL L06F7 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L016D DW $0008 ; pCount
|
|
ADRL $00000004 ; ID
|
|
DW $0023 ; rect
|
|
DW $000C
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000004 ; refCon
|
|
ADRL L06EA ; titleRef
|
|
DW $0000 ; initialValue
|
|
L018D DW $0008 ; pCount
|
|
ADRL $00000005 ; ID
|
|
DW $002D ; rect
|
|
DW $000C
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000005 ; refCon
|
|
ADRL L06DD ; titleRef
|
|
DW $0000 ; initialValue
|
|
L01AD DW $0008 ; pCount
|
|
ADRL $00000006 ; ID
|
|
DW $0037 ; rect
|
|
DW $000C
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000006 ; refCon
|
|
ADRL L06CF ; titleRef
|
|
DW $0000 ; initialValue
|
|
L01CD DW $0008 ; pCount
|
|
ADRL $00000007 ; ID
|
|
DW $0041 ; rect
|
|
DW $000C
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000007 ; refCon
|
|
ADRL L06C5 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L01ED DW $0008 ; pCount
|
|
ADRL $00000008 ; ID
|
|
DW $004B ; rect
|
|
DW $000C
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000008 ; refCon
|
|
ADRL L06BF ; titleRef
|
|
DW $0000 ; initialValue
|
|
L020D DW $0008 ; pCount
|
|
ADRL $00000009 ; ID
|
|
DW $0055 ; rect
|
|
DW $000C
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000009 ; refCon
|
|
ADRL L06BB ; titleRef
|
|
DW $0000 ; initialValue
|
|
L022D DW $0008 ; pCount
|
|
ADRL $0000000A ; ID
|
|
DW $005F ; rect
|
|
DW $000C
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $0000000A ; refCon
|
|
ADRL L06B6 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L024D DW $0008 ; pCount
|
|
ADRL $0000000B ; ID
|
|
DW $0005 ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $0000000B ; refCon
|
|
ADRL L06A9 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L026D DW $0008 ; pCount
|
|
ADRL $0000000C ; ID
|
|
DW $000F ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $0000000C ; refCon
|
|
ADRL L06A4 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L028D DW $0008 ; pCount
|
|
ADRL $0000000E ; ID
|
|
DW $0019 ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $0000000E ; refCon
|
|
ADRL L0695 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L02AD DW $0008 ; pCount
|
|
ADRL $0000000F ; ID
|
|
DW $0023 ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $0000000F ; refCon
|
|
ADRL L0688 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L02CD DW $0008 ; pCount
|
|
ADRL $00000010 ; ID
|
|
DW $002D ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000010 ; refCon
|
|
ADRL L0678 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L02ED DW $0008 ; pCount
|
|
ADRL $00000011 ; ID
|
|
DW $0037 ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000011 ; refCon
|
|
ADRL L066A ; titleRef
|
|
DW $0000 ; initialValue
|
|
L030D DW $0008 ; pCount
|
|
ADRL $00000012 ; ID
|
|
DW $0041 ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000012 ; refCon
|
|
ADRL L065B ; titleRef
|
|
DW $0000 ; initialValue
|
|
L032D DW $0008 ; pCount
|
|
ADRL $00000013 ; ID
|
|
DW $004B ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000013 ; refCon
|
|
ADRL L064D ; titleRef
|
|
DW $0000 ; initialValue
|
|
L034D DW $0008 ; pCount
|
|
ADRL $00000014 ; ID
|
|
DW $0055 ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000014 ; refCon
|
|
ADRL L0643 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L036D DW $0008 ; pCount
|
|
ADRL $00000015 ; ID
|
|
DW $005F ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000015 ; refCon
|
|
ADRL L0634 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L038D DW $0008 ; pCount
|
|
ADRL $00000016 ; ID
|
|
DW $0005 ; rect
|
|
DW $0138
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000016 ; refCon
|
|
ADRL L0626 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L03AD DW $0008 ; pCount
|
|
ADRL $00000017 ; ID
|
|
DW $000F ; rect
|
|
DW $0138
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000017 ; refCon
|
|
ADRL L0618 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L03CD DW $0008 ; pCount
|
|
ADRL $00000019 ; ID
|
|
DW $0019 ; rect
|
|
DW $0138
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000019 ; refCon
|
|
ADRL L0607 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L03ED DW $0008 ; pCount
|
|
ADRL $0000001A ; ID
|
|
DW $0023 ; rect
|
|
DW $0138
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $0000001A ; refCon
|
|
ADRL L05F8 ; titleRef
|
|
DW $0000 ; initialValue
|
|
L040D DW $0008 ; pCount
|
|
ADRL $0000001B ; ID
|
|
DW $002D ; rect
|
|
DW $0138
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $0000001B ; refCon
|
|
ADRL L05EB ; titleRef
|
|
DW $0000 ; initialValue
|
|
L042D DW $0008 ; pCount
|
|
ADRL $0000001C ; ID
|
|
DW $0037 ; rect
|
|
DW $0138
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $0000001C ; refCon
|
|
ADRL L05DE ; titleRef
|
|
DW $0000 ; initialValue
|
|
L044D DW $0008 ; pCount
|
|
ADRL $0000001D ; ID
|
|
DW $0041 ; rect
|
|
DW $0138
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $0000001D ; refCon
|
|
ADRL L05DA ; titleRef
|
|
DW $0000 ; initialValue
|
|
L046D DW $0008 ; pCount
|
|
ADRL $0000001E ; ID
|
|
DW $004B ; rect
|
|
DW $0138
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $0000001E ; refCon
|
|
ADRL L059C ; titleRef
|
|
DW $0000 ; initialValue
|
|
L048D DW $0008 ; pCount
|
|
ADRL $00000020 ; ID
|
|
DW $0055 ; rect
|
|
DW $0138
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000020 ; refCon
|
|
ADRL L0597 ; titleRef
|
|
DW $0000 ; initialValue
|
|
|
|
L04AD DW $0008 ; pCount
|
|
ADRL $00000022 ; ID
|
|
DW $005F ; rect
|
|
DW $0138
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000022 ; refCon
|
|
ADRL L058D ; titleRef
|
|
DW $0000 ; initialValue
|
|
|
|
cTANIM DW $0008 ; pCount
|
|
ADRL $00000025 ; ID
|
|
DW $0069 ; rect
|
|
DW $0138
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000022 ; refCon
|
|
ADRL sTANIM ; titleRef
|
|
DW $0000 ; initialValue
|
|
|
|
c320 DW $0008 ; pCount
|
|
ADRL $00000320 ; ID
|
|
DW $0077 ; rect
|
|
DW $000E
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $84000000 ; procRef
|
|
DW $0005 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000320 ; refCon
|
|
ADRL s320 ; titleRef
|
|
DW $0000 ; initialValue
|
|
|
|
c640 DW $0008 ; pCount
|
|
ADRL $00000640 ; ID
|
|
DW $0081 ; rect
|
|
DW $000E
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $84000000 ; procRef
|
|
DW $0005 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000640 ; refCon
|
|
ADRL s640 ; titleRef
|
|
DW $0001 ; initialValue
|
|
|
|
cFAAW DW $0008 ; pCount
|
|
ADRL $00001001 ; ID
|
|
DW $0077 ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00001001 ; refCon
|
|
ADRL sFAAW ; titleRef
|
|
DW $0000 ; initialValue
|
|
|
|
cHWSHA DW $0008 ; pCount
|
|
ADRL $00001002 ; ID
|
|
DW $0081 ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00001002 ; refCon
|
|
ADRL sHWSHA ; titleRef
|
|
DW $0000 ; initialValue
|
|
|
|
cSHRON DW $0008 ; pCount
|
|
ADRL $00001003 ; ID
|
|
DW $008b ; rect
|
|
DW $00A2
|
|
DW $0000
|
|
DW $0000
|
|
ADRL $82000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00001002 ; refCon
|
|
ADRL sSHRON ; titleRef
|
|
DW $0000 ; initialValue
|
|
|
|
cPREF DW $0007 ; pCount
|
|
ADRL $00001000 ; ID
|
|
DW $007f ; rect
|
|
DW $015C
|
|
DW $008c
|
|
DW $01C0
|
|
ADRL $80000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00001000 ; refCon
|
|
ADRL sPREF ; titleRef
|
|
|
|
sSHRON str 'Keep SHR screen on'
|
|
sHWSHA str 'Hardware shadowing'
|
|
sFAAW str 'Fastport aware'
|
|
|
|
sTANIM str 'Animation'
|
|
L058D STR 'Text edit'
|
|
L0597 STR 'MIDI'
|
|
L059C STR 'Resource manager'
|
|
sPREF STR 'Preferred'
|
|
s640 STR '640 Mode'
|
|
s320 STR '320 Mode'
|
|
STR 'Resource manager'
|
|
L05DA STR 'ACE'
|
|
L05DE STR 'List manager'
|
|
L05EB STR 'Font manager'
|
|
L05F8 STR 'Note sequencer'
|
|
L0607 STR 'Note synthesizer'
|
|
L0618 STR 'Standard file'
|
|
L0626 STR 'Scrap manager'
|
|
L0634 STR 'Dialog manager'
|
|
L0643 STR 'Line edit'
|
|
L064D STR 'Print manager'
|
|
L065B STR 'QuickDraw Aux.'
|
|
L066A STR 'System loader'
|
|
L0678 STR 'Control manager'
|
|
L0688 STR 'Menu manager'
|
|
L0695 STR 'Window manager'
|
|
L06A4 STR 'Text'
|
|
L06A9 STR 'Integer math'
|
|
L06B6 STR 'SANE'
|
|
L06BB STR 'ADB'
|
|
L06BF STR 'Sound'
|
|
L06C5 STR 'Scheduler'
|
|
L06CF STR 'Event manager'
|
|
L06DD STR 'Desk manager'
|
|
L06EA STR 'QuickDraw II'
|
|
L06F7 STR 'Miscellaneous'
|
|
L0705 STR 'Memory manager'
|
|
L0714 STR 'Tool locator'
|
|
L0721 STR ' Tool Table '
|
|
|
|
myWINDOW DW $0050
|
|
DW $C080 ; frame bits
|
|
ADRL L0721 ; title ptr
|
|
ADRL $00000000 ; refcon
|
|
DW $0000 ; zoom rect
|
|
DW $0000
|
|
DW $0000
|
|
DW $0000
|
|
ADRL L077E ; color table ptr
|
|
DW $0000 ; origin
|
|
DW $0000
|
|
DW $0000 ; data size
|
|
DW $0000
|
|
DW $0000 ; max size
|
|
DW $0000
|
|
DW $0000 ; scroll size
|
|
DW $0000
|
|
DW $0000 ; page size
|
|
DW $0000
|
|
ADRL $00000000 ; info bar refcon
|
|
DW $0000 ; info bar hite
|
|
ADRL $00000000 ; window defproc
|
|
ADRL $00000000 ; info bar defproc
|
|
ADRL $00000000 ; content defproc
|
|
DW $0024 ; content rect
|
|
DW $001E
|
|
DW $00ba ; was $A6
|
|
DW $01F4
|
|
ADRL $FFFFFFFF ; starting plane
|
|
ADRL $00000000 ; storage ptr
|
|
DW $0000
|
|
|
|
L077E DW $0000
|
|
DW $0F00
|
|
DW $020F
|
|
DW $F0FF
|
|
DW $00F0
|
|
|
|
*--- Refresh window
|
|
|
|
refreshWINDOW
|
|
PHD
|
|
PHB
|
|
PHK
|
|
PLB
|
|
PEA $0000
|
|
_GetCurResourceFile
|
|
LDA resfileID
|
|
PHA
|
|
_SetCurResourceFile
|
|
PEA $0000
|
|
PEA $0000
|
|
_GetPort
|
|
_DrawControls
|
|
PEA $000A
|
|
PEA $0074 ; was $006A
|
|
_MoveTo
|
|
PEA $01CC
|
|
PEA $0074 ; was $006A
|
|
_LineTo
|
|
_SetCurResourceFile
|
|
PLB
|
|
PLD
|
|
RTL
|
|
|
|
BRK $69
|
|
RTL
|
|
|
|
*--- Write the resource
|
|
|
|
writeRESOURCE
|
|
TSC
|
|
SEC
|
|
SBC #$001A
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
PHA
|
|
LDA #$0001
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $18
|
|
PHA
|
|
LDA $21
|
|
PHA
|
|
LDX $1F
|
|
LDA $1D
|
|
PHX
|
|
PHA
|
|
_GetResourceAttr
|
|
STA L2BCB
|
|
PLA
|
|
STA $16
|
|
LDA $16
|
|
AND #$0020
|
|
PHA
|
|
LDA $21
|
|
PHA
|
|
LDX $1F
|
|
LDA $1D
|
|
PHX
|
|
PHA
|
|
_SetResourceAttr
|
|
STA L2BCB
|
|
LDA #$0001
|
|
PHA
|
|
LDA $21
|
|
PHA
|
|
LDX $1F
|
|
LDA $1D
|
|
PHX
|
|
PHA
|
|
_MarkResourceChange
|
|
STA L2BCB
|
|
LDA $21
|
|
PHA
|
|
LDX $1F
|
|
LDA $1D
|
|
PHX
|
|
PHA
|
|
_WriteResource
|
|
STA L2BCB
|
|
LDA L2BCB
|
|
BNE L0859
|
|
BRL L0896
|
|
|
|
* Cannot write resource
|
|
|
|
L0859 LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L08E8
|
|
PEA L08E8
|
|
LDA #$0044
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L0896
|
|
BRL L0896
|
|
|
|
* Resource is written
|
|
|
|
L0896 LDA $16
|
|
PHA
|
|
LDA $21
|
|
PHA
|
|
LDX $1F
|
|
LDA $1D
|
|
PHX
|
|
PHA
|
|
_SetResourceAttr
|
|
STA L2BCB
|
|
LDA #$0001
|
|
EOR #$FFFF
|
|
INC
|
|
PHA
|
|
LDA $21
|
|
PHA
|
|
LDX $1F
|
|
LDA $1D
|
|
PHX
|
|
PHA
|
|
_ReleaseResource
|
|
STA L2BCB
|
|
PHA
|
|
LDA $18
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $18
|
|
LDA $1B
|
|
STA $21
|
|
LDA $1A
|
|
STA $20
|
|
PLD
|
|
TSC
|
|
CLC
|
|
ADC #$0020
|
|
TCS
|
|
RTL
|
|
|
|
L08E8 ASC '52~Tool editor: Resource write error. Resource possibly damaged.~^#0'
|
|
|
|
*--- Load a resource
|
|
|
|
readRESOURCE
|
|
TSC
|
|
SEC
|
|
SBC #$0028
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
LDA #$0000
|
|
STA $16
|
|
LDA #$0000
|
|
STA $18
|
|
PHA
|
|
LDA #$0001
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $26
|
|
LDA L2BCB
|
|
BNE L0959
|
|
BRL L095C
|
|
L0959 BRL L0A27
|
|
|
|
* File depth search failed
|
|
|
|
L095C LDA #$0001
|
|
EOR #$FFFF
|
|
INC
|
|
PHA
|
|
LDA $2F
|
|
PHA
|
|
LDX $2D
|
|
LDA $2B
|
|
PHX
|
|
PHA
|
|
_ReleaseResource
|
|
STA L2BCB
|
|
PHA
|
|
LDA $2F
|
|
PHA
|
|
LDX $2D
|
|
LDA $2B
|
|
PHX
|
|
PHA
|
|
_GetResourceAttr
|
|
STA L2BCB
|
|
PLA
|
|
STA $24
|
|
LDA L2BCB
|
|
BNE L0996
|
|
BRL L0999
|
|
L0996 BRL L0A27
|
|
|
|
* Getting resource attributes failed
|
|
|
|
L0999 LDA $24
|
|
AND #$0020
|
|
PHA
|
|
LDA $2F
|
|
PHA
|
|
LDX $2D
|
|
LDA $2B
|
|
PHX
|
|
PHA
|
|
_SetResourceAttr
|
|
STA L2BCB
|
|
LDA L2BCB
|
|
BNE L09BA
|
|
BRL L09BD
|
|
L09BA BRL L0A27
|
|
|
|
* Setting bit 5 failed
|
|
|
|
L09BD PHA
|
|
PHA
|
|
LDA $2F
|
|
PHA
|
|
LDX $2D
|
|
LDA $2B
|
|
PHX
|
|
PHA
|
|
_LoadResource
|
|
STA L2BCB
|
|
PLA
|
|
STA $20
|
|
PLA
|
|
STA $22
|
|
LDA L2BCB
|
|
BNE L09E0
|
|
BRL L09E3
|
|
L09E0 BRL L0A27
|
|
|
|
* Resource exists
|
|
|
|
L09E3 LDX $22
|
|
LDA $20
|
|
PHX
|
|
PHA
|
|
_HLock
|
|
STA L2BCB
|
|
LDA L2BCB
|
|
BNE L09FB
|
|
BRL L09FE
|
|
L09FB BRL L0A27
|
|
|
|
* memory lock failed
|
|
|
|
L09FE LDA $24
|
|
PHA
|
|
LDA $2F
|
|
PHA
|
|
LDX $2D
|
|
LDA $2B
|
|
PHX
|
|
PHA
|
|
_SetResourceAttr
|
|
STA L2BCB
|
|
LDA L2BCB
|
|
BNE L0A1C
|
|
BRL L0A1F
|
|
L0A1C BRL L0A27
|
|
|
|
L0A1F LDX $22
|
|
LDA $20
|
|
STX $18
|
|
STA $16
|
|
|
|
* If we're here, we've suffered a lot
|
|
|
|
L0A27 PHA
|
|
LDA $26
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $26
|
|
LDA $29
|
|
STA $2F
|
|
LDA $28
|
|
STA $2E
|
|
LDX $18
|
|
LDY $16
|
|
PLD
|
|
TSC
|
|
CLC
|
|
ADC #$002E
|
|
TCS
|
|
TYA
|
|
RTL
|
|
|
|
*---
|
|
|
|
makeSTDRESOURCE
|
|
TSC
|
|
SEC
|
|
SBC #$0028
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
LDA #$0001
|
|
STA $16
|
|
LDA $2F
|
|
PHA
|
|
LDX $2D
|
|
LDA $2B
|
|
PHX
|
|
PHA
|
|
JSL readRESOURCE
|
|
STX $22
|
|
STA $20
|
|
LDA $20
|
|
ORA $22
|
|
BEQ L0A75
|
|
BRL L0AB5
|
|
|
|
* Cannot load resource
|
|
|
|
L0A75 LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L0D79
|
|
PEA L0D79
|
|
LDA #$003B
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L0AB2
|
|
BRL L0AB2
|
|
L0AB2 BRL L0D66
|
|
|
|
* Resource is loaded
|
|
|
|
L0AB5 LDX $22
|
|
LDA $20
|
|
PHX
|
|
PHA
|
|
_HUnlock
|
|
STA L2BCB
|
|
LDA #sizeSTDREC
|
|
LDX #$0000
|
|
TAY
|
|
BPL L0ACF
|
|
DEX
|
|
L0ACF PHX
|
|
PHA
|
|
LDX $22
|
|
LDA $20
|
|
PHX
|
|
PHA
|
|
_SetHandleSize
|
|
STA L2BCB
|
|
LDA L2BCB
|
|
BNE L0AE9
|
|
BRL L0B67
|
|
|
|
* Cannot resize handle
|
|
|
|
L0AE9 LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L0DB4
|
|
PEA L0DB4
|
|
LDA #$003B
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0001
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $24
|
|
LDA #$0001
|
|
EOR #$FFFF
|
|
INC
|
|
PHA
|
|
LDA $2F
|
|
PHA
|
|
LDX $2D
|
|
LDA $2B
|
|
PHX
|
|
PHA
|
|
_ReleaseResource
|
|
STA L2BCB
|
|
PHA
|
|
LDA $24
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $24
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L0B64
|
|
BRL L0B64
|
|
L0B64 BRL L0D66
|
|
|
|
* Handle is resized
|
|
|
|
L0B67 LDX $22
|
|
LDA $20
|
|
PHX
|
|
PHA
|
|
_HLock
|
|
STA L2BCB
|
|
|
|
* Now, we init a blank resource
|
|
|
|
LDY #$0002 ; get the pointer
|
|
LDA [$20],Y
|
|
TAX
|
|
LDA [$20]
|
|
STX $08
|
|
STA $06
|
|
|
|
LDA #$0000 ; format the header
|
|
STA [$06]
|
|
LDY #$0002
|
|
LDA #$C180 ; with bit 8
|
|
STA [$06],Y
|
|
LDY #$0004
|
|
LDA #$0000
|
|
STA [$06],Y
|
|
LDY #$0006
|
|
LDA #$0000
|
|
STA [$06],Y
|
|
INY
|
|
INY
|
|
LDA #$0000
|
|
STA [$06],Y
|
|
LDY #$000A
|
|
LDA #$0012
|
|
STA [$06],Y
|
|
|
|
LDY #$000C ; format the toolrec
|
|
PHY
|
|
LDA #$0001
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$0003
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$0002
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$0004
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$0003
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$0005
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$0004
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$0006
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$0005
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$000B
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$0006
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$000E
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$0007
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$000F
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$0008
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$0010
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$0009
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$0012
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$000A
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$0013
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$000B
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$0014
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$000C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$0015
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$000D
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$0016
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$000E
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$0017
|
|
STA [$06],Y
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$000F
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$001B
|
|
STA [$06],Y
|
|
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$0010
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$001C
|
|
STA [$06],Y
|
|
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$0011
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$001E
|
|
STA [$06],Y
|
|
|
|
LDY #$000C
|
|
PHY
|
|
LDA #$0012
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA #$0022
|
|
STA [$06],Y
|
|
|
|
LDA #$0001
|
|
STA $26
|
|
|
|
L0D2E LDY #$000C
|
|
PHY
|
|
LDA $26
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
TYA
|
|
CLC
|
|
ADC #$0002
|
|
TAY
|
|
LDA #$0000
|
|
STA [$06],Y
|
|
|
|
INC $26
|
|
LDA $26
|
|
CMP #$0013
|
|
bne L0D2E
|
|
|
|
*---
|
|
|
|
L0D54 pei $2F
|
|
pei $2D
|
|
pei $2B
|
|
JSL writeRESOURCE
|
|
LDA #$0000
|
|
STA $16
|
|
L0D66 LDA $29
|
|
STA $2F
|
|
LDA $28
|
|
STA $2E
|
|
LDX $16
|
|
PLD
|
|
TSC
|
|
CLC
|
|
ADC #$002E
|
|
TCS
|
|
TXA
|
|
RTL
|
|
|
|
L0D79 ASC '52~Tool editor: Resource load error. Operation aborted.~^#0'
|
|
L0DB4 ASC '52~Tool editor: Memory resize error. Operation aborted.~^#0'
|
|
|
|
*--- Update buffer
|
|
|
|
updateBUFFER
|
|
TSC
|
|
SEC
|
|
SBC #$0016
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
LDA ptrBUFFER+2
|
|
PHA
|
|
LDA ptrBUFFER
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$0048
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0048 ; flag
|
|
LDA [$00],Y
|
|
ORA #$6000 ; bits 14-13
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00]
|
|
LDA ptrBUFFER+2
|
|
PHA
|
|
LDA ptrBUFFER
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$0050
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0036 ; move resource type
|
|
LDA [$00],Y ; from offset $36
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00] ; to offset $50
|
|
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$003A ; move resource ID
|
|
LDA [$00],Y ; from offset $3A
|
|
PHA
|
|
LDY #$0038
|
|
LDA [$00],Y
|
|
PHA
|
|
LDA ptrBUFFER+2
|
|
PHA
|
|
LDA ptrBUFFER
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$0052 ; to offset $52
|
|
PHA
|
|
PLA
|
|
STA $00
|
|
PLA
|
|
STA $02
|
|
PLA
|
|
STA [$00]
|
|
LDY #$0002
|
|
PLA
|
|
STA [$00],Y
|
|
|
|
PLD
|
|
TSC
|
|
CLC
|
|
ADC #$0016
|
|
TCS
|
|
RTL
|
|
|
|
*---
|
|
|
|
L0E80 TSC
|
|
SEC
|
|
SBC #$0026
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
LDA #$0000
|
|
LDX #$0000
|
|
TAY
|
|
BPL L0E93
|
|
DEX
|
|
L0E93 PHX
|
|
PHA
|
|
PLA
|
|
STA $16
|
|
PLA
|
|
STA $18
|
|
PHA
|
|
PHA
|
|
LDA #$0001
|
|
LDX #$0000
|
|
TAY
|
|
BPL L0EA7
|
|
DEX
|
|
L0EA7 PHX
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$003C ; memID
|
|
LDA [$00],Y
|
|
PHA
|
|
LDA #$8000
|
|
PHA
|
|
LDA #$0000
|
|
LDX #$0000
|
|
TAY
|
|
BPL L0EC7
|
|
DEX
|
|
L0EC7 PHX
|
|
PHA
|
|
_NewHandle
|
|
STA L2BCB
|
|
PLA
|
|
STA haMEMORY2
|
|
PLA
|
|
STA haMEMORY2+2
|
|
LDA L2BCB
|
|
BNE L0EE3
|
|
BRL L0F23
|
|
L0EE3 LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L119F
|
|
PEA L119F
|
|
LDA #$003C
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L0F20
|
|
BRL L0F20
|
|
L0F20 BRL L1192
|
|
L0F23 PHA
|
|
LDA #$0001
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $20
|
|
LDA L2BCB
|
|
BNE L0F3D
|
|
BRL L0F8F
|
|
L0F3D LDX haMEMORY2+2
|
|
LDA haMEMORY2
|
|
PHX
|
|
PHA
|
|
_DisposeHandle
|
|
STA L2BCB
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L11DB
|
|
PEA L11DB
|
|
LDA #$0036
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L0F8C
|
|
BRL L0F8C
|
|
L0F8C BRL L1192
|
|
L0F8F PHA
|
|
PHA
|
|
LDA #$FFFF
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0036
|
|
LDA [$00],Y
|
|
PHA
|
|
_UniqueResourceID
|
|
STA L2BCB
|
|
PLA
|
|
STA $22
|
|
PLA
|
|
STA $24
|
|
LDA L2BCB
|
|
BNE L0FBD
|
|
BRL L100F
|
|
L0FBD LDX haMEMORY2+2
|
|
LDA haMEMORY2
|
|
PHX
|
|
PHA
|
|
_DisposeHandle
|
|
STA L2BCB
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L1211
|
|
PEA L1211
|
|
LDA #$0037
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L100C
|
|
BRL L100C
|
|
L100C BRL L1141
|
|
L100F LDX haMEMORY2+2
|
|
LDA haMEMORY2
|
|
PHX
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0036
|
|
LDA [$00],Y
|
|
PHA
|
|
LDX $24
|
|
LDA $22
|
|
PHX
|
|
PHA
|
|
_AddResource
|
|
STA L2BCB
|
|
LDA L2BCB
|
|
BNE L1043
|
|
BRL L10A3
|
|
L1043 LDX haMEMORY2+2
|
|
LDA haMEMORY2
|
|
PHX
|
|
PHA
|
|
_DisposeHandle
|
|
STA L2BCB
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L1248
|
|
PEA L1248
|
|
LDA #$0043
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L1092
|
|
BRL L1092
|
|
L1092 LDA #$0000
|
|
LDX #$0000
|
|
TAY
|
|
BPL L109C
|
|
DEX
|
|
L109C STX $24
|
|
STA $22
|
|
BRL L1141
|
|
L10A3 LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0036
|
|
LDA [$00],Y
|
|
PHA
|
|
LDX $24
|
|
LDA $22
|
|
PHX
|
|
PHA
|
|
_WriteResource
|
|
STA L2BCB
|
|
LDA L2BCB
|
|
BNE L10CB
|
|
BRL L1119
|
|
L10CB LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L128B
|
|
PEA L128B
|
|
LDA #$003F
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L1108
|
|
BRL L1108
|
|
L1108 LDA #$0000
|
|
LDX #$0000
|
|
TAY
|
|
BPL L1112
|
|
DEX
|
|
L1112 STX $24
|
|
STA $22
|
|
BRL L1141
|
|
L1119 LDA #$0001
|
|
EOR #$FFFF
|
|
INC
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0036
|
|
LDA [$00],Y
|
|
PHA
|
|
LDX $24
|
|
LDA $22
|
|
PHX
|
|
PHA
|
|
_ReleaseResource
|
|
STA L2BCB
|
|
L1141 PHA
|
|
LDA $20
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $20
|
|
LDA #$0000
|
|
LDX #$0000
|
|
TAY
|
|
BPL L115C
|
|
DEX
|
|
L115C CMP $22
|
|
BNE L1162
|
|
CPX $24
|
|
L1162 BNE L1167
|
|
BRL L1192
|
|
L1167 LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0036
|
|
LDA [$00],Y
|
|
PHA
|
|
LDX $24
|
|
LDA $22
|
|
PHX
|
|
PHA
|
|
JSL makeSTDRESOURCE
|
|
TAX
|
|
BNE L1187
|
|
BRL L118A
|
|
L1187 BRL L1192
|
|
L118A LDX $24
|
|
LDA $22
|
|
STX $18
|
|
STA $16
|
|
L1192 LDX $18
|
|
LDY $16
|
|
PLD
|
|
TSC
|
|
CLC
|
|
ADC #$0026
|
|
TCS
|
|
TYA
|
|
RTL
|
|
|
|
L119F ASC '52~Tool editor: Memory creation error. Creation aborted.~^#0'
|
|
L11DB ASC '52~Tool editor: Depth get error. Creation aborted.~^#0'
|
|
L1211 ASC '52~Tool editor: Could not get ID. Creation aborted.~^#0'
|
|
L1248 ASC '52~Tool editor: Could not add resource error. Creation aborted.~^#0'
|
|
L128B ASC '52~Tool editor: Could not write resource. Creation aborted.~^#0'
|
|
|
|
*---
|
|
|
|
createRESOURCE TSC
|
|
SEC
|
|
SBC #$0020
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0048
|
|
LDA [$00],Y
|
|
AND #$8000
|
|
BNE L12EA
|
|
BRL L1929
|
|
L12EA LDA $2B
|
|
PHA
|
|
LDX $29
|
|
LDA $27
|
|
PHX
|
|
PHA
|
|
JSL readRESOURCE ; load resource
|
|
STX $18
|
|
STA $16
|
|
LDA $16 ; check handle
|
|
ORA $18
|
|
BEQ L1304 ; empty, error
|
|
BRL L1344 ; not empty, continue
|
|
|
|
* Resource is not loaded, display error
|
|
|
|
L1304 LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L1939 ; cannot load resource
|
|
PEA L1939
|
|
LDA #$003F
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L1341
|
|
BRL L1341
|
|
L1341 BRL L1929
|
|
|
|
* Resource is loaded
|
|
|
|
L1344 LDX $18
|
|
LDA $16
|
|
PHX
|
|
PHA
|
|
_HUnlock
|
|
STA L2BCB
|
|
LDA #sizeFULLREC
|
|
LDX #$0000
|
|
TAY
|
|
BPL L135E
|
|
DEX
|
|
L135E PHX
|
|
PHA
|
|
LDX $18
|
|
LDA $16
|
|
PHX
|
|
PHA
|
|
_SetHandleSize
|
|
STA L2BCB
|
|
LDA L2BCB
|
|
BNE L1378
|
|
BRL L13F6
|
|
|
|
* Resource cannot be resized, display error
|
|
|
|
L1378 PHA
|
|
LDA #$0001
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $1E
|
|
LDA #$0001
|
|
EOR #$FFFF
|
|
INC
|
|
PHA
|
|
LDA $2B
|
|
PHA
|
|
LDX $29
|
|
LDA $27
|
|
PHX
|
|
PHA
|
|
_ReleaseResource
|
|
STA L2BCB
|
|
PHA
|
|
LDA $1E
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $1E
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L1978 ; cannot resize resource
|
|
PEA L1978
|
|
LDA #$0041
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L13F3
|
|
BRL L13F3
|
|
L13F3 BRL L1929
|
|
|
|
* Resource is resized
|
|
|
|
L13F6 LDX $18
|
|
LDA $16
|
|
PHX
|
|
PHA
|
|
_HLock
|
|
STA L2BCB
|
|
|
|
* Now, prepare the resource handle
|
|
|
|
LDA #$0000
|
|
STA $1C
|
|
LDA #$0001
|
|
STA $1A
|
|
L1410 PHA
|
|
PHA
|
|
PHA
|
|
LDX $25
|
|
LDA $23
|
|
PHX
|
|
PHA
|
|
LDA #$0000
|
|
CLC
|
|
ADC $1A
|
|
LDX #$0000
|
|
TAY
|
|
BPL L1426
|
|
DEX
|
|
L1426 PHX
|
|
PHA
|
|
_GetCtlHandleFromID
|
|
STA L2BCB
|
|
_GetCtlValue
|
|
STA L2BCB
|
|
PLA
|
|
BNE L1442
|
|
BRL L149C
|
|
L1442 LDA $1C
|
|
CLC
|
|
ADC #$0001
|
|
STA $1C
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$000C
|
|
PHA
|
|
LDA $1C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLA
|
|
STA $00
|
|
PLA
|
|
STA $02
|
|
LDA $1A
|
|
STA [$00]
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$000C
|
|
PHA
|
|
LDA $1C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLA
|
|
CLC
|
|
ADC #$0002
|
|
PHA
|
|
LDA $1A
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA theTOOLREC,X
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00]
|
|
L149C INC $1A
|
|
LDA $1A
|
|
CMP #$000D
|
|
BEQ L14A8
|
|
BRL L1410
|
|
|
|
L14A8 LDA #$000E
|
|
STA $1A
|
|
L14AD PHA
|
|
PHA
|
|
PHA
|
|
LDX $25
|
|
LDA $23
|
|
PHX
|
|
PHA
|
|
LDA #$0000
|
|
CLC
|
|
ADC $1A
|
|
LDX #$0000
|
|
TAY
|
|
BPL L14C3
|
|
DEX
|
|
L14C3 PHX
|
|
PHA
|
|
_GetCtlHandleFromID
|
|
STA L2BCB
|
|
_GetCtlValue
|
|
STA L2BCB
|
|
PLA
|
|
BNE L14DF
|
|
BRL L1539
|
|
L14DF LDA $1C
|
|
CLC
|
|
ADC #$0001
|
|
STA $1C
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$000C
|
|
PHA
|
|
LDA $1C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLA
|
|
STA $00
|
|
PLA
|
|
STA $02
|
|
LDA $1A
|
|
STA [$00]
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$000C
|
|
PHA
|
|
LDA $1C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLA
|
|
CLC
|
|
ADC #$0002
|
|
PHA
|
|
LDA $1A
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA theTOOLREC,X
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00]
|
|
L1539 INC $1A
|
|
LDA $1A
|
|
CMP #$0018
|
|
BEQ L1545
|
|
BRL L14AD
|
|
L1545 LDA #$0019
|
|
STA $1A
|
|
L154A PHA
|
|
PHA
|
|
PHA
|
|
LDX $25
|
|
LDA $23
|
|
PHX
|
|
PHA
|
|
LDA #$0000
|
|
CLC
|
|
ADC $1A
|
|
LDX #$0000
|
|
TAY
|
|
BPL L1560
|
|
DEX
|
|
L1560 PHX
|
|
PHA
|
|
_GetCtlHandleFromID
|
|
STA L2BCB
|
|
_GetCtlValue
|
|
STA L2BCB
|
|
PLA
|
|
BNE L157C
|
|
BRL L15D6
|
|
L157C LDA $1C
|
|
CLC
|
|
ADC #$0001
|
|
STA $1C
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$000C
|
|
PHA
|
|
LDA $1C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLA
|
|
STA $00
|
|
PLA
|
|
STA $02
|
|
LDA $1A
|
|
STA [$00]
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$000C
|
|
PHA
|
|
LDA $1C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLA
|
|
CLC
|
|
ADC #$0002
|
|
PHA
|
|
LDA $1A
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA theTOOLREC,X
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00]
|
|
L15D6 INC $1A
|
|
LDA $1A
|
|
CMP #$001F ; number of entries supported
|
|
BEQ L15E2
|
|
BRL L154A
|
|
L15E2 PHA
|
|
PHA
|
|
PHA
|
|
LDX $25
|
|
LDA $23
|
|
PHX
|
|
PHA
|
|
LDA #$0020
|
|
LDX #$0000
|
|
TAY
|
|
BPL L15F5
|
|
DEX
|
|
L15F5 PHX
|
|
PHA
|
|
_GetCtlHandleFromID
|
|
STA L2BCB
|
|
_GetCtlValue
|
|
STA L2BCB
|
|
PLA
|
|
BNE L1611
|
|
BRL L166D
|
|
L1611 LDA $1C
|
|
CLC
|
|
ADC #$0001
|
|
STA $1C
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$000C
|
|
PHA
|
|
LDA $1C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLA
|
|
STA $00
|
|
PLA
|
|
STA $02
|
|
LDA #$0020
|
|
STA [$00]
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$000C
|
|
PHA
|
|
LDA $1C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLA
|
|
CLC
|
|
ADC #$0002
|
|
PHA
|
|
LDA #$0020
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA theTOOLREC,X
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00]
|
|
|
|
L166D PHA
|
|
PHA
|
|
PHA
|
|
pei $25
|
|
pei $23
|
|
pea $0000
|
|
pea $0022
|
|
_GetCtlHandleFromID
|
|
_GetCtlValue
|
|
PLA
|
|
beq L16F7
|
|
LDA $1C
|
|
CLC
|
|
ADC #$0001
|
|
STA $1C
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$000C
|
|
PHA
|
|
LDA $1C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLA
|
|
STA $00
|
|
PLA
|
|
STA $02
|
|
LDA #$0022
|
|
STA [$00]
|
|
* LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$000C
|
|
PHA
|
|
LDA $1C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLA
|
|
CLC
|
|
ADC #$0002
|
|
PHA
|
|
LDA #$0022
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA theTOOLREC,X
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00]
|
|
|
|
*--- Animation Tool
|
|
|
|
L16F7 PHA
|
|
PHA
|
|
PHA
|
|
pei $25
|
|
pei $23
|
|
pea $0000
|
|
pea $0025
|
|
_GetCtlHandleFromID
|
|
_GetCtlValue
|
|
PLA
|
|
beq L16F8
|
|
LDA $1C
|
|
CLC
|
|
ADC #$0001
|
|
STA $1C
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$000C
|
|
PHA
|
|
LDA $1C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLA
|
|
STA $00
|
|
PLA
|
|
STA $02
|
|
LDA #$0025
|
|
STA [$00]
|
|
* LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$000C
|
|
PHA
|
|
LDA $1C
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLA
|
|
CLC
|
|
ADC #$0002
|
|
PHA
|
|
LDA #$0025
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA theTOOLREC,X
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00]
|
|
|
|
*--- end of Animation Tool
|
|
|
|
L16F8 LDY #$0002 ; +0A - numTools
|
|
LDA [$16],Y
|
|
TAX
|
|
LDA [$16]
|
|
CLC
|
|
ADC #$000A
|
|
STA $00
|
|
STX $02
|
|
LDA $1C
|
|
STA [$00]
|
|
|
|
LDY #$0002 ; +02 - videoMode for 0
|
|
LDA [$16],Y
|
|
TAX
|
|
LDA [$16]
|
|
CLC
|
|
ADC #$0002
|
|
STA $00
|
|
STX $02
|
|
LDA #$0000
|
|
STA [$00]
|
|
|
|
PHA ; +02 - videoMode for bit 14
|
|
PHA
|
|
PHA
|
|
LDX $25
|
|
LDA $23
|
|
PHX
|
|
PHA
|
|
LDA #$1001
|
|
LDX #$0000
|
|
TAY
|
|
BPL L1734
|
|
DEX
|
|
L1734 PHX
|
|
PHA
|
|
_GetCtlHandleFromID
|
|
STA L2BCB
|
|
_GetCtlValue
|
|
STA L2BCB
|
|
PLA
|
|
beq L1765
|
|
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
TAX
|
|
LDA [$16]
|
|
CLC
|
|
ADC #$0002
|
|
STA $00
|
|
STX $02
|
|
LDA #$4000
|
|
STA [$00]
|
|
|
|
L1765 PHA ; +02 - videoMode for bit 15
|
|
PHA
|
|
PHA
|
|
pei $25
|
|
pei $23
|
|
pea $0000
|
|
pea $1002
|
|
_GetCtlHandleFromID
|
|
_GetCtlValue
|
|
PLA
|
|
beq L17BF
|
|
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$0002
|
|
PHA
|
|
* LDY #$0002
|
|
LDA [$16],Y
|
|
TAX
|
|
LDA [$16]
|
|
STA $00
|
|
STX $02
|
|
* LDY #$0002
|
|
LDA [$00],Y
|
|
ORA #$8000
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00]
|
|
|
|
L17BF PHA ; +02 - videoMode for bit 7
|
|
PHA
|
|
PHA
|
|
pei $25
|
|
pei $23
|
|
pea $0000
|
|
pea $0640
|
|
_GetCtlHandleFromID
|
|
_GetCtlValue
|
|
PLA
|
|
beq L1819
|
|
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$0002
|
|
PHA
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
TAX
|
|
LDA [$16]
|
|
STA $00
|
|
STX $02
|
|
LDY #$0002
|
|
LDA [$00],Y
|
|
ORA #$0080
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00]
|
|
|
|
*--- Begin of Leave SHR screen on
|
|
|
|
L1819 PHA ; +02 - videoMode for bit 8
|
|
PHA
|
|
PHA
|
|
pei $25
|
|
pei $23
|
|
pea $0000
|
|
pea $1003
|
|
_GetCtlHandleFromID
|
|
_GetCtlValue
|
|
PLA
|
|
beq L181A
|
|
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$0002
|
|
PHA
|
|
* LDY #$0002
|
|
LDA [$16],Y
|
|
TAX
|
|
LDA [$16]
|
|
STA $00
|
|
STX $02
|
|
* LDY #$0002
|
|
LDA [$00],Y
|
|
ORA #$0100 ; This is bit 8
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00]
|
|
|
|
*--- end of "Leave SHR screen on"
|
|
|
|
L181A LDY #$0002 ; +04 - resFileID
|
|
LDA [$16],Y
|
|
TAX
|
|
LDA [$16]
|
|
CLC
|
|
ADC #$0004
|
|
STA $00
|
|
STX $02
|
|
LDA #$0000
|
|
STA [$00]
|
|
|
|
LDY #$0002 ; +06 - dPageHandle
|
|
LDA [$16],Y
|
|
PHA
|
|
LDA [$16]
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$0006
|
|
PHA
|
|
PLA
|
|
STA $00
|
|
PLA
|
|
STA $02
|
|
LDA #$0000
|
|
STA [$00]
|
|
LDY #$0002
|
|
LDA #$0000
|
|
STA [$00],Y
|
|
|
|
LDX $18
|
|
LDA $16
|
|
PHX
|
|
PHA
|
|
_HUnlock
|
|
STA L2BCB
|
|
LDA $1C ; number of entries
|
|
LDX #$0004 ; x 4
|
|
JSL L3154
|
|
CLC
|
|
ADC #sizeHEADER ; + header
|
|
LDX #$0000
|
|
TAY
|
|
BPL L1874
|
|
DEX
|
|
L1874 PHX
|
|
PHA
|
|
LDX $18
|
|
LDA $16
|
|
PHX
|
|
PHA
|
|
_SetHandleSize
|
|
STA L2BCB
|
|
LDA L2BCB
|
|
BNE L188E
|
|
BRL L190C
|
|
|
|
* Memory handle cannot be resized, display error
|
|
|
|
L188E PHA
|
|
LDA #$0001
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $1E
|
|
LDA #$0001
|
|
EOR #$FFFF
|
|
INC
|
|
PHA
|
|
LDA $2B
|
|
PHA
|
|
LDX $29
|
|
LDA $27
|
|
PHX
|
|
PHA
|
|
_ReleaseResource
|
|
STA L2BCB
|
|
PHA
|
|
LDA $1E
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $1E
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L19B9 ; cannot resize handle
|
|
PEA L19B9
|
|
LDA #$003F
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L1909
|
|
BRL L1909
|
|
L1909 BRL L1929
|
|
|
|
* Resource is formatted
|
|
|
|
L190C LDX $18
|
|
LDA $16
|
|
PHX
|
|
PHA
|
|
_HLock
|
|
STA L2BCB
|
|
|
|
LDA $2B
|
|
PHA
|
|
LDX $29
|
|
LDA $27
|
|
PHX
|
|
PHA
|
|
JSL writeRESOURCE
|
|
|
|
L1929 LDA $21
|
|
STA $2B
|
|
LDA $20
|
|
STA $2A
|
|
PLD
|
|
TSC
|
|
CLC
|
|
ADC #$002A
|
|
TCS
|
|
RTL
|
|
|
|
L1939 ASC '52~Tool editor: Could not load resource. Changes not saved.~^#0'
|
|
L1978 ASC '52~Tool editor: Could not resize resource. Changes not saved.~^#0'
|
|
L19B9 ASC '52~Tool editor: Could not resize handle. Changes not saved.~^#0'
|
|
|
|
*--- Init controls of the editor window
|
|
|
|
initWINCONTROLS TSC
|
|
SEC
|
|
SBC #$0028
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
LDA #$0001
|
|
STA $16
|
|
LDA #$0001
|
|
STA $26
|
|
L1A0B LDA #$0000
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
LDA #$0000
|
|
CLC
|
|
ADC $26
|
|
LDX #$0000
|
|
TAY
|
|
BPL L1A26
|
|
DEX
|
|
L1A26 PHX
|
|
PHA
|
|
_GetCtlHandleFromID
|
|
STA L2BCB
|
|
_SetCtlValue
|
|
STA L2BCB
|
|
INC $26
|
|
LDA $26
|
|
CMP #$000D
|
|
BEQ L1A48
|
|
BRL L1A0B
|
|
|
|
L1A48 LDA #$000E
|
|
STA $26
|
|
|
|
L1A4D LDA #$0000
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
pea $0000
|
|
pei $26
|
|
_GetCtlHandleFromID
|
|
_SetCtlValue
|
|
|
|
INC $26
|
|
LDA $26
|
|
CMP #$0018
|
|
bne L1A4D
|
|
|
|
*---
|
|
|
|
L1A8A LDA #$0019
|
|
STA $26
|
|
|
|
L1A8F LDA #$0000
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
pea $0000
|
|
pei $26
|
|
_GetCtlHandleFromID
|
|
_SetCtlValue
|
|
|
|
INC $26
|
|
LDA $26
|
|
CMP #$001F
|
|
bne L1A8F
|
|
|
|
* MIDI Toolset
|
|
|
|
L1ACC LDA #$0000
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
pea $0000
|
|
pea $0020
|
|
_GetCtlHandleFromID
|
|
_SetCtlValue
|
|
|
|
* Text Edit
|
|
|
|
LDA #$0000
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
pea $0000
|
|
pea $0022
|
|
_GetCtlHandleFromID
|
|
_SetCtlValue
|
|
|
|
* Animation
|
|
|
|
LDA #$0000
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
pea $0000
|
|
pea $0025
|
|
_GetCtlHandleFromID
|
|
_SetCtlValue
|
|
|
|
* Fastport aware
|
|
|
|
LDA #$0000
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
pea $0000
|
|
pea $1001
|
|
_GetCtlHandleFromID
|
|
_SetCtlValue
|
|
|
|
* Hardware shadowing
|
|
|
|
LDA #$0000
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
pea $0000
|
|
pea $1002
|
|
_GetCtlHandleFromID
|
|
_SetCtlValue
|
|
|
|
* Keep SHR screen on
|
|
|
|
LDA #$0000
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
pea $0000
|
|
pea $1003
|
|
_GetCtlHandleFromID
|
|
_SetCtlValue
|
|
|
|
*---
|
|
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0036
|
|
LDA [$00],Y
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$003A
|
|
LDA [$00],Y
|
|
TAX
|
|
LDY #$0038
|
|
LDA [$00],Y
|
|
PHX
|
|
PHA
|
|
JSL readRESOURCE
|
|
STX $22
|
|
STA $20
|
|
LDA $20
|
|
ORA $22
|
|
BEQ L1BBC
|
|
BRL L1BFC
|
|
L1BBC LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L1DCF ; cannot load resource
|
|
PEA L1DCF
|
|
LDA #$003D
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L1BF9
|
|
BRL L1BF9
|
|
L1BF9 BRL L1D68
|
|
L1BFC LDX $22
|
|
LDA $20
|
|
PHX
|
|
PHA
|
|
_HLock
|
|
STA L2BCB
|
|
|
|
LDY #$0002
|
|
LDA [$20],Y
|
|
TAX
|
|
LDA [$20]
|
|
STX $08
|
|
STA $06
|
|
|
|
* Check bit 8
|
|
|
|
LDY #$0002
|
|
LDA [$06],Y
|
|
AND #$0100
|
|
beq L1C52
|
|
|
|
LDA #$0001
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
pea $0000
|
|
pea $1003
|
|
_GetCtlHandleFromID
|
|
_SetCtlValue
|
|
|
|
* Check bit 15
|
|
|
|
L1C52 LDY #$0002
|
|
LDA [$06],Y
|
|
AND #$8000
|
|
beq L1C53
|
|
|
|
LDA #$0001
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
pea $0000
|
|
pea $1002
|
|
_GetCtlHandleFromID
|
|
_SetCtlValue
|
|
|
|
* Check bit 14
|
|
|
|
L1C53 LDY #$0002
|
|
LDA [$06],Y
|
|
AND #$4000
|
|
beq L1C8E
|
|
|
|
LDA #$0001
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
pea $0000
|
|
pea $1001
|
|
_GetCtlHandleFromID
|
|
_SetCtlValue
|
|
|
|
* Check Video Mode
|
|
|
|
L1C8E LDY #$0002
|
|
LDA [$06],Y
|
|
|
|
ldy #$0320 ; mode 320
|
|
|
|
AND #$0080
|
|
beq L1CCC
|
|
|
|
ldy #$0640 ; mode 640
|
|
|
|
L1CCC LDA #$0001
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
pea $0000
|
|
phy
|
|
_GetCtlHandleFromID
|
|
_SetCtlValue
|
|
|
|
*---
|
|
|
|
LDY #$000A
|
|
LDA [$06],Y
|
|
STA $0A
|
|
LDA #$0001
|
|
STA $26
|
|
LDA $0A
|
|
SEC
|
|
SBC $26
|
|
BVS L1D10
|
|
EOR #$8000
|
|
L1D10 BMI L1D15
|
|
BRL L1D63
|
|
L1D15 LDA #$0001
|
|
PHA
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
LDY #$000C
|
|
PHY
|
|
LDA $26
|
|
DEC
|
|
ASL
|
|
ASL
|
|
CLC
|
|
ADC $01,S
|
|
STA $01,S
|
|
PLY
|
|
LDA [$06],Y
|
|
CLC
|
|
ADC #$0000
|
|
LDX #$0000
|
|
TAY
|
|
BPL L1D3F
|
|
DEX
|
|
L1D3F PHX
|
|
PHA
|
|
_GetCtlHandleFromID
|
|
STA L2BCB
|
|
_SetCtlValue
|
|
STA L2BCB
|
|
LDA $0A
|
|
CMP $26
|
|
BNE L1D5E
|
|
BRL L1D63
|
|
L1D5E INC $26
|
|
BRL L1D15
|
|
L1D63 LDA #$0000
|
|
STA $16
|
|
L1D68 PHA
|
|
LDA #$0001
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $24
|
|
LDA #$0001
|
|
EOR #$FFFF
|
|
INC
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0036
|
|
LDA [$00],Y
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$003A
|
|
LDA [$00],Y
|
|
TAX
|
|
LDY #$0038
|
|
LDA [$00],Y
|
|
PHX
|
|
PHA
|
|
_ReleaseResource
|
|
STA L2BCB
|
|
PHA
|
|
LDA $24
|
|
PHA
|
|
_SetResourceFileDepth
|
|
STA L2BCB
|
|
PLA
|
|
STA $24
|
|
LDX $16
|
|
PLD
|
|
TSC
|
|
CLC
|
|
ADC #$0028
|
|
TCS
|
|
TXA
|
|
RTL
|
|
|
|
L1DCF ASC '52~Tool editor: Could not load resource. Setting aborted.~^#0'
|
|
|
|
*--- Ask for memory
|
|
|
|
prepareWINDOW TSC
|
|
SEC
|
|
SBC #$0016
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
|
|
PHA ; space for result
|
|
PHA
|
|
LDA #$000C
|
|
LDX #$0000
|
|
TAY
|
|
BPL L1E21
|
|
DEX
|
|
L1E21 PHX ; size of block to create
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$003C
|
|
LDA [$00],Y
|
|
PHA ; memory ID
|
|
LDA #$8000 ; locked
|
|
CLC
|
|
ADC #$4000 ; fixed
|
|
PHA ; attributes
|
|
LDA #$0000
|
|
LDX #$0000
|
|
TAY
|
|
BPL L1E45
|
|
DEX
|
|
L1E45 PHX ; locationPtr
|
|
PHA
|
|
_NewHandle
|
|
STA L2BCB
|
|
PLA
|
|
STA haMEMORY
|
|
PLA
|
|
STA haMEMORY+2
|
|
LDA L2BCB
|
|
BNE L1E61
|
|
BRL L1EBC
|
|
|
|
* Memmory error
|
|
|
|
L1E61 LDA busyFLAG
|
|
BEQ L1E69
|
|
BRL L1E7C
|
|
L1E69 LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
CLC
|
|
ADC #$0036
|
|
STA $00
|
|
STX $02
|
|
LDA #$0000
|
|
STA [$00]
|
|
L1E7C LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L2054 ; cannot open window
|
|
PEA L2054
|
|
LDA #$0035
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L1EB9
|
|
BRL L1EB9
|
|
L1EB9 BRL L204C
|
|
|
|
* Memory is allocated
|
|
|
|
L1EBC LDX haMEMORY+2 ; deref
|
|
LDA haMEMORY
|
|
STA $00
|
|
STX $02
|
|
LDY #$0002
|
|
LDA [$00],Y
|
|
TAX
|
|
LDA [$00]
|
|
STX $08 ; save pointer
|
|
STA $06
|
|
PEI $08
|
|
PEI $06
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0036 ; get supported resource type
|
|
LDA [$00],Y
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00] ; +00 word - save supported resource type to newly allocated buffer
|
|
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$003A ; +02 long - source window pointer
|
|
LDA [$00],Y
|
|
PHA
|
|
LDY #$0038
|
|
LDA [$00],Y
|
|
PHA
|
|
LDY #$0002
|
|
PLA
|
|
STA [$06],Y
|
|
INY
|
|
INY
|
|
PLA
|
|
STA [$06],Y
|
|
|
|
LDY #$0006 ; +06 word - zero
|
|
LDA #$0000
|
|
STA [$06],Y
|
|
|
|
PHA
|
|
PHA
|
|
_FrontWindow
|
|
STA L2BCB
|
|
LDY #$0008 ; +08 long - front window pointer
|
|
PLA
|
|
STA [$06],Y
|
|
INY
|
|
INY
|
|
PLA
|
|
STA [$06],Y
|
|
|
|
JSL showWINDOW ; show my new window
|
|
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
_SetPort
|
|
STA L2BCB
|
|
|
|
JSL initWINCONTROLS
|
|
TAX
|
|
BNE L1F4D
|
|
BRL L1F74
|
|
|
|
* Error at init
|
|
|
|
L1F4D LDX haMEMORY+2
|
|
LDA haMEMORY
|
|
PHX
|
|
PHA
|
|
_DisposeHandle
|
|
STA L2BCB
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
_CloseWindow
|
|
STA L2BCB
|
|
BRL L204C
|
|
|
|
* No errors, we're good
|
|
|
|
L1F74 LDA YCOORD
|
|
CLC
|
|
ADC #$000A
|
|
STA YCOORD
|
|
LDA xCOORD
|
|
CLC
|
|
ADC #$001E
|
|
STA xCOORD
|
|
LDA #$001E
|
|
LDX #$0001
|
|
SEC
|
|
SBC YCOORD
|
|
BEQ L1F9B
|
|
BVS L1F99
|
|
EOR #$8000
|
|
L1F99 BMI L1F9C
|
|
L1F9B DEX
|
|
L1F9C TXA
|
|
PHA
|
|
LDA YCOORD
|
|
LDX #$0001
|
|
SEC
|
|
SBC #$0050
|
|
BEQ L1FB1
|
|
BVS L1FAF
|
|
EOR #$8000
|
|
L1FAF BMI L1FB2
|
|
L1FB1 DEX
|
|
L1FB2 TXA
|
|
ORA $01,S
|
|
PLX
|
|
TAX
|
|
BNE L1FBC
|
|
BRL L1FC2
|
|
L1FBC LDA #$001E
|
|
STA YCOORD
|
|
L1FC2 LDA #$001E
|
|
LDX #$0001
|
|
SEC
|
|
SBC xCOORD
|
|
BEQ L1FD5
|
|
BVS L1FD3
|
|
EOR #$8000
|
|
L1FD3 BMI L1FD6
|
|
L1FD5 DEX
|
|
L1FD6 TXA
|
|
PHA
|
|
LDA xCOORD
|
|
LDX #$0001
|
|
SEC
|
|
SBC #$00B4
|
|
BEQ L1FEB
|
|
BVS L1FE9
|
|
EOR #$8000
|
|
L1FE9 BMI L1FEC
|
|
L1FEB DEX
|
|
L1FEC TXA
|
|
ORA $01,S
|
|
PLX
|
|
TAX
|
|
BNE L1FF6
|
|
BRL L1FFC
|
|
L1FF6 LDA #$001E
|
|
STA xCOORD
|
|
L1FFC LDA xCOORD ; X-coord
|
|
PHA
|
|
LDA YCOORD ; Y-coord
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
_MoveWindow
|
|
STA L2BCB
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
_ShowWindow
|
|
STA L2BCB
|
|
|
|
LDX haMEMORY+2 ; associate the newly allocated buffer
|
|
LDA haMEMORY ; to the refcon of the window
|
|
PHX
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
_SetWRefCon
|
|
STA L2BCB
|
|
|
|
LDA busyFLAG ; set the busy flag
|
|
CLC
|
|
ADC #$0001
|
|
STA busyFLAG
|
|
L204C PLD
|
|
TSC
|
|
CLC
|
|
ADC #$0016
|
|
TCS
|
|
RTL
|
|
|
|
L2054 ASC '52~Tool editor: Memory error. Cannot open window.~^#0'
|
|
|
|
getFRONTWINDOW TSC
|
|
SEC
|
|
SBC #$0016
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
PHA
|
|
PHA
|
|
_FrontWindow
|
|
STA L2BCB
|
|
PLA
|
|
STA haWINDOW
|
|
PLA
|
|
STA haWINDOW+2
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
_SetPort
|
|
STA L2BCB
|
|
PHA
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
_GetWRefCon
|
|
STA L2BCB
|
|
PLA
|
|
STA haMEMORY
|
|
PLA
|
|
STA haMEMORY+2
|
|
PLD
|
|
TSC
|
|
CLC
|
|
ADC #$0016
|
|
TCS
|
|
RTL
|
|
|
|
*--- Create a resource and dispose memory
|
|
|
|
createDISPOSE TSC
|
|
SEC
|
|
SBC #$001A
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0036 ; supported resource type
|
|
LDA [$00],Y
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$003A
|
|
LDA [$00],Y
|
|
TAX
|
|
LDY #$0038
|
|
LDA [$00],Y
|
|
PHX
|
|
PHA
|
|
LDX haWINDOW+2
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
JSL createRESOURCE
|
|
|
|
LDX haWINDOW+2 ; close the window
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
_CloseWindow
|
|
STA L2BCB
|
|
|
|
PHA
|
|
PHA
|
|
LDX haMEMORY+2
|
|
LDA haMEMORY
|
|
STA $00
|
|
STX $02
|
|
LDY #$0002
|
|
LDA [$00],Y
|
|
TAX
|
|
LDA [$00]
|
|
PHX
|
|
PHA
|
|
_FindHandle
|
|
STA L2BCB
|
|
PLA
|
|
STA $16
|
|
PLA
|
|
STA $18
|
|
LDA L2BCB
|
|
BNE L2158
|
|
BRL L2198
|
|
|
|
* Handle not found
|
|
|
|
L2158 LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L2213 ; memory location error
|
|
PEA L2213 ; ie. cannot find handle
|
|
LDA #$003F
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L2195
|
|
BRL L2195
|
|
L2195 BRL L21ED
|
|
|
|
* Handle found, dispose it
|
|
|
|
L2198 LDX $18
|
|
LDA $16
|
|
PHX
|
|
PHA
|
|
_DisposeHandle
|
|
STA L2BCB
|
|
LDA L2BCB
|
|
BNE L21B0
|
|
BRL L21ED
|
|
|
|
* Dispose failed
|
|
|
|
L21B0 LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
LDA #$0100
|
|
PHA
|
|
PEA ^L2252 ; memory disposal error
|
|
PEA L2252
|
|
LDA #$003E
|
|
PHA
|
|
JSL copyDATA
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PEA $0000
|
|
PEA $0000
|
|
LDX #^myBUFFER2
|
|
LDA #myBUFFER2
|
|
PHX
|
|
PHA
|
|
_AlertWindow
|
|
STA L2BCB
|
|
PLA
|
|
BEQ L21ED
|
|
BRL L21ED
|
|
|
|
* Dispose succeeded
|
|
|
|
L21ED LDA busyFLAG ; busy flag
|
|
SEC
|
|
SBC #$0001
|
|
STA busyFLAG
|
|
LDA YCOORD
|
|
SEC
|
|
SBC #$000A
|
|
STA YCOORD
|
|
LDA xCOORD
|
|
SEC
|
|
SBC #$001E
|
|
STA xCOORD
|
|
PLD
|
|
TSC
|
|
CLC
|
|
ADC #$001A
|
|
TCS
|
|
RTL
|
|
|
|
L2213 ASC '52~Tool editor: Memory location error. Consider rebooting.~^#0'
|
|
L2252 ASC '52~Tool editor: Memory disposal error. Consider rebooting.~^#0'
|
|
|
|
L2290 TSC
|
|
SEC
|
|
SBC #$001A
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
PHA
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0012
|
|
LDA [$00],Y
|
|
TAX
|
|
LDY #$0010
|
|
LDA [$00],Y
|
|
PHX
|
|
PHA
|
|
_GetWRefCon
|
|
STA L2BCB
|
|
PLA
|
|
STA $16
|
|
PLA
|
|
STA $18
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$000E
|
|
LDA [$00],Y
|
|
AND #$0001
|
|
BEQ L22D9
|
|
BRL L231C
|
|
L22D9 LDY #$0002
|
|
LDA [$16],Y
|
|
TAX
|
|
LDA [$16]
|
|
STA $00
|
|
STX $02
|
|
LDA [$00]
|
|
PHA
|
|
LDY #$0002
|
|
LDA [$16],Y
|
|
TAX
|
|
LDA [$16]
|
|
STA $00
|
|
STX $02
|
|
LDY #$0004
|
|
LDA [$00],Y
|
|
TAX
|
|
LDY #$0002
|
|
LDA [$00],Y
|
|
PHX
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0012
|
|
LDA [$00],Y
|
|
TAX
|
|
LDY #$0010
|
|
LDA [$00],Y
|
|
PHX
|
|
PHA
|
|
JSL createRESOURCE
|
|
L231C PLD
|
|
TSC
|
|
CLC
|
|
ADC #$001A
|
|
TCS
|
|
RTL
|
|
|
|
*--- Handle control click
|
|
|
|
doCONTROL
|
|
TSC
|
|
SEC
|
|
SBC #$0018
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0028 ; which control ID?
|
|
LDA [$00],Y
|
|
TAX
|
|
LDY #$0026
|
|
LDA [$00],Y
|
|
PHX
|
|
PHA
|
|
_LoWord
|
|
STA L2BCB
|
|
PLA
|
|
STA $16
|
|
LDA $16
|
|
BNE L2359
|
|
BRL L2381
|
|
|
|
* Control ID exists
|
|
|
|
L2359 LDA ptrBUFFER+2
|
|
PHA
|
|
LDA ptrBUFFER
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$0048
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0048
|
|
LDA [$00],Y
|
|
ORA #$8000
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00]
|
|
|
|
L2381 LDA $16 ; check the preferred button
|
|
CMP #$1000
|
|
BEQ L238B
|
|
BRL L23C9
|
|
|
|
* OK, make a preferred resource then
|
|
|
|
L238B LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0036
|
|
LDA [$00],Y
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$003A
|
|
LDA [$00],Y
|
|
TAX
|
|
LDY #$0038
|
|
LDA [$00],Y
|
|
PHX
|
|
PHA
|
|
JSL makeSTDRESOURCE
|
|
TAX
|
|
BNE L23BC
|
|
BRL L23BF
|
|
L23BC BRL L23C9
|
|
|
|
* init the controls
|
|
|
|
L23BF JSL initWINCONTROLS
|
|
TAX
|
|
BNE L23C9
|
|
BRL L23C9
|
|
|
|
L23C9 PLD
|
|
TSC
|
|
CLC
|
|
ADC #$0018
|
|
TCS
|
|
RTL
|
|
|
|
*--- Tool Table editor: entry point
|
|
|
|
entryPOINT
|
|
TSC
|
|
SEC
|
|
SBC #$0020
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$004E ; get resource file ID
|
|
LDA [$00],Y
|
|
STA resfileID
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$003E ; get command
|
|
LDA [$00],Y
|
|
BRL L27E6
|
|
|
|
*--- Command 0 - Prepare me
|
|
|
|
doCOMMAND0
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$003A ; is window open?
|
|
LDA [$00],Y
|
|
PHA
|
|
LDY #$0038
|
|
LDA [$00],Y
|
|
PHA
|
|
LDA #$0000
|
|
LDX #$0000
|
|
TAY
|
|
BPL L241E
|
|
DEX
|
|
L241E LDY #$0001
|
|
CMP $01,S ; buffer+$38 = $0000?
|
|
BEQ L2426 ; yes
|
|
DEY ; no
|
|
L2426 TXA
|
|
CMP $03,S ; buffer+$3a = $0000?
|
|
BEQ L242E ; yes
|
|
LDY #$0000 ; no
|
|
L242E PLA
|
|
PLA
|
|
TYA
|
|
BNE L2436 ; both are zeros, we are here
|
|
BRL L24DE ; prepare window
|
|
|
|
* We have a window
|
|
|
|
L2436 JSL L0E80 ; prepare the resource
|
|
PHX
|
|
PHA
|
|
LDA ptrBUFFER+2
|
|
PHA
|
|
LDA ptrBUFFER
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$0038 ; save the window/resource handle
|
|
PHA ; at buffer + $38
|
|
PLA
|
|
STA $00
|
|
PLA
|
|
STA $02
|
|
PLA
|
|
STA [$00]
|
|
LDY #$0002
|
|
PLA
|
|
STA [$00],Y
|
|
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$003A ; check emptiness of window/resource ID
|
|
LDA [$00],Y
|
|
PHA
|
|
LDY #$0038
|
|
LDA [$00],Y
|
|
PHA
|
|
LDA #$0000
|
|
LDX #$0000
|
|
TAY
|
|
BPL L2479
|
|
DEX
|
|
L2479 LDY #$0001
|
|
CMP $01,S
|
|
BEQ L2481
|
|
DEY
|
|
L2481 TXA
|
|
CMP $03,S
|
|
BEQ L2489
|
|
LDY #$0000
|
|
L2489 PLA
|
|
PLA
|
|
TYA
|
|
BNE L2491
|
|
BRL L24B2
|
|
|
|
* we have no window/resource ID
|
|
|
|
L2491 LDA busyFLAG ; are we busy?
|
|
BEQ L2499
|
|
BRL L24AC ; we are busy
|
|
|
|
* We're not busy
|
|
|
|
L2499 LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
CLC
|
|
ADC #$0036 ; we have nothing
|
|
STA $00 ; tell no resource type as well
|
|
STX $02
|
|
LDA #$0000
|
|
STA [$00]
|
|
|
|
L24AC BRL L24E2 ; exit editor
|
|
BRL L24DE
|
|
|
|
* window/resource exists
|
|
|
|
L24B2 LDA ptrBUFFER+2
|
|
PHA
|
|
LDA ptrBUFFER
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$0048
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0048
|
|
LDA [$00],Y
|
|
ORA #$8000
|
|
PLX
|
|
STX $00
|
|
PLX
|
|
STX $02
|
|
STA [$00]
|
|
JSL updateBUFFER
|
|
|
|
L24DE JSL prepareWINDOW ; no active window
|
|
L24E2 BRL exitEDITOR
|
|
|
|
*--- Command 1 - Return name of the editor
|
|
|
|
doCOMMAND1
|
|
LDX #^myBUFFER1 ; return the name of the editor
|
|
LDA #myBUFFER1 ; at buffer offset $2E
|
|
PHX
|
|
PHA
|
|
LDA #$FF01
|
|
PHA
|
|
PEA ^strEDITOR
|
|
PEA strEDITOR
|
|
LDA strEDITOR2-strEDITOR ; length of string
|
|
PHA
|
|
JSL copyDATA ; copy string
|
|
|
|
PEA ^myBUFFER1 ; 0
|
|
PEA myBUFFER1 ; 1
|
|
LDA ptrBUFFER+2
|
|
PHA ; 2
|
|
LDA ptrBUFFER
|
|
PHA ; 3
|
|
PLA ; 3
|
|
CLC
|
|
ADC #$002E
|
|
PHA ; 3
|
|
PLA ; 3
|
|
STA $00
|
|
PLA ; 2
|
|
STA $02
|
|
PLA ; 1
|
|
STA [$00]
|
|
LDY #$0002
|
|
PLA ; 0
|
|
STA [$00],Y
|
|
BRL exitEDITOR
|
|
|
|
*--- Command 2 - Interact with window
|
|
|
|
doCOMMAND2
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$004A ; TaskMaster result
|
|
LDA [$00],Y
|
|
CMP #$0008 ; activateEvent
|
|
BEQ L253C
|
|
BRL L2543
|
|
|
|
L253C JSL L2290 ; get the refcon
|
|
BRL L259E
|
|
|
|
L2543 JSL getFRONTWINDOW
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$004A ; TaskMaster result
|
|
LDA [$00],Y
|
|
BRL L256A
|
|
|
|
* wInGoAway
|
|
|
|
L2559 JSL createDISPOSE ; create a resource and dispoes memory
|
|
BRL L259E ; exit editor
|
|
|
|
* wInControl
|
|
|
|
L2560 JSL doCONTROL
|
|
BRL L259E ; exit editor
|
|
L2567 BRL L259E ; exit editor
|
|
|
|
L256A SEC
|
|
SBC #$0016
|
|
CMP #$000C
|
|
BCC L2576
|
|
LDA #$000C
|
|
L2576 ASL
|
|
TAX
|
|
LDAL L2584,X
|
|
BEQ L2580
|
|
PHA
|
|
RTS
|
|
|
|
L2580 JSL L2C09
|
|
|
|
L2584 DA L2559-1 ; 0 16 wInGoAway *
|
|
DA L2567-1 ; 1 17 wInZoom
|
|
DA L2567-1 ; 2 18 wInInfo
|
|
DA L2567-1 ; 3 19 wInSpecial
|
|
DA L2567-1 ; 4 1A wInDeskItem
|
|
DA L2567-1 ; 5 1B wInFrame
|
|
DA L2567-1 ; 6 1C wInactMenu
|
|
DA L2567-1 ; 7 1D wClosedNDA
|
|
DA L2567-1 ; 8 1E wCalledSysEdit
|
|
DA L2567-1 ; 9 1F wTrackZoom
|
|
DA L2567-1 ; A 20 wHitFrame
|
|
DA L2560-1 ; B 21 wInControl *
|
|
DA L2567-1 ; C 22 wInControlMenu
|
|
|
|
L259E BRL exitEDITOR
|
|
|
|
*--- Command 3 - The init command
|
|
|
|
doCOMMAND3
|
|
LDA #$0000
|
|
STA YCOORD
|
|
LDA #$0000
|
|
STA xCOORD
|
|
LDA #$0000
|
|
STA busyFLAG
|
|
|
|
LDX #^myBUFFER1 ; copy the name
|
|
LDA #myBUFFER1 ; of the supported resource
|
|
PHX ; returns the address in
|
|
PHA ; the buffer at offset $2E
|
|
LDA #$FF01
|
|
PHA
|
|
PEA ^strRESOURCE
|
|
PEA strRESOURCE
|
|
LDA #strRESOURCE2-strRESOURCE ; 'Tool table' is 10 chars
|
|
PHA
|
|
JSL copyDATA
|
|
PEA ^myBUFFER1
|
|
PEA myBUFFER1
|
|
LDA ptrBUFFER+2
|
|
PHA
|
|
LDA ptrBUFFER
|
|
PHA
|
|
PLA
|
|
CLC
|
|
ADC #$002E ; source pointer of data to be copied
|
|
PHA
|
|
PLA
|
|
STA $00
|
|
PLA
|
|
STA $02
|
|
PLA
|
|
STA [$00]
|
|
LDY #$0002
|
|
PLA
|
|
STA [$00],Y
|
|
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
CLC
|
|
ADC #$0036
|
|
STA $00
|
|
STX $02
|
|
LDA #resTYPE ; resource type that the editor handles
|
|
STA [$00]
|
|
|
|
LDA #$0001 ; prepare my resource data
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0300
|
|
STA theTOOLREC,X
|
|
LDA #$0002
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0300
|
|
STA theTOOLREC,X
|
|
LDA #$0003
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0300
|
|
STA theTOOLREC,X
|
|
LDA #$0004
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0301
|
|
STA theTOOLREC,X
|
|
LDA #$0005
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0302
|
|
STA theTOOLREC,X
|
|
LDA #$0006
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0300
|
|
STA theTOOLREC,X
|
|
LDA #$0007
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0200
|
|
STA theTOOLREC,X
|
|
LDA #$0008
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0301
|
|
STA theTOOLREC,X
|
|
LDA #$0009
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0201
|
|
STA theTOOLREC,X
|
|
LDA #$000A
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0202
|
|
STA theTOOLREC,X
|
|
LDA #$000B
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0200
|
|
STA theTOOLREC,X
|
|
LDA #$000C
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0201
|
|
STA theTOOLREC,X
|
|
LDA #$000D
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0200
|
|
STA theTOOLREC,X
|
|
LDA #$000E
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0301
|
|
STA theTOOLREC,X
|
|
LDA #$000F
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0301
|
|
STA theTOOLREC,X
|
|
LDA #$0010
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0301
|
|
STA theTOOLREC,X
|
|
LDA #$0011
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0300
|
|
STA theTOOLREC,X
|
|
LDA #$0012
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0301
|
|
STA theTOOLREC,X
|
|
LDA #$0013
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0300
|
|
STA theTOOLREC,X
|
|
LDA #$0014
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0301
|
|
STA theTOOLREC,X
|
|
LDA #$0015
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0301
|
|
STA theTOOLREC,X
|
|
LDA #$0016
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0300
|
|
STA theTOOLREC,X
|
|
LDA #$0017
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0301
|
|
STA theTOOLREC,X
|
|
LDA #$0018
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0000
|
|
STA theTOOLREC,X
|
|
LDA #$0019
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0104
|
|
STA theTOOLREC,X
|
|
LDA #$001A
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0104
|
|
STA theTOOLREC,X
|
|
LDA #$001B
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0301
|
|
STA theTOOLREC,X
|
|
LDA #$001C
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0301
|
|
STA theTOOLREC,X
|
|
LDA #$001D
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0101
|
|
STA theTOOLREC,X
|
|
LDA #$001E
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0100
|
|
STA theTOOLREC,X
|
|
LDA #$001F
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0000
|
|
STA theTOOLREC,X
|
|
LDA #$0020
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0103
|
|
STA theTOOLREC,X
|
|
LDA #$0021
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0000
|
|
STA theTOOLREC,X
|
|
LDA #$0022
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0101
|
|
STA theTOOLREC,X
|
|
LDA #$0025
|
|
DEC
|
|
ASL
|
|
TAX
|
|
LDA #$0100
|
|
STA theTOOLREC,X
|
|
BRL exitEDITOR
|
|
|
|
*--- Command 4
|
|
|
|
doCOMMAND4
|
|
JSL getFRONTWINDOW
|
|
JSL createDISPOSE
|
|
BRL exitEDITOR
|
|
|
|
*--- Command 7
|
|
|
|
doCOMMAND7
|
|
JSL getFRONTWINDOW
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$0036 ; supported resource type
|
|
LDA [$00],Y
|
|
PHA
|
|
LDX ptrBUFFER+2
|
|
LDA ptrBUFFER
|
|
STA $00
|
|
STX $02
|
|
LDY #$003A ; window pointer?
|
|
LDA [$00],Y
|
|
TAX
|
|
LDY #$0038
|
|
LDA [$00],Y
|
|
PHX
|
|
PHA
|
|
LDX haWINDOW+2 ; GRAFPORT
|
|
LDA haWINDOW
|
|
PHX
|
|
PHA
|
|
JSL createRESOURCE ; format resource
|
|
BRL exitEDITOR
|
|
|
|
*--- Command 5
|
|
*--- Command 6
|
|
*--- Command 8
|
|
|
|
unsupCOMMAND BRL exitEDITOR
|
|
|
|
*--- Manages commands
|
|
|
|
L27E6 CMP #$0008
|
|
BCC L27EE
|
|
LDA #$0008
|
|
L27EE ASL
|
|
TAX
|
|
LDAL L27FC,X
|
|
BEQ L27F8
|
|
PHA
|
|
RTS
|
|
|
|
L27F8 JSL L2C09
|
|
|
|
L27FC DA doCOMMAND0-1 ; 0
|
|
DA doCOMMAND1-1 ; 1
|
|
DA doCOMMAND2-1 ; 2
|
|
DA doCOMMAND3-1 ; 3
|
|
DA doCOMMAND4-1 ; 4
|
|
DA unsupCOMMAND-1 ; 5
|
|
DA unsupCOMMAND-1 ; 6
|
|
DA doCOMMAND7-1 ; 7
|
|
DA unsupCOMMAND-1 ; 8
|
|
|
|
exitEDITOR LDA #$0000
|
|
STA $16
|
|
LDX $16
|
|
PLD
|
|
TSC
|
|
CLC
|
|
ADC #$0020
|
|
TCS
|
|
TXA
|
|
RTL
|
|
|
|
strEDITOR ASC 'Tool table editor v1.3'
|
|
strEDITOR2
|
|
strRESOURCE ASC 'Tool table'
|
|
strRESOURCE2
|
|
|
|
YCOORD DW $0000
|
|
xCOORD DW $0000
|
|
ptrBUFFER ADRL $00000000 ; pointer to the shell buffer
|
|
busyFLAG DW $0000 ; LOGO - could be the non-reentrant flag
|
|
resfileID DW $0000
|
|
haMEMORY ADRL $00000000
|
|
haMEMORY2 ADRL $00000000
|
|
haWINDOW ADRL $00000000
|
|
theTOOLREC DS $400 ; 256 tools x 2 words
|
|
|
|
*--- Buffers
|
|
|
|
myBUFFER1 DS $100
|
|
myBUFFER2 DS $100
|
|
|
|
*--- Copy data
|
|
*
|
|
* long 11..14 - destination buffer
|
|
* word 0F..10 -
|
|
* long 0B..0E - source buffer
|
|
* word 09..0A - source length
|
|
|
|
copyDATA TDC
|
|
TAX
|
|
TSC
|
|
SEC
|
|
SBC #$0005
|
|
TCD
|
|
DEC
|
|
TCS
|
|
PHX
|
|
LDA $09
|
|
CMP $0F
|
|
BNE L2AC7
|
|
LDA $13
|
|
PHA
|
|
LDA $11
|
|
PHA
|
|
LDA $0D
|
|
PHA
|
|
LDA $0B
|
|
PHA
|
|
LDA $09
|
|
BPL L2AC0
|
|
EOR #$FFFF
|
|
INC
|
|
INC
|
|
L2AC0 PHA
|
|
JSL L2E77
|
|
BRA L2B3D
|
|
|
|
L2AC7 LDA $0D
|
|
PHA
|
|
LDA $0B
|
|
PHA
|
|
LDA $09
|
|
PHA
|
|
JSR L2B4D
|
|
PLA
|
|
STA $09
|
|
PLA
|
|
STA $0B
|
|
PLA
|
|
STA $0D
|
|
LDA $13
|
|
STA $04
|
|
LDA $11
|
|
STA $02
|
|
LDA $0F
|
|
BPL L2AF2
|
|
EOR #$FFFF
|
|
INC
|
|
INC $11
|
|
BNE L2AF2
|
|
INC $13
|
|
L2AF2 CMP $09
|
|
BCC L2AF8
|
|
LDA $09
|
|
L2AF8 TAY
|
|
STA $00
|
|
BEQ L2B21
|
|
LSR
|
|
BCC L2B17
|
|
SEP #$20
|
|
LDA [$0B]
|
|
STA [$11]
|
|
REP #$20
|
|
INC $0B
|
|
BNE L2B0E
|
|
INC $0D
|
|
L2B0E INC $11
|
|
BNE L2B14
|
|
INC $13
|
|
L2B14 DEY
|
|
BEQ L2B21
|
|
L2B17 DEY
|
|
DEY
|
|
L2B19 LDA [$0B],Y
|
|
STA [$11],Y
|
|
DEY
|
|
DEY
|
|
BPL L2B19
|
|
L2B21 LDY $0F
|
|
BPL L2B2F
|
|
SEP #$20
|
|
LDA $00
|
|
STA [$02]
|
|
REP #$20
|
|
BRA L2B3D
|
|
L2B2F LDY $00
|
|
CPY $0F
|
|
BCS L2B3D
|
|
SEP #$20
|
|
LDA #$00
|
|
STA [$02],Y
|
|
REP #$20
|
|
L2B3D LDA $07
|
|
STA $13
|
|
LDA $06
|
|
STA $12
|
|
CLC
|
|
TDC
|
|
ADC #$0011
|
|
PLD
|
|
TCS
|
|
RTL
|
|
|
|
L2B4D PHD
|
|
TSC
|
|
TCD
|
|
LDA $05
|
|
BEQ L2B9D
|
|
BPL L2B8A
|
|
INC
|
|
BNE L2B7B
|
|
LDA $09
|
|
AND #$00FF
|
|
BNE L2B64
|
|
STZ $05
|
|
BRA L2B9D
|
|
L2B64 LDA #$0001
|
|
STA $05
|
|
LDA $09
|
|
STAL L2B9F
|
|
LDA #L2B9F
|
|
STA $07
|
|
LDA #^L2B9F
|
|
STA $09
|
|
BRA L2B9D
|
|
L2B7B LDA [$07]
|
|
AND #$00FF
|
|
STA $05
|
|
INC $07
|
|
BNE L2B88
|
|
INC $09
|
|
L2B88 BRA L2B9D
|
|
L2B8A LDX $05
|
|
LDY #$0000
|
|
SEP #$20
|
|
L2B91 LDA [$07],Y
|
|
BEQ L2B99
|
|
INY
|
|
DEX
|
|
BNE L2B91
|
|
L2B99 STY $05
|
|
REP #$20
|
|
L2B9D PLD
|
|
RTS
|
|
|
|
L2B9F DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
ADRL L2BAD
|
|
L2BAD DB $00
|
|
DB $00
|
|
ADRL L2BB3
|
|
L2BB3 DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
ADRL L2BBB
|
|
L2BBB DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
L2BCB DB $00
|
|
DB $00
|
|
L2BCD DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
L2BD5 DB $00
|
|
DB $00
|
|
L2BD7 DB $00
|
|
DB $00
|
|
L2BD9 DB $00
|
|
L2BDA DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
|
|
L2BE7 PHA
|
|
JSL L2E62
|
|
LDAL L2BCD
|
|
PHA
|
|
_DisposeAll
|
|
PLA
|
|
JSL GSOS
|
|
DW $0029 ; Quit
|
|
ADRL L2C03
|
|
|
|
L2C03 ADRL L2C07 ; path name
|
|
L2C07 DW $0000 ; flags
|
|
|
|
L2C09 PEA $0008
|
|
JSL L2C16
|
|
LDA #$FFFF
|
|
JMP L2BE7
|
|
|
|
L2C16 LDA $04,S
|
|
PHA
|
|
JSL L2D39
|
|
JMPL L2C21
|
|
|
|
L2C21 PHK
|
|
PLB
|
|
LDA L2BD9
|
|
BNE L2C2B
|
|
BRL L2D33
|
|
L2C2B BRA L2C45
|
|
L2C2D STR 'Error occurred at line '
|
|
L2C45 PEA ^L2C2D
|
|
PEA L2C2D
|
|
_ErrWriteString
|
|
LDA L2BD9
|
|
PHA
|
|
PEA $0001
|
|
PEA $0000
|
|
PEA $0001
|
|
JSL L31B3
|
|
BRA L2C74
|
|
L2C65 STR ' in procedure '
|
|
L2C74 PEA ^L2C65
|
|
PEA L2C65
|
|
_ErrWriteString
|
|
PEA ^L2BDA
|
|
PEA L2BDA
|
|
PEA $0000
|
|
PEA $0001
|
|
PEA $0001
|
|
JSL L31E3
|
|
JSL L2EC1
|
|
LDA L2BD5
|
|
ORA L2BD7
|
|
BNE L2CA3
|
|
BRL L2D33
|
|
L2CA3 PEA $000D
|
|
_ErrWriteChar
|
|
PEA $000A
|
|
_ErrWriteChar
|
|
BRA L2CC6
|
|
L2CB9 STR ' Line Name'
|
|
L2CC6 PEA ^L2CB9
|
|
PEA L2CB9
|
|
_ErrWriteLine
|
|
BRA L2CE2
|
|
L2CD5 STR ' ---- ----'
|
|
L2CE2 PEA ^L2CD5
|
|
PEA L2CD5
|
|
_ErrWriteLine
|
|
L2CEF LDA L2BD5
|
|
ORA L2BD7
|
|
BEQ L2D33
|
|
LDA L2BD9
|
|
PHA
|
|
PEA $0006
|
|
PEA $0000
|
|
PEA $0001
|
|
JSL L31B3
|
|
BRA L2D0D
|
|
L2D0A STR ' '
|
|
L2D0D PEA ^L2D0A
|
|
PEA L2D0A
|
|
_ErrWriteString
|
|
PEA ^L2BDA
|
|
PEA L2BDA
|
|
PEA $0000
|
|
PEA $0001
|
|
PEA $0001
|
|
JSL L31E3
|
|
JSL L2EC1
|
|
BRA L2CEF
|
|
L2D33 LDA #$FFFF
|
|
BRL L2BE7
|
|
|
|
L2D39 PHD
|
|
PEA ^L2D63
|
|
PEA L2D63
|
|
TSC
|
|
TCD
|
|
LDX $0A
|
|
L2D44 DEX
|
|
BEQ L2D53
|
|
SEC
|
|
LDA [$01]
|
|
AND #$00FF
|
|
ADC $01
|
|
STA $01
|
|
BRA L2D44
|
|
L2D53 _ErrWriteLine
|
|
PLD
|
|
LDA $02,S
|
|
STA $04,S
|
|
PLA
|
|
STA $01,S
|
|
RTL
|
|
|
|
L2D63 STR 'Subrange exceeded'
|
|
STR 'File is not open'
|
|
STR 'Read while at end of file'
|
|
STR 'I/O error'
|
|
STR 'Out of memory'
|
|
STR 'EOLN while at end of file'
|
|
STR 'Set overflow'
|
|
STR 'Jump to undefined case statement label'
|
|
STR 'Integer math error'
|
|
STR 'Real math error'
|
|
STR 'Underflow'
|
|
STR 'Overflow'
|
|
STR 'Divide by zero'
|
|
STR 'Inexact'
|
|
STR 'Stack overflow'
|
|
L2E62 PHB
|
|
PHK
|
|
PLB
|
|
STZ L2EF2
|
|
STZ L2EF4
|
|
LDX #$0026
|
|
L2E6E STZ L2EF6,X
|
|
DEX
|
|
DEX
|
|
BPL L2E6E
|
|
PLB
|
|
RTL
|
|
|
|
L2E77 TDC
|
|
TAX
|
|
TSC
|
|
SEC
|
|
SBC #$FFFF
|
|
TCD
|
|
DEC
|
|
TCS
|
|
PHX
|
|
LDA $03
|
|
LSR
|
|
BCC L2E9D
|
|
SEP #$20
|
|
LDA [$05]
|
|
STA [$09]
|
|
REP #$20
|
|
INC $05
|
|
BNE L2E95
|
|
INC $07
|
|
L2E95 INC $09
|
|
BNE L2E9B
|
|
INC $0B
|
|
L2E9B DEC $03
|
|
L2E9D LDY $03
|
|
BEQ L2EB1
|
|
DEY
|
|
DEY
|
|
BEQ L2EAD
|
|
L2EA5 LDA [$05],Y
|
|
STA [$09],Y
|
|
DEY
|
|
DEY
|
|
BNE L2EA5
|
|
L2EAD LDA [$05]
|
|
STA [$09]
|
|
L2EB1 LDA $01
|
|
STA $0B
|
|
LDA $00
|
|
STA $0A
|
|
CLC
|
|
TDC
|
|
ADC #$0009
|
|
PLD
|
|
TCS
|
|
RTL
|
|
|
|
L2EC1 PHB
|
|
PHK
|
|
PLB
|
|
LDA L2BD7
|
|
STA $02
|
|
LDA L2BD5
|
|
STA $00
|
|
LDY #$0010
|
|
L2ED1 LDA [$00],Y
|
|
STA L2BD5,Y
|
|
DEY
|
|
DEY
|
|
BPL L2ED1
|
|
LDA $02
|
|
PHA
|
|
LDA $00
|
|
PHA
|
|
JSL L2F1E
|
|
PLB
|
|
RTL
|
|
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
L2EF2 DB $00
|
|
DB $00
|
|
L2EF4 DB $00
|
|
DB $00
|
|
L2EF6 DB $00
|
|
DB $00
|
|
L2EF8 DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
L2F1E TSC
|
|
PHD
|
|
TCD
|
|
LDY $04
|
|
LDX $06
|
|
SEC
|
|
TYA
|
|
SBC #$0002
|
|
STA $04
|
|
BCS L2F30
|
|
DEC $06
|
|
L2F30 LDA [$04]
|
|
BNE L2F3B
|
|
TYA
|
|
JSL L3039
|
|
BRA L2F40
|
|
L2F3B TYA
|
|
JSL L2F4C
|
|
L2F40 LDA $00
|
|
STA $04
|
|
LDA $02
|
|
STA $06
|
|
PLD
|
|
PLA
|
|
PLA
|
|
RTL
|
|
|
|
L2F4C PHA
|
|
PHA
|
|
PHA
|
|
SEC
|
|
SBC #$0004
|
|
BCS L2F56
|
|
DEX
|
|
L2F56 PHX
|
|
PHA
|
|
TSC
|
|
PHD
|
|
TCD
|
|
LDA [$01]
|
|
BPL L2F62
|
|
BRL L3031
|
|
L2F62 LDA [$01]
|
|
ORA #$8000
|
|
STA [$01]
|
|
LDY #$0002
|
|
LDA [$01],Y
|
|
STA $09
|
|
TAY
|
|
LDA $01
|
|
LDX $03
|
|
JSL L30AD
|
|
L2F79 LDA $09
|
|
CMP #$1000
|
|
BCC L2F83
|
|
BRL L301F
|
|
L2F83 LDA [$01]
|
|
AND $09
|
|
BEQ L2FDA
|
|
SEC
|
|
LDA $01
|
|
SBC $09
|
|
STA $05
|
|
LDA $03
|
|
SBC #$0000
|
|
STA $07
|
|
LDY #$0002
|
|
LDA [$05],Y
|
|
CMP $09
|
|
BEQ L2FA3
|
|
BRL L3031
|
|
L2FA3 LDA [$05]
|
|
BMI L2FAA
|
|
BRL L3031
|
|
L2FAA LDY $09
|
|
LDX $03
|
|
LDA $01
|
|
JSL L30D8
|
|
LDY $09
|
|
LDX $07
|
|
LDA $05
|
|
JSL L30D8
|
|
LDA $05
|
|
STA $01
|
|
LDA $07
|
|
STA $03
|
|
ASL $09
|
|
LDA $09
|
|
LDY #$0002
|
|
STA [$01],Y
|
|
TAY
|
|
LDA $01
|
|
LDX $03
|
|
JSL L30AD
|
|
BRA L2F79
|
|
L2FDA CLC
|
|
LDA $01
|
|
ADC $09
|
|
STA $05
|
|
LDA $03
|
|
ADC #$0000
|
|
STA $07
|
|
LDY #$0002
|
|
LDA [$05],Y
|
|
CMP $09
|
|
BNE L3031
|
|
LDA [$05]
|
|
BPL L3031
|
|
LDY $09
|
|
LDX $03
|
|
LDA $01
|
|
JSL L30D8
|
|
LDY $09
|
|
LDX $07
|
|
LDA $05
|
|
JSL L30D8
|
|
ASL $09
|
|
LDY #$0002
|
|
LDA $09
|
|
STA [$01],Y
|
|
LDY $09
|
|
LDA $01
|
|
LDX $03
|
|
JSL L30AD
|
|
BRL L2F79
|
|
L301F LDY $09
|
|
LDA $01
|
|
LDX $03
|
|
JSL L30D8
|
|
LDA $01
|
|
LDX $03
|
|
JSL L3039
|
|
L3031 PLD
|
|
TSC
|
|
CLC
|
|
ADC #$000A
|
|
TCS
|
|
RTL
|
|
|
|
L3039 PHA
|
|
PHA
|
|
SEC
|
|
SBC #$000E
|
|
BCS L3042
|
|
DEX
|
|
L3042 PHX
|
|
PHA
|
|
TSC
|
|
PHD
|
|
TCD
|
|
LDY #$0002
|
|
LDA [$01],Y
|
|
ORA [$01]
|
|
BNE L3063
|
|
LDY #$0004
|
|
LDA [$01],Y
|
|
STAL L2EF2
|
|
INY
|
|
INY
|
|
LDA [$01],Y
|
|
STAL L2EF4
|
|
BRA L3078
|
|
L3063 LDA [$01]
|
|
STA $05
|
|
LDA [$01],Y
|
|
STA $07
|
|
LDY #$0004
|
|
LDA [$01],Y
|
|
STA [$05],Y
|
|
INY
|
|
INY
|
|
LDA [$01],Y
|
|
STA [$05],Y
|
|
L3078 LDY #$0004
|
|
LDA [$01],Y
|
|
TAX
|
|
INY
|
|
INY
|
|
ORA [$01],Y
|
|
BEQ L3095
|
|
LDA [$01],Y
|
|
STA $07
|
|
STX $05
|
|
LDY #$0002
|
|
LDA [$01]
|
|
STA [$05]
|
|
LDA [$01],Y
|
|
STA [$05],Y
|
|
L3095 LDY #$000A
|
|
LDA [$01],Y
|
|
PHA
|
|
DEY
|
|
DEY
|
|
LDA [$01],Y
|
|
PHA
|
|
_DisposeHandle
|
|
PLD
|
|
PLA
|
|
PLA
|
|
PLA
|
|
PLA
|
|
RTL
|
|
|
|
L30AD PHX
|
|
PHA
|
|
TSC
|
|
PHD
|
|
TCD
|
|
TYA
|
|
JSL L3143
|
|
LDY #$0004
|
|
LDAL L2EF6,X
|
|
STA [$01],Y
|
|
INY
|
|
INY
|
|
LDAL L2EF8,X
|
|
STA [$01],Y
|
|
LDA $01
|
|
STAL L2EF6,X
|
|
LDA $03
|
|
STAL L2EF8,X
|
|
PLD
|
|
PLA
|
|
PLA
|
|
RTL
|
|
|
|
L30D8 PHX
|
|
PHA
|
|
LDA #$0000
|
|
PHA
|
|
PHA
|
|
PHA
|
|
PHA
|
|
TSC
|
|
PHD
|
|
TCD
|
|
TYA
|
|
JSL L3143
|
|
LDAL L2EF6,X
|
|
STA $05
|
|
LDAL L2EF8,X
|
|
STA $07
|
|
L30F5 LDA $05
|
|
CMP $09
|
|
BNE L3101
|
|
LDA $07
|
|
CMP $0B
|
|
BEQ L3118
|
|
L3101 LDA $05
|
|
STA $01
|
|
LDA $07
|
|
STA $03
|
|
LDY #$0004
|
|
LDA [$01],Y
|
|
STA $05
|
|
INY
|
|
INY
|
|
LDA [$01],Y
|
|
STA $07
|
|
BRA L30F5
|
|
L3118 LDY #$0004
|
|
LDA $01
|
|
ORA $02
|
|
BNE L3131
|
|
LDA [$05],Y
|
|
STAL L2EF6,X
|
|
INY
|
|
INY
|
|
LDA [$05],Y
|
|
STAL L2EF8,X
|
|
BRA L313B
|
|
L3131 LDA [$05],Y
|
|
STA [$01],Y
|
|
INY
|
|
INY
|
|
LDA [$05],Y
|
|
STA [$01],Y
|
|
L313B PLD
|
|
TSC
|
|
CLC
|
|
ADC #$000C
|
|
TCS
|
|
RTL
|
|
|
|
L3143 LDX #$0000
|
|
DEC
|
|
LSR
|
|
LSR
|
|
LSR
|
|
BEQ L3153
|
|
L314C INX
|
|
INX
|
|
INX
|
|
INX
|
|
LSR
|
|
BNE L314C
|
|
L3153 RTL
|
|
|
|
L3154 TAY
|
|
PHD
|
|
TSC
|
|
SEC
|
|
SBC #$0007
|
|
TCD
|
|
DEC
|
|
TCS
|
|
TYA
|
|
LDY #$0000
|
|
BIT #$8000
|
|
BEQ L316C
|
|
EOR #$FFFF
|
|
INC
|
|
INY
|
|
L316C STA $02
|
|
TXA
|
|
BPL L3176
|
|
DEY
|
|
EOR #$FFFF
|
|
INC
|
|
L3176 STA $04
|
|
STY $06
|
|
LDY #$0010
|
|
LDA #$0000
|
|
L3180 LSR $02
|
|
BCC L3187
|
|
CLC
|
|
ADC $04
|
|
L3187 ROR
|
|
ROR $00
|
|
DEY
|
|
BNE L3180
|
|
TAX
|
|
BNE L31A8
|
|
LDA $00
|
|
BMI L31A8
|
|
LDY $06
|
|
BEQ L319C
|
|
EOR #$FFFF
|
|
INC
|
|
L319C TAY
|
|
TDC
|
|
CLC
|
|
ADC #$0007
|
|
TCS
|
|
PLA
|
|
TCD
|
|
TYA
|
|
CLV
|
|
RTL
|
|
|
|
L31A8 TDC
|
|
CLC
|
|
ADC #$0007
|
|
TCS
|
|
PLA
|
|
TCD
|
|
SEP #$40
|
|
RTL
|
|
|
|
L31B3 TSC
|
|
PHD
|
|
TCD
|
|
PEA ^L323F
|
|
PEA L323F
|
|
LDA $0A
|
|
JSL L3228
|
|
PEA ^L323F
|
|
PEA L323F
|
|
LDA $08
|
|
PHA
|
|
LDA $06
|
|
PHA
|
|
LDA $04
|
|
PHA
|
|
JSL L31E3
|
|
LDA $02
|
|
STA $0A
|
|
LDA $00
|
|
STA $08
|
|
PLD
|
|
PLA
|
|
PLA
|
|
PLA
|
|
PLA
|
|
RTL
|
|
|
|
L31E3 TSC
|
|
PHD
|
|
TCD
|
|
INC $0A
|
|
BNE L31EC
|
|
INC $0C
|
|
L31EC LDA [$0A]
|
|
AND #$00FF
|
|
SEC
|
|
SBC $08
|
|
BPL L3200
|
|
EOR #$FFFF
|
|
INC
|
|
LDY $04
|
|
JSL L32DE
|
|
L3200 LDA $0C
|
|
PHA
|
|
LDA $0A
|
|
PHA
|
|
LDA $06
|
|
EOR #$0001
|
|
ASL
|
|
ORA $04
|
|
XBA
|
|
CLC
|
|
ADC #$1A0C
|
|
TAX
|
|
JSL $E10000
|
|
LDA $02
|
|
STA $0C
|
|
LDA $00
|
|
STA $0A
|
|
PLD
|
|
CLC
|
|
TSC
|
|
ADC #$000A
|
|
TCS
|
|
RTL
|
|
|
|
L3228 PHA
|
|
PEA ^L3269
|
|
PEA L3269
|
|
PEA $0028
|
|
PEA $0001
|
|
_Int2Dec
|
|
JMP L3291
|
|
|
|
L323F DB $28
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
L3269 DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
DB $00
|
|
L3291 PHD
|
|
TSC
|
|
TCD
|
|
SEP #$20
|
|
LDX #$0000
|
|
LDA #$20
|
|
L329B CMPL L3269,X
|
|
BNE L32A4
|
|
INX
|
|
BRA L329B
|
|
L32A4 REP #$20
|
|
TXA
|
|
SEC
|
|
SBC #$0028
|
|
EOR #$FFFF
|
|
INC
|
|
SEP #$20
|
|
CMP [$06]
|
|
BEQ L32B7
|
|
BCS L32CE
|
|
L32B7 LDY #$0001
|
|
STA [$06],Y
|
|
L32BC LDAL L3269,X
|
|
INY
|
|
STA [$06],Y
|
|
INX
|
|
CPX #$0028
|
|
BCC L32BC
|
|
REP #$20
|
|
CLV
|
|
BRA L32D2
|
|
L32CE REP #$20
|
|
SEP #$40
|
|
L32D2 LDA $02,S
|
|
STA $06,S
|
|
LDA $04,S
|
|
STA $08,S
|
|
PLD
|
|
PLA
|
|
PLA
|
|
RTL
|
|
|
|
L32DE PHA
|
|
TYA
|
|
XBA
|
|
CLC
|
|
ADC #$180C
|
|
PHA
|
|
PHD
|
|
TSC
|
|
TCD
|
|
L32E9 PEA $0020
|
|
LDX $03
|
|
JSL $E10000
|
|
DEC $05
|
|
BNE L32E9
|
|
PLD
|
|
PLA
|
|
PLA
|
|
RTL
|