mirror of
https://github.com/antoinevignau/source.git
synced 2025-01-04 04:31:04 +00:00
1a99fd041f
w/Update Info editor (yeepee)
4688 lines
81 KiB
ArmAsm
4688 lines
81 KiB
ArmAsm
*
|
|
* Genesys v1.3.4
|
|
* Versions editor
|
|
*
|
|
|
|
mx %00
|
|
rel
|
|
lst off
|
|
|
|
*----------------------------
|
|
|
|
use 4/Ctl.Macs
|
|
use 4/Int.Macs
|
|
use 4/Line.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
|
|
|
|
*----------------------------
|
|
* Process
|
|
*
|
|
* Command 3 is launched at boot time
|
|
* Command 0 is launched at each Add
|
|
*
|
|
|
|
*----------------------------
|
|
* Ewen's Versions resource type $DEAD:
|
|
*
|
|
* +0000 word version must be zero
|
|
* +0004 long resource ID of string holding app's display name
|
|
* +0008 long resource ID of string holding author's name
|
|
* +000c long resource ID of string URL to the downloads folder
|
|
* +0010 long resource ID of string for downloadable archive name
|
|
* +0014 long resource ID of string for Versions.List data file
|
|
*
|
|
|
|
sizeHEADER = $000c ; standard header size
|
|
sizeSTDREC = $0054 ; 12 entries x 4 + header = $54
|
|
sizeFULLREC = $0084 ; 30 entries x 4 + header = $84
|
|
resSIZE = 22 ; 2 + 5 x 4
|
|
resTYPE = $dead ; resource type supported by the editor
|
|
|
|
rPString = $8006
|
|
|
|
*----------------------------
|
|
|
|
lda #myRESOURCE
|
|
stal $300
|
|
lda #^myRESOURCE
|
|
stal $302
|
|
|
|
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 ptrWINDOW
|
|
PLA
|
|
STA ptrWINDOW+2
|
|
LDA ptrWINDOW+2
|
|
PHA
|
|
LDA ptrWINDOW
|
|
PHA
|
|
_SetPort
|
|
PEA $0000
|
|
PEA $0000
|
|
LDA ptrWINDOW+2
|
|
PHA
|
|
LDA ptrWINDOW
|
|
PHA
|
|
PEA $0003
|
|
PEA ^ctlWINDOW
|
|
PEA ctlWINDOW
|
|
_NewControl2
|
|
PLA
|
|
PLA
|
|
PLB
|
|
PLD
|
|
RTL
|
|
|
|
ctlWINDOW
|
|
adrl ctlSTR5
|
|
adrl ctlSTR4
|
|
adrl ctlSTR3
|
|
adrl ctlSTR2
|
|
adrl ctlSTR1
|
|
adrl ctlLE5
|
|
adrl ctlLE4
|
|
adrl ctlLE3
|
|
adrl ctlLE2
|
|
adrl ctlLE1
|
|
adrl $00000000
|
|
|
|
ctlSTR5
|
|
DW $0008 ; pCount - ID text
|
|
ADRL $00000005 ; ID
|
|
DW 129 ; rect
|
|
DW 10
|
|
DW 138
|
|
DW 230
|
|
ADRL $81000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000000 ; refCon
|
|
ADRL strSTR5 ; textRef
|
|
DW 23 ; textSize
|
|
|
|
ctlSTR4
|
|
DW $0008 ; pCount - ID text
|
|
ADRL $00000004 ; ID
|
|
DW 99 ; rect
|
|
DW 10
|
|
DW 108
|
|
DW 230
|
|
ADRL $81000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000000 ; refCon
|
|
ADRL strSTR4 ; textRef
|
|
DW 25 ; textSize
|
|
|
|
ctlSTR3
|
|
DW $0008 ; pCount - ID text
|
|
ADRL $00000003 ; ID
|
|
DW 69 ; rect
|
|
DW 10
|
|
DW 78
|
|
DW 230
|
|
ADRL $81000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000000 ; refCon
|
|
ADRL strSTR3 ; textRef
|
|
DW 23 ; textSize
|
|
|
|
ctlSTR2
|
|
DW $0008 ; pCount - ID text
|
|
ADRL $00000002 ; ID
|
|
DW 39 ; rect
|
|
DW 10
|
|
DW 48
|
|
DW 230
|
|
ADRL $81000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000000 ; refCon
|
|
ADRL strSTR2 ; textRef
|
|
DW 13 ; textSize
|
|
|
|
ctlSTR1
|
|
DW $0008 ; pCount - ID text
|
|
ADRL $00000001 ; ID
|
|
DW 9 ; rect
|
|
DW 10
|
|
DW 18
|
|
DW 230
|
|
ADRL $81000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $1000 ; moreFlags
|
|
ADRL $00000000 ; refCon
|
|
ADRL strSTR1 ; textRef
|
|
DW 26 ; textSize
|
|
|
|
ctlLE5
|
|
DW $0008 ; pCount
|
|
ADRL $0000000A ; ID
|
|
DW 140 ; rect
|
|
DW 20
|
|
DW 153
|
|
DW 280
|
|
ADRL $83000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $7000 ; moreFlags
|
|
ADRL $00000000 ; refCon
|
|
DW 255 ; maxSize
|
|
ADRL mySTRING5B ; defaultRef
|
|
|
|
ctlLE4
|
|
DW $0008 ; pCount
|
|
ADRL $00000009 ; ID
|
|
DW 110 ; rect
|
|
DW 20
|
|
DW 123
|
|
DW 280
|
|
ADRL $83000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $7000 ; moreFlags
|
|
ADRL $00000000 ; refCon
|
|
DW 255 ; maxSize
|
|
ADRL mySTRING4B ; defaultRef
|
|
|
|
ctlLE3
|
|
DW $0008 ; pCount
|
|
ADRL $00000008 ; ID
|
|
DW 80 ; rect
|
|
DW 20
|
|
DW 93
|
|
DW 280
|
|
ADRL $83000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $7000 ; moreFlags
|
|
ADRL $00000000 ; refCon
|
|
DW 255 ; maxSize
|
|
ADRL mySTRING3B ; defaultRef
|
|
|
|
ctlLE2
|
|
DW $0008 ; pCount
|
|
ADRL $00000007 ; ID
|
|
DW 50 ; rect
|
|
DW 20
|
|
DW 63
|
|
DW 280
|
|
ADRL $83000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $7000 ; moreFlags
|
|
ADRL $00000000 ; refCon
|
|
DW 255 ; maxSize
|
|
ADRL mySTRING2B ; defaultRef
|
|
|
|
ctlLE1
|
|
DW $0008 ; pCount
|
|
ADRL $00000006 ; ID
|
|
DW 20 ; rect
|
|
DW 20
|
|
DW 33
|
|
DW 280
|
|
ADRL $83000000 ; procRef
|
|
DW $0000 ; flag
|
|
DW $7000 ; moreFlags
|
|
ADRL $00000000 ; refCon
|
|
DW 255 ; maxSize
|
|
ADRL mySTRING1B ; defaultRef
|
|
|
|
strSTR5 asc 'Versions.List data file'
|
|
strSTR4 asc 'Downloadable archive name'
|
|
strSTR3 asc 'URL of downloads folder'
|
|
strSTR2 asc 'Author'27's name'
|
|
strSTR1 asc 'Application'27's display name'
|
|
|
|
winTITLE str ' Versions '
|
|
|
|
myWINDOW DW $0050
|
|
DW $C080 ; frame bits
|
|
ADRL winTITLE ; 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 36 ; content rect
|
|
DW 30
|
|
DW 196
|
|
DW 340
|
|
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
|
|
_SetCurResourceFile
|
|
PLB
|
|
PLD
|
|
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 ; no resource is loaded
|
|
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 succeeded
|
|
|
|
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 succeeded
|
|
|
|
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 succeeded
|
|
|
|
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 was loaded, it exists
|
|
|
|
L09E3 LDX $22
|
|
LDA $20
|
|
PHX
|
|
PHA
|
|
_HLock
|
|
STA L2BCB
|
|
LDA L2BCB
|
|
BNE L09FB
|
|
BRL L09FE
|
|
L09FB BRL L0A27
|
|
|
|
* memory lock succeeded
|
|
|
|
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
|
|
|
|
* If we're here, our resource is in memory
|
|
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 ; return resource
|
|
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 ; load resource in memory
|
|
STX $22
|
|
STA $20
|
|
LDA $20
|
|
ORA $22
|
|
BEQ L0A75
|
|
BRL L0AB5
|
|
|
|
* Cannot load resource, it does not exist
|
|
|
|
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, it exists
|
|
|
|
L0AB5 LDX $22
|
|
LDA $20
|
|
PHX
|
|
PHA
|
|
_HUnlock
|
|
STA L2BCB
|
|
LDA #resSIZE ; was 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
|
|
|
|
ldy #0 ; make all zeroes
|
|
tya
|
|
]lp sta [$06],y
|
|
iny
|
|
iny
|
|
cpy #resSIZE
|
|
bcc ]lp
|
|
|
|
*---
|
|
|
|
L0D54 LDA $2F
|
|
PHA
|
|
LDX $2D
|
|
LDA $2B
|
|
PHX
|
|
PHA
|
|
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 #$003C ; memID
|
|
lda [$00],Y
|
|
sta memID
|
|
|
|
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 #resSIZE ; was 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 LOGO
|
|
|
|
* 1. We see if we have IDs of 0 or a real ID for each string
|
|
* => we'll use the myRESOURCE thing
|
|
* 2. We ask for an rPString ID if needed
|
|
* 3. We build the rUpdate accordingly
|
|
* 4. We save or update the five pStrings
|
|
|
|
* Set depth
|
|
|
|
* pha
|
|
* PushWord #1
|
|
* _SetResourceFileDepth
|
|
* PullWord resDepth
|
|
|
|
* Clear my string buffers
|
|
|
|
ldx #256-2
|
|
]lp stz mySTRING1,x
|
|
stz mySTRING2,x
|
|
stz mySTRING3,x
|
|
stz mySTRING4,x
|
|
stz mySTRING5,x
|
|
dex
|
|
dex
|
|
bpl ]lp
|
|
|
|
*----------------------------
|
|
*--- Handle resource string 1
|
|
|
|
lda strID1
|
|
ora strID1+2
|
|
bne ID1exists
|
|
|
|
pha
|
|
pha
|
|
PushWord #$ffff
|
|
PushWord #rPString
|
|
_UniqueResourceID
|
|
PullLong strID1
|
|
|
|
ID1exists
|
|
|
|
*-
|
|
|
|
PushWord #rPString
|
|
PushLong strID1
|
|
_RemoveResource
|
|
|
|
*-
|
|
|
|
pha
|
|
pha
|
|
PushLong #$100 ; maxSize
|
|
PushWord memID
|
|
PushWord #$c018
|
|
PushLong #0
|
|
_NewHandle
|
|
PullLong haID1
|
|
|
|
*-
|
|
|
|
pha ; for string 1
|
|
pha
|
|
PushLong ptrWINDOW
|
|
PushLong #6
|
|
_GetCtlHandleFromID
|
|
pla
|
|
sta $00
|
|
pla
|
|
sta $02
|
|
|
|
ldy #2
|
|
lda [$00],y
|
|
tax
|
|
lda [$00]
|
|
sta $00
|
|
stx $02
|
|
|
|
ldy #$1e
|
|
lda [$00],y
|
|
sta theHANDLE+2
|
|
ldy #$1c
|
|
lda [$00],y
|
|
sta theHANDLE
|
|
|
|
pha
|
|
PushLong theHANDLE
|
|
_LEGetTextLen
|
|
PullWord lenSTRING1
|
|
|
|
pha
|
|
pha
|
|
PushLong theHANDLE
|
|
_LEGetTextHand
|
|
PushLong #mySTRING1B
|
|
PushLong lenSTRING1
|
|
_HandToPtr
|
|
|
|
*-
|
|
|
|
sep #$20
|
|
lda lenSTRING1
|
|
sta mySTRING1
|
|
rep #$20
|
|
|
|
*-
|
|
|
|
PushLong #mySTRING1
|
|
PushLong haID1
|
|
PushLong #$100
|
|
_PtrToHand
|
|
|
|
*-
|
|
|
|
PushLong haID1 ; for string 1
|
|
_HUnlock
|
|
pea $0000
|
|
lda lenSTRING1
|
|
inc
|
|
pha
|
|
PushLong haID1
|
|
_SetHandleSize
|
|
PushLong haID1
|
|
_HLock
|
|
|
|
*-
|
|
|
|
PushLong haID1
|
|
PushWord #0
|
|
PushWord #rPString
|
|
PushLong strID1
|
|
_AddResource
|
|
|
|
*-
|
|
|
|
PushWord #$ffff
|
|
PushWord #rPString
|
|
PushLong strID1
|
|
_ReleaseResource
|
|
|
|
*----------------------------
|
|
*--- Handle resource string 2
|
|
|
|
lda strID2
|
|
ora strID2+2
|
|
bne ID2exists
|
|
|
|
pha
|
|
pha
|
|
PushWord #$ffff
|
|
PushWord #rPString
|
|
_UniqueResourceID
|
|
PullLong strID2
|
|
|
|
ID2exists
|
|
|
|
*-
|
|
|
|
PushWord #rPString
|
|
PushLong strID2
|
|
_RemoveResource
|
|
|
|
*-
|
|
|
|
pha
|
|
pha
|
|
PushLong #$100 ; maxSize
|
|
PushWord memID
|
|
PushWord #$c018
|
|
PushLong #0
|
|
_NewHandle
|
|
PullLong haID2
|
|
|
|
*-
|
|
|
|
pha ; for string 2
|
|
pha
|
|
PushLong ptrWINDOW
|
|
PushLong #7
|
|
_GetCtlHandleFromID
|
|
pla
|
|
sta $00
|
|
pla
|
|
sta $02
|
|
|
|
ldy #2
|
|
lda [$00],y
|
|
tax
|
|
lda [$00]
|
|
sta $00
|
|
stx $02
|
|
|
|
ldy #$1e
|
|
lda [$00],y
|
|
sta theHANDLE+2
|
|
ldy #$1c
|
|
lda [$00],y
|
|
sta theHANDLE
|
|
|
|
pha
|
|
PushLong theHANDLE
|
|
_LEGetTextLen
|
|
PullWord lenSTRING2
|
|
|
|
pha
|
|
pha
|
|
PushLong theHANDLE
|
|
_LEGetTextHand
|
|
PushLong #mySTRING2B
|
|
PushLong lenSTRING2
|
|
_HandToPtr
|
|
|
|
*-
|
|
|
|
sep #$20
|
|
lda lenSTRING2
|
|
sta mySTRING2
|
|
rep #$20
|
|
|
|
*-
|
|
|
|
PushLong #mySTRING2
|
|
PushLong haID2
|
|
PushLong #$100
|
|
_PtrToHand
|
|
|
|
*-
|
|
|
|
PushLong haID2 ; for string 2
|
|
_HUnlock
|
|
pea $0000
|
|
lda lenSTRING2
|
|
inc
|
|
pha
|
|
PushLong haID2
|
|
_SetHandleSize
|
|
PushLong haID2
|
|
_HLock
|
|
|
|
*-
|
|
|
|
PushLong haID2
|
|
PushWord #0
|
|
PushWord #rPString
|
|
PushLong strID2
|
|
_AddResource
|
|
|
|
*-
|
|
|
|
PushWord #$ffff
|
|
PushWord #rPString
|
|
PushLong strID2
|
|
_ReleaseResource
|
|
|
|
*----------------------------
|
|
*--- Handle resource string 3
|
|
|
|
lda strID3
|
|
ora strID3+2
|
|
bne ID3exists
|
|
|
|
pha
|
|
pha
|
|
PushWord #$ffff
|
|
PushWord #rPString
|
|
_UniqueResourceID
|
|
PullLong strID3
|
|
|
|
ID3exists
|
|
|
|
*-
|
|
|
|
PushWord #rPString
|
|
PushLong strID3
|
|
_RemoveResource
|
|
|
|
*-
|
|
|
|
pha
|
|
pha
|
|
PushLong #$100 ; maxSize
|
|
PushWord memID
|
|
PushWord #$c018
|
|
PushLong #0
|
|
_NewHandle
|
|
PullLong haID3
|
|
|
|
*-
|
|
|
|
pha ; for string 3
|
|
pha
|
|
PushLong ptrWINDOW
|
|
PushLong #8
|
|
_GetCtlHandleFromID
|
|
pla
|
|
sta $00
|
|
pla
|
|
sta $02
|
|
|
|
ldy #2
|
|
lda [$00],y
|
|
tax
|
|
lda [$00]
|
|
sta $00
|
|
stx $02
|
|
|
|
ldy #$1e
|
|
lda [$00],y
|
|
sta theHANDLE+2
|
|
ldy #$1c
|
|
lda [$00],y
|
|
sta theHANDLE
|
|
|
|
pha
|
|
PushLong theHANDLE
|
|
_LEGetTextLen
|
|
PullWord lenSTRING3
|
|
|
|
pha
|
|
pha
|
|
PushLong theHANDLE
|
|
_LEGetTextHand
|
|
PushLong #mySTRING3B
|
|
PushLong lenSTRING3
|
|
_HandToPtr
|
|
|
|
*-
|
|
|
|
sep #$20
|
|
lda lenSTRING3
|
|
sta mySTRING3
|
|
rep #$20
|
|
|
|
*-
|
|
|
|
PushLong #mySTRING3
|
|
PushLong haID3
|
|
PushLong #$100
|
|
_PtrToHand
|
|
|
|
*-
|
|
|
|
PushLong haID3 ; for string 3
|
|
_HUnlock
|
|
pea $0000
|
|
lda lenSTRING3
|
|
inc
|
|
pha
|
|
PushLong haID3
|
|
_SetHandleSize
|
|
PushLong haID3
|
|
_HLock
|
|
|
|
*-
|
|
|
|
PushLong haID3
|
|
PushWord #0
|
|
PushWord #rPString
|
|
PushLong strID3
|
|
_AddResource
|
|
|
|
*-
|
|
|
|
PushWord #$ffff
|
|
PushWord #rPString
|
|
PushLong strID3
|
|
_ReleaseResource
|
|
|
|
*----------------------------
|
|
*--- Handle resource string 4
|
|
|
|
lda strID4
|
|
ora strID4+2
|
|
bne ID4exists
|
|
|
|
pha
|
|
pha
|
|
PushWord #$ffff
|
|
PushWord #rPString
|
|
_UniqueResourceID
|
|
PullLong strID4
|
|
|
|
ID4exists
|
|
|
|
*-
|
|
|
|
PushWord #rPString
|
|
PushLong strID4
|
|
_RemoveResource
|
|
|
|
*-
|
|
|
|
pha
|
|
pha
|
|
PushLong #$100 ; maxSize
|
|
PushWord memID
|
|
PushWord #$c018
|
|
PushLong #0
|
|
_NewHandle
|
|
PullLong haID4
|
|
|
|
*-
|
|
|
|
pha ; for string 4
|
|
pha
|
|
PushLong ptrWINDOW
|
|
PushLong #9
|
|
_GetCtlHandleFromID
|
|
pla
|
|
sta $00
|
|
pla
|
|
sta $02
|
|
|
|
ldy #2
|
|
lda [$00],y
|
|
tax
|
|
lda [$00]
|
|
sta $00
|
|
stx $02
|
|
|
|
ldy #$1e
|
|
lda [$00],y
|
|
sta theHANDLE+2
|
|
ldy #$1c
|
|
lda [$00],y
|
|
sta theHANDLE
|
|
|
|
pha
|
|
PushLong theHANDLE
|
|
_LEGetTextLen
|
|
PullWord lenSTRING4
|
|
|
|
pha
|
|
pha
|
|
PushLong theHANDLE
|
|
_LEGetTextHand
|
|
PushLong #mySTRING4B
|
|
PushLong lenSTRING4
|
|
_HandToPtr
|
|
|
|
*-
|
|
|
|
sep #$20
|
|
lda lenSTRING4
|
|
sta mySTRING4
|
|
rep #$20
|
|
|
|
*-
|
|
|
|
PushLong #mySTRING4
|
|
PushLong haID4
|
|
PushLong #$100
|
|
_PtrToHand
|
|
|
|
*-
|
|
|
|
PushLong haID4 ; for string 4
|
|
_HUnlock
|
|
pea $0000
|
|
lda lenSTRING4
|
|
inc
|
|
pha
|
|
PushLong haID4
|
|
_SetHandleSize
|
|
PushLong haID4
|
|
_HLock
|
|
|
|
*-
|
|
|
|
PushLong haID4
|
|
PushWord #0
|
|
PushWord #rPString
|
|
PushLong strID4
|
|
_AddResource
|
|
|
|
*-
|
|
|
|
PushWord #$ffff
|
|
PushWord #rPString
|
|
PushLong strID4
|
|
_ReleaseResource
|
|
|
|
*----------------------------
|
|
*--- Handle resource string 5
|
|
|
|
lda strID5
|
|
ora strID5+2
|
|
bne ID5exists
|
|
|
|
pha
|
|
pha
|
|
PushWord #$ffff
|
|
PushWord #rPString
|
|
_UniqueResourceID
|
|
PullLong strID5
|
|
|
|
ID5exists
|
|
|
|
*-
|
|
|
|
PushWord #rPString
|
|
PushLong strID5
|
|
_RemoveResource
|
|
|
|
*-
|
|
|
|
pha
|
|
pha
|
|
PushLong #$100 ; maxSize
|
|
PushWord memID
|
|
PushWord #$c018
|
|
PushLong #0
|
|
_NewHandle
|
|
PullLong haID5
|
|
|
|
*-
|
|
|
|
pha ; for string 5
|
|
pha
|
|
PushLong ptrWINDOW
|
|
PushLong #10
|
|
_GetCtlHandleFromID
|
|
pla
|
|
sta $00
|
|
pla
|
|
sta $02
|
|
|
|
ldy #2
|
|
lda [$00],y
|
|
tax
|
|
lda [$00]
|
|
sta $00
|
|
stx $02
|
|
|
|
ldy #$1e
|
|
lda [$00],y
|
|
sta theHANDLE+2
|
|
ldy #$1c
|
|
lda [$00],y
|
|
sta theHANDLE
|
|
|
|
pha
|
|
PushLong theHANDLE
|
|
_LEGetTextLen
|
|
PullWord lenSTRING5
|
|
|
|
pha
|
|
pha
|
|
PushLong theHANDLE
|
|
_LEGetTextHand
|
|
PushLong #mySTRING5B
|
|
PushLong lenSTRING5
|
|
_HandToPtr
|
|
|
|
*-
|
|
|
|
sep #$20
|
|
lda lenSTRING5
|
|
sta mySTRING5
|
|
rep #$20
|
|
|
|
*-
|
|
|
|
PushLong #mySTRING5
|
|
PushLong haID5
|
|
PushLong #$100
|
|
_PtrToHand
|
|
|
|
*-
|
|
|
|
PushLong haID5 ; for string 5
|
|
_HUnlock
|
|
pea $0000
|
|
lda lenSTRING5
|
|
inc
|
|
pha
|
|
PushLong haID5
|
|
_SetHandleSize
|
|
PushLong haID5
|
|
_HLock
|
|
|
|
*-
|
|
|
|
PushLong haID5
|
|
PushWord #0
|
|
PushWord #rPString
|
|
PushLong strID5
|
|
_AddResource
|
|
|
|
*-
|
|
|
|
PushWord #$ffff
|
|
PushWord #rPString
|
|
PushLong strID5
|
|
_ReleaseResource
|
|
|
|
* The end
|
|
|
|
pha
|
|
PushWord resDepth
|
|
_SetResourceFileDepth
|
|
PullWord resDepth
|
|
|
|
* Copy the updated resource
|
|
|
|
PushLong #myRESOURCE
|
|
pei $18
|
|
pei $16
|
|
PushLong #resSIZE
|
|
_PtrToHand
|
|
|
|
* Clear the resource
|
|
|
|
ldx #0
|
|
]lp stz myRESOURCE,x
|
|
inx
|
|
inx
|
|
cpx #resSIZE
|
|
bcc ]lp
|
|
|
|
* Resource is formatted, write it
|
|
|
|
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'
|
|
|
|
resDepth ds 2
|
|
|
|
*--- Init controls of the editor window
|
|
|
|
initWINCONTROLS
|
|
TSC
|
|
SEC
|
|
SBC #$0028
|
|
TCS
|
|
PHD
|
|
INC
|
|
TCD
|
|
LDA #$0001
|
|
STA $16
|
|
LDA #$0001
|
|
STA $26
|
|
|
|
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
|
|
|
|
* Cannot load resource
|
|
|
|
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
|
|
|
|
* Resource is now in memory
|
|
|
|
L1BFC LDX $22
|
|
LDA $20
|
|
PHX
|
|
PHA
|
|
_HLock
|
|
STA L2BCB
|
|
|
|
LDY #$0002 ; set the pointer
|
|
LDA [$20],Y
|
|
TAX
|
|
LDA [$20]
|
|
STX $08
|
|
STA $06
|
|
|
|
* Copy the resource
|
|
|
|
ldy #0
|
|
]lp lda [$06],y
|
|
sta myRESOURCE,y
|
|
iny
|
|
iny
|
|
cpy #resSIZE
|
|
bcc ]lp
|
|
|
|
* Init my flags
|
|
|
|
stz lenSTRING1 ; 0 means empty string
|
|
stz lenSTRING2
|
|
stz lenSTRING3
|
|
stz lenSTRING4
|
|
stz lenSTRING5
|
|
|
|
ldx #256-2 ; clear
|
|
]lp stz mySTRING1,x
|
|
stz mySTRING2,x
|
|
stz mySTRING3,x
|
|
stz mySTRING4,x
|
|
stz mySTRING5,x
|
|
dex
|
|
dex
|
|
bpl ]lp
|
|
|
|
* Now, load the associated 5 rPStrings
|
|
|
|
pha
|
|
pha
|
|
PushWord #rPString
|
|
ldy #4
|
|
lda [$06],y
|
|
pha
|
|
ldy #2
|
|
lda [$06],y
|
|
pha
|
|
_LoadResource
|
|
pla
|
|
plx
|
|
bcs next2
|
|
|
|
phx
|
|
pha
|
|
PushLong #mySTRING1
|
|
PushLong #256
|
|
_HandToPtr
|
|
|
|
PushWord #-1
|
|
PushWord #rPString
|
|
ldy #4
|
|
lda [$06],y
|
|
pha
|
|
ldy #2
|
|
lda [$06],y
|
|
pha
|
|
_ReleaseResource
|
|
|
|
next2 pha ; get handle of control
|
|
pha
|
|
PushLong ptrWINDOW
|
|
PushLong #6
|
|
_GetCtlHandleFromID
|
|
pla
|
|
plx
|
|
bcs next3
|
|
sta theHANDLE
|
|
stx theHANDLE+2
|
|
|
|
PushLong #mySTRING1B ; pointer to text
|
|
|
|
lda mySTRING1 ; length of text
|
|
and #$00ff
|
|
sta lenSTRING1
|
|
pha
|
|
|
|
pha ; get the line edit control from the lineedit control
|
|
pha
|
|
PushLong theHANDLE
|
|
_GetCtlTitle
|
|
_LESetText
|
|
|
|
* Now, load the associated 5 rPStrings
|
|
|
|
next3 pha
|
|
pha
|
|
PushWord #rPString
|
|
ldy #8
|
|
lda [$06],y
|
|
pha
|
|
ldy #6
|
|
lda [$06],y
|
|
pha
|
|
_LoadResource
|
|
pla
|
|
plx
|
|
bcs next4
|
|
|
|
phx
|
|
pha
|
|
PushLong #mySTRING2
|
|
PushLong #256
|
|
_HandToPtr
|
|
|
|
PushWord #-1
|
|
PushWord #rPString
|
|
ldy #8
|
|
lda [$06],y
|
|
pha
|
|
ldy #6
|
|
lda [$06],y
|
|
pha
|
|
_ReleaseResource
|
|
|
|
next4 pha ; get handle of control
|
|
pha
|
|
PushLong ptrWINDOW
|
|
PushLong #7
|
|
_GetCtlHandleFromID
|
|
pla
|
|
plx
|
|
bcs next5
|
|
sta theHANDLE
|
|
stx theHANDLE+2
|
|
|
|
PushLong #mySTRING2B ; pointer to text
|
|
|
|
lda mySTRING2 ; length of text
|
|
and #$00ff
|
|
sta lenSTRING2
|
|
pha
|
|
|
|
pha ; get the line edit control from the lineedit control
|
|
pha
|
|
PushLong theHANDLE
|
|
_GetCtlTitle
|
|
_LESetText
|
|
|
|
* Now, load the associated 5 rPStrings
|
|
|
|
next5 pha
|
|
pha
|
|
PushWord #rPString
|
|
ldy #12
|
|
lda [$06],y
|
|
pha
|
|
ldy #10
|
|
lda [$06],y
|
|
pha
|
|
_LoadResource
|
|
pla
|
|
plx
|
|
bcs next6
|
|
|
|
phx
|
|
pha
|
|
PushLong #mySTRING3
|
|
PushLong #256
|
|
_HandToPtr
|
|
|
|
PushWord #-1
|
|
PushWord #rPString
|
|
ldy #12
|
|
lda [$06],y
|
|
pha
|
|
ldy #10
|
|
lda [$06],y
|
|
pha
|
|
_ReleaseResource
|
|
|
|
next6 pha ; get handle of control
|
|
pha
|
|
PushLong ptrWINDOW
|
|
PushLong #8
|
|
_GetCtlHandleFromID
|
|
pla
|
|
plx
|
|
bcs next7
|
|
sta theHANDLE
|
|
stx theHANDLE+2
|
|
|
|
PushLong #mySTRING3B ; pointer to text
|
|
|
|
lda mySTRING3 ; length of text
|
|
and #$00ff
|
|
sta lenSTRING3
|
|
pha
|
|
|
|
pha ; get the line edit control from the lineedit control
|
|
pha
|
|
PushLong theHANDLE
|
|
_GetCtlTitle
|
|
_LESetText
|
|
|
|
* Now, load the associated 5 rPStrings
|
|
|
|
next7 pha
|
|
pha
|
|
PushWord #rPString
|
|
ldy #16
|
|
lda [$06],y
|
|
pha
|
|
ldy #14
|
|
lda [$06],y
|
|
pha
|
|
_LoadResource
|
|
pla
|
|
plx
|
|
bcs next8
|
|
|
|
phx
|
|
pha
|
|
PushLong #mySTRING4
|
|
PushLong #256
|
|
_HandToPtr
|
|
|
|
PushWord #-1
|
|
PushWord #rPString
|
|
ldy #16
|
|
lda [$06],y
|
|
pha
|
|
ldy #14
|
|
lda [$06],y
|
|
pha
|
|
_ReleaseResource
|
|
|
|
next8 pha ; get handle of control
|
|
pha
|
|
PushLong ptrWINDOW
|
|
PushLong #9
|
|
_GetCtlHandleFromID
|
|
pla
|
|
plx
|
|
bcs next9
|
|
sta theHANDLE
|
|
stx theHANDLE+2
|
|
|
|
PushLong #mySTRING4B ; pointer to text
|
|
|
|
lda mySTRING4 ; length of text
|
|
and #$00ff
|
|
sta lenSTRING4
|
|
pha
|
|
|
|
pha ; get the line edit control from the lineedit control
|
|
pha
|
|
PushLong theHANDLE
|
|
_GetCtlTitle
|
|
_LESetText
|
|
|
|
* Now, load the associated 5 rPStrings
|
|
|
|
next9 pha
|
|
pha
|
|
PushWord #rPString
|
|
ldy #20
|
|
lda [$06],y
|
|
pha
|
|
ldy #18
|
|
lda [$06],y
|
|
pha
|
|
_LoadResource
|
|
pla
|
|
plx
|
|
bcs next10
|
|
|
|
phx
|
|
pha
|
|
PushLong #mySTRING5
|
|
PushLong #256
|
|
_HandToPtr
|
|
|
|
PushWord #-1
|
|
PushWord #rPString
|
|
ldy #20
|
|
lda [$06],y
|
|
pha
|
|
ldy #18
|
|
lda [$06],y
|
|
pha
|
|
_ReleaseResource
|
|
|
|
next10 pha ; get handle of control
|
|
pha
|
|
PushLong ptrWINDOW
|
|
PushLong #10
|
|
_GetCtlHandleFromID
|
|
pla
|
|
plx
|
|
bcs next11
|
|
sta theHANDLE
|
|
stx theHANDLE+2
|
|
|
|
PushLong #mySTRING5B ; pointer to text
|
|
|
|
lda mySTRING5 ; length of text
|
|
and #$00ff
|
|
sta lenSTRING5
|
|
pha
|
|
|
|
pha ; get the line edit control from the lineedit control
|
|
pha
|
|
PushLong theHANDLE
|
|
_GetCtlTitle
|
|
_LESetText
|
|
|
|
next11 ; end of the funny initialization, ahem...
|
|
|
|
*---
|
|
|
|
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 ptrWINDOW+2
|
|
LDA ptrWINDOW
|
|
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 ptrWINDOW+2
|
|
LDA ptrWINDOW
|
|
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 ptrWINDOW+2
|
|
LDA ptrWINDOW
|
|
PHX
|
|
PHA
|
|
_MoveWindow
|
|
STA L2BCB
|
|
LDX ptrWINDOW+2
|
|
LDA ptrWINDOW
|
|
PHX
|
|
PHA
|
|
_ShowWindow
|
|
STA L2BCB
|
|
|
|
LDX haMEMORY+2 ; associate the newly allocated buffer
|
|
LDA haMEMORY ; to the refcon of the window
|
|
PHX
|
|
PHA
|
|
LDX ptrWINDOW+2
|
|
LDA ptrWINDOW
|
|
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 ptrWINDOW
|
|
PLA
|
|
STA ptrWINDOW+2
|
|
LDX ptrWINDOW+2
|
|
LDA ptrWINDOW
|
|
PHX
|
|
PHA
|
|
_SetPort
|
|
STA L2BCB
|
|
PHA
|
|
PHA
|
|
LDX ptrWINDOW+2
|
|
LDA ptrWINDOW
|
|
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 ptrWINDOW+2
|
|
LDA ptrWINDOW
|
|
PHX
|
|
PHA
|
|
JSL createRESOURCE
|
|
|
|
LDX ptrWINDOW+2 ; close the window
|
|
LDA ptrWINDOW
|
|
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
|
|
|
|
*--- Versions 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]
|
|
|
|
* Clear the resource
|
|
|
|
ldx #0
|
|
]lp stz myRESOURCE,x
|
|
inx
|
|
inx
|
|
cpx #resSIZE
|
|
bcc ]lp
|
|
|
|
* Init my flags
|
|
|
|
stz lenSTRING1 ; 0 means empty string
|
|
stz lenSTRING2
|
|
stz lenSTRING3
|
|
stz lenSTRING4
|
|
stz lenSTRING5
|
|
|
|
ldx #256-2 ; clear
|
|
]lp stz mySTRING1,x
|
|
stz mySTRING2,x
|
|
stz mySTRING3,x
|
|
stz mySTRING4,x
|
|
stz mySTRING5,x
|
|
dex
|
|
dex
|
|
bpl ]lp
|
|
|
|
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 ptrWINDOW+2 ; GRAFPORT
|
|
LDA ptrWINDOW
|
|
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 'rUpdateInfo editor v1'
|
|
strEDITOR2
|
|
strRESOURCE ASC 'Update Info'
|
|
strRESOURCE2
|
|
|
|
YCOORD DW $0000
|
|
xCOORD DW $0000
|
|
ptrBUFFER ADRL $00000000 ; pointer to the shell buffer
|
|
busyFLAG DW $0000 ; the busy flag
|
|
resfileID DW $0000
|
|
haMEMORY ADRL $00000000
|
|
haMEMORY2 ADRL $00000000
|
|
ptrWINDOW ADRL $00000000
|
|
theHANDLE ds 4
|
|
memID ds 2
|
|
|
|
*--- Buffers
|
|
|
|
myRESOURCE
|
|
ds 2 ; version = 0
|
|
strID1 ds 4 ; 0: ID to create, <>0: ID to use
|
|
strID2 ds 4
|
|
strID3 ds 4
|
|
strID4 ds 4
|
|
strID5 ds 4
|
|
|
|
haID1 ds 4 ; memory handle of rPString
|
|
haID2 ds 4
|
|
haID3 ds 4
|
|
haID4 ds 4
|
|
haID5 ds 4
|
|
|
|
myBUFFER1 DS $100
|
|
myBUFFER2 DS $100
|
|
|
|
mySTRING1 ds $1
|
|
mySTRING1B ds $ff
|
|
mySTRING2 ds $1
|
|
mySTRING2B ds $ff
|
|
mySTRING3 ds $1
|
|
mySTRING3B ds $ff
|
|
mySTRING4 ds $1
|
|
mySTRING4B ds $ff
|
|
mySTRING5 ds $1
|
|
mySTRING5B ds $ff
|
|
|
|
lenSTRING1 ds 4
|
|
lenSTRING2 ds 4
|
|
lenSTRING3 ds 4
|
|
lenSTRING4 ds 4
|
|
lenSTRING5 ds 4
|
|
|
|
*--- 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
|