Let's free the code!!

Some old (WIP) disassemblies and my own source code now available online.
This commit is contained in:
Antoine Vignau 2024-07-23 23:38:22 +02:00
parent 948c9c2535
commit 4d4fb6a665
239 changed files with 285905 additions and 0 deletions

BIN
.DS_Store vendored

Binary file not shown.

2789
TrueConvert/Conv.Main.s Normal file

File diff suppressed because it is too large Load Diff

928
TrueConvert/Conv.Pack.s Normal file
View File

@ -0,0 +1,928 @@
*
* Convert 3200 (GS/OS)
*
* Module: Unpackers, Packers
*
* (c) 1995, Brutal Deluxe
*
*---------------------------------------
* CONSTANTS
*---------------------------------------
maxWIDTH = 1280
maxHEIGHT = 800
dpBUF = $10
dpPIC = $14
dpPAL = $18
dpLIGNES = $1c
dpSCB = $20
dpSCB2 = $24
dpGS = $28 ; Formats GS: SCB, palettes
dpGS2 = $2c ; APF: ScanLineDirectory
dpTHERMO = $30 ; Adresse du thermo
*---------------------------------------
* PICTURES UNPACKING MAIN ROUTINE
*---------------------------------------
mx %00
doUNPACKERS lda menuOPEN
dec
asl
tax
lda ptrUNPACKERS,x
sta doUNPACKERS2+1
jsr doINIT
doUNPACKERS2 jsr $ffff
bcs doUNPACKERS3
jsr setPARAMETERS
jsr convertPAL
_errOK
doUNPACKERS3 brl GSOSerror
*---------------------------------------
* PICTURES PACKING MAIN ROUTINE
*---------------------------------------
doPACKERS lda menuSAVE10
dec
asl
tax
lda ptrPACKERS,x
sta doPACKERS1+1
doPACKERS1 jsr $ffff
bcs doPACKERS2
lda #0
rts
doPACKERS2 brl GSOSerror
*---------------------------------------
* MEMOIRE
*---------------------------------------
makePIC lda picWIDTH
beq makePIC0
cmp #maxWIDTH
bcc makePIC1
beq makePIC1
makePIC0 _errSIZE
makePIC1 lda picHEIGHT
beq makePIC0
cmp #maxHEIGHT
bcc makePIC2
beq makePIC2
lda #maxHEIGHT
sta picHEIGHT
makePIC2 pha
pha
pha
pha
PushWord picWIDTH
PushWord picHEIGHT
_Multiply
PushLong #$010000
_FixDiv
pla
pla
inc
makePIC3 sta nbankCOL
lsr
inc
makePIC4 sta nbankNB
jsr clearBANKS
ldy #0 ; demande de bancs couleurs
tyx
makePIC5 phy
phx
jsr makeHANDLE
plx
lda ptrADDRESS
sta dpPIC
sta bankCOL,x
lda ptrADDRESS+2
sta dpPIC+2
sta bankCOL+2,x
lda haADDRESS
sta haCOL,x
lda haADDRESS+2
sta haCOL+2,x
bcc makePIC6
ply
_errMEMORY
makePIC6 ldy #0 ; clear memory
tya
]lp sta [dpPIC],y
iny
iny
bne ]lp
inx
inx
inx
inx
ply
iny
cpy nbankCOL
bne makePIC5
ldy #0 ; demande de bancs n/b
tyx
makePIC7 phy
phx
jsr makeHANDLE
plx
lda ptrADDRESS
sta dpPIC
sta bankNB,x
lda ptrADDRESS+2
sta dpPIC+2
sta bankNB+2,x
lda haADDRESS
sta haNB,x
lda haADDRESS+2
sta haNB+2,x
bcc makePIC8
ply
_errMEMORY
makePIC8 inx
inx
inx
inx
ply
iny
cpy nbankNB
bne makePIC7
lda #1
sta fgLOAD
stz numLIGNE
stz numCOLONNE
stz nbankCURRENT
lda nbankCOL
sta nbankCOL+2
lda nbankNB
sta nbankNB+2
lda ptrBUFFER
sta dpBUF
lda ptrBUFFER+2
sta dpBUF+2
lda bankCOL
sta dpPIC
lda bankCOL+2
sta dpPIC+2
lda ptrLIGNES
sta dpLIGNES
lda ptrLIGNES+2
sta dpLIGNES+2
jsr calcLINE
jsr calcTHERMO
clc
rts
*--- Demande un bloc de 64ko
makeHANDLE pha
pha
PushLong #$10000
PushWord myID
PushWord #%11000000_00011100
PushLong #0
_NewHandle
phd
tsc
tcd
ldy #0
lda [3],y
sta ptrADDRESS
ldy #2
lda [3],y
sta ptrADDRESS+2
pld
pla
sta haADDRESS
pla
sta haADDRESS+2
rts
*--- Effacement des bancs precedemment reserves
clearBANKS lda fgLOAD
bne clearBANKS1
rts
clearBANKS1 ldy #0
tyx
]lp phy
phx
lda haCOL+2,x
pha
lda haCOL,x
pha
_DisposeHandle
plx
inx
inx
inx
inx
ply
iny
cpy nbankCOL+2
bne ]lp
ldy #0
tyx
]lp phy
phx
lda haNB+2,x
pha
lda haNB,x
pha
_DisposeHandle
plx
inx
inx
inx
inx
ply
iny
cpy nbankNB+2
bne ]lp
rts
*--- Retourne les parametres de l'image
setPARAMETERS lda ptrCODE
clc
adc #$0100
sta Debut
lda ptrCODE+2
adc #0
sta Debut+2
lda picWIDTH ; largeur de l'image
sta [Debut]
inc Debut
inc Debut
lda picHEIGHT ; hauteur de l'image
sta [Debut]
inc Debut
inc Debut
lda fgIMAGE256 ; image 16 palettes ?
sta [Debut]
lda ptrCODE ; Les bancs NB
clc
adc #$0110
sta Debut
lda ptrCODE+2
adc #0
sta Debut+2
ldy #0
tyx
]lp lda bankNB+2,x
xba
sta [Debut]
inc Debut
inc Debut
inx
inx
inx
inx
iny
cpy nbankNB
bne ]lp
lda ptrCODE ; Data3/Pic16/Pic256/Pic8Bit
clc
adc #$0120
sta Debut
lda ptrCODE+2
adc #0
sta Debut+2
ldx #0
]lp lda ptrDATA3+2,x
xba
sta [Debut]
inc Debut
inc Debut
inx
inx
inx
inx
cpx #4*4
bne ]lp
rts
*--- Calcul des numeros de ligne
calcLINE jsr nextLINE3
]lp jsr nextLINE
bcc ]lp
stz numLIGNE
stz nbankCURRENT
lda bankCOL
sta dpPIC
lda bankCOL+2
sta dpPIC+2
lda ptrLIGNES
sta dpLIGNES
lda ptrLIGNES+2
sta dpLIGNES+2
rts
*--- Calcul de la ligne suivante
nextLINE inc numLIGNE
lda dpPIC ; address of next line
clc
adc picWIDTH
sta dpPIC
bcs nextLINE1
lda dpPIC
clc
adc picWIDTH
bcc nextLINE3
beq nextLINE3
nextLINE1 lda nbankCURRENT ; cross the bank
cmp nbankCOL
bne nextLINE2
sec
rts
nextLINE2 inc ; not the last bank
sta nbankCURRENT ; get the address of
asl ; the next bank
asl
tay
lda bankCOL,y
sta dpPIC
lda bankCOL+2,y
sta dpPIC+2
nextLINE3 lda numLIGNE ; retourne l'adresse de
cmp picHEIGHT ; la ligne suivante
bcs nextLINE4 ; mais sur 3 octets
asl ; et non 4
clc
adc numLIGNE
tay
lda dpPIC
sta [dpLIGNES],y
iny
lda dpPIC+1
sta [dpLIGNES],y
clc
rts
nextLINE4 sec
rts
*--- Avancement du thermometre
calcTHERMO lda fgALL
beq calcTHERMO1
rts
calcTHERMO1 jsr showWINDOW
stz nbTHERMO
stz cxTHERMO
lda #$61d8
sta dpTHERMO
lda #$0001
sta dpTHERMO+2
ldy #40
ldx picHEIGHT
cpx #40
bcs calcTHERMO2
tya
txy
tax
calcTHERMO2 pha
pha
pha
pha
pea $0000
phx
pea $0000
phy
_LongDivide
pla
sta nbTHERMO+2
pla
pla
pla
rts
showTHERMO lda fgALL
beq showTHERMO1
rts
showTHERMO1 inc nbTHERMO
lda nbTHERMO
cmp nbTHERMO+2
bcs showTHERMO2
rts
showTHERMO2 phx
phy
stz nbTHERMO
inc cxTHERMO
ldy cxTHERMO
cpy #44
bcs showTHERMO3
ldx #5
]lp sep #$20
lda #$22
sta [dpTHERMO],y
rep #$20
tya
clc
adc #160
tay
dex
bne ]lp
showTHERMO3 ply
plx
rts
*--- Inversion A&B si Motorola
unpSWAP bit TIFFendian
bpl unpSWAP1
xba
sec
rts
unpSWAP1 clc
rts
*-- Initialisations d'entree
doINIT lda #320 ; Init d'entree
sta picWIDTH
lda #200
sta picHEIGHT
lda #256
sta picCOLORS
stz APFfg
stz APFfg3200
stz fgIMAGE256
lda #$00 ; Mode 320
jsr initSCB
jsr initPALETTE
lda ptrPIC16
sta dpGS
lda ptrPIC16+2
sta dpGS+2
lda ptrBUFFER
sta dpBUF
lda ptrBUFFER+2
sta dpBUF+2
rts
*--- Routines palette
initPALETTE stz indicePALETTE
lda #pcPALETTE
sta dpPAL
lda #^pcPALETTE
sta dpPAL+2
ldy #0
tya
]lp sta [dpPAL],y
iny
iny
cpy #256*3
bne ]lp
rts
savePALETTE phy
ldy indicePALETTE
cpy #256*3
bcs savePALETTE1
sep #$20
sta [dpPAL],y
rep #$20
iny
sty indicePALETTE
ply
clc
rts
savePALETTE1 ply
sec
rts
*--- Conversion de palette
convertPAL ldx #0
]lp lda pcPALETTE,x
sta pcPALETTE1,x
inx
inx
cpx #256*3
bne ]lp
lda ptrPALETTE
sta dpPAL
lda ptrPALETTE+2
sta dpPAL+2
stz indicePALETTE
ldy #0 ; Clear dest palette
tya
]lp sta [dpPAL],y
iny
iny
cpy #256*2
bne ]lp
lda menuOPEN ; Si c'est un format GS
cmp #1 ; alors ne pas faire de
beq convertPAL1 ; conversion
cmp #8 ; idem pour le format ST
beq convertPAL1
brl convertPAL2
* Palette d'une image GS (sauf le GIF GS: menuOPEN modifie de 1 a 3)
* On doit quand meme creer une palette PC pour le save GS to PC/MAC
convertPAL1 ldx #0
txy
sep #$20
]lp lda pcPALETTE+1,x
and #$0f ; R
asl
asl
asl
asl
sta pcPALETTE1,y
lda pcPALETTE,x ; V
and #$f0
sta pcPALETTE1+1,y
lda pcPALETTE,x ; B
and #$0f
asl
asl
asl
asl
sta pcPALETTE1+2,y
iny
iny
iny
inx
inx
cpx #256*2
bne ]lp
rep #$20
ldy #0
]lp lda pcPALETTE,y
sta [dpPAL],y
iny
iny
cpy #256*2
bne ]lp
clc
rts
*---
convertPAL2 lda picCOLORS ; Si on a que 2 couleurs
cmp #2 ; alors pas besoin de
bne convertPAL3 ; modifier la palette PC
lda menuOPEN ; Le TIFF a defini les 2 couleurs
cmp #6 ; N/B pour le 1 bit
beq convertPAL3
ldy #2
lda #$0fff
sta [dpPAL],y
*----
convertPAL3 lda #$4a4a ; Teste la profondeur en bits
sta convertPAL5 ; de chaque composante
ldx #0
]lp lda pcPALETTE,x
and #$00ff
cmp #$0040
bcs convertPAL4
inx
cpx #256*3
bne ]lp
lda #$eaea
sta convertPAL5
convertPAL4 lda #0
sep #$20 ; Divise chaque composante
; par 16 ou 4
ldx #0
]lp lda pcPALETTE,x
lsr
lsr
convertPAL5 lsr
lsr
sta pcPALETTE,x
inx
cpx #256*3
bne ]lp
rep #$20
*---
ldx #0
txy
]lp lda pcPALETTE,x
and #$000f
xba
pha
lda pcPALETTE+1,x
and #$000f
asl
asl
asl
asl
ora 1,s
sta 1,s
lda pcPALETTE+2,x
and #$000f
ora 1,s
sta 1,s
pla
sta [dpPAL],y
inx
inx
inx
iny
iny
inc indicePALETTE
lda indicePALETTE
cmp picCOLORS
bne ]lp
clc
rts
*--- Routines de SCB
initSCB ldx ptrSCB+2
stx dpSCB+2
ldy ptrSCB
sty dpSCB
ldy #0
sep #$20
]lp sta [dpSCB],y
iny
cpy #200
bne ]lp
rep #$20
stz indiceSCB
rts
*--- Sauve 1 SCB
saveSCB phy
ldy indiceSCB
cpy #200
bcs saveSCB1
sep #$20
sta [dpSCB],y
rep #$20
iny
sty indiceSCB
saveSCB1 ply
rts
*--- Comparaison des palettes et des modes
compareSCB sty dpSCB2
stx dpSCB2+2
ldy #0 ; Compare les palettes
lda [dpSCB2],y ; pour savoir si
and #%0000_1111 ; on a une image
sta temp ; de 16 palettes ou non
]lp lda [dpSCB2],y
and #%0000_1111
cmp temp
bne compareSCB1
iny
cpy #200
bne ]lp
bra compareSCB2 ; Image monopalette
compareSCB1 lda #1 ; Image 16 palettes
sta fgIMAGE256
compareSCB2 ldy #0 ; Now compare the SCB
lda [dpSCB2],y
and #%1000_0000
sta temp
]lp lda [dpSCB2],y
and #%1000_0000
cmp temp
bne compareSCB4
iny
cpy #200
bne ]lp
lda APFfg
bne compareSCB3
lda temp
jsr initSCB
ldy #0
]lp lda [dpSCB2],y
jsr saveSCB
iny
cpy #200
bne ]lp
compareSCB3 clc
rts
compareSCB4 _errFORMAT
*--- Routine de modification 3200 couleurs
count3200 sty dpGS
stx dpGS+2
lda picHEIGHT
asl
asl
asl
asl
asl ; *32
sta countLENGTH
ldx #0
]lp stz zoneTAMPON,x
inx
inx
cpx #4096*2
bne ]lp
*---
lda APFfg3200 ; Si APF, ne retourne pas
bne count3203
ldy #$0000 ; Retourne les valeurs
count3201 ldx #$000f ; 16 couleurs a empiler
sty count3202+1
]lp lda [dpGS],y
pha
iny
iny
dex
bpl ]lp
count3202 ldy #$0000 ; 16 couleurs a depiler
ldx #$000f
]lp pla
sta [dpGS],y
iny
iny
dex
bpl ]lp
cpy countLENGTH
bne count3201
*---
count3203 ldy #0
]lp lda [dpGS],y
asl
tax
inc zoneTAMPON,x
iny
iny
cpy countLENGTH
bne ]lp
ldx #0
txy
]lp lda zoneTAMPON,x
beq count3204
txa
lsr
sta [dpPAL],y
tya
lsr
sta zoneTAMPON,x
iny
iny
cpy #512
bcs count3205
count3204 inx
inx
cpx #4096*2
bne ]lp
tya
lsr
sta picCOLORS
clc
rts
count3205 _errCOLORS
*--- Format non reconnu
doNOT _errFORMAT
*---------------------------------------
* DATA
*---------------------------------------
*--- Parametres thermometre
nbTHERMO ds 4
cxTHERMO ds 2
*--- Reservation memoire
ptrADDRESS ds 4
haADDRESS ds 4
nbankCOL ds 4
nbankNB ds 4
nbankCURRENT ds 2
bankCOL ds 20*4
haCOL ds 20*4
bankNB ds 10*4
haNB ds 10*4
*---
numLIGNE ds 2
numCOLONNE ds 2
indicePALETTE ds 2
indiceSCB ds 2
*--- Informations sur l'image
picBITS ds 2 ; 1/2/4/8
picPLANES ds 2 ; 1/2/3/4
picCOMPRESS ds 2 ; Type of Compression
picCOLORS ds 2
picWIDTH ds 2
picHEIGHT ds 2
*---
ptrUNPACKERS da unpGS,unpBMP,unpGIF,unpIFF,unpPCX,unpTIFF,unpBIN
da unpST,unpICON,unpICON,unpMAC
ptrPACKERS da packAPF,packBMP,packPCX,packTIFF,packBIN
da packRAW

57
TrueConvert/GREY.TBL.S Normal file
View File

@ -0,0 +1,57 @@
*---------------------------------------------------------*
* Disassembled with The Flaming Bird Disassembler *
* (c) Phoenix corp. 1992,93 - All rights reserved *
*---------------------------------------------------------*
TYP BIN
ORG $000000
HEX 00000000010101020202030303030404
HEX 04050505060606060707070808080909
HEX 09090A0A0A0B0B0B0C0C0C0C0D0D0D0E
HEX 0E0E0F0F0F0F10101011111112121212
HEX 13131314141415151515161616171717
HEX 181818181919191A1A1A1B1B1B1B1C1C
HEX 1C1D1D1D1E1E1E1E1F1F1F2020202121
HEX 21212222222323232424242425252526
HEX 2626272727272828282929292A2A2A2A
HEX 2B2B2B2C2C2C2D2D2D2D2E2E2E2F2F2F
HEX 30303030313131323232333333333434
HEX 34353535363636363737373838383939
HEX 39393A3A3A3B3B3B3C3C3C3C3D3D3D3E
HEX 3E3E3F3F3F3F40404041414142424242
HEX 43434344444445454545464646474747
HEX 484848484949494A4A4A4B4B4B4B4C4C
HEX 00000101020203040405050607070808
HEX 090A0A0B0B0C0C0D0E0E0F0F10111112
HEX 121314141515161717181819191A1B1B
HEX 1C1C1D1E1E1F1F202121222223232425
HEX 25262627282829292A2B2B2C2C2D2E2E
HEX 2F2F3030313232333334353536363738
HEX 3839393A3B3B3C3C3D3D3E3F3F404041
HEX 42424343444545464647474849494A4A
HEX 4B4C4C4D4D4E4F4F5050515252535354
HEX 5455565657575859595A5A5B5C5C5D5D
HEX 5E5E5F60606161626363646465666667
HEX 676869696A6A6B6B6C6D6D6E6E6F7070
HEX 7171727373747475767677777878797A
HEX 7A7B7B7C7D7D7E7E7F80808181828283
HEX 848485858687878888898A8A8B8B8C8D
HEX 8D8E8E8F8F9091919292939494959596
HEX 00000000000000000000010101010101
HEX 01010102020202020202020203030303
HEX 03030303030404040404040404040505
HEX 05050505050505060606060606060606
HEX 07070707070707070708080808080808
HEX 08080909090909090909090A0A0A0A0A
HEX 0A0A0A0A0B0B0B0B0B0B0B0B0B0B0C0C
HEX 0C0C0C0C0C0C0C0D0D0D0D0D0D0D0D0D
HEX 0E0E0E0E0E0E0E0E0E0F0F0F0F0F0F0F
HEX 0F0F1010101010101010101111111111
HEX 11111111121212121212121212131313
HEX 13131313131314141414141414141415
HEX 15151515151515151616161616161616
HEX 16161717171717171717171818181818
HEX 181818181919191919191919191A1A1A
HEX 1A1A1A1A1A1A1B1B1B1B1B1B1B1B1B1C

142
TrueConvert/Pack.BIN.s Normal file
View File

@ -0,0 +1,142 @@
*-----------------
* BIN
*-----------------
packBIN lda fgALL ; CONVERT ALL
beq packBIN1
lda fgMODE ; MODE NONE?
cmp #4
bne packBIN1
brl noneBIN
packBIN1 ldx #6
ldy #0
jsr GSOScreate
bcc packBIN2
rts
packBIN2 lda #319
sta pkBIN
lda #199
sta pkBIN+2
lda #pkBIN ; Entete
sta proWRITE+4
lda #^pkBIN
sta proWRITE+6
ldx #0
ldy #4
jsr GSOSwrite
bcc packBIN3
rts
packBIN3 lda menuSAVE1 ; 16 grey
cmp #4
bne packBIN4
ldx ptrPIC16+2
ldy ptrPIC16
jsr changeRES
bra packBIN10
packBIN4 cmp #3 ; 16 col
bne packBIN5
lda ptrPIC16
clc
adc #$8000
tay
lda ptrPIC16+2
adc #0
tax
jsr changeRES
bra packBIN10
packBIN5 cmp #2 ; 256 col
bne packBIN6
ldx ptrPIC256+2
ldy ptrPIC256
jsr changeRES
bra packBIN10
packBIN6 jsr changeRES10 ; Image 3200
packBIN10 lda ptrBUFFER ; Sauve les points
sta proWRITE+4
lda ptrBUFFER+2
sta proWRITE+6
ldx #0
ldy #64000
jsr GSOSwrite
bcc packBIN11
rts
packBIN11 lda #pcPALETTE1 ; Sauve la palette
sta proWRITE+4
lda #^pcPALETTE1
sta proWRITE+6
ldx #0
ldy #768
jsr GSOSwrite
rts
*--- Mode NONE
noneBIN lda picWIDTH
dec
sta pkBIN
lda picHEIGHT
dec
sta pkBIN+2
ldx #6
ldy #0
jsr GSOScreate
bcc noneBIN1
rts
noneBIN1 lda #pkBIN ; Entete
sta proWRITE+4
lda #^pkBIN
sta proWRITE+6
ldx #0
ldy #4
jsr GSOSwrite
bcc noneBIN2
rts
*---
noneBIN2 stz numLIGNE
noneBIN3 lda numLIGNE ; Les lignes
asl
clc
adc numLIGNE
tay
lda [dpLIGNES],y
sta proWRITE+4
iny
iny
lda [dpLIGNES],y
sta proWRITE+6
ldx #0
ldy picWIDTH
jsr GSOSwrite
bcc noneBIN4
rts
noneBIN4 inc numLIGNE
lda numLIGNE
cmp picHEIGHT
bne noneBIN3
lda #pcPALETTE1 ; Palette
sta proWRITE+4
lda #^pcPALETTE1
sta proWRITE+6
ldx #0
ldy #768
jsr GSOSwrite
rts
*--- Data BIN
pkBIN ds 2
ds 2

25
TrueConvert/PackBIN.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Packers : BIN
*----------------------------------------
* lst off
* rel
* dsk packBIN.l
*----------------------------------------
*packBIN ENT
packBIN phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

25
TrueConvert/PackBMP.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Packers : BMP
*----------------------------------------
* lst off
* rel
* dsk packBMP.l
*----------------------------------------
*packBMP ENT
packBMP phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

25
TrueConvert/PackGS.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Packers : GS
*----------------------------------------
* lst off
* rel
* dsk packGS.l
*----------------------------------------
*packGS ENT
packGS phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

25
TrueConvert/PackPCX.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Packers : PCX
*----------------------------------------
* lst off
* rel
* dsk packPCX.l
*----------------------------------------
*packPCX ENT
packPCX phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

25
TrueConvert/PackRAW.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Packers : RAW
*----------------------------------------
* lst off
* rel
* dsk packRAW.l
*----------------------------------------
*packRAW ENT
packRAW phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

25
TrueConvert/PackTIF.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Packers : TIF
*----------------------------------------
* lst off
* rel
* dsk packTIF.l
*----------------------------------------
*packTIF ENT
packTIF phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

197
TrueConvert/TRUE.COLORS.S Normal file
View File

@ -0,0 +1,197 @@
*----------------------------------------
* True Convert : Colors
*----------------------------------------
*----------------------------------------
* Transform picture into greyscales
*----------------------------------------
meGREYSCALES lda picBPP ; 8 BIT
cmp #8
bne meGREY24
lda picPAL
sta Debut
lda picPAL+2
sta Debut+2
lda #768
clc
adc Debut
sta Second
lda #0
adc Debut+2
sta Second+2
bra doGREY
meGREY24 lda picPTR ; 24 BIT
sta Debut
lda picPTR+2
sta Debut+2
pha
pha
PushLong picHA
_GetHandleSize
pla
clc
adc Debut
sta Second
pla
adc Debut+2
sta Second+2
*-------------- The core routine
doGREY jsr greyGET
ldx greyR ; Calculate grey equivalent
lda tblRED,x
and #$ff
sta greyRGB
ldx greyG
lda tblGREEN,x
and #$ff
clc
adc greyRGB
sta greyRGB
ldx greyB
lda tblBLUE,x
and #$ff
clc
adc greyRGB
sta greyRGB
jsr greySET ; Write result
lda Debut ; Check end of picture
cmp Second
bcc doGREY
lda Debut+2
cmp Second+2
bcc doGREY
clc
rts
*-------------- Read source components
greyGET lda Debut
sta Arrivee
lda Debut+2
sta Arrivee+2
lda [Debut]
and #$ff
sta greyR
inc Debut
bne greyGET1
inc Debut+2
greyGET1 lda [Debut]
and #$ff
sta greyG
inc Debut
bne greyGET2
inc Debut+2
greyGET2 lda [Debut]
and #$ff
sta greyB
inc Debut
bne greyGET3
inc Debut+2
greyGET3 rts
*-------------- Write output result
greySET lda greyRGB
sta [Arrivee]
inc Arrivee
bne greySET1
inc Arrivee+2
greySET1 sta [Arrivee]
inc Arrivee
bne greySET2
inc Arrivee+2
greySET2 sep #$20
sta [Arrivee]
rep #$20
rts
*--------------
greyRGB ds 2
greyR ds 2
greyG ds 2
greyB ds 2
*----------------------------------------
* Negative picture
*----------------------------------------
meNEGATIVE rts
*----------------------------------------
* Solarize picture
*----------------------------------------
meSOLARIZE rts
*----------------------------------------
* Table : r * 0.30 + g * 0.59 + b * 0.11
*----------------------------------------
tblRED HEX 00000000010101020202030303030404
HEX 04050505060606060707070808080909
HEX 09090A0A0A0B0B0B0C0C0C0C0D0D0D0E
HEX 0E0E0F0F0F0F10101011111112121212
HEX 13131314141415151515161616171717
HEX 181818181919191A1A1A1B1B1B1B1C1C
HEX 1C1D1D1D1E1E1E1E1F1F1F2020202121
HEX 21212222222323232424242425252526
HEX 2626272727272828282929292A2A2A2A
HEX 2B2B2B2C2C2C2D2D2D2D2E2E2E2F2F2F
HEX 30303030313131323232333333333434
HEX 34353535363636363737373838383939
HEX 39393A3A3A3B3B3B3C3C3C3C3D3D3D3E
HEX 3E3E3F3F3F3F40404041414142424242
HEX 43434344444445454545464646474747
HEX 484848484949494A4A4A4B4B4B4B4C4C
tblGREEN HEX 00000101020203040405050607070808
HEX 090A0A0B0B0C0C0D0E0E0F0F10111112
HEX 121314141515161717181819191A1B1B
HEX 1C1C1D1E1E1F1F202121222223232425
HEX 25262627282829292A2B2B2C2C2D2E2E
HEX 2F2F3030313232333334353536363738
HEX 3839393A3B3B3C3C3D3D3E3F3F404041
HEX 42424343444545464647474849494A4A
HEX 4B4C4C4D4D4E4F4F5050515252535354
HEX 5455565657575859595A5A5B5C5C5D5D
HEX 5E5E5F60606161626363646465666667
HEX 676869696A6A6B6B6C6D6D6E6E6F7070
HEX 7171727373747475767677777878797A
HEX 7A7B7B7C7D7D7E7E7F80808181828283
HEX 848485858687878888898A8A8B8B8C8D
HEX 8D8E8E8F8F9091919292939494959596
tblBLUE HEX 00000000000000000000010101010101
HEX 01010102020202020202020203030303
HEX 03030303030404040404040404040505
HEX 05050505050505060606060606060606
HEX 07070707070707070708080808080808
HEX 08080909090909090909090A0A0A0A0A
HEX 0A0A0A0A0B0B0B0B0B0B0B0B0B0B0C0C
HEX 0C0C0C0C0C0C0C0D0D0D0D0D0D0D0D0D
HEX 0E0E0E0E0E0E0E0E0E0F0F0F0F0F0F0F
HEX 0F0F1010101010101010101111111111
HEX 11111111121212121212121212131313
HEX 13131313131314141414141414141415
HEX 15151515151515151616161616161616
HEX 16161717171717171717171818181818
HEX 181818181919191919191919191A1A1A
HEX 1A1A1A1A1A1A1B1B1B1B1B1B1B1B1B1C

545
TrueConvert/True.About.s Normal file
View File

@ -0,0 +1,545 @@
*----------------------------------------
* True Convert : About
*----------------------------------------
FirstHandle = $E11600
*--------------
meABOUT lda wiABOUT
ora wiABOUT+2
beq meABOUT1
PushLong wiABOUT
_SelectWindow
rts
meABOUT1 pha
pha
PushLong #0
PushLong #wABOUT
PushLong #PAINTABOUT
PushLong #0
PushWord #refIsResource
PushLong #wABOUT
PushWord #$800e
_NewWindow2
PullLong wiABOUT
*--------------
pha
pha
_TotalMem
pla
sta L0C0270
pla
sta L0C0270+2
ldx #$0009
]lp lsr L0C0270+2
ror L0C0270
dex
bpl ]lp
lda L0C0270
pha
pea ^L0C0293
pea L0C0293
pea $0005
pea $0000
_Int2Dec
pha
pha
_RealFreeMem
pla
sta L0C0274
pla
sta L0C0274+2
ldx #$0009
]lp lsr L0C0274+2
ror L0C0274
dex
bpl ]lp
lda L0C0274
pha
pea ^L0C029A
pea L0C029A
pea $0005
pea $0000
_Int2Dec
jsl L0C046F
ldx #$0009
]lp lsr L0C027A
ror L0C0278
lsr L0C027E
ror L0C027C
lsr L0C0282
ror L0C0280
lsr L0C0286
ror L0C0284
dex
bpl ]lp
lda L0C0274
sta L0C0288
lda L0C0278
sta L0C028A
lda L0C027C
sta L0C028C
lda L0C0280
sta L0C028E
lda L0C0284
sta L0C0290
lda L0C0278
pha
pea ^L0C02A1
pea L0C02A1
pea $0005
pea $0000
_Int2Dec
lda L0C027C
pha
pea ^L0C02A8
pea L0C02A8
pea $0005
pea $0000
_Int2Dec
lda L0C0280
pha
pea ^L0C02AF
pea L0C02AF
pea $0005
pea $0000
_Int2Dec
lda L0C0284
pha
pea ^L0C02B6
pea L0C02B6
pea $0005
pea $0000
_Int2Dec
pha
pha
pea $8029
pea $0000
pea $0001
_LoadResource
pla
sta L0C02BC
pla
sta L0C02BC+2
pea $8029
pea $0000
pea $0001
_DetachResource
lda L0C02BC
sta $01
lda L0C02BC+2
sta $03
lda [$01]
tax
ldy #$0002
lda [$01],Y
stx $01
stx L0C02C0
sta $03
sta L0C02C0+2
pea $0000
ldy #$0002
lda [$01],Y
pha
lda [$01]
pha
pea ^L0C02CC
pea L0C02CC
_VersionString
pha
pha
pea $8029
pea $0000
pea $0001
_LoadResource
pla
sta L0C02C4
pla
sta L0C02C4+2
pea $8029
pea $0000
pea $0001
_DetachResource
lda L0C02C4
sta $01
lda L0C02C4+2
sta $03
ldy #$0004
lda [$01],Y
ora #$8000
sta [$01],Y
lda [$01]
tax
ldy #$0002
lda [$01],Y
stx $01
stx L0C02C8
sta $03
sta L0C02C8+2
pea $0000
ldy #$0002
lda [$01],Y
pha
lda [$01]
pha
pea ^L0C02E0
pea L0C02E0
_VersionString
PushLong wiABOUT
_ShowWindow
rts
*--------------
wiABOUT ds 4
L0C0270 adrl $00000000
L0C0274 adrl $00000000
L0C0278 dw $0000
L0C027A dw $0000
L0C027C dw $0000
L0C027E dw $0000
L0C0280 dw $0000
L0C0282 dw $0000
L0C0284 dw $0000
L0C0286 dw $0000
L0C0288 dw $0000
L0C028A dw $0000
L0C028C dw $0000
L0C028E dw $0000
L0C0290 dw $0000
L0C0292 db $06
L0C0293 asc ' K'
L0C0299 db $06
L0C029A asc ' K'
L0C02A0 db $06
L0C02A1 asc ' K'
L0C02A7 db $06
L0C02A8 asc ' K'
L0C02AE db $06
L0C02AF asc ' K'
L0C02B5 db $06
L0C02B6 asc ' K'
L0C02BC ent
dw $0000
L0C02BE ent
dw $0000
L0C02C0 adrl $00000000
L0C02C4 ent
dw $0000
L0C02C6 ent
dw $0000
L0C02C8 adrl $00000000
L0C02CC ds $14
L0C02E0 ds $14
*--------------
L0C046F phb
phk
plb
pha
_MMStartUp
pla
sta L0C04D1
php
sei
phd
pha
pha
tsc
tcd
stz L0C0278
stz L0C027A
stz L0C027C
stz L0C027E
stz L0C0280
stz L0C0282
stz L0C0284
stz L0C0286
ldal FirstHandle
sta $01
ldal FirstHandle+2
sta $03
L0C04A9 ldy #$0004
lda [$01],Y
bmi L0C04B5
and #$0300
bne L0C04F3
L0C04B5 ldy #$0006
lda [$01],Y
beq L0C04F3
tax
eor L0C04D1
and #$F0FF
beq L0C0511
txa
and #$F000
xba
lsr
lsr
lsr
tax
jmp (L0C04D3,X)
L0C04D1 dw $0000
L0C04D3 da L0C0529
da L0C04F3
da L0C04F3
da L0C0529
da L0C0529
da L0C0541
da L0C0529
da L0C0529
da L0C0529
da L0C0529
da L0C0559
da L0C04F3
da L0C04F3
da L0C04F3
da L0C04F3
da L0C04F3
L0C04F3 ldy #$0010
lda [$01],Y
tax
bne L0C0507
iny
iny
lda [$01],Y
beq L0C0571
stx $01
sta $03
bra L0C04A9
L0C0507 iny
iny
lda [$01],Y
stx $01
sta $03
bra L0C04A9
L0C0511 ldy #$0008
lda [$01],Y
clc
adc L0C0278
sta L0C0278
iny
iny
lda [$01],Y
adc L0C027A
sta L0C027A
bra L0C04F3
L0C0529 ldy #$0008
lda [$01],Y
clc
adc L0C027C
sta L0C027C
iny
iny
lda [$01],Y
adc L0C027E
sta L0C027E
bra L0C04F3
L0C0541 ldy #$0008
lda [$01],Y
clc
adc L0C0280
sta L0C0280
iny
iny
lda [$01],Y
adc L0C0282
sta L0C0282
bra L0C04F3
L0C0559 ldy #$0008
lda [$01],Y
clc
adc L0C0284
sta L0C0284
iny
iny
lda [$01],Y
adc L0C0286
sta L0C0286
bra L0C04F3
L0C0571 lda #$5000
clc
adc L0C027C
sta L0C027C
lda #$0001
adc L0C027E
sta L0C027E
pla
pla
pld
plp
plb
rtl
*--------------
PAINTABOUT phb
phk
plb
phd
pha
pha
tsc
tcd
pea ^L0C073D
pea L0C073D
_EraseRect
PushLong wiABOUT
_DrawControls
lda L0C02C8
sta $01
lda L0C02C8+2
sta $03
pea $0078
pea $0018
_MoveTo
ldy #$0006
lda [$01],Y
and #$00FF
clc
adc $01
tax
lda $03
adc #$0000
tay
txa
clc
adc #$0007
tax
tya
adc #$0000
pha
phx
_DrawString
pea $0078
pea $000D
_MoveTo
lda L0C02C8
clc
adc #$0006
tax
lda L0C02C8+2
adc #$0000
pha
phx
_DrawString
pea $0004
pea $0000
_Move
pea ^L0C02E0
pea L0C02E0
_DrawString
pha
pea ^L0C0292
pea L0C0292
_StringWidth
lda #$00C3
sec
sbc $01,S
sta $01,S
pea $0026
_MoveTo
pea ^L0C0292
pea L0C0292
_DrawString
pha
pea ^L0C0299
pea L0C0299
_StringWidth
lda #$0199
sec
sbc $01,S
sta $01,S
pea $0026
_MoveTo
pea ^L0C0299
pea L0C0299
_DrawString
pha
pea ^L0C02A0
pea L0C02A0
_StringWidth
lda #$00C3
sec
sbc $01,S
sta $01,S
pea $0035
_MoveTo
pea ^L0C02A0
pea L0C02A0
_DrawString
pha
pea ^L0C02AE
pea L0C02AE
_StringWidth
lda #$0199
sec
sbc $01,S
sta $01,S
pea $0035
_MoveTo
pea ^L0C02AE
pea L0C02AE
_DrawString
pha
pea ^L0C02A7
pea L0C02A7
_StringWidth
lda #$00C3
sec
sbc $01,S
sta $01,S
pea $0040
_MoveTo
pea ^L0C02A7
pea L0C02A7
_DrawString
pha
pea ^L0C02B5
pea L0C02B5
_StringWidth
lda #$0199
sec
sbc $01,S
sta $01,S
pea $0040
_MoveTo
pea ^L0C02B5
pea L0C02B5
_DrawString
pla
pla
pld
plb
rtl
*--------------
L0C073D dw $001A
dw $008C
dw $0042
dw $01EA

223
TrueConvert/True.Batch.s Normal file
View File

@ -0,0 +1,223 @@
*----------------------------------------
* True Convert : Batch
*----------------------------------------
batNEXT1 = $1810
batBACK1 = $1820
batCANC1 = $1830
batPATH1 = $1840
batBROW1 = $1850
batNEXT2 = $1910
batBACK2 = $1920
batCANC2 = $1930
batPATH2 = $1940
batBROW2 = $1950
*--------------
meBATCH jsr batchPREFIX
jsr batchWINDOW1
cpy #batCANC1
beq meBATCH1
jsr batchWINDOW2
cpy #batBACK2
beq meBATCH
cpy #batNEXT2
beq meBATCH2
meBATCH1 rts
meBATCH2 sep #$20
ldal $c034
inc
stal $c034
rep #$20
rts
*--------------
batchWINDOW1 pha
pha
PushLong #0
PushLong #1
PushLong #PAINTBATCH1
PushLong #0
PushWord #refIsResource
PushLong #wBATCH1
PushWord #$800e
_NewWindow2
PullLong wiBATCH1
batchWINDOW12 jsr batchENTRY1
]lp pha
pha
PushLong #taskREC
PushLong #0
PushLong #0
PushLong #-1
PushWord #%11000000_00011000
_DoModalWindow
ply
plx
cpy #batBACK1
beq batchWINDOW17
cpy #batNEXT1
beq batchWINDOW18
cpy #batCANC1
beq batchWINDOW19
cpy #batBROW1
bne ]lp
jsr stdOPEN
jsr batchPREFIX
bra batchWINDOW12
batchWINDOW17 jsr batchEASTER
bra ]lp
batchWINDOW18 phy
jsr batchESCAPE1
ply
batchWINDOW19 phy
_InitCursor
PushLong wiBATCH1
_CloseWindow
ply
rts
*--------------
batchWINDOW2 pha
pha
PushLong #0
PushLong #1
PushLong #PAINTBATCH2
PushLong #0
PushWord #refIsResource
PushLong #wBATCH2
PushWord #$800e
_NewWindow2
PullLong wiBATCH2
batchWINDOW22 jsr batchENTRY2
]lp pha
pha
PushLong #taskREC
PushLong #0
PushLong #0
PushLong #-1
PushWord #%11000000_00011000
_DoModalWindow
ply
plx
cpy #batNEXT2
beq batchWINDOW28
cpy #batCANC2
beq batchWINDOW29
cpy #batBACK2
beq batchWINDOW29
cpy #batBROW2
bne ]lp
jsr stdSAVE
jsr batchPREFIX
bra batchWINDOW22
batchWINDOW28 phy
jsr batchESCAPE2
ply
batchWINDOW29 phy
_InitCursor
PushLong wiBATCH2
_CloseWindow
ply
rts
*--------------
PAINTBATCH1 PushLong wiBATCH1
_DrawControls
rtl
PAINTBATCH2 PushLong wiBATCH2
_DrawControls
rtl
*--------------
wiBATCH1 ds 4
wiBATCH2 ds 4
*--------------
doBATCH sep #$20
ldal $c034
inc
stal $c034
rep #$20
rts
*--------------
batchENTRY1 PushLong wiBATCH1
PushLong #batPATH1
PushLong #batVPATH1
_SetLETextByID
rts
batchESCAPE1 PushLong wiBATCH1
PushLong #batPATH1
PushLong #batVPATH1
_GetLETextByID
rts
batchEASTER PushLong wiBATCH1
PushLong #batPATH1
PushLong #batEASTER
_SetLETextByID
rts
*--------------
batchENTRY2 PushLong wiBATCH2
PushLong #batPATH2
PushLong #batVPATH2
_SetLETextByID
rts
batchESCAPE2 PushLong wiBATCH2
PushLong #batPATH2
PushLong #batVPATH2
_GetLETextByID
rts
*--------------
batchPREFIX lda pfxOPEN2 ; copy length
sta batVPATH1
lda pfxSAVE2
sta batVPATH2
ldx #256-2 ; copy string
]lp lda pfxOPEN3,x
sta batVPATH1+1,x
lda pfxSAVE3,x
sta batVPATH2+1,x
dex
dex
bpl ]lp
rts
*--------------
batVPATH1 ds 262
batVPATH2 ds 262
*--------------
batEASTER str 'Antoine says : Great! You have found the hidden message'

View File

@ -0,0 +1,87 @@
*----------------------------------------
* True Convert : Colorize
*----------------------------------------
colOK = $1A50
colCANCEL = $1A40
colPOP = $1A20
*--------------
meCOLORIZE pha
pha
PushLong #0
PushLong #1
PushLong #PAINTCOLORIZE
PushLong #0
PushWord #refIsResource
PushLong #wCOLORIZE
PushWord #$800e
_NewWindow2
PullLong wiCOLORIZE
jsr colorizeENTRY
]lp pha
pha
PushLong #taskREC
PushLong #0
PushLong #0
PushLong #-1
PushWord #%11000000_00011000
_DoModalWindow
ply
plx
cpy #colCANCEL
beq meCOLORIZE9
cpy #colOK
bne ]lp
jsr doCOLORIZE
jsr colorizeESCAPE
meCOLORIZE9 _InitCursor
PushLong wiCOLORIZE
_CloseWindow
rts
*--------------
PAINTCOLORIZE PushLong wiCOLORIZE
_DrawControls
rtl
*--------------
doCOLORIZE sep #$20
ldal $c034
inc
stal $c034
rep #$20
rts
*--------------
colorizeENTRY PushWord colVPOP
PushLong wiCOLORIZE
PushLong #colPOP
_SetCtlValueByID
rts
*--------------
colorizeESCAPE pha
PushLong wiCOLORIZE
PushLong #colPOP
_GetCtlValueByID
pla
sta colVPOP
rts
*--------------
colVPOP dw $1A21
*--------------
wiCOLORIZE ds 4

View File

@ -0,0 +1,12 @@
*----------------------------------------
* True Convert : Convert
*----------------------------------------
*--------------
meCONVERT sep #$20
ldal $c034
inc
stal $c034
rep #$20
rts

28
TrueConvert/True.Count.s Normal file
View File

@ -0,0 +1,28 @@
*----------------------------------------
* True Convert : Count Colors
*----------------------------------------
meCOUNT PushLong #65536
PushLong #strZERO
PushWord #5
PushWord #0
_Long2Dec
PushLong #255
PushLong #strONE
PushWord #5
PushWord #0
_Long2Dec
pha
PushWord #4
PushLong #strARRAY
PushLong #2 ; Count colors
_AlertWindow
pla
rts
strARRAY adrl strZERO,strONE
strZERO asc ' '00
strONE asc ' '00

885
TrueConvert/True.File.s Normal file
View File

@ -0,0 +1,885 @@
*----------------------------------------
* TrueConvert : Standard File
*----------------------------------------
ButtonItem = $0a
StatText = $0f
EditLine = $11
UserItem = $14
ItemDisable = $8000
*--------------
stdOPEN jsr GSOSsetOPEN
PushWord #120
PushWord #43
PushWord #refIsResource
PushLong #loadSTR
PushLong #0
PushLong #fileLIST
PushLong #replyPTR
_SFGetFile2
jsr GSOSgetOPEN
lda replyPTR
bne stdOPEN1
sec
rts
stdOPEN1 clc
rts
*----------------------------------- Standard save
stdSAVE jsr GSOSsetSAVE
PushWord #160
PushWord #40
PushWord #refIsResource
PushLong #saveSTR
PushWord #0
PushLong #namePTR1
PushLong #replyPTR
_SFPutFile2
jsr GSOSgetSAVE
lda replyPTR
bne stdSAVE1
sec
rts
stdSAVE1 clc
rts
*--------------
stdOPEN2 jsr GSOSsetOPEN
lda #replyPTR
stal $340
lda #^replyPTR
stal $342
PushWord #120 ; whereX
PushWord #33 ; whereY
PushLong #0 ; itemDrawPtr
PushWord #refIsResource ; promptRefDesc
PushLong #loadSTR ; promptRef
PushLong #0 ; filterProcPtr
PushLong #fileLIST ; typeListPtr
PushLong #openLIST ; dialogTempPtr
PushLong #openHOOK ; dialogHookPtr
PushLong #replyPTR ; replyPtr
_SFPGetFile2
jsr GSOSgetOPEN
lda replyPTR
bne stdOPEN3
sec
rts
stdOPEN3 clc
rts
*--------------
stdSAVE2 jsr GSOSsetSAVE
PushWord #160 ; whereX
PushWord #30 ; whereY
PushLong #0 ; itemDrawPtr
PushWord #refIsResource ; promptRefDesc
PushLong #saveSTR ; promptRef
PushWord #refIsPointer ; filenameRefDesc
PushLong #namePTR1 ; filenameRef
PushLong #saveLIST ; dialogTempPtr
PushLong #saveHOOK ; dialogHookPtr
PushLong #replyPTR ; replyPtr
_SFPPutFile2
jsr GSOSgetSAVE
lda replyPTR
bne stdSAVE3
sec
rts
stdSAVE3 clc
rts
*---------------------------------------
* DIALOG HOOKS
*---------------------------------------
*--- Dialog Hook for OPEN
openHOOK phb ; DialogHook
phk
plb
tdc
sta saveDP
lda myDP
tcd
pla
sta openHOOK4+1
pla
sta openHOOK3+1
pla
sta Debut
pla
sta Debut+2
lda [Debut]
cmp #100
beq openHOOK1
bra openHOOK2
openHOOK1 lda #0
sta [Debut]
PushLong #mouseLOC
_GetMouse
PushLong #mouseLOC
_LocalToGlobal
PushWord #0
PushLong mouseLOC
PushLong #0
PushLong haPOPUPOPEN
_TrackControl
pla
beq openHOOK2
ply
plx
pea $0000
pea $0000
pea $0000
phx
phy
PushLong #100
_GetCtlHandleFromID
_GetCtlValue
pla
sta ctlPOPUPOPEN1
sec
sbc #100
sta menuOPEN
bra openHOOK3
openHOOK2 pla
pla
openHOOK3 pea $0000
openHOOK4 pea $0000
lda saveDP
tcd
plb
rtl
*--- Draw PopUp OPEN
drawPOPUPOPEN phb ; DrawPopUp
phk
plb
tdc
sta saveDP
lda myDP
tcd
pla
sta drawPOPUPOPEN2+1
pla
sta drawPOPUPOPEN1+1
pla
plx
pla
pea $0000
pea $0000
pha
phx
pea $0000
PushLong #ctlPOPUPOPEN
_NewControl2
PullLong haPOPUPOPEN
PushLong haPOPUPOPEN
_SetMenuBar
PushLong haPOPUPOPEN
_DrawOneCtl
drawPOPUPOPEN1 pea $0000
drawPOPUPOPEN2 pea $0000
lda saveDP
tcd
plb
rtl
*--- Dialog Hook for SAVE
saveHOOK phb ; DialogHook
phk
plb
tdc
sta saveDP
lda myDP
tcd
pla
sta saveHOOK6+1
sta saveHOOK15+1
pla
sta saveHOOK5+1
sta saveHOOK14+1
pla
sta Debut
pla
sta Debut+2
lda [Debut]
cmp #200
beq saveHOOK1
cmp #300
beq saveHOOK0
brl saveHOOK4
saveHOOK0 brl saveHOOK10
*--- PopUp Colors
saveHOOK1 lda #0 ; MODE
sta [Debut]
PushLong #mouseLOC
_GetMouse
PushLong #mouseLOC
_LocalToGlobal
PushWord #0
PushLong mouseLOC
PushLong #0
PushLong haPOPUPSAVE1
_TrackControl
pla
bne saveHOOK2
brl saveHOOK4
saveHOOK2 ply
plx
pea $0000
pea $0000
pea $0000
phx
phy
PushLong #200
_GetCtlHandleFromID
_GetCtlValue
pla
sta ctlPOPUPSAVE1
sec
sbc #200
sta menuSAVE1
cmp #5 ; PrintShop ?
beq saveHOOK3
PushLong haPOPUPSAVE10 ; non !
_SetMenuBar
PushWord #302
_EnableMItem
PushWord #303
_EnableMItem
PushWord #304
_EnableMItem
PushWord #305
_EnableMItem
PushLong haPOPUPSAVE10
_DrawOneCtl
bra saveHOOK5
saveHOOK3 PushLong haPOPUPSAVE10 ; oui !
_SetMenuBar
PushWord #302
_DisableMItem
PushWord #303
_DisableMItem
PushWord #304
_DisableMItem
PushWord #305
_DisableMItem
PushLong haPOPUPSAVE10
_DrawOneCtl
bra saveHOOK5
saveHOOK4 pla
pla
saveHOOK5 pea $0000
saveHOOK6 pea $0000
lda saveDP
tcd
plb
rtl
*--- PopUp Format de sauvegarde
saveHOOK10 lda #0 ; FORMAT
sta [Debut]
PushLong #mouseLOC
_GetMouse
PushLong #mouseLOC
_LocalToGlobal
PushWord #0
PushLong mouseLOC
PushLong #0
PushLong haPOPUPSAVE10
_TrackControl
pla
bne saveHOOK11
brl saveHOOK13
saveHOOK11 ply
plx
pea $0000
pea $0000
pea $0000
phx
phy
PushLong #300
_GetCtlHandleFromID
_GetCtlValue
pla
sta ctlPOPUPSAVE11
sec
sbc #300
sta menuSAVE10
lda fgFORMATS+8 ; PrintShop available ?
bne saveHOOK111
brl saveHOOK14
saveHOOK111 lda menuSAVE10 ; Format GS ?
cmp #1
beq saveHOOK12
PushLong haPOPUPSAVE1
_SetMenuBar
PushWord #205
_DisableMItem
PushLong haPOPUPSAVE1
_DrawOneCtl
bra saveHOOK14
saveHOOK12 PushLong haPOPUPSAVE1
_SetMenuBar
PushWord #205
_EnableMItem
PushLong haPOPUPSAVE1
_DrawOneCtl
bra saveHOOK14
saveHOOK13 pla
pla
saveHOOK14 pea $0000
saveHOOK15 pea $0000
lda saveDP
tcd
plb
rtl
*--- Draw PopUp SAVE
drawPOPUPSAVE phb ; DrawPopUp
phk
plb
tdc
sta saveDP
lda myDP
tcd
pla
sta drawPOPUPSAVE2+1
pla
sta drawPOPUPSAVE1+1
pla
plx
stx ctlTEMP
pla
sta ctlTEMP+2
pea $0000
pea $0000
pha
phx
pea $0000
PushLong #ctlPOPUPSAVE
_NewControl2
PullLong haPOPUPSAVE1
jsr getFORMATS
pea $0000
pea $0000
PushLong ctlTEMP
pea $0000
PushLong #ctlPOPUPSAVE10
_NewControl2
PullLong haPOPUPSAVE10
PushLong haPOPUPSAVE10
_SetMenuBar
PushLong haPOPUPSAVE10
_DrawOneCtl
drawPOPUPSAVE1 pea $0000
drawPOPUPSAVE2 pea $0000
lda saveDP
tcd
plb
rtl
*---
*getFORMATS lda ptrCODE
* sta Debut
* lda ptrCODE+2
* sta Debut+2
*
* ldy #$130
* ldx #0
*]lp lda [Debut],y
* sta fgFORMATS,x
* iny
* iny
* inx
* inx
* cpx #2*5
* bne ]lp
*
* ldy #$140 ; Last conversion made
* lda [Debut],y
* sta temp
* asl
* tax
* lda fgFORMATS,x
* bne getFORMATS1
getFORMATS ldx #0
]lp lda fgFORMATS,x
bne getFORMATS0
inx
inx
cpx #2*8
bne ]lp
ldx #0
getFORMATS0 txa
lsr
sta temp
getFORMATS1 lda temp
inc
sta menuSAVE1
clc
adc #200
sta ctlPOPUPSAVE1
PushLong haPOPUPSAVE1
_SetMenuBar
PushWord #201 ; None selected
_DisableMItem
PushWord #202
_DisableMItem
PushWord #203
_DisableMItem
PushWord #204
_DisableMItem
PushWord #205
_DisableMItem
PushWord #206
_DisableMItem
PushWord #207
_DisableMItem
PushWord #208
_DisableMItem
lda fgFORMATS
beq getFORMATS2
PushWord #201
_EnableMItem
getFORMATS2 lda fgFORMATS+2
beq getFORMATS3
PushWord #202
_EnableMItem
getFORMATS3 lda fgFORMATS+4
beq getFORMATS4
PushWord #203
_EnableMItem
getFORMATS4 lda fgFORMATS+6
beq getFORMATS5
PushWord #204
_EnableMItem
getFORMATS5 lda fgFORMATS+8
beq getFORMATS6
PushWord #205
_EnableMItem
getFORMATS6 lda fgFORMATS+10
beq getFORMATS7
PushWord #206
_EnableMItem
getFORMATS7 lda fgFORMATS+12
beq getFORMATS8
PushWord #207
_EnableMItem
getFORMATS8 lda fgFORMATS+14
beq getFORMATS9
PushWord #208
_EnableMItem
getFORMATS9 PushLong haPOPUPSAVE1
_DrawOneCtl
lda fgFORMATS
ora fgFORMATS+2
ora fgFORMATS+4
ora fgFORMATS+6
ora fgFORMATS+8
ora fgFORMATS+10
ora fgFORMATS+12
ora fgFORMATS+14
sta fgSAVE
rts
*--------------
strSAVE str 'Save'
strOPEN str 'Open'
strCLOSE str 'Close'
strNEXT str 'Disk'
strCANCEL str 'Cancel'
strACCEPT str 'Accept'
strFREE str '^0 free of ^1 k.'
strFOLDER str 'New Folder'
openLIST dw 0,0,134,400
dw -1
dw 0,0
adrl openOPEN
adrl openCLOSE
adrl openNEXT
adrl openCANCEL
adrl openSCROLL
adrl openPATH
adrl openFILES
adrl openPROMPT
adrl openPOPUP
adrl 0
openOPEN dw 1
dw 61,265,73,375
dw ButtonItem
adrl strOPEN
dw 0,0
adrl 0
openCLOSE dw 2
dw 79,265,91,375
dw ButtonItem
adrl strCLOSE
dw 0,0
adrl 0
openNEXT dw 3
dw 25,265,37,375
dw ButtonItem
adrl strNEXT
dw 0,0
adrl 0
openCANCEL dw 4
dw 97,265,109,375
dw ButtonItem
adrl strCANCEL
dw 0,0
adrl 0
openSCROLL dw 5
dw 43,265,55,375
dw ButtonItem
adrl strACCEPT
dw 0,0
adrl 0
openPATH dw 6
dw 12,15,24,395
dw UserItem
adrl 0
dw 0,0
adrl 0
openFILES dw 7
dw 25,18,107,215
dw UserItem+ItemDisable
adrl 0
dw 0,0
adrl 0
openPROMPT dw 8
dw 3,15,12,395
dw StatText+ItemDisable
adrl 0
dw 0,0
adrl 0
openPOPUP dw 100
dw 112,18,128,273
dw UserItem
adrl drawPOPUPOPEN
dw 0,0
adrl 0
*--- Data pour le PopUp OPEN
mouseLOC ds 4
ctlTEMP ds 4
haPOPUPOPEN ds 4
menuOPEN dw 1 ; Par Defaut
ctlPOPUPOPEN dw 10
adrl 100
dw 112,18,0,0
adrl $87000000
dw $0030
dw $1084
dw $0000
ds 4
adrl ctlPOPUPOPEN2
ctlPOPUPOPEN1 dw 101
ds 2
ds 2
ctlPOPUPOPEN2 asc '$$Load: \N100'00
asc '--IIgs Formats\N101'00
asc '--Windows/OS2 BMP\N102'00
asc '--Compuserve GIF\N103'00
asc '--IFF/LBM\N104'00
asc '--Paintbrush PCX\N105'00
asc '--TIFF\N106'00
asc '--Raw Binary PC\N107'00
asc '--Atari ST Formats\N108'00
asc '--Windows Icons\N109'00
asc '--Windows Cursors\N110'00
asc '--Mac Paint\N111'00
asc '.'
*---
saveLIST dw 0,0,140,320
dw -1
dw 0,0
adrl saveSAVE
adrl saveOPEN
adrl saveCLOSE
adrl saveNEXT
adrl saveCANCEL
adrl saveSCROLL
adrl savePATH
adrl saveFILES
adrl savePROMPT
adrl saveFILENAME
adrl saveFREE
adrl saveFOLDER
adrl savePOPUP1
adrl savePOPUP10
adrl $00000000
saveSAVE dw 1
dw 87,204,99,310
dw ButtonItem
adrl strSAVE
dw 0,0
adrl 0
saveOPEN dw 2
dw 49,204,61,310
dw ButtonItem
adrl strOPEN
dw 0,0
adrl 0
saveCLOSE dw 3
dw 64,204,76,310
dw ButtonItem
adrl strCLOSE
dw 0,0
adrl 0
saveNEXT dw 4
dw 15,204,27,310
dw ButtonItem
adrl strNEXT
dw 0,0
adrl 0
saveCANCEL dw 5
dw 104,204,116,310
dw ButtonItem
adrl strCANCEL
dw 0,0
adrl 0
saveSCROLL dw 6
dw 0,0,0,0
dw UserItem
adrl 0
dw 0,0
adrl 0
savePATH dw 7
dw 0,10,12,315
dw UserItem
adrl 0
dw 0,0
adrl 0
saveFILES dw 8
dw 26,10,88,170
dw UserItem+ItemDisable
adrl 0
dw 0,0
adrl 0
savePROMPT dw 9
dw 88,10,100,200
dw StatText+ItemDisable
adrl 0
dw 0,0
adrl 0
saveFILENAME dw 10
dw 100,10,118,194
dw EditLine+ItemDisable
adrl 0
dw 0,0
adrl 0
saveFREE dw 11
dw 12,10,22,200
dw StatText+ItemDisable
adrl strFREE
dw 0,0
adrl 0
saveFOLDER dw 12
dw 29,204,41,310
dw ButtonItem
adrl strFOLDER
dw 0,0
adrl 0
savePOPUP1 dw 200
dw 122,10,138,171
dw UserItem
adrl drawPOPUPSAVE
dw 0,0
adrl 0
savePOPUP10 dw 300
dw 122,174,138,251
dw UserItem
adrl drawPOPUPSAVE
dw 0,0
adrl 0
*--- Data pour le PopUp SAVE
haPOPUPSAVE1 ds 4
haPOPUPSAVE10 ds 4
menuSAVE1 dw 1 ; Par Defaut
menuSAVE10 dw 1 ; Par Defaut
ctlPOPUPSAVE dw 10
adrl 200
dw 122,10,0,0
adrl $87000000
dw $0030
dw $1084
dw $0000
ds 4
adrl ctlPOPUPSAVE2
ctlPOPUPSAVE1 dw 201
ds 2
ds 2
ctlPOPUPSAVE2 asc '$$Depth: \N200'00
asc '-- 2 colors\N201'00
asc '-- 4 colors\N202'00
asc '-- 16 colors\N203'00
asc '-- 256 colors\N204'00
asc '-- 3200 colors\N205'00
asc '--32768 colors\N206'00
asc '-- High colors\N207'00
asc '-- True colors\N208'00
asc '.'
ctlPOPUPSAVE10 dw 10
adrl 300
dw 122,174,0,0
adrl $87000000
dw $0030
dw $1084
dw $0000
ds 4
adrl ctlPOPUPSAVE12
ctlPOPUPSAVE11 dw 301
ds 2
ds 2
ctlPOPUPSAVE12 asc '$$Format: \N300'00
asc '-- APF\N301'00
asc '-- BMP\N302'00
asc '-- PCX\N303'00
asc '--TIFF\N304'00
asc '-- BIN\N305'00
asc '-- RAW\N306'00
asc '.'
*--- Formats de sauvegarde
fgFORMATS dw 1,1,1,1,1,1,1,1
fgMODE ds 2
*---
listSUFFIX1 asc 'ABPTBR' ; Suffixes des noms de fichiers
listSUFFIX2 asc 'PMCIIA'
listSUFFIX3 asc 'FPXFNW'
fileLIST dw $0006
dw $8000 ; UNK
dw $0000
adrl $0000
dw $8000 ; TXT
dw $0004
adrl $0000
dw $8000 ; BIN
dw $0006
adrl $0000
dw $8000 ; PNT
dw $00c0
adrl $0000
dw $8000 ; PIC
dw $00c1
adrl $0000
dw $8000 ; USER 1
dw $00f1
adrl $0004
replyPTR ds 2 ; good
ds 2 ; fileType
ds 4 ; auxType
ds 2 ; nameRefDesc
adrl namePTR ; nameRef
ds 2 ; pathRefDesc
adrl pathPTR ; pathRef
namePTR dw 512
namePTR1 ds 510
pathPTR dw 512
pathPTR1 ds 510

306
TrueConvert/True.GSOS.s Normal file
View File

@ -0,0 +1,306 @@
*
* TrueConvert : GS/OS Module
*
* (c) Brutal Deluxe, 1997
*----------------------------------------
GSOSversion jsl proDOS
dw $202a
adrl proVERS
lda proVERS+2
and #%01111111_11111111
cmp #$0400
rts
*----------------------------------------
GSOSgetOPEN jsl proDOS
dw $200a
adrl proGETopen
rts
GSOSsetOPEN jsl proDOS
dw $2009
adrl proSETopen
rts
GSOSgetSAVE jsl proDOS
dw $200a
adrl proGETsave
rts
GSOSsetSAVE jsl proDOS
dw $2009
adrl proSETsave
rts
*----------------------------------------
*GSOSgetName lda replyPTR+$10
* sta Debut
* lda replyPTR+$12
* sta Debut+2
*
* lda [Debut]
* clc
* adc #2
* sta proCREATE+2
* sta proDESTROY+2
* sta proSETINFO+2
* sta proOPEN+4
*
* ldy #2
* lda [Debut],y
* adc #0
* sta proCREATE+4
* sta proDESTROY+4
* sta proSETINFO+4
* sta proOPEN+6
* rts
GSOSgetName lda #pathPTR1
sta proCREATE+2
sta proDESTROY+2
sta proSETINFO+2
sta proOPEN+4
lda #^pathPTR1
sta proCREATE+4
sta proDESTROY+4
sta proSETINFO+4
sta proOPEN+6
rts
*----------------------------------------
GSOSopen jsl proDOS
dw $2010
adrl proOPEN
bcs GSOSopen1
lda proOPEN+2
sta proSETMARK+2
sta proREAD+2
sta proCLOSE+2
lda proEOF
sta proREAD+8
lda proEOF+2
sta proREAD+10
clc
rts
GSOSopen1 sta proERR
sec
rts
*----------------------------------------
GSOSsetread sty proREAD+4
stx proREAD+6
rts
GSOSread sty proREAD+8
stx proREAD+10
jsl proDOS
dw $2012
adrl proREAD
rts
*----------------------------------------
GSOSsetwrite sty proWRITE+4
stx proWRITE+6
rts
GSOSwrite sty proWRITE+8
stx proWRITE+10
jsl proDOS
dw $2013
adrl proWRITE
rts
*----------------------------------------
GSOSclose jsl proDOS
dw $2014
adrl proCLOSE
rts
*----------------------------------------
GSOSappend sty proSETMARK+6
stx proSETMARK+8
jsl proDOS
dw $2016
adrl proSETMARK
rts
*----------------------------------------
GSOScreate stx proCREATE+18
sty proCREATE+16
sta proCREATE+8
sta proSETINFO+8
jsl proDOS
dw $2005
adrl proSETINFO
jsl proDOS
dw $2002
adrl proDESTROY
jsl proDOS
dw $2001
adrl proCREATE
bcs GSOSsave1
jsl proDOS
dw $2010
adrl proOPEN
bcs GSOSsave1
lda proOPEN+2
sta proSETMARK+2
sta proWRITE+2
sta proCLOSE+2
clc
rts
GSOSsave1 sta proERR
sec
rts
*----------------------------------------
*proERR ds 2
proGETDIR dw 17 ; pcount
ds 2 ; ref_num
ds 2 ; flags
dw 1 ; base
dw 1 ; displacement
adrl proGETname ; name_buffer
ds 2 ; entry_num
ds 2 ; file_type
ds 4 ; eof
ds 4 ; block_count
ds 8 ; create_td
ds 8 ; modify_td
ds 2 ; access
ds 4 ; aux_type
ds 2 ; file_sys_id
ds 4 ; option_list
ds 4 ; res_eof
ds 4 ; res_block_count
proCREATE dw 7 ; pcount
ds 4 ; pathname
dw $e3 ; access_code
ds 2 ; file_type
ds 4 ; aux_type
ds 2 ; storage_type
ds 4 ; eof
ds 4 ; resource_eof
proDESTROY dw 1 ; pcount
ds 4 ; pathname
proSETINFO dw 12 ; pcount
ds 4 ; pathname
dw $e3 ; access_code
ds 2 ; file_type
ds 4 ; aux_type
ds 2 ; reserved
ds 8 ; create_td
ds 8 ; modify_td
ds 4 ; option_list
ds 4 ; reserved
ds 4 ; reserved
ds 4 ; reserved
ds 4 ; reserved
proOPEN dw 15 ; pcount
ds 2 ; ref_num
ds 4 ; pathname
ds 2 ; request_access
ds 2 ; resource_num
ds 2 ; access
ds 2 ; file_type
ds 4 ; aux_type
ds 2 ; storage_type
ds 8 ; create_td
ds 8 ; modify_td
ds 4 ; option_list
proEOF ds 4 ; eof
ds 4 ; blocks_used
ds 4 ; resource_eof
ds 4 ; resource_blocks
proREAD dw 5 ; +00 pcount
ds 2 ; +02 ref_num
ds 4 ; +04 data_buffer
ds 4 ; +08 request_count
ds 4 ; +12 transfer_count
dw 1 ; +16 cache_priority
proWRITE dw 5 ; pcount
ds 2 ; ref_num
ds 4 ; data_buffer
ds 4 ; request_count
ds 4 ; transfer_count
dw 1 ; cache_priority
proCLOSE dw 1 ; pcount
ds 2 ; ref_num
proSETMARK dw 3 ; pcount
ds 2 ; ref_num
ds 2 ; base
ds 4 ; displacement
proQUIT dw 2 ; pcount
ds 4 ; pathname
ds 2 ; flags
proVERS dw 1 ; pcount
ds 2 ; version
*----------------------------------------
proGETopen dw 2
dw 8
adrl pfxOPEN
proSETopen dw 2
dw 8
adrl pfxOPEN2
proGETsave dw 2
dw 8
adrl pfxSAVE
proSETsave dw 2
dw 8
adrl pfxSAVE2
*---
pfxOPEN dw 256
pfxOPEN2 ds 2
pfxOPEN3 ds 254
pfxSAVE dw 256
pfxSAVE2 ds 2
pfxSAVE3 ds 254
proGETname dw 256
proGETname2 ds 2
proGETname3 ds 254

81
TrueConvert/True.Help.s Normal file
View File

@ -0,0 +1,81 @@
*----------------------------------------
* True Convert : Help
*----------------------------------------
helPOP = $1310
*--------------
meHELP lda wiHELP
ora wiHELP+2
beq meHELP1
PushLong wiHELP
_SelectWindow
rts
meHELP1 pha
pha
PushLong #0
PushLong #wHELP
PushLong #PAINTHELP
PushLong #0
PushWord #refIsResource
PushLong #wHELP
PushWord #$800e
_NewWindow2
PullLong wiHELP
jsr helpENTRY
PushLong wiHELP
_ShowWindow
*--------------
doHELP pea $0015 ; 00000000_00010101
pea $0000 ; load from resource rText
pha ; Get the current selected Item
PushLong wiHELP
PushLong #helPOP
_GetCtlValueByID
lda #0
pha
pha
pha
pha
pha
pha
pha
_TESetText
rts
*--------------
helpENTRY PushWord helVPOP
PushLong wiHELP
PushLong #helPOP
_SetCtlValueByID
rts
helpESCAPE pha
PushLong wiHELP
PushLong #helPOP
_GetCtlValueByID
pla
sta helVPOP
rts
*--------------
PAINTHELP PushLong wiHELP
_DrawControls
rtl
*--------------
helVPOP dw $1311
wiHELP ds 4

155
TrueConvert/True.Info.s Normal file
View File

@ -0,0 +1,155 @@
*----------------------------------------
* True Convert : Information
*----------------------------------------
infWIDTH = $1505
infHEIGHT = $1506
infBPP = $1507
infCOL = $1508
*--------------
meINFO lda wiINFO
ora wiINFO+2
beq meINFO1
PushLong wiINFO
_SelectWindow
rts
meINFO1 pha
pha
PushLong #0
PushLong #wINFO
PushLong #PAINTINFO
PushLong #0
PushWord #refIsResource
PushLong #wINFO
PushWord #$800e
_NewWindow2
PullLong wiINFO
meINFO2 jsr infoSETALL
PushLong wiINFO
_ShowWindow
rts
*--------------
infoSETALL PushWord picWIDTH
PushLong #infVWIDTH2
PushWord #5
PushWord #0
_Int2Dec
PushWord picHEIGHT
PushLong #infVHEIGHT2
PushWord #5
PushWord #0
_Int2Dec
PushWord picBPP
PushLong #infVBPP2
PushWord #5
PushWord #0
_Int2Dec
PushWord picCOL
PushLong #infVCOL2
PushWord #5
PushWord #0
_Int2Dec
*-------
ldx #infWIDTH
lda #infVWIDTH
jsr infoSETALL1
ldx #infHEIGHT
lda #infVHEIGHT
jsr infoSETALL1
ldx #infBPP
lda #infVBPP
jsr infoSETALL1
ldx #infCOL
lda #infVCOL
*--------------
infoSETALL1 sta infVPTR
pha
pha
PushLong wiINFO
pea $0000
phx
_GetCtlHandleFromID
phd
tsc
tcd
lda [3]
tax
ldy #2
lda [3],y
pld
ply
ply
sta Debut+2
stx Debut
lda infVPTR
sta Arrivee
lda #^infVPTR
sta Arrivee+2
ldy #$12 ; set size
lda [Arrivee]
and #$000f
sta [Debut],y
ldy #$1c ; set address
lda Arrivee
clc
adc #1
sta [Debut],y
iny
iny
lda Arrivee+2
adc #0
sta [Debut],y
ldy #$3c ; set to pointer
lda [Debut],y
and #$fffc
sta [Debut],y
rts
*--------------
PAINTINFO PushLong wiINFO
_DrawControls
rtl
*--------------
wiINFO ds 4
infVPTR ds 2
infVWIDTH hex 05
infVWIDTH2 asc ' 800'
infVHEIGHT hex 05
infVHEIGHT2 asc ' 600'
infVBPP hex 05
infVBPP2 asc ' 8'
infVCOL hex 05
infVCOL2 asc ' 256'

77
TrueConvert/True.Link.s Normal file
View File

@ -0,0 +1,77 @@
*----------------------------------------
* True Convert : Linker
*----------------------------------------
lkv $02
asm True.Main
asm unpGS
asm unpBMP
asm unpGIF
asm unpIFF
asm unpPCX
asm unpTIF
asm unpBIN
asm unpST
asm unpMAC
asm packGS
asm packBMP
asm packPCX
asm packTIF
asm packBIN
asm packRAW
knd $1100
lnk TC.l
sav TC
knd $1000
lnk unpGS.l
sav TC
knd $1000
lnk unpBMP.l
sav TC
knd $1000
lnk unpGIF.l
sav TC
knd $1000
lnk unpIFF.l
sav TC
knd $1000
lnk unpPCX.l
sav TC
knd $1000
lnk unpTIF.l
sav TC
knd $1000
lnk unpBIN.l
sav TC
knd $1000
lnk unpST.l
sav TC
knd $1000
lnk unpMAC.l
sav TC
knd $1000
lnk packGS.l
sav TC
knd $1000
lnk packBMP.l
sav TC
knd $1000
lnk packPCX.l
sav TC
knd $1000
lnk packTIF.l
sav TC
knd $1000
lnk packBIN.l
sav TC
knd $1000
lnk packRAW.l
sav TC
cmd Xpress TC
cmd Crunch TC

17
TrueConvert/True.Link2.s Normal file
View File

@ -0,0 +1,17 @@
*----------------------------------------
* True Convert : Linker
*----------------------------------------
lkv $02
asm True.Main
asm unp/unpGS
knd $1100
lnk TC.l
knd $1000
lnk unpGS.l
sav TC
cmd Xpress TC
cmd Crunch TC

892
TrueConvert/True.Main.s Normal file
View File

@ -0,0 +1,892 @@
*
* True Convert
*
* (c) Brutal Deluxe, 1998
*
lst off
rel
dsk TC.l
*----------------------------------- Macros
use 4/Ctl.Macs
use 4/Desk.Macs
use 4/Event.Macs
use 4/Int.Macs
use 4/Locator.Macs
use 4/Mem.Macs
use 4/Menu.Macs
use 4/Misc.Macs
use 4/Print.Macs
use 4/Qd.Macs
use 4/Resource.Macs
use 4/Scrap.Macs
use 4/Std.Macs
use 4/TextEdit.Macs
use 4/Util.Macs
use 4/Window.Macs
*----------------------------------- Constantes
_errSIZE MAC
ldx #-1
sec
rts
<<<
_errFORMAT MAC
ldx #-2
sec
rts
<<<
*----------------------------------- Constantes
wMAIN = $1000
wROTATE = $1100
wABOUT = $1200
wHELP = $1300
wPIC = $1400
wINFO = $1500
wTHERMO = $1600
wRESIZE = $1700
wBATCH1 = $1800
wBATCH2 = $1900
wCOLORIZE = $1A00
wOPTIONS = $1B00
refIsPointer = $0
refIsHandle = $1
refIsResource = $2
loadSTR = $0001
saveSTR = $0002
Debut = $00
Arrivee = $04
Second = $08
dpBUF = $10
proDOS = $e100a8
*--------------
icnRESIZE = $1002
icnCOLORIZE = $1003
icnCONVERT = $1004
icnSAVE = $1005
*--------------
*picWIDTH = $60 ; W - width
*picHEIGHT = $62 ; W - height
*picBPP = $64 ; W - bits per pixel
*picBWIDTH = $66 ; W - real width
*picCOL = $68 ; W - # colors
*picHA = $6A ; L - handle
*picPTR = $6E ; L - pointer
*picLENGTH = $72 ; L - size
*picPAL = $76 ; L - palette
*----------------------------------- Entry point
phk
plb
tdc
sta myDP
_TLStartUp
pha
_MMStartUp
pla
sta myID
*--- Version du systeme
jsr GSOSversion
bcs okVERS
pha
PushLong #verSTR1
PushLong #verSTR2
PushLong #errSTR1
PushLong #errSTR2
_TLTextMountVolume
pla
brl meQUIT1
*--- Buffers memoire
okVERS jsr make64KB
bcc okMEM
pha
PushLong #memSTR1
PushLong #errSTR2
PushLong #errSTR1
PushLong #errSTR2
_TLTextMountVolume
pla
brl meQUIT1
*--- Chargement des outils
okMEM pha
pha
PushWord myID
PushWord #refIsResource
PushLong #1
_StartUpTools
PullLong SStopREC
bcc okTOOL
pha
PushLong #tolSTR1
PushLong #errSTR2
PushLong #errSTR1
PushLong #errSTR2
_TLTextMountVolume
pla
brl meQUIT
*--- Affichage desktop
okTOOL _InitCursor
lda #$0005
]lp pha
pha
pha
pha
pha
pea $801D
pea $0000
pha
_LoadResource
phd ; handle to pointer
tsc
tcd
ldy #2
lda [$03],y
tax
lda [$03]
sta $03
stx $05
pld
_NewMenu
pea $0000 ; insert at front
_InsertMenu
pla
dec
bne ]lp
PushLong #0
_SetMenuBar
PushWord #1
_FixAppleMenu
PushWord #0
_FixMenuBar
pla
PushWord #$80 ; Menu 5 is dimmed
PushWord #5
_SetMenuFlag
_DrawMenuBar
PushWord #0
PushWord #%11111111_11111111
PushWord #0
_FlushEvents
pla
*----------------------------------------
lda #proERR
stal $320
lda #^proERR
stal $322
lda #GSOSsetread
stal $320
lda #^GSOSsetread
stal $322
*----------------------------------------
* INITIALISATIONS
*----------------------------------------
memOK stz pntHANDLE
stz pntHANDLE+2
jsr GSOSgetOPEN
jsr GSOSgetSAVE
*--------------
pha
pha
PushLong #0
PushLong #wMAIN
PushLong #PAINTMAIN
PushLong #0
PushWord #refIsResource
PushLong #wMAIN
PushWord #$800e
_NewWindow2
PullLong wiMAIN
*----------------------------------------
* TASK MASTER
*----------------------------------------
taskLOOP PushWord #0
PushWord #0
PushWord #$c000
PushWord #0
_HandleDiskInsert
pla
pla
jsr testWINDOW
PushWord #0
PushWord #%11111111_11111111
PushLong #taskREC
_TaskMaster
pla
beq taskLOOP
asl
tax
jsr (taskTBL,x)
bra taskLOOP
*----------------------------------- Gestion des menus
doMENU lda taskREC+16
sec
sbc #$00fa
asl
tax
jsr (menuTBL,x)
meNOT PushWord #0
PushWord taskREC+18
_HiliteMenu
doNOT rts
*----------------------------------- Gestion des controles
doCONTROL ldx #0
]lp lda ctrlOFF,x
cmp #$ffff
beq doCONTROL1
cmp taskREC+38
bne doCONTROL2
jsr (ctrlTBL,x)
lda taskREC+38
and #$ff00
cmp #$1000
bne doCONTROL1
PushWord #0
PushLong wiMAIN
PushLong taskREC+38
_SetCtlValueByID
doCONTROL1 rts
doCONTROL2 inx
inx
bra ]lp
*----------------------------------------
* MENUS
*----------------------------------------
mePIC pha
pha
PushLong #0
PushLong #wPIC
PushLong #0
PushLong #0
PushWord #refIsResource
PushLong #wPIC
PushWord #$800e
_NewWindow2
PullLong wiPIC
rts
*----------------------------------------
* MENUS
*----------------------------------------
meOPEN jsr stdOPEN2
bcc meOPEN1
rts
meOPEN1 lda fgLOAD
beq meOPEN2
PushLong haMEM
_DisposeHandle
stz fgLOAD
meOPEN2 jsr openSTART
bcc meOPEN3
rts
meOPEN3 jsr trueOPEN
bcs meOPEN4
jsr GSOSclose
lda #1
sta fgLOAD
clc
rts
meOPEN4 _SysBeep
PushLong haMEM
_DisposeHandle
sec
rts
*-----------------------------------
openSTART jsr GSOSgetName
jsr GSOSopen
bcs openSTART1
lda proEOF
ora proEOF+2
beq openSTART1
ldx ptrBUFFER+2
ldy ptrBUFFER
jsr GSOSsetread
ldx #0
ldy #2048
jsr GSOSread
bcs openSTART1
ldx #0
txy
jsr GSOSappend
clc
rts
openSTART1 sec
rts
*----------------------------------- Save
meSAVE lda taskREC+16
cmp #$105
beq meSAVE1
jsr stdSAVE2 ; Save as...
bcc meSAVE1
rts
meSAVE1 jsr GSOSgetName
jsr mainCLOSE
rts
*----------------------------------- Close
meCLOSE pha
pha
_FrontWindow
ply
sty wiFRONT
plx
stx wiFRONT+2
lda wiFRONT
ora wiFRONT+2
bne meCLOSE1
rts
meCLOSE1 cpy wiABOUT
bne meCLOSE2
cpx wiABOUT+2
bne meCLOSE2
stz wiABOUT
stz wiABOUT+2
bra meCLOSE7
meCLOSE2 cpy wiHELP
bne meCLOSE3
cpx wiHELP+2
bne meCLOSE3
jsr helpESCAPE
stz wiHELP
stz wiHELP+2
bra meCLOSE7
meCLOSE3 cpy wiINFO
bne meCLOSE7
cpx wiINFO+2
bne meCLOSE7
stz wiINFO
stz wiINFO+2
*---
meCLOSE7 PushLong wiFRONT
_CloseNDAbyWinPtr
bcc meCLOSE8
PushLong wiFRONT
_CloseWindow
meCLOSE8 lda fgLOAD
beq meCLOSE9
PushLong haMEM
_DisposeHandle
meCLOSE9 stz fgLOAD
rts
*----------------------------------- Quit
meQUIT PushWord #refIsHandle
PushLong SStopREC
_ShutDownTools
meQUIT1 PushWord myID
_DisposeAll
PushWord myID
_MMShutDown
_TLShutDown
jsl proDOS
dw $2029
adrl proQUIT
*----------------------------------- Clipboard
meCLIP pha
pha
PushWord #%10000000_00000000
PushLong #0
_ShowClipboard
pla
pla
rts
*----------------------------------------
* MISE A JOUR DES ICONES
*----------------------------------------
mainOPEN PushWord #0
PushLong wiMAIN
PushLong #icnCONVERT
_HiliteCtlByID
PushLong #0
_SetMenuBar
PushWord #$010a
_EnableMItem
PushWord #$010b
_EnableMItem
PushWord #$010c
_EnableMItem
PushWord #$ff7f
PushWord #5
_SetMenuFlag
_DrawMenuBar
rts
*--------------
mainCLOSE PushWord #$ff
PushLong wiMAIN
PushLong #icnCONVERT
_HiliteCtlByID
PushLong #0
_SetMenuBar
PushWord #$010a
_DisableMItem
PushWord #$010b
_DisableMItem
PushWord #$010c
_DisableMItem
PushWord #$80 ; Menu 5 is dimmed
PushWord #5
_SetMenuFlag
_DrawMenuBar
rts
*----------------------------------------
* TESTE LA FENETRE
*----------------------------------------
testWINDOW pha
pha
_FrontWindow
ply
sty wiFRONT
plx
stx wiFRONT+2
cpx wiOLD+2
bne testWINDOW1
cpy wiOLD
bne testWINDOW1
rts
testWINDOW1 sty wiOLD
stx wiOLD+2
pha
phx
phy
_GetWKind
pla
bmi menuON
ldx wiFRONT+2
cpx wiMAIN+2
bne menuON
ldy wiFRONT
cpy wiMAIN
bne menuON
jsr menuOFF
rts
*---
menuON PushWord #$00fa
_EnableMItem
PushWord #$00fb
_EnableMItem
PushWord #$00fc
_EnableMItem
PushWord #$00fd
_EnableMItem
PushWord #$00fe
_EnableMItem
PushWord #$00ff
_EnableMItem
rts
*---
menuOFF PushWord #$00fa
_DisableMItem
PushWord #$00fb
_DisableMItem
PushWord #$00fc
_DisableMItem
PushWord #$00fd
_DisableMItem
PushWord #$00fe
_DisableMItem
PushWord #$00ff
_DisableMItem
rts
*----------------------------------------
* PRINT MANAGER
*----------------------------------------
meSETUP lda pntHANDLE
ora pntHANDLE+2
bne meSETUP2
ldx #0
ldy #140
lda myID
jsr makeHANDLE
bcc meSETUP1
rts
meSETUP1 sty pntHANDLE
stx pntHANDLE+2
phx
phy
_PrDefault
meSETUP2 pha
PushLong pntHANDLE
_PrStlDialog
pla
rts
*----------------------------------------
* MEMOIRE
*----------------------------------------
makeHANDLE pha
pha
phx
phy
pha
PushWord #%00000000_00001000
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta ptrADDRESS
ldy #2
lda [3],y
sta ptrADDRESS+2
pld
ply
sty haADDRESS
plx
stx haADDRESS+2
rts
make64KB pha
pha
PushLong #$010000
PushWord myID
PushWord #%11000000_00011100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta ptrBUFFER
ldy #2
lda [3],y
sta ptrBUFFER+2
pld
ply
sty haBUFFER
plx
stx haBUFFER+2
rts
*----------------------------------------
* FENETRES
*----------------------------------------
PAINTMAIN PushLong wiMAIN
_DrawControls
rtl
*----------------------------------------
* DATA
*----------------------------------------
*----------------------- Fenetres
wiFRONT ds 4
wiOLD ds 4
wiMAIN ds 4
wiPIC ds 4
*----------------------- Print Manager
pntHANDLE ds 4
*----------------------- Memory manager
myID ds 2
myDP ds 2
saveDP ds 2
SStopREC ds 4
ptrMEM ds 4
haMEM ds 4
ptrBUFFER ds 4
haBUFFER ds 4
ptrADDRESS ds 4
haADDRESS ds 4
fgLOAD ds 2
fgSAVE ds 2
temp ds 2
*----------------------- Tool locator
verSTR1 str 'System 6.01 Required!'
verSTR2 str 'Press a key to quit'
tolSTR1 str 'Error while loading tools'
memSTR1 str 'Cannot allocate memory'
errSTR1 str 'Quit'
errSTR2 str ''
*----------------------- Window manager
taskREC ds 2 ; wmWhat +0
taskMESSAGE ds 4 ; wmMessage +2
taskWHEN ds 4 ; wmWhen +6
taskWHERE ds 4 ; wmWhere +10
taskMODIFIERS ds 2 ; wmModifiers +14
taskDATA ds 4 ; wmTaskData +16
adrl $001fffff ; wmTaskMask +20
ds 4 ; wmLastClickTick +24
ds 2 ; wmClickCount +28
ds 4 ; wmTaskData2 +30
ds 4 ; wmTaskData3 +34
ds 4 ; wmTaskData4 +38
ds 4 ; wmLastClickPt +42
taskTBL da doNOT ; Null
da doNOT ; mouseDownEvt
da doNOT ; mouseUpEvt
da doNOT ; keyDownEvt
da doNOT
da doNOT ; autoKeyEvt
da doNOT ; updateEvt
da doNOT
da doNOT ; activateEvt
da doNOT ; switchEvt
da doNOT ; deskAccEvt
da doNOT ; driverEvt
da doNOT ; app1Evt
da doNOT ; app2Evt
da doNOT ; app3Evt
da doNOT ; app4Evt
da doNOT ; wInDesk
da doMENU ; wInMenuBar
da doNOT ; wCLickCalled
da doNOT ; wInContent
da doNOT ; wInDrag
da doNOT ; wInGrow
da meCLOSE ; wInGoAway
da doNOT ; wInZoom
da doNOT ; wInInfo
da doMENU ; wInSpecial
da doNOT ; wInDeskItem
da doNOT ; wInFrame
da doNOT ; wInactMenu
da doNOT ; wInClosedNDA
da doNOT ; wInCalledSysEdit
da doNOT ; wInTrackZoom
da doNOT ; wInHitFrame
da doCONTROL ; wInControl
da doNOT ; wInControlMenu
menuTBL da meNOT ; ($0FA) Annuler
da meNOT ; ($0FB) Couper
da meNOT ; ($0FC) Copier
da meNOT ; ($0FD) Coller
da meNOT ; ($0FE) Effacer
da meCLOSE ; ($0FF) Fermer
da meABOUT ; ($100) About
da meHELP ; ($101) Help
da meOPEN ; ($102) Open
da meSAVE ; ($103) Save
da meSAVE ; ($104) Save as
da meBATCH ; ($105) Batch Process
da meSETUP ; ($106) Page Setup
da meNOT ; ($107) Print
da meQUIT ; ($108) Quit
da meCLIP ; ($109) Show Clipboard
da meFLIP ; ($10A) Flip
da meMIRROR ; ($10B) Mirror
da meROTATE ; ($10C) Rotate
da meBORDERS ; ($10D) Add Borders
da meCANVAS ; ($10E) Canvas Size
da meRESIZE ; ($10F) Resize
da meARITHMETIC ; ($110) Arithmetic
da meGREYSCALES ; ($111) Greyscales
da meNEGATIVE ; ($112) Negative Image
da meSOLARIZE ; ($113) Solarize
da mePALEDIT ; ($114) Edit Palette
da mePALLOAD ; ($115) Load Palette
da mePALSAVE ; ($116) Save Palette
da meCOUNT ; ($117) Count Colors
ctrlOFF dw $0000
dw $1001,$1002,$1003,$1004,$1005,$1006,$1007
dw $1310,$1320
dw $ffff
ctrlTBL da doNOT
da showTHERMO,meRESIZE,meCOLORIZE,meCONVERT
da meSAVE,meOPTIONS,meINFO
da doHELP,doNOT
*----------------------------------------
proERR ds 2
picWIDTH ds 2 ; W - width
picHEIGHT ds 2 ; W - height
picBPP ds 2 ; W - bits per pixel
picBWIDTH ds 2 ; W - real width
picCOL ds 2 ; W - # colors
picHA ds 4 ; L - handle
picPTR ds 4 ; L - pointer
picLENGTH ds 4 ; L - size
picPAL ds 4 ; L - palette
*----------------------------------------
put True.About
put True.Batch
put True.Resize
put True.Colorize
put True.Convert
put True.Info
put True.Options
put True.Help
put True.Pack
put True.Rotate
put True.Palette
put True.Count
put True.Colors
put True.Thermo
put True.File
put True.GSOS
put unpGS
put unpBMP
put unpGIF
put unpIFF
put unpPCX
put unpTIF
put unpBIN
put unpST
put unpMAC
put packGS
put packBMP
put packPCX
put packTIF
put packBIN
put packRAW

105
TrueConvert/True.Options.s Normal file
View File

@ -0,0 +1,105 @@
*----------------------------------------
* True Convert : Options
*----------------------------------------
optOK = $1B10
optCANCEL = $1B20
optERROR = $1B30
optVIEW = $1B40
optSIGHT = $1B50
*--------------
meOPTIONS pha
pha
PushLong #0
PushLong #1
PushLong #PAINTOPTIONS
PushLong #0
PushWord #refIsResource
PushLong #wOPTIONS
PushWord #$800e
_NewWindow2
PullLong wiOPTIONS
jsr optionsENTRY
]lp pha
pha
PushLong #taskREC
PushLong #0
PushLong #0
PushLong #-1
PushWord #%11000000_00011000
_DoModalWindow
ply
plx
cpy #optCANCEL
beq meOPTIONS9
cpy #optOK
bne ]lp
jsr optionsESCAPE
meOPTIONS9 _InitCursor
PushLong wiOPTIONS
_CloseWindow
rts
*--------------
PAINTOPTIONS PushLong wiOPTIONS
_DrawControls
rtl
*--------------
wiOPTIONS ds 4
*--------------
optionsENTRY PushWord optVERROR
PushLong wiOPTIONS
PushLong #optERROR
_SetCtlValueByID
PushWord optVVIEW
PushLong wiOPTIONS
PushLong #optVIEW
_SetCtlValueByID
PushWord optVSIGHT
PushLong wiOPTIONS
PushLong #optSIGHT
_SetCtlValueByID
rts
optionsESCAPE pha
PushLong wiOPTIONS
PushLong #optERROR
_GetCtlValueByID
pla
sta optVERROR
pha
PushLong wiOPTIONS
PushLong #optVIEW
_GetCtlValueByID
pla
sta optVVIEW
pha
PushLong wiOPTIONS
PushLong #optSIGHT
_GetCtlValueByID
pla
sta optVSIGHT
rts
*--------------
optVERROR dw $0001
optVVIEW dw $0001
optVSIGHT dw $0000

107
TrueConvert/True.Pack.s Normal file
View File

@ -0,0 +1,107 @@
*----------------------------------------
* True Convert : Format Finder
*----------------------------------------
maxWIDTH = 1280
maxHEIGHT = 1024
*----------------------------------------
trueOPEN lda menuOPEN
asl
tax
trueOPEN1 jsr (ptrOPENERS,x)
rts
*----------------------------------------
trueSAVE lda menuSAVE1
asl
tax
jsr (ptrSAVERS,x)
rts
*----------------------------------------
trueNONE clc
rts
*----------------------------------------
makePICerr _errSIZE
makePIC lda picWIDTH
beq makePICerr
cmp #maxWIDTH
bcs makePICerr
lda picHEIGHT
beq makePICerr
cmp #maxHEIGHT
bcs makePICerr
pha ; space for NewHandle
pha
pha ; space for Multiply
pha
lda picWIDTH ; set real size of line in bytes
ldx picBPP
cpx #8
beq makePIC3
asl
clc
adc picWIDTH
makePIC3 sta picBWIDTH
pha
PushWord picHEIGHT
_Multiply
lda 1,s
sta picLENGTH
lda 3,s
sta picLENGTH+2
PushWord myID
PushWord #%11000000_00001100
PushLong #0
_NewHandle
phd
tsc
tcd
lda [3]
sta picPTR
ldy #2
lda [3],y
sta picPTR+2
pld
pla
sta picHA
pla
sta picHA+2
clc
rts
*----------------------------------------
ptrOPENERS da trueNONE
da unpGS
da unpBMP
da unpGIF
da unpIFF
da unpPCX
da unpTIF
da unpBIN
da unpST
da unpBMP
da unpBMP
da unpMAC
ptrSAVERS da trueNONE
da packGS
da packBMP
da packPCX
da packTIF
da packBIN
da packRAW

View File

@ -0,0 +1,30 @@
*----------------------------------------
* True Convert : Palette
*----------------------------------------
mePALEDIT rts
*----------------------------------------
mePALLOAD jsr stdOPEN
bcc mePALLOAD1
rts
mePALLOAD1 jsr doPALETTE
rts
*----------------------------------------
mePALSAVE jsr stdSAVE
bcc mePALSAVE1
rts
mePALSAVE1 jsr doPALETTE
rts
*--------------
doPALETTE sep #$20
ldal $c034
inc
stal $c034
rep #$20
rts

226
TrueConvert/True.Resize.s Normal file
View File

@ -0,0 +1,226 @@
*----------------------------------------
* True Convert : Resize
*----------------------------------------
resOK = $1760
resCANCEL = $1750
resH = $1740
resW = $1730
resHT = $1721
resWT = $1720
resPOP = $1710
resBTN1 = $1701
resBTN2 = $1702
*--------------
meRESIZE pha
pha
PushLong #0
PushLong #1
PushLong #PAINTRESIZE
PushLong #0
PushWord #refIsResource
PushLong #wRESIZE
PushWord #$800e
_NewWindow2
PullLong wiRESIZE
jsr resizeENTRY
jsr resizeUPDATE
]lp pha
pha
PushLong #taskREC
PushLong #0
PushLong #0
PushLong #-1
PushWord #%11000000_00011000
_DoModalWindow
ply
plx
cpy #resCANCEL
beq meRESIZE9
cpy #resOK
beq meRESIZE8
cpy #resBTN1
beq meRESIZE7
cpy #resBTN2
bne ]lp
meRESIZE7 jsr resizeUPDATE
bra ]lp
meRESIZE8 jsr doRESIZE
jsr resizeESCAPE
meRESIZE9 _InitCursor
PushLong wiRESIZE
_CloseWindow
rts
*--------------
PAINTRESIZE PushLong wiRESIZE
_DrawControls
rtl
*--------------
doRESIZE sep #$20
ldal $c034
inc
stal $c034
rep #$20
rts
*--------------
resizeENTRY PushWord resVBTN1
PushLong wiRESIZE
PushLong #resBTN1
_SetCtlValueByID
PushWord resVBTN2
PushLong wiRESIZE
PushLong #resBTN2
_SetCtlValueByID
PushWord resVPOP
PushLong wiRESIZE
PushLong #resPOP
_SetCtlValueByID
PushLong wiRESIZE
PushLong #resW
PushLong #resWIDTH
_SetLETextByID
PushLong wiRESIZE
PushLong #resH
PushLong #resHEIGHT
_SetLETextByID
rts
*--------------
resizeESCAPE pha
PushLong wiRESIZE
PushLong #resBTN1
_GetCtlValueByID
pla
sta resVBTN1
pha
PushLong wiRESIZE
PushLong #resBTN2
_GetCtlValueByID
pla
sta resVBTN2
pha
PushLong wiRESIZE
PushLong #resPOP
_GetCtlValueByID
pla
sta resVPOP
PushLong wiRESIZE
PushLong #resW
PushLong #resWIDTH
_GetLETextByID
PushLong wiRESIZE
PushLong #resH
PushLong #resHEIGHT
_GetLETextByID
rts
*--------------
resizeUPDATE pha
PushLong wiRESIZE
PushLong #resBTN1
_GetCtlValueByID
pla
sta resVBTN1
beq resizeUPDATE1 ; Bouton 2 actif
jsr resizeNOT2
jsr resizeBUT1
rts
resizeUPDATE1 jsr resizeNOT1
jsr resizeBUT2
rts
*--------------
resizeNOT1 PushWord #255
PushLong wiRESIZE
PushLong #resPOP
_HiliteCtlByID
rts
resizeBUT1 PushWord #0
PushLong wiRESIZE
PushLong #resPOP
_HiliteCtlByID
rts
*--------------
resizeNOT2 PushWord #255
PushLong wiRESIZE
PushLong #resWT
_HiliteCtlByID
PushWord #255
PushLong wiRESIZE
PushLong #resW
_HiliteCtlByID
PushWord #255
PushLong wiRESIZE
PushLong #resHT
_HiliteCtlByID
PushWord #255
PushLong wiRESIZE
PushLong #resH
_HiliteCtlByID
rts
resizeBUT2 PushWord #0
PushLong wiRESIZE
PushLong #resWT
_HiliteCtlByID
PushWord #0
PushLong wiRESIZE
PushLong #resW
_HiliteCtlByID
PushWord #0
PushLong wiRESIZE
PushLong #resHT
_HiliteCtlByID
PushWord #0
PushLong wiRESIZE
PushLong #resH
_HiliteCtlByID
rts
*--------------
resVBTN1 dw 1
resVBTN2 dw 0
resVPOP dw $1711
resWIDTH ds 5
resHEIGHT ds 5
*--------------
wiRESIZE ds 4

244
TrueConvert/True.Rotate.s Normal file
View File

@ -0,0 +1,244 @@
*----------------------------------------
* True Convert : Rotate
*----------------------------------------
rotDIR = $1110
rotDEG = $1120
rotOK = $1130
rotCANCEL = $1140
rotNONE = $1111
rotLEFT = $1112
rotRIGHT = $1113
rot90 = $1121
rot180 = $1122
rot270 = $1123
*--------------
meROTATE pha
pha
PushLong #0
PushLong #1
PushLong #PAINTROTATE
PushLong #0
PushWord #refIsResource
PushLong #wROTATE
PushWord #$800e
_NewWindow2
PullLong wiROTATE
jsr rotateENTRY
jsr rotateUPDATE
]lp pha
pha
PushLong #taskREC
PushLong #0
PushLong #0
PushLong #-1
PushWord #%11000000_00011000
_DoModalWindow
ply
plx
cpy #rotCANCEL
beq meROTATE9
cpy #rotOK
beq meROTATE8
cpy #rotDIR
bne ]lp
jsr rotateUPDATE
bra ]lp
meROTATE8 jsr rotateESCAPE
jsr doROTATE
meROTATE9 _InitCursor
PushLong wiROTATE
_CloseWindow
rts
*--------------
PAINTROTATE PushLong wiROTATE
_DrawControls
rtl
*--------------
wiROTATE ds 4
*--------------
doROTATE sep #$20
ldal $c034
inc
stal $c034
rep #$20
ldx rotVDIR
ldy rotVDEG
cpx #rotNONE
bne doROTATE1
clc
rts
doROTATE1 tya ; LEFT/RIGHT - 180
and #%00000000_00000010
beq doROTATE2
jsr meFLIP
jsr meMIRROR
rts
doROTATE2 cpx #rotLEFT ; LEFT
bne doROTATE4
cpy #rot270 ; LEFT - 270
bne doROTATE3
jsr doRIGHT90
rts
doROTATE3 cpy #rot90 ; LEFT - 90
bne doROTATE6
jsr doLEFT90
rts
doROTATE4 cpx #rotRIGHT ; RIGHT
bne doROTATE6
cpy #rot270 ; RIGHT - 270
bne doROTATE5
jsr doLEFT90
rts
doROTATE5 cpy #rot90 ; RIGHT - 90
bne doROTATE6
jsr doRIGHT90
rts
doROTATE6 sec ; NONE
rts
*--------------
rotateUPDATE pha
PushLong wiROTATE
PushLong #rotDIR
_GetCtlValueByID
pla
cmp #rotNONE
bne rotateUPDATE1
PushWord #255
PushLong wiROTATE
PushLong #rotDEG
_HiliteCtlByID
rts
rotateUPDATE1 PushWord #0
PushLong wiROTATE
PushLong #rotDEG
_HiliteCtlByID
rts
*--------------
rotateENTRY PushWord rotVDIR
PushLong wiROTATE
PushLong #rotDIR
_SetCtlValueByID
PushWord rotVDEG
PushLong wiROTATE
PushLong #rotDEG
_SetCtlValueByID
rts
rotateESCAPE pha
PushLong wiROTATE
PushLong #rotDIR
_GetCtlValueByID
pla
sta rotVDIR
pha
PushLong wiROTATE
PushLong #rotDEG
_GetCtlValueByID
pla
sta rotVDEG
rts
*--------------
rotVDIR dw $1111
rotVDEG dw $1121
*----------------------------------------
* True Convert : Flip
*----------------------------------------
meFLIP lda picBPP
cmp #24
beq meFLIP24
jsr doFLIP8
rts
meFLIP24 jsr doFLIP24
rts
*----------------------------------------
* True Convert : Mirror
*----------------------------------------
meMIRROR lda picBPP
cmp #24
beq meMIRROR24
jsr doMIRROR8
rts
meMIRROR24 jsr doMIRROR24
rts
*----------------------------------------
* True Convert : Add Borders
*----------------------------------------
meBORDERS rts
*----------------------------------------
* True Convert : Add Canvas
*----------------------------------------
meCANVAS rts
*----------------------------------------
* True Convert : Arithmetic
*----------------------------------------
meARITHMETIC rts
*----------------------------------------
*
* ROUTINES GRAPHIQUES
*
*----------------------------------------
doFLIP8 clc
rts
doFLIP24 clc
rts
doMIRROR8 clc
rts
doMIRROR24 clc
rts
doLEFT90 clc
rts
doRIGHT90 clc
rts
*----------------------------------------
* BUFFER
*----------------------------------------
tempBUFFER ds 4096

46
TrueConvert/True.Thermo.s Normal file
View File

@ -0,0 +1,46 @@
*----------------------------------------
* True Convert : Thermometer
*----------------------------------------
ctlTHERMO = $1602
showTHERMO pha
pha
PushLong #0
PushLong #wTHERMO
PushLong #PAINTTHERMO
PushLong #0
PushWord #refIsResource
PushLong #wTHERMO
PushWord #$800e
_NewWindow2
PullLong wiTHERMO
rts
hideTHERMO PushLong wiTHERMO
_CloseWindow
rts
*--------------
initTHERMO PushWord #1
PushLong wiTHERMO
PushLong #ctlTHERMO
_SetCtlValueByID
rts
moveTHERMO pha
PushLong wiTHERMO
PushLong #ctlTHERMO
_SetCtlValueByID
rts
*--------------
PAINTTHERMO PushLong wiTHERMO
_DrawControls
rtl
*--------------
wiTHERMO ds 4

74
TrueConvert/UnpBIN.s Normal file
View File

@ -0,0 +1,74 @@
*----------------------------------------
* True Convert : Unpackers : BIN
*----------------------------------------
BINwidth = 0
BINheight = 2
unpBIN lda ptrBUFFER
sta dpBUF
lda ptrBUFFER+2
sta dpBUF+2
ldy #BINwidth
lda [dpBUF],y
inc
sta picWIDTH
ldy #BINheight
lda [dpBUF],y
inc
sta picHEIGHT
lda #8
sta picBPP
lda #256
sta picCOL
*--------------
pha
pha
PushWord picWIDTH
PushWord picHEIGHT
_Multiply
pla
sta BINlength
pla
sta BINlength+2
lda proEOF
sec
sbc BINlength
cmp #$0304
beq unpBIN1
_errFORMAT
unpBIN1 lda proEOF+2
sbc BINlength+2
beq unpBIN2
_errFORMAT
unpBIN2 jsr makePIC
bcc unpBIN5
rts
unpBIN5 ldx #0
ldy #4
jsr GSOSappend
ldx picPTR+2
ldy picPTR
jsr GSOSsetread
ldx picLENGTH+2
ldy picLENGTH
jsr GSOSread
clc
rts
*--- Data
BINlength ds 4
BINdest ds 4

25
TrueConvert/UnpBMP.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Unpackers : BMP
*----------------------------------------
* lst off
* rel
* dsk unpBMP.l
*----------------------------------------
*unpBMP ENT
unpBMP phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

25
TrueConvert/UnpGIF.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Unpackers : GIF
*----------------------------------------
* lst off
* rel
* dsk unpGIF.l
*----------------------------------------
*unpGIF ENT
unpGIF phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

25
TrueConvert/UnpGS.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Unpackers : GS
*----------------------------------------
* lst off
* rel
* dsk unpGS.l
*----------------------------------------
*unpGS ENT
unpGS phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

25
TrueConvert/UnpIFF.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Unpackers : IFF
*----------------------------------------
* lst off
* rel
* dsk unpIFF.l
*----------------------------------------
*unpIFF ENT
unpIFF phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

25
TrueConvert/UnpMAC.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Unpackers : MAC
*----------------------------------------
* lst off
* rel
* dsk unpMAC.l
*----------------------------------------
*unpMAC ENT
unpMAC phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

25
TrueConvert/UnpPCX.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Unpackers : PCX
*----------------------------------------
* lst off
* rel
* dsk unpPCX.l
*----------------------------------------
*unpPCX ENT
unpPCX phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

25
TrueConvert/UnpST.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Unpackers : ST
*----------------------------------------
* lst off
* rel
* dsk unpST.l
*----------------------------------------
*unpST ENT
unpST phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

25
TrueConvert/UnpTIF.s Normal file
View File

@ -0,0 +1,25 @@
*----------------------------------------
* True Convert : Unpackers : TIF
*----------------------------------------
* lst off
* rel
* dsk unpTIF.l
*----------------------------------------
*unpTIF ENT
unpTIF phb
phk
plb
sep #$20
ldal $c034
inc
stal $c034
rep #$20
plb
clc
rtl

148
TrueConvert/Unpack.BIN.s Normal file
View File

@ -0,0 +1,148 @@
*-----------------
* BIN
*-----------------
BINwidth = 0
BINheight = 2
*---
unpBIN lda ptrBUFFER
sta dpBUF
lda ptrBUFFER+2
sta dpBUF+2
ldy #BINwidth
lda [dpBUF],y
inc
sta picWIDTH
ldy #BINheight
lda [dpBUF],y
inc
sta picHEIGHT
pha
pha
PushWord picWIDTH
PushWord picHEIGHT
_Multiply
pla
sta BINlength
pla
sta BINlength+2
lda proOPEN+42
sec
sbc BINlength
cmp #$0304
beq unpBIN1
_errFORMAT
unpBIN1 lda proOPEN+44
sbc BINlength+2
beq unpBIN2
_errFORMAT
unpBIN2 jsr makePIC
bcc unpBIN5
rts
unpBIN5 ldx #$0000
ldy #$0004
jsr GSOSappend
ldx #$0001
ldy #$0000
jsr GSOSread
*--- Routine de copie de l'image
lda ptrBUFFER
sta unpBIN6+1
lda ptrBUFFER+1
sta unpBIN6+2
ldx #0
txy
unpBIN6 ldal $012000,x
and #$ff
sta [dpPIC],y
iny
cpy picWIDTH
beq unpBIN8
unpBIN7 inx
bne unpBIN6
sty BINdest
ldx #$0001
ldy #$0000
jsr GSOSread
ldx #0
ldy BINdest
bra unpBIN6
unpBIN8 rep #$20
jsr showTHERMO
inc numLIGNE
lda numLIGNE
cmp picHEIGHT
bcs unpBIN10
asl
clc
adc numLIGNE
tay
lda [dpLIGNES],y
sta dpPIC
iny
iny
lda [dpLIGNES],y
sta dpPIC+2
ldy #0
bra unpBIN7
*--- Palette
unpBIN10 lda proOPEN+42
sec
sbc #$0300
tay
lda proOPEN+44
sbc #0
tax
jsr GSOSappend
ldx #$0000
ldy #$0300
jsr GSOSread
jsr initPALETTE
ldy #0
tyx
]lp lda [dpBUF],y
jsr savePALETTE
iny
lda [dpBUF],y
jsr savePALETTE
iny
lda [dpBUF],y
jsr savePALETTE
iny
inx
cpx proREAD+12
bne ]lp
lda #8
sta picBITS
lda #1
sta picPLANES
lda #256
sta picCOLORS
clc
rts
*--- Data
BINlength ds 4
BINdest ds 4

View File

@ -0,0 +1,111 @@
Boulder Dash
T2 at $B000
T1 at $A800
moves head to T0
jumps to $A806
0800.1FFF program code
2000.3FFF hgr 1
4000.5FFF hgr 2
empty but buffers
6800.74FF data
7500.99FF program code
empty
A000.BFFF loader & mode interpreter
Addresses to rewrite in BD.0800.S
7500
8D10
8D45
8D6E
8D93
8E48
8E8A
8E94
9022
9110
plus a couple of addresses in table at $1D05
BD00
BD03
T12..T15: 4 tracks of HGR pictures
---
1=m 1=x 0=d 1=LCbank (0/1)
00/0800: 20 FE 09 JSR 09FE
00/0803: 8D 50 C0 STA C050
00/0806: 8D 55 C0 STA C055
00/0809: 8D E9 C0 STA C0E9
00/080C: A9 20 LDA #20
00/080E: 85 3E STA 3E
00/0810: A9 12 LDA #12
00/0812: 85 F8 STA F8
00/0814: A5 F8 LDA F8
00/0816: 20 03 BC JSR BC03
00/0819: D0 F9 BNE 0814 {-07}
00/081B: A5 3E LDA 3E
00/081D: 18 CLC
00/081E: 69 10 ADC #10
00/0820: 85 3E STA 3E
00/0822: C9 60 CMP #60
00/0824: F0 04 BEQ 082A {+04}
00/0826: E6 F8 INC F8
00/0828: D0 EA BNE 0814 {-16}
00/082A: A9 05 LDA #05
*
1=m 1=x 0=d 1=LCbank (0/1)
00/7500: A5 19 LDA 19
00/7502: 18 CLC
00/7503: 69 01 ADC #01
00/7505: 85 19 STA 19
00/7507: 18 CLC
00/7508: 29 01 AND #01
00/750A: F0 03 BEQ 750F {+03}
00/750C: 4C 8E 7F JMP 7F8E
00/750F: A5 05 LDA 05
00/7511: A2 64 LDX #64
00/7513: A4 06 LDY 06
00/7515: 88 DEY
00/7516: 30 08 BMI 7520 {+08}
00/7518: 69 28 ADC #28
00/751A: 90 F9 BCC 7515 {-07}
00/751C: E8 INX
00/751D: 18 CLC
00/751E: D0 F5 BNE 7515 {-0B}
00/7520: 8D 19 76 STA 7619
00/7523: 8E 1A 76 STX 761A
*
1=m 1=x 0=d 1=LCbank (0/1)
00/A000: 18 CLC
00/A001: 60 RTS
00/A002: DD A0 20 CMP 20A0,X
00/A005: 88 DEY
00/A006: F0 58 BEQ A060 {+58}
00/A008: AD EC C0 LDA C0EC
00/A00B: 10 FB BPL A008 {-05}
00/A00D: 49 D5 EOR #D5
00/A00F: D0 F4 BNE A005 {-0C}
00/A011: AD EC C0 LDA C0EC
00/A014: 10 FB BPL A011 {-05}
00/A016: C9 AA CMP #AA
00/A018: D0 F3 BNE A00D {-0D}
00/A01A: AD EC C0 LDA C0EC
00/A01D: 10 FB BPL A01A {-05}
00/A01F: C9 AD CMP #AD
00/A021: D0 EA BNE A00D {-16}
00/A023: 48 PHA
00/A024: 68 PLA
00/A025: A0 56 LDY #56
*

BIN
boulderdash/boulderdash.2mg Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
boulderdash/original/BD.O Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,26 @@
*
* Boulderdash
*
* (c) 1984, First Star
* (s) 2022, Brutal Deluxe Software
*
KBD EQU $C000
KBDSTROBE EQU $C010
TAPEOUT EQU $C020
SPKR EQU $C030
TXTCLR EQU $C050
TXTPAGE1 EQU $C054
TXTPAGE2 EQU $C055
SETAN0 EQU $C058
CLRAN0 EQU $C059
SETAN1 EQU $C05A
CLRAN1 EQU $C05B
BUTN0 EQU $C061
BUTN1 EQU $C062
BUTN2 EQU $C063
PADDL0 EQU $C064
PADDL1 EQU $C065
PTRIG EQU $C070
PWRUP EQU $FAA6
WAIT EQU $FCA8

BIN
boulderdash/sources/BD.MAKE Normal file

Binary file not shown.

View File

@ -0,0 +1,27 @@
*
* Boulderdash
*
* (c) 1984, First Star
* (s) 2022, Brutal Deluxe Software
*
*-----------------------------
LST OFF
TYP BIN
ORG $000800
MX %11
USE BD.EQUATES.S
*-----------------------------
put BD.0800.S ; $0800 - code
HGR1 ds $2000 ; $2000 - HGR1
HGR2 ds $2000 ; $4000 - HGR2
put BD.6000.S ; $6000 - data
put BD.7500.S ; $7500 - code
*-----------------------------

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
BD.MAKE=Type(00),AuxType(0000),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)

128
bubblebobble/BB.0800.S Normal file
View File

@ -0,0 +1,128 @@
*
* Bubble Bobble
*
* (c) 1988, Taito
* (s) 2020, Antoine Vignau
*
mx %11
org $0800
lst off
*-------------------------------
L0800 HEX FEFEFE02020202020202020202020202
HEX 02020202020202020202020202020202
HEX 020202FEFEFE
L0826 HEX FEFEFE80808080808080808080808080
HEX 80202020204040404040404040404040
HEX 404040FEFEFE
L084C HEX FEFEFE80808080808080808080808080
HEX 80202020204040404040404040404040
HEX 404040FEFEFE
L0872 HEX FEFEFE80808080808080808080808080
HEX 80202020204040404040404040404040
HEX 404040FEFEFE
L0898 HEX FEFEFE80808080808080808080808080
HEX 80101010104040404040404040404040
HEX 404040FEFEFE
L08BE HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L08E4 HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L090A HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L0930 HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L0956 HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L097C HEX FEFEFE01010410101010030101010101
HEX 01010101010101010101010410101010
HEX 030101FEFEFE
L09A2 HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L09C8 HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L09EE HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L0A14 HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L0A3A HEX FEFEFE01010410101010030101010101
HEX 01010101010101010101010410101010
HEX 030101FEFEFE
L0A60 HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L0A86 HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L0AAC HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L0AD2 HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L0AF8 HEX FEFEFE01010410101010030101010101
HEX 01010101010101010101010410101010
HEX 030101FEFEFE
L0B1E HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L0B44 HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L0B6A HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L0B90 HEX FEFEFE10101010101010101010101010
HEX 10101010101010101010101010101010
HEX 101010FEFEFE
L0BB6 HEX FEFEFE01010101010101010101010101
HEX 01010101010101010101010101010101
HEX 010101FEFEFE
DB $00
DB $00
DB $01
DB $03
DB $43
DB $43
DB $43
DB $00
DB $00
DB $00
DB $00
DB $00
DB $10
DB $25
DB $3A
DB $00
DB $00
DB $00
DB $00
DB $00
DB $20
DB $20
DB $20
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

1098
bubblebobble/BB.0C00.S Normal file

File diff suppressed because it is too large Load Diff

7758
bubblebobble/BB.6000.S Normal file

File diff suppressed because it is too large Load Diff

2387
bubblebobble/BB.9700.S Normal file

File diff suppressed because it is too large Load Diff

314
bubblebobble/BB.9800.S Normal file
View File

@ -0,0 +1,314 @@
*
* Bubble Bobble
*
* (c) 1988, Taito
* (s) 2020, Antoine Vignau
*
mx %11
org $9800
lst off
*-------------------------------
CYAREG EQU $C036
TXTSET EQU $C051
*-------------------------------
L9800 JSR L98C5
LDA #$00
STA $F1
LDA #$01
STA $F2
L980B LDA #$00
STA $F0
L980F LDA $F0
STA $0A05
LDA $F2
STA $0A04
LDA #$00
STA $0A08
LDA #$0C
CLC
ADC $F1
STA $0A09
JSR L9841
INC $F1
LDA $F1
CMP #$8B
BEQ L983E
INC $F0
LDA $F0
CMP #$10
BNE L980F
INC $F2
JMP L980B
L983E JMP $6000 ; play game
L9841 LDA #$01
STA $0A00
STA $0A02
STA $0A0C
STA $0A10
STA $0B01
LDA #$60
STA $0A01
STA $0A0F
LDA #$00
STA $0A03
STA $0A0B
STA $0A0E
STA $0B00
STA $0A06
LDA #$0B
STA $0A07
LDA #$D8
STA $0B02
LDA #$EF
STA $0B03
LDY #$00
LDA #$0A
JSR $B7B5
LDA #$00
STA $48
RTS
L9886 LDA #$01
STA $0A00
STA $0A02
STA $0A10
STA $0B01
LDA #$60
STA $0A01
STA $0A0F
LDA #$00
STA $0A0C
STA $0B00
STA $0A06
STA $0A0E
LDA #$0B
STA $0A07
LDA #$D8
STA $0B02
LDA #$EF
STA $0B03
LDY #$00
LDA #$0A
JSR $B7B5
LDA #$00
STA $48
RTS
L98C5 LDA CYAREG ; IIgs slow
AND #$7F
STA CYAREG
LDA #$00
STA L994C
JSR L98EE ; call protection
LDA L994D
BEQ L98DD
JMP L9C1A ; copy, reboot
L98DD RTS ; original, return
L98DE ASC "0123456789ABCDEF"
L98EE LDA #$21 ; go to T21
STA $0A04
JSR L9886
LDA #$00
STA L994E
STA L994D
LDY #$0F
L9900 STA L994F,Y
DEY
BPL L9900
JSR L990A
RTS
L990A JSR L9960
INC L994D
LDA #$19
STA L99D0
STA L99DE
JSR L996E
BCS L994A
LDA L9B1A+$5B
CMP #$99
BNE L994A
LDA #$59
STA L99D0
STA L99DE
JSR L996E
LDX #$00
LDY #$0F
L9933 LDA L9B1A+$5B,Y
BEQ L9939
INX
L9939 DEY
BPL L9933
INC L994F,X
CPX #$03
BCC L994A
DEC L994D
INC L994E
RTS
L994A RTS
DB $00
L994C DB $00
L994D DB $00
L994E DB $00
L994F 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
L9960 LDA #$00
LDY #$00
L9964 STA L9A1A,Y
STA L9B1A,Y
INY
BNE L9964
RTS
L996E LDX #$60
CMP $C08E,X
LDA #$C0
STA L99F4
STA L99F5
L997B INC L99F4
BNE L9988
INC L99F5
BNE L9988
JMP L99EC
L9988 LDA $C08C,X
BPL L9988
CMP #$D5
BNE L997B
L9991 LDA $C08C,X
BPL L9991
CMP #$AA
BNE L997B
L999A LDA $C08C,X
BPL L999A
CMP #$96
BNE L997B
JSR L9A05
JSR L9A05
CMP #$21
STA L994C
BNE L997B
JSR L9A05
CMP #$0F
BNE L997B
L99B7 LDA $C08C,X
BPL L99B7
L99BC CMP #$D5
BNE L99B7
L99C0 LDA $C08C,X
BPL L99C0
CMP #$AA
BNE L99BC
LDY #$00
L99CB LDA $C08C,X
BPL L99CB
L99D0 ORA L9A1A,Y
STA L9A1A,Y
INY
BNE L99CB
L99D9 LDA $C08C,X
BPL L99D9
L99DE ORA L9B1A,Y
STA L9B1A,Y
INY
BNE L99D9
JSR L99FF
CLC
RTS
L99EC JSR L9960
JSR L99FF
SEC
RTS
L99F4 DB $00
L99F5 DB $00
LDY #$01
LDA ($F0),Y
TAX
CMP $C089,X
RTS
L99FF LDX #$60
CMP $C088,X
RTS
L9A05 LDA $C08C,X
BPL L9A05
SEC
ROL
STA L9A14+1
L9A0F LDA $C08C,X
BPL L9A0F
L9A14 AND #$00
STA L9A14+1
RTS
L9A1A DS $100
L9B1A DS $100
L9C1A LDA TXTSET ; reset, please, I have a copy
LDA L994C
LSR
LSR
LSR
LSR
TAX
LDA L98DE,X
STA $0400
LDA L994C
AND #$0F
TAX
LDA L98DE,X
STA $0401
LDA #$A0
STA $0402
LDA #$3B
LDX #$00
STX $50
LDX #$02
STX $51
LDY #$00
L9C48 LDA #$A0
STA ($50),Y
INC $50
BNE L9C52
INC $51
L9C52 LDX $51
CPX #$9C
BCC L9C48
L9C58 CMP #$13
BEQ L9C5E
BNE L9C58
L9C5E CMP $52
BNE L9C58
DS $9E
DS $100
DS $100
DS $100

152
bubblebobble/BB.B700.S Normal file
View File

@ -0,0 +1,152 @@
*---------------------------------------------------------*
* Disassembled with The Flaming Bird Disassembler *
* (c) Phoenix corp. 1992,93 - All rights reserved *
*---------------------------------------------------------*
TYP BIN
ORG $00B700
MX %11
LB700 LDA #$00
STA $F1
LDA #$14
STA $F2
LB708 LDA #$00
STA $F0
LB70C LDA $F0
STA $0A05
LDA $F2
STA $0A04
LDA #$00
STA $0A08
LDA #$98
CLC
ADC $F1
STA $0A09
JSR LB73E
INC $F1
LDA $F1
CMP #$06
BEQ LB73B
INC $F0
LDA $F0
CMP #$10
BNE LB70C
INC $F2
JMP LB708
LB73B JMP $9800
LB73E LDA #$01
STA $0A00
STA $0A02
STA $0A0C
STA $0A10
STA $0B01
LDA #$60
STA $0A01
STA $0A0F
LDA #$00
STA $0A03
STA $0A0B
STA $0A0E
STA $0B00
STA $0A06
LDA #$0B
STA $0A07
LDA #$D8
STA $0B02
LDA #$EF
STA $0B03
LDY #$00
LDA #$0A
JSR LB7B5
LDA #$00
STA $48
RTS
LB783 STA $B6FF
STA LB7ED
JSR LB793
RTS
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
LB793 LDA LB7E4+1
LDY LB7E4
JSR LB7B5
LDY LB7ED
DEY
BPL LB7A9
LDY #$0F
NOP
NOP
DEC LB7EC
LB7A9 STY LB7ED
DEC LB7F0+1
DEC LB7E1
BNE LB793
RTS
LB7B5 PHP
SEI
JSR $BD00
BCS LB7BF
PLP
CLC
RTS
LB7BF PLP
SEC
RTS
LDA $B5BC
STA LB7F0+1
LDA #$00
STA LB7F0
LDA $B5F9
EOR #$FF
STA LB7EB
RTS
LDA #$00
TAY
LB7D9 STA ($42),Y
INY
BNE LB7D9
RTS
DB $00
DB $1B
LB7E1 DB $00
DB $0A
DB $1B
LB7E4 DA $B7E8
DA $B600
LB7E8 DB $01
DB $60
DB $01
LB7EB DB $FF
LB7EC DB $03
LB7ED DB $0E
DA $B7FB
LB7F0 DA $9600
DB $00
DB $01
DB $01
DB $07
DB $FE
DB $60
DB $01
DB $00
DB $00
LB7FB DB $00
DB $01
DB $EF
DB $EC
DB $00

1410
bubblebobble/BB.D000.S Normal file

File diff suppressed because it is too large Load Diff

54
bubblebobble/BB.D100.S Normal file
View File

@ -0,0 +1,54 @@
*
* BubbMe BobbMe
*
* (c) 1988, Taito
* (s) 2020, Antoine Vignau
*
mx %11
org $d100
lst off
*------------------------------- The other MC bank :-)
MD100 ds $40
MD140 ds $40
MD180 ds $40
MD1C0 ds $40
MD200 ds $40
MD240 ds $40
MD280 ds $40
MD2C0 ds $40
MD300 ds $40
MD340 ds $40
MD380 ds $40
MD3C0 ds $40
MD400 ds $40
MD440 ds $40
MD480 ds $40
MD4C0 ds $40
MD500 ds $40
MD540 ds $40
MD580 ds $40
MD5C0 ds $40
MD600 ds $40
MD640 ds $40
MD680 ds $40
MD6C0 ds $40
MD700 ds $40
MD740 ds $40
MD780 ds $40
MD7C0 ds $40
MD800 ds $40
MD840 ds $40
MD880 ds $40
MD8C0 ds $40
MD900 ds $40
MD940 ds $40
MD980 ds $40
MD9C0 ds $40
MDA00 ds $40
MDA40 ds $40
MDA80 ds $40
MDAC0 ds $40

51
bubblebobble/BB.EQUATES.S Normal file
View File

@ -0,0 +1,51 @@
*
* Bubble Bobble
*
* (c) 1988, Taito
* (s) 2024, Antoine Vignau
*
*-----------------------------------
* GAME EQUATES
*-----------------------------------
HPAG = $326 ; current HGR page
tblMUSIC = $0800 ; $800 for music 1, $802 for music 2
HGR1 = $2000
HGR2 = $4000
*-----------------------------------
* FIRMWARE EQUATES
*-----------------------------------
KBD = $C000
SETSTDZP = $C008
KBDSTROBE = $C010
SPKR = $C030
CYAREG = $C036
TXTCLR = $C050
TXTSET = $C051
MIXCLR = $C052
TXTPAGE1 = $C054
HIRES = $C057
BUTN0 = $C061
BUTN1 = $C062
LCBANK2 = $C083
RDROM1 = $C08A
LCBANK1 = $C08B
PREAD = $FB1E
*-----------------------------------
* ZERO PAGE
*-----------------------------------
fgSOUND = $10 ; 0 = play music, 1 = no music
curPLAYER = $d3 ; 0 = player 1, 1 = player 2
P1_LEVEL = $da
P2_LEVEL = $db
theINDEX = $e9 ; an index variable
fgPAGE = $ec ; 0 = PAGE1, 1 = PAGE2
theMOVE = $f2 ; 1 = left, 0 = middle, 2 = right
nbPLAYERS = $f6 ; 1 = 1 player, 2 = 2 players

843
bubblebobble/BB.F800.S Normal file
View File

@ -0,0 +1,843 @@
*
* Bubble Bobble
*
* (c) 1988, Taito
* (s) 2020, Antoine Vignau
*
mx %11
org $f800
lst off
*-------------------------------
* CODE
*-------------------------------
LF800 JMP LF80F ; F800
LF803 DB $00
LF804 DB $00
LF805 DB $00
LF806 DB $00
LF807 DB $00
LF808 DB $00
LF809 DB $00
LF80A DB $00
LF80B DB $00
LF80C DB $00
LF80D DB $00 ; save Y
LF80E DB $00 ; save X
LF80F STY LF80D
STX LF80E
LDY $10
BNE LF827
TAY
LDA LF82E,Y
STA $0E
LDA LF83B,Y
STA $0E+1
JMP ($000E)
LF827 LDY LF80D
LDX LF80E
RTS
LF82E DFB <LF848,<LF859,<LF872,<LF888,<LF8AA,<LF8C0,<LF8CD,<LF8D7
DFB <LF8ED,<LF90D,<LF926,<LF943,<LF960
LF83B DFB >LF848,>LF859,>LF872,>LF888,>LF8AA,>LF8C0,>LF8CD,>LF8D7
DFB >LF8ED,>LF90D,>LF926,>LF943,>LF960
LF848 LDY #$02
LDX #$20
JSR LF979
LDY #$01
LDX #$60
JSR LF979
JMP LF827
LF859 LDY #$10
LDX #$20
LDA #$04
STA LF80A
LDA #$04
STA LF80B
LDA #$01
STA LF80C
JSR LF9DA
JMP LF827
LF872 LDY #$20
LDX #$10
LDA #$04
STA LF80A
JSR LF98C
LDY #$20
LDX #$90
JSR LF979
JMP LF827
LF888 LDY #$20
LDX #$80
LDA #$01
STA LF80A
JSR LF9B3
LDY #$20
LDX #$04
JSR LF979
LDY #$20
LDX #$10
LDA #$02
STA LF80A
JSR LF98C
JMP LF827
LF8AA LDY #$10
LDX #$80
JSR LF979
LDY #$20
LDX #$40
LDA #$01
STA LF80A
JSR LF98C
JMP LF827
LF8C0 LDY #$08
LDA #$02
STA LF80A
JSR LFA12
JMP LF827
LF8CD LDY #$08
LDX #$30
JSR LF979
JMP LF827
LF8D7 LDY #$40
LDX #$90
LDA #$02
STA LF80A
JSR LF9B3
LDY #$10
LDX #$B0
JSR LF979
JMP LF827
LF8ED LDY #$20
LDX #$10
LDA #$04
STA LF80A
LDA #$0A
STA LF80B
LDA #$00
STA LF80C
JSR LF9DA
LDY #$08
LDX #$03
JSR LF979
JMP LF827
LF90D LDY #$08
LDX #$02
LDA #$02
STA LF80A
LDA #$06
STA LF80B
LDA #$01
STA LF80C
JSR LF9DA
JMP LF827
LF926 LDY #$30
LDX #$C0
LDA #$04
STA LF80A
JSR LF9B3
LDY #$20
LDX #$A0
JSR LF979
LDY #$20
LDX #$C0
JSR LF979
JMP LF827
LF943 LDY #$20
LDX #$10
JSR LF979
LDY #$30
LDX #$10
LDA #$01
STA LF80A
JSR LF98C
LDY #$20
LDX #$80
JSR LF979
JMP LF827
LF960 LDY #$08
LDX #$06
LDA #$01
STA LF80A
LDA #$03
STA LF80B
LDA #$00
STA LF80C
JSR LF9DA
JMP LF827
LF979 STX LF808
LF97C DEY
BEQ LF98B
LDX LF808
LF982 DEX
BNE LF982
JSR LFA2C
JMP LF97C
LF98B RTS
LF98C STX LF808
LDA LF80A
STA LF809
LF995 DEY
BEQ LF9B2
LDX LF808
LF99B DEX
BNE LF99B
JSR LFA2C
DEC LF809
BNE LF995
LDA LF80A
STA LF809
DEC LF808
JMP LF995
LF9B2 RTS
LF9B3 STX LF808
LDA LF80A
STA LF809
LF9BC DEY
BEQ LF9D9
LDX LF808
LF9C2 DEX
BNE LF9C2
JSR LFA2C
DEC LF809
BNE LF9BC
LDA LF80A
STA LF809
INC LF808
JMP LF9BC
LF9D9 RTS
LF9DA STX LF808
LDA LF80A
STA LF809
LF9E3 DEY
BEQ LFA11
LDX LF808
LF9E9 DEX
BEQ LF9F2
JSR LFA2C
JMP LF9E9
LF9F2 LDX LF80B
LF9F5 DEX
BNE LF9F5
LDA LF80C
BEQ LFA00
JSR LFA2C
LFA00 DEC LF809
BNE LF9E3
LDA LF80A
STA LF809
DEC LF808
JMP LF9E3
LFA11 RTS
LFA12 STY LF809
LFA15 LDA LF809
BEQ LFA2B
JSR LFA38
TAX
INX
LDY LF80A
JSR LF979
DEC LF809
JMP LFA15
LFA2B RTS
LFA2C STX LF807
LDX #$10
LDA $C020,X
LDX LF807
RTS
LFA38 LDA LF803
INC LF803
ROL
SBC LF806
EOR LF804
ROL
PHA
ROR LF804
LDA LF804
ROR
EOR LF805
ROR
EOR LF803
ADC LF806
STA LF803
PLA
STA LF804
PHA
JSR LFA65
PLA
RTS
LFA65 LDA LF805
ADC #$07
PHA
LDA LF804
BMI LFA7B
PLA
EOR LF806
STA LF805
DEC LF806
RTS
LFA7B PLA
SBC #$33
STA LF805
RTS
DS \
*-------------------------------
* DATA
*-------------------------------
LFB00 DB $1E
DB $33
DB $33
DB $3F
DB $33
DB $33
DB $33
DB $00
DB $1F
DB $33
DB $33
DB $1F
DB $33
DB $33
DB $1F
DB $00
DB $1E
DB $33
DB $03
DB $03
DB $03
DB $33
DB $1E
DB $00
DB $1F
DB $33
DB $33
DB $33
DB $33
DB $33
DB $1F
DB $00
DB $3F
DB $03
DB $03
DB $1F
DB $03
DB $03
DB $3F
DB $00
DB $3F
DB $03
DB $03
DB $1F
DB $03
DB $03
DB $03
DB $00
DB $1E
DB $33
DB $03
DB $03
DB $3B
DB $33
DB $1E
DB $00
DB $33
DB $33
DB $33
DB $3F
DB $33
DB $33
DB $33
DB $00
DB $3F
DB $0C
DB $0C
DB $0C
DB $0C
DB $0C
DB $3F
DB $00
DB $3F
DB $0C
DB $0C
DB $0C
DB $0C
DB $0C
DB $07
DB $00
DB $33
DB $33
DB $1B
DB $0F
DB $1B
DB $33
DB $33
DB $00
DB $03
DB $03
DB $03
DB $03
DB $03
DB $03
DB $3F
DB $00
DB $33
DB $3F
DB $3F
DB $3F
DB $33
DB $33
DB $33
DB $00
DB $33
DB $37
DB $37
DB $3F
DB $3B
DB $3B
DB $33
DB $00
DB $1E
DB $33
DB $33
DB $33
DB $33
DB $33
DB $1E
DB $00
DB $1F
DB $33
DB $33
DB $1F
DB $03
DB $03
DB $03
DB $00
DB $1E
DB $33
DB $33
DB $33
DB $3F
DB $3B
DB $3E
DB $00
DB $1F
DB $33
DB $33
DB $1F
DB $0F
DB $1B
DB $33
DB $00
DB $1E
DB $33
DB $03
DB $0E
DB $38
DB $33
DB $1E
DB $00
DB $3F
DB $0C
DB $0C
DB $0C
DB $0C
DB $0C
DB $0C
DB $00
DB $33
DB $33
DB $33
DB $33
DB $33
DB $33
DB $1E
DB $00
DB $33
DB $33
DB $33
DB $33
DB $33
DB $1E
DB $0C
DB $00
DB $33
DB $33
DB $33
DB $3F
DB $3F
DB $3F
DB $33
DB $00
DB $33
DB $33
DB $1E
DB $0C
DB $1E
DB $33
DB $33
DB $00
DB $33
DB $33
DB $33
DB $1E
DB $0C
DB $0C
DB $0C
DB $00
DB $3F
DB $30
DB $18
DB $0C
DB $06
DB $03
DB $3F
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $0C
DB $0C
DB $00
DB $0C
DB $0C
DB $0C
DB $00
DB $00
DB $00
DB $00
DB $00
DB $0C
DB $0C
DB $0C
DB $0C
DB $00
DB $0C
DB $0C
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $1C
DB $22
DB $20
DB $18
DB $08
DB $00
DB $08
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
LFC00 DB $1E
DB $33
DB $33
DB $33
DB $33
DB $33
DB $1E
DB $00
DB $0C
DB $0E
DB $0F
DB $0C
DB $0C
DB $0C
DB $3F
DB $00
DB $1E
DB $33
DB $30
DB $18
DB $0C
DB $06
DB $3F
DB $00
DB $1E
DB $33
DB $30
DB $1C
DB $30
DB $33
DB $1E
DB $00
DB $30
DB $33
DB $33
DB $33
DB $3F
DB $30
DB $30
DB $00
DB $3F
DB $33
DB $03
DB $1F
DB $30
DB $33
DB $1E
DB $00
DB $1E
DB $33
DB $03
DB $1F
DB $33
DB $33
DB $1E
DB $00
DB $1F
DB $33
DB $30
DB $18
DB $0C
DB $0C
DB $0C
DB $00
DB $1E
DB $33
DB $33
DB $1E
DB $33
DB $33
DB $1E
DB $00
DB $1E
DB $33
DB $33
DB $33
DB $3E
DB $30
DB $30
DB $00
DB $00
DB $00
DB $00
DB $3E
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
LFC60 DB $80
DB $20
DB $20
DB $14
DB $20
DB $0F
DB $FF
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
LFC70 DB $06
DB $00
DB $0C
DB $04
DB $20
DB $0E
DB $15
DB $04
DB $11
DB $20
DB $0F
DB $0B
DB $00
DB $18
DB $04
DB $11
DB $20
LFC81 DB $80
DB $FF
DB $00
DB $00
DB $00
DB $00
DB $00
LFC88 DB $20
DB $20
DB $20
DB $02
DB $0E
DB $0D
DB $06
DB $11
DB $00
DB $13
DB $14
DB $0B
DB $00
DB $13
DB $08
DB $0E
DB $0D
DB $12
DB $FE
DB $20
DB $20
DB $20
DB $18
DB $0E
DB $14
DB $20
DB $07
DB $00
DB $15
DB $04
DB $20
DB $16
DB $0E
DB $0D
DB $1C
DB $1C
DB $1C
DB $FF
DB $00
DB $00
LFCB0 DB $02
LFCB1 DB $0E
DB $0D
DB $13
LFCB4 DB $08
DB $0D
DB $14
DB $04
DB $1F
DB $00
DB $00
DB $00
LFCBC DB $00
LFCBD DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
LFCC8 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
LFCCE DB $00
DB $00
LFCD0 DB $00
DB $00
LFCD2 DB $00
DB $00
LFCD4 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
LFCDC DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
LFCE4 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
LFCEC DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
LFCF4 DB $00
DB $00
LFCF6 DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
DB $00
LFD00 DS $100
LFE00 DS $100
LFF00 DS $08
LFF08 DS $08
LFF10 DS $08
LFF18 DS $08
LFF20 DS $20
LFF40 DS $10
LFF50 DS $10
DS \

BIN
bubblebobble/BB.MAKE Normal file

Binary file not shown.

32
bubblebobble/BB.MAKE.S Normal file
View File

@ -0,0 +1,32 @@
*
* Bubble Bobble
*
* (c) 1988, Taito
* (s) 2020, Antoine Vignau
*
mx %11
lst off
*-------------------------------
put BB.EQUATES.S
put BB.0800.S ; LOGO $0800..
put BB.0C00.S ; LOGO $0C00..
ds $2000 ; LOGO $2000..
ds $2000 ; LOGO $4000..
put BB.6000.S ; LOGO $6000..
put BB.9700.S ; LOGO $9700..
ds $900 ; LOGO $B700..
ds $100 ; LOGO $D000.. where we should be at $C000
put BB.D100.S ; LOGO $D100.. itou
ds $500 ; LOGO $DB00.. itou
put BB.D000.S ; LOGO $D000..
ds $1000 ; LOGO $E000..
ds $800 ; LOGO $F000..
put BB.F800.S ; LOGO $F800..$FFFF
*-------------------------------

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
BB.MAKE=Type(00),AuxType(0000),VersionCreate(70),MinVersion(BE),Access(E3),FolderInfo1(000000000000000000000000000000000000),FolderInfo2(000000000000000000000000000000000000)

View File

@ -0,0 +1,78 @@
Bubble Bobble
Taito
1988
Novalogic
Chris Eisnaugle
Memory Map
$0800..$0BFF - LEVEL
$0C00..$1FFF - CODE
$6000..$96FF - CODE
$9700..$B6FF - DATA
$B800..$BFFF - RWTS
$D000..$DFFF - CODE
$D100..$DAFF - DATA
$F800..$FF5F - CODE
How to crack (should write something about it)
Side 1 / T14/S0/D2: 20 -> 2C
DISK MAP
Side 1
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22
00 08 0C 1C 2C 3C 4C 5C 6C 7C 8C 98
01 B7 0D 1D 2D 3D 4D 5D 6D 7D 8D 99
02 B8 0E 1E 2E 3E 4E 5E 6E 7E 8E 9A
03 B9 0F 1F 2F 3F 4F 5F 6F 7F 8F 9B
04 BA 10 20 30 40 50 60 70 80 90 9C
05 BB 11 21 31 41 51 61 71 81 91 9D
06 BC 12 22 32 42 52 62 72 82 92
07 BD 13 23 33 43 53 63 73 83 93
08 BE 14 24 34 44 54 64 74 84 94
09 BF 15 25 35 45 55 65 75 85 95
0A 16 26 36 46 56 66 76 86 96
0B 17 27 37 47 57 67 77 87
0C 18 28 38 48 58 68 78 88
0D 19 29 39 49 59 69 79 89
0E 1A 2A 3A 4A 5A 6A 7A 8A
0F 1B 2B 3B 4B 5B 6B 7B 8B
MEMORY RELOCATION
2000..3FFF > 9700..B6FF
5000..5FFF > D000..DFFF
4500..47FF > F800..FAFF
4300..45FF > FB00..FDFF
Side 2
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22
00 08 LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL HH HH P1 P1 P2 P2 XX XX
01 B7 LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL HH HH P1 P1 P2 P2 XX XX
02 B8 LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL HH HH P1 P1 P2 P2 XX
03 B9 LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL HH HH P1 P1 P2 P2 XX
04 BA LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL HH HH P1 P1 P2 P2 XX
05 BB LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL HH HH P1 P1 P2 P2 XX
06 BC LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL HH HH P1 P1 P2 P2 XX
07 BD LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL HH HH P1 P1 P2 P2 XX
08 BE LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL MM HH HH P1 P1 P2 P2 XX
09 BF LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL MM HH HH P1 P1 P2 P2 XX
0A LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL MM HH HH P1 P1 P2 P2 XX
0B LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL MM HH HH P1 P1 P2 P2 XX
0C LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LX HH HH P1 P1 P2 P2 XX
0D LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LX HH HH P1 P1 P2 P2 XX
0E LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LX HH HH P1 P1 P2 P2 XX
0F LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LL LX HH HH P1 P1 P2 P2 XX
LEVELS
01/00 TO 1A/0F EVERY FOUR SECTORS
26 x 4 = 104 - 1 = 103 LEVELS
PICTURES
T01/1A: the levels (minus T1A/SC..F for LX, T1A/S8..B for MMusic)
T1B/1C: High Scores (HH)
T1D/1E: Big Boss level page 1 (P1)
T1F/20: Big Boss level page 2 (P2)
T21+++: Some code, for the boss level or, more likely, garbage for the on-disk protection check

BIN
bubblebobble/data/BB.BOS1.BIN Executable file

Binary file not shown.

BIN
bubblebobble/data/BB.BOS2.BIN Executable file

Binary file not shown.

BIN
bubblebobble/data/BB.HIGH.BIN Executable file

Binary file not shown.

BIN
bubblebobble/data/BB.LVLS.BIN Executable file

Binary file not shown.

BIN
bubblebobble/data/BB.LVLX.BIN Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,70 @@
*
* Bubble Bobble
*
* (c) 1988, Taito
* (s) 2020, Antoine Vignau
*
mx %11
org $0800
lst off
*-------------------------------
KBD = $C000
CLR80VID = $C00C
KBDSTROBE = $C010
ROMIN2 = $C081
INIT = $FB2F
HOME = $FC58
*-------------------------------
DB $01
LDX $2B
TXA
LSR
LSR
LSR
LSR
ORA #$C0
STA L0848+2
LDA $C088,X
BIT ROMIN2
STA CLR80VID
JSR INIT
JSR HOME
LDX #$16
L081E LDA L084C,X
STA $0709,X
DEX
BPL L081E
LDX #$17
L0829 LDA L0863,X
STA $0530,X
DEX
BPL L0829
LDX #$14
L0834 LDA L087B,X
STA $0631,X
DEX
BPL L0834
LDA KBDSTROBE
L0840 LDA KBD
BPL L0840
BIT KBDSTROBE
L0848 JMP $C600
RTS
* BUBBLE BOBBLE DATA DISK
L084C ASC 021502020C05
ASC ' '020F02020C05
ASC ' '04011401
ASC ' '0409130B
L0863 ASC "FLIP DISK OVER AND PRESS"
L087B ASC "ANY KEY TO START GAME"
DS \

BIN
bubblebobble/sources/BB.TOS2.BIN Executable file

Binary file not shown.

6161
donkeykong/DONKEY.0800.S Normal file

File diff suppressed because it is too large Load Diff

529
donkeykong/DONKEY.2000.S Normal file
View File

@ -0,0 +1,529 @@
*
* Donkey Kong
*
* (c) 1982, Nintendo
* (c) 1984, Atari
* (s) 2020, Antoine Vignau
*
*-----------------------
MX %11
ORG $2000
LST OFF
*-----------------------
L2000 HEX 0000FEFFFFFF818080C0FF9F8080FF81
HEX 80F8FF83FEFF81FFFF83FFFFFFFFFF80
HEX FFFF81F8FF8F00000000000000000000
HEX B0D5EA808080DBAAD5AAED80ABDBAAE3
HEX EA80AB83FCFFFF800000000000000000
HEX 000000000200000000000000000000D0
HEX D6AAD5FF000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580DCEA83E0D5DAD5BA80ABD5
HEX 81E0EA80B0B5E0D58380B0B580808080
HEX E0F580F0BA8000000000000000000000
HEX B0B5AE9D8080ABABD5EAEA80AB83B8D5
HEX EA80AB8780D89A800000000000000000
HEX 00000000020000000000000000A8A9D5
HEX 82D4AA85D00000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87FCFFD5FAFF83ABD5
HEX EAE0EA80B0D5EA818080B0B580D68180
HEX 80F0FAF5808000000000000000000000
HEX B0B580DCBA80E0D5AAD58380AB8380DC
HEX EA80E0D5FFD59A800000000000000000
HEX 00000000020000000000000000A80000
HEX 00000000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87ACB5D5EAAA83AB83
HEX AED5EA80B0F5AB878080B0B580808080
HEX 8080AB8D808000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 0000000002000000000000000000002E
HEX 552A0D00000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580D6EA81E0DFAAD5BF80AB83
HEX 80D6EA80B0B580D78E80B0B580E0FF80
HEX 8080AB8D80800000000000002A552A55
HEX 2A552A552A552A552A552A552A552A55
HEX 2A552A552A552A552A552A0100000000
HEX 0000000002000000000000000000402B
HEX 552A3500000000000000000000000000
HEX 00000001000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000002000000
HEX 000000000000000000AAA5D582000000
HEX 00000000000000000000000100000000
HEX 00000000020000000000000000000060
HEX 577A0000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000000000000000AED581D7AA8380DF
HEX AAFD8080AB8780D8AA8380DFAAFD8080
HEX 00000000000000000000000002000000
HEX 0000000000000000A0FF7F1F00000000
HEX 00000000000000000000000100000000
HEX 600006000C1E1E3F000C3F0C1F1E0000
HEX 1E331C00000C0F0F001F1E1E333F1E00
HEX 1F3F1E3F1F333F1F0000000000000000
HEX 0000000000000000B0B5B8F58080ACD5
HEX F7D59A80ABD586E0EA80AC8D80808080
HEX 00000000000000000000000002000000
HEX 00000000000000C8D6D2800000000000
HEX 00000000000000000000000100000000
HEX 00000000000000300003000C1E1E0C00
HEX 000C1E1E3F0000331E333F3F331F1E00
HEX 00000000000000000000000000000000
HEX 0000AED5AAF5878080F0ABFD8080AB83
HEX 80D8AA83AED581D7AA83ABD5AAD5EA80
HEX ABD581D8AA8D00000000000000000000
HEX B0D5EA808080FBAAD5AAEF80ABF3AAE3
HEX EA80AB83ACD5EA800000000000000000
HEX 000000000200000000000000000000D0
HEX DAAAD5FF000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580F8EA83F0D5DAD5EA80ABD5
HEX 83E0EA80B0B5F0D58180B0B580808080
HEX C0D581D89A8000000000000000000000
HEX B0B5ACBD8080AEABDDEABA80AB83B0D5
HEX EA80AE8780D89A800000000000000000
HEX 00000000020000000000000000A8A9D5
HEX 00C0AAD5D40000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87DCAAD5AAD583ABDF
HEX EAE1EA80B0D5EA818080B0F5FFD78180
HEX 80E0AAB5808000000000000000000000
HEX BEF581DEFA83E0D5AAD58380AB8F80D8
HEX EA80E0D5AAD59A800000000000000000
HEX 00000000020000000000000000800000
HEX 00000000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87ACB5D5EAAA83AB83
HEX ACD5EA80B0B5AB8F8080B0B580808080
HEX 8080AB8D808000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 0000000002000000000000000000002E
HEX 552A0D00000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580D7EA80C0D5AAD59A80AB83
HEX 80D6EA80B0B580D69E80B0B580E0EA80
HEX 8080AB8D808000000000000002000000
HEX 00000000000000000000000000800000
HEX 00008000000000000000000100000000
HEX 0000000002000000000000000000402B
HEX 552A3500000000000000000000000000
HEX 00000001000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000002000000
HEX 0000000000000000C0AA95D500000000
HEX 00000000000000000000000100000000
HEX 00000000020000000000000000000000
HEX 7E0F0000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000000000000000AED581D7AA83C0D7
HEX AAF58180AB8D80D8AA83C0D7AAF58180
HEX 00000000000000000000000002000000
HEX 0000000000000000A8FDD51F00000000
HEX 00000000000000000000000100000000
HEX 307C0C000E333330001E3F1E330C0000
HEX 0C333600001E060600330C33333F3300
HEX 33363336333336360000000000000000
HEX 0000000000000000B0B5BCB58080AED5
HEX D5D5BA80ABD586E0EA80AE8D80808080
HEX 00000000000000000000000002000000
HEX 000000000000C0CAD6D2800000000000
HEX 00000000000000000000000100000000
HEX 00000000000000183E06000E33330E00
HEX 000E3333300000330C333F3633363300
HEX 00000000000000000000000000000000
HEX 0000AED5AAD58F8080FCAAF58380AB87
HEX 80D8AA83AED581D7AA83ABD5AAD5EA80
HEX ABD581D8AA8D00000000000000000000
HEX B0D5EA808080EBABD5EAEB80ABE3AAE7
HEX EA80AB83ACD5EA800000000000000000
HEX 000000000200000000000000000000D0
HEX EAAAD5FF000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580F0AA87B0D5DED7EA80ABD5
HEX 86E0EA80B0B5B8F58080B0B580808080
HEX C0D581D89A8000000000000000000000
HEX B0B5B8F58080AEABFFEABA80AB83B0D5
HEX EA80AE8D80D89A800000000000000000
HEX 00000000020000000000000000A8A995
HEX 0000A8D5D40000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87ECAAD5AAB583ABDB
HEX AAE3EA80B0D5EA808080B0D5AAD58180
HEX 80E0AAB5808000000000000000000000
HEX AED581D6EA83C0D7AAF58180AB8D80D8
HEX EA81C0D7AAF59B800000000000000000
HEX 00000000020000000000000000800000
HEX 00000000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87ACADD5AAAB83AB83
HEX B8D5EA80B0B5AE9D8080B0B580808080
HEX 8080AB8D808000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 0000000002000000000000000000002F
HEX 552A1D00000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B5E0D5FA8080D7AAD58E80AB83
HEX 80DCEA80B0B580DCBA80B0F5FFFFEA80
HEX 8080AB8D808000000000000002000000
HEX 00000000000000000000A88100000000
HEX 00000000000000000000000100000000
HEX 0000000002000000000000000000402B
HEX 552A3500000000000000000000000000
HEX 00000001000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000002000000
HEX 0000000000000000D4EAD7D400000000
HEX 00000000000000000000000100000000
HEX 00000000020000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000000000000000BEF581D7FA83E0D5
HEX AAF58380AB9D80F8EA83E0D5AAF58380
HEX 00000000000000000000000002000000
HEX 0000000000000080D8FCD71E00000000
HEX 00000000000000000000000100000000
HEX 30660C000C33331800330C33330C0000
HEX 0C3703000033060600330C03330C0300
HEX 33060306333306360000000000000000
HEX 0000000000000000B0B5AE9D8080AED5
HEX D5D5BA80ABD58EE0EA80AE8780808080
HEX 00000000000000000000000002000000
HEX 000000000000FCD2D6D2800000000000
HEX 00000000000000000000000100000000
HEX 00000000000000183306000C33330C00
HEX 000C3333180000370C370C0637363300
HEX 00000000000000000000000000000000
HEX 0000AED5AAD59E8080DEAAD58780AB8D
HEX 80D8AA83AED581D7AA83ABD5AAD5EA80
HEX ABD581D8AA8D00000000000000000000
HEX B0D5EA818080ABABD5EAEA80ABC3ABED
HEX EA80AB83ACD5EA800000000000000000
HEX 000000000200000000000000000000D0
HEX AAD5D5FF000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580E0AA87B8D5D6D6EA81ABD5
HEX 86E0EA80B0B5BCB58080B0B580808080
HEX 80D783DC8E8000000000000000000000
HEX B0B5B0F58180ACEBEBEB9A80AB83E0D5
HEX EA80AC8D80D89A800000000000000000
HEX 00000000020000000000000000A8A985
HEX 0000A0D5D40000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87ECABD5AABD83ABF3
HEX AAE3EA80B0D5EA808080B0D5AAD58180
HEX 80C0AB9D808000000000000000000000
HEX AED581D6AA8380DFAAFD8080AB8D80F0
HEX AA8380DFAAFD9B800000000000000000
HEX 00000000020000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580E0AB87B8ADF5AAEB81AB83
HEX B0D5EA80B0B5ACBD8080B0B580808080
HEX 8080AB8D808000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 0000000002000000000000000000402B
HEX 55203500000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000BEF5BFD5BA8080D7AAD58E80AB8F
HEX 80D8EA80BEF581DEFA83BFD5AAD5EA80
HEX 80E0ABBD808000000000000002000000
HEX 00000000000000000000AA9500000000
HEX 00000000000000000000000100000000
HEX 0000000002000000000000000000002F
HEX 552A1D00000000000000000000000000
HEX 00000001000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000002000000
HEX 0000000000000000D4EAD7D700000000
HEX 00000000000000000000000100000000
HEX 00000000020000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000000000000000B0B580D69A80E0D5
HEX AAD58380ABB580E0EA80E0D5FFD58380
HEX 00000000000000000000000002000000
HEX 0000000000000080DAF2DF1E00000000
HEX 00000000000000000000000100000000
HEX 30060C000C3E1E1C00330C331F0C0000
HEX 0C3F030000330606001F0C033F0C1E00
HEX 1F0E1E0E1F1E0E360000000000000000
HEX 0000000000000000B0B5AB8D8080ABF5
HEX D5D7EA80ABD59AE0EA80AB8380808080
HEX 00000000000000000000000002000000
HEX 000000000000FFD2D6D2820000000000
HEX 00000000000000000000000100000000
HEX 00000000000000180306000C3E1E0C00
HEX 000C3E1E1C00003F0C3F0C0E3F363300
HEX 00000000000000000000000000000000
HEX 0000BEF5BFD5BE8080D7AAD58F80AB9D
HEX 80F8EA83BEF581D7FA83BFD5AAD5EA80
HEX ABD581D8AA8D00000000000000000000
HEX B0D5EA818080ABADD5DAEA80AB83ABFD
HEX EA80AB83ACD5EA800000000000000000
HEX 000000000200000000000000000000D4
HEX AAD5D29F000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580E0AB87B8D5D6D6EA81ABD5
HEX 8EE0EA80B0B5AE9D8080B0B580808080
HEX 80D686D6868000000000000000000000
HEX B0B5E0D58380ECEBAAEB9B80AB83C0D5
HEX EA80AC9D80D89A800000000000000000
HEX 00000000020000000000000000A8A980
HEX 000080D5D40000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87ACAFD5AAAF83ABE3
HEX AAE7EA80B0D5EA808080B0D5AAD58180
HEX 80C0AB9D808000000000000000000000
HEX AED581D6AA8380FCAA9F8080AB8D80E0
HEX AA8780FCAADF9B800000000000000000
HEX 00000000020000000000000000000000
HEX 7E0F0000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580E0AA87B8ADFDABEB81AB83
HEX B0D5EA80B0B5B8F58080B0B580808080
HEX 8080AB8D808000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 0000000002000000000000000000402B
HEX 55203500000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000AED5AAD59E8080DEAAD58780AB8D
HEX 80D8EA81AED581D6EA83ABD5AAD5EA80
HEX 80E0AAB5808000000000000002000000
HEX 00000000000000000000AAD500000000
HEX 00000000000000000000000100000000
HEX 0000000002000000000000000000002E
HEX 552A0D00000000000000000000000000
HEX 00000001000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000002000000
HEX 0000000000000000D4EAD7DF82000000
HEX 00000000000000000000000100000000
HEX 00000000020000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000000000000000B0B580D78E80F0D5
HEX BED58780ABB580E0EA80F0D581D78780
HEX 00000000000000000000000002000000
HEX 0000000000000080D6F23F0000000000
HEX 00000000000000000000000100000000
HEX 30660C000C303330003F0C3F0F0C0E00
HEX 0C3B0300003F0606000F0C3B330C3000
HEX 0F0630060F1E06360000000000000000
HEX 0000000000000000B0F5AB878080ABB5
HEX D5D7EA80ABD5BAE0EA80AB8380808080
HEX 00000000000000000000000002000000
HEX 000000000000FFD2D6D2820000000000
HEX 00000000000000000000000100000000
HEX 00000000000000183306000C30330C0E
HEX 000C30333000003B0C3B0C063B363300
HEX 00000000000000000000000000000000
HEX 0000B8B5E0D5FA8080D7AAD58E80ABB5
HEX 80E0EA80B0B580D69A80B0F5FFFFEA80
HEX BFFD81F8EB8F00000000000000000000
HEX B0D5AA838080ABADD5DAEA80AB83ABD5
HEX EA80AB83ACD5EA800000000000000000
HEX 000000000200000000000000000000D4
HEX AAD58200000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87ACD5D7DEAA83ABD5
HEX 9AE0EA80B0B5AB8D8080B0B580808080
HEX 80DC86D6838000000000000000000000
HEX B0B5C0D58780E8DAAAAD8B80AB8380D7
HEX EA80B89D80DC9A800000000000000000
HEX 00000000020000000000000000A88180
HEX 000000D0D40000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87ACADD5AAAB83ABC3
HEX ABEDEA80B0D5EA818080B0F5FFD78180
HEX 8080AB8D808000000000000000000000
HEX FEFF81FEFF8380F0FF878080FF8F80C0
HEX FF8F80F0FFC79F800000000000000000
HEX 00000000020000000000000000000060
HEX 577A0000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580F0EA83B0ADAFAFEB80AB83
HEX E0D5EA80B0B5B0F58180B0B580808080
HEX 8080AB8D808000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 0000000002000000000000000000402B
HEX 55203500000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000AED5AAD58F8080FCAAF58380AB8D
HEX 80F0AA83AED581D6AA83ABD5AAD5EA80
HEX 80E0AAB5808000000000000002000000
HEX 000000000000000000C0AAD582000000
HEX 00000000000000000000000100000000
HEX 0000000002000000000000000000002E
HEX 552A0D00000000000000000000000000
HEX 00000001000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000002000000
HEX 0000000000000000D0FAF79A8A000000
HEX 00000000000000000000000100000000
HEX 000000002A552A552A552A552A552A55
HEX 2A552A552A552A552A552A552A552A55
HEX 2A552A01000000000000000000000000
HEX 0000000000000000B0B5C0D78680B8D5
HEX B6D58E80ABF580E0EA80B8F580D68E80
HEX 00000000000000000000000002000000
HEX 0000000000000080D6D23F0000000000
HEX 00000000000000000000000100000000
HEX 307C0C000C18333300330C331B0C0E00
HEX 0C33360E00333636001B0C33330C3300
HEX 1B3633361B0C36360000000000000000
HEX 0000000000000000B0D5AA838080ABB5
HEX D5D7EA80ABD5EAE0EA80AB8380808080
HEX 00000000000000000000000002000000
HEX 000000000000FFD2D6D2820000000000
HEX 00000000000000000000000100000000
HEX 00000000000000183E06000C18330C0E
HEX 000C1833330000330C330C3633363300
HEX 00000000000000000000000000000000
HEX 0000B8B580D7FA81C0D7FAD59E80ABB5
HEX 80E0EA80B0B580D78E80B0B580E0EA80
HEX B09D80C0EB8000000000000000000000
HEX B0F5AB878080ABADD5DAEA80AB83AED5
HEX EA80AB83FCDFFA800000000000000000
HEX 000000000200000000000000000080D4
HEX AAD58A00D00000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87ACD5D5DEAA83ABD5
HEX BAE0EA80B0F5AB878080B0B580808080
HEX 80D88ED7818000000000000000000000
HEX B0B580D78E80F8D7AAF58F80AB8380D6
HEX EA80B8B580D69A800000000000000000
HEX 00000000020000000000000000A80080
HEX 00000000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87ACB5D5EAAA83AB83
HEX ABFDEA80B0D5EA818080B0B580D68180
HEX 8080AB8D808000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000020000000000000000000070
HEX 556A0100000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580D8EA83B0AFABADEF80AB83
HEX C0D5EA80B0B5E0D58380B0B580808080
HEX 8080AB8D808000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 0000000002000000000000000000402B
HEX 552A3500000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000AED5AAF5838080F0ABFD8080AB8D
HEX 80E0AA87AED581D6AA83ABD5AAD5EA80
HEX 80E0AAB5808000000000000002000000
HEX 000000000000000000D0AAD582000000
HEX 00000000000000000000000100000000
HEX 0000000002000000000000000000003C
HEX 552A0700000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000000000000000FEFF81FFFF8380F0
HEX FF878080FF8180F8FF8380F0FF878080
HEX 00000000000000000000000002000000
HEX 0000000000000000C0FAB51E80000000
HEX 00000000000000000000000100000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 0000000000000000B0B5E0D58380B8D5
HEX B6D58E80ABD581E0EA80B8B580DC8E80
HEX 00000000000000000000000002000000
HEX 00000000000000C0D6D2800000000000
HEX 00000000000000000000000100000000
HEX 600006001E0F1E1E00331E33331E0C00
HEX 1E331C0E00333F3F00331E3E331E1E00
HEX 333F1E3F330C3F1F0000000000000000
HEX 0000000000000000B0D5EA818080FFBF
HEX D5FEFF80ABD5EAE0EA80AB8380808080
HEX 00000000000000000000000002000000
HEX 000000000000FFD0D6AA820600000000
HEX 00000000000000000000000100000000
HEX 00000000000000300003001E0F1E1E0C
HEX 001E0F1E1E0000331E331E3F331F1E00
HEX 00000000000000000000000000000000
HEX 0000B8B580D6EA81E0D5DAD5BA80ABF5
HEX 80E0EA80B0B5C0D78680B0B580E0FF80
HEX B0B580E0EA8000000000000000000000
HEX B0B5AB8F8080ABADD5DAEA80AB83ACD5
HEX EA80AB8380D89A800000000000000000
HEX 00000000020000000000000000A8A9D5
HEX AAD5AA81D00000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87ACD5D5DEAA83ABD5
HEX EAE0EA80B0D5AA838080B0B580FE8180
HEX 80D8DAD5818000000000000000000000
HEX B0B580D69E80B0D5AAD58680AB8380D6
HEX EA80B0F580D79A800000000000000000
HEX 00000000020000000000000000A80000
HEX 00000000000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580C0AB87ACB5D5EAAA83AB83
HEX ABD5EA80B0D5AA838080B0B580FE8180
HEX 8080AB8D808000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 0000000002000000000000000000003C
HEX 552A0700000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000B8B580DCEA81A0EBAAB5AD80AB83
HEX 80D7EA80B0B5C0D58780B0B580808080
HEX 8080AB8D808000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 0000000002000000000000000000402B
HEX 552A3500000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000FEFFFFFF808080C0FF9F8080FF8F
HEX 80C0FF8FFEFF81FEFF83FFFFFFFFFF80
HEX 80E0FFBF808000000000000002000000
HEX 000000000000000000D0AAD582000000
HEX 00000000000000000000000100000000
HEX 00000000020000000000000000000070
HEX 556A0100000000000000000000000000
HEX 00000001000000000000000000000000
HEX 0000000000000000AED581D7AA8380FC
HEX AA9F8080AB8380D8AA8380FCAA9F8080
HEX 00000000000000000000000002000000
HEX 0000000000000000007E7F0700000000
HEX 00000000000000000000000100000000
HEX 407F0300000000000000000000000000
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 0000000000000000B0B5F0D58180BCD5
HEX B6D59A80ABD583E0EA80BC9D80FC8F80
HEX 00000000000000000000000002000000
HEX 00000000000000C0D6D2800000000000
HEX 00000000000000000000000100000000
HEX 407F0300000000607F01000000000600
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000
HEX 0000000000000000B0D5EA818080D7AA
HEX D5AAF580ABDFEAE1EA80AB8380808080
HEX 00000000000000000000000002000000
HEX 00000000000000D0D6AAD50100000000
HEX 00000000000000000000000100000000
HEX 00000000000000607F01000000000006
HEX 00000000000000000000000000000000
HEX 00000000000000000000000000000000

8188
donkeykong/DONKEY.CODE.S Normal file

File diff suppressed because it is too large Load Diff

8196
donkeykong/DONKEY.DATA.S Normal file

File diff suppressed because it is too large Load Diff

21
donkeykong/DONKEY.E.S Normal file
View File

@ -0,0 +1,21 @@
* TFBD generated equates
* (c) PHC 1992,93
SOFTEV EQU $03F2
PWREDUP EQU $03F4
KBD EQU $C000
KBDSTROBE EQU $C010
SPKR EQU $C030
TXTCLR EQU $C050
TXTSET EQU $C051
MIXCLR EQU $C052
HIRES EQU $C057
BUTN0 EQU $C061
BUTN1 EQU $C062
PADDL0 EQU $C064
PADDL1 EQU $C065
PTRIG EQU $C070
HOME EQU $FC58
WAIT EQU $FCA8

BIN
donkeykong/DONKEYKONG.DSK Normal file

Binary file not shown.

View File

@ -0,0 +1,73 @@
DONKEY KONG
------------- DISK SEARCH --------------
$07/$0B-$CA $07/$0D-$95 $08/$0C-$9E
$0A/$08-$F6 $0B/$06-$2A
Zero page
A9 difficulty (0: normal, 1: hard, 2: expert)
B1 nb players (0: 1 player, 1: 2 players)
Keys
B1 1
B2 2
CE N
C8 H
C5 E
9B ESC
92 CTRL-R
93 CTRL-S
8A UP ARROW
8B DOWN ARROW
88 <=
95 =>
C1 A
DA Z
A0 SPACE
STD RWTS 3.3
LOADS FROM TE/SF AT $0800
RAM++, S--, T--
READS $38 SECTORS THEN SHOWS HGR1
THEN GOES ON WITH READING UNTIL $98 SECTORS
AND THEN JUMPS TO $4000
THERE IS DATA UNTIL T1D
NB RAM T/S
00 0800 E/F
10 1800 D/F
20 2800 C/F
30 3800 B/F
40 4800 A/F
50 5800 9/F
60 6800 8/F
70 7800 7/F
80 8800 5/F
90 9800 4/F
98 A000 3/F
7F83
BANK 0F
10-0F 2000
BANK 10
11 A700 $10 SECTORS
13-12 2000
BANK 11
14 A700
16-15 2000
BANK 12
17 A700
19-18 2000
BANK 13
1A A700
1C-1B 2000
sprites at $0800, $0d40, $1280
7FA9 + 7FB0 for sprite index

545
fishhead/BM.About.s Normal file
View File

@ -0,0 +1,545 @@
*----------------------------------------
* BatchMan : About
*----------------------------------------
FirstHandle = $E11600
*--------------
meABOUT lda wiABOUT
ora wiABOUT+2
beq meABOUT1
PushLong wiABOUT
_SelectWindow
rts
meABOUT1 pha
pha
PushLong #0
PushLong #wABOUT
PushLong #PAINTABOUT
PushLong #0
PushWord #refIsResource
PushLong #wABOUT
PushWord #$800e
_NewWindow2
PullLong wiABOUT
*--------------
pha
pha
_TotalMem
pla
sta L0C0270
pla
sta L0C0270+2
ldx #$0009
]lp lsr L0C0270+2
ror L0C0270
dex
bpl ]lp
lda L0C0270
pha
pea ^L0C0293
pea L0C0293
pea $0005
pea $0000
_Int2Dec
pha
pha
_RealFreeMem
pla
sta L0C0274
pla
sta L0C0274+2
ldx #$0009
]lp lsr L0C0274+2
ror L0C0274
dex
bpl ]lp
lda L0C0274
pha
pea ^L0C029A
pea L0C029A
pea $0005
pea $0000
_Int2Dec
jsl L0C046F
ldx #$0009
]lp lsr L0C027A
ror L0C0278
lsr L0C027E
ror L0C027C
lsr L0C0282
ror L0C0280
lsr L0C0286
ror L0C0284
dex
bpl ]lp
lda L0C0274
sta L0C0288
lda L0C0278
sta L0C028A
lda L0C027C
sta L0C028C
lda L0C0280
sta L0C028E
lda L0C0284
sta L0C0290
lda L0C0278
pha
pea ^L0C02A1
pea L0C02A1
pea $0005
pea $0000
_Int2Dec
lda L0C027C
pha
pea ^L0C02A8
pea L0C02A8
pea $0005
pea $0000
_Int2Dec
lda L0C0280
pha
pea ^L0C02AF
pea L0C02AF
pea $0005
pea $0000
_Int2Dec
lda L0C0284
pha
pea ^L0C02B6
pea L0C02B6
pea $0005
pea $0000
_Int2Dec
pha
pha
pea $8029
pea $0000
pea $0001
_LoadResource
pla
sta L0C02BC
pla
sta L0C02BC+2
pea $8029
pea $0000
pea $0001
_DetachResource
lda L0C02BC
sta $01
lda L0C02BC+2
sta $03
lda [$01]
tax
ldy #$0002
lda [$01],Y
stx $01
stx L0C02C0
sta $03
sta L0C02C0+2
pea $0000
ldy #$0002
lda [$01],Y
pha
lda [$01]
pha
pea ^L0C02CC
pea L0C02CC
_VersionString
pha
pha
pea $8029
pea $0000
pea $0001
_LoadResource
pla
sta L0C02C4
pla
sta L0C02C4+2
pea $8029
pea $0000
pea $0001
_DetachResource
lda L0C02C4
sta $01
lda L0C02C4+2
sta $03
ldy #$0004
lda [$01],Y
ora #$8000
sta [$01],Y
lda [$01]
tax
ldy #$0002
lda [$01],Y
stx $01
stx L0C02C8
sta $03
sta L0C02C8+2
pea $0000
ldy #$0002
lda [$01],Y
pha
lda [$01]
pha
pea ^L0C02E0
pea L0C02E0
_VersionString
PushLong wiABOUT
_ShowWindow
rts
*--------------
wiABOUT ds 4
L0C0270 adrl $00000000
L0C0274 adrl $00000000
L0C0278 dw $0000
L0C027A dw $0000
L0C027C dw $0000
L0C027E dw $0000
L0C0280 dw $0000
L0C0282 dw $0000
L0C0284 dw $0000
L0C0286 dw $0000
L0C0288 dw $0000
L0C028A dw $0000
L0C028C dw $0000
L0C028E dw $0000
L0C0290 dw $0000
L0C0292 db $06
L0C0293 asc ' K'
L0C0299 db $06
L0C029A asc ' K'
L0C02A0 db $06
L0C02A1 asc ' K'
L0C02A7 db $06
L0C02A8 asc ' K'
L0C02AE db $06
L0C02AF asc ' K'
L0C02B5 db $06
L0C02B6 asc ' K'
L0C02BC ent
dw $0000
L0C02BE ent
dw $0000
L0C02C0 adrl $00000000
L0C02C4 ent
dw $0000
L0C02C6 ent
dw $0000
L0C02C8 adrl $00000000
L0C02CC ds $14
L0C02E0 ds $14
*--------------
L0C046F phb
phk
plb
pha
_MMStartUp
pla
sta L0C04D1
php
sei
phd
pha
pha
tsc
tcd
stz L0C0278
stz L0C027A
stz L0C027C
stz L0C027E
stz L0C0280
stz L0C0282
stz L0C0284
stz L0C0286
ldal FirstHandle
sta $01
ldal FirstHandle+2
sta $03
L0C04A9 ldy #$0004
lda [$01],Y
bmi L0C04B5
and #$0300
bne L0C04F3
L0C04B5 ldy #$0006
lda [$01],Y
beq L0C04F3
tax
eor L0C04D1
and #$F0FF
beq L0C0511
txa
and #$F000
xba
lsr
lsr
lsr
tax
jmp (L0C04D3,X)
L0C04D1 dw $0000
L0C04D3 da L0C0529
da L0C04F3
da L0C04F3
da L0C0529
da L0C0529
da L0C0541
da L0C0529
da L0C0529
da L0C0529
da L0C0529
da L0C0559
da L0C04F3
da L0C04F3
da L0C04F3
da L0C04F3
da L0C04F3
L0C04F3 ldy #$0010
lda [$01],Y
tax
bne L0C0507
iny
iny
lda [$01],Y
beq L0C0571
stx $01
sta $03
bra L0C04A9
L0C0507 iny
iny
lda [$01],Y
stx $01
sta $03
bra L0C04A9
L0C0511 ldy #$0008
lda [$01],Y
clc
adc L0C0278
sta L0C0278
iny
iny
lda [$01],Y
adc L0C027A
sta L0C027A
bra L0C04F3
L0C0529 ldy #$0008
lda [$01],Y
clc
adc L0C027C
sta L0C027C
iny
iny
lda [$01],Y
adc L0C027E
sta L0C027E
bra L0C04F3
L0C0541 ldy #$0008
lda [$01],Y
clc
adc L0C0280
sta L0C0280
iny
iny
lda [$01],Y
adc L0C0282
sta L0C0282
bra L0C04F3
L0C0559 ldy #$0008
lda [$01],Y
clc
adc L0C0284
sta L0C0284
iny
iny
lda [$01],Y
adc L0C0286
sta L0C0286
bra L0C04F3
L0C0571 lda #$5000
clc
adc L0C027C
sta L0C027C
lda #$0001
adc L0C027E
sta L0C027E
pla
pla
pld
plp
plb
rtl
*--------------
PAINTABOUT phb
phk
plb
phd
pha
pha
tsc
tcd
pea ^L0C073D
pea L0C073D
_EraseRect
PushLong wiABOUT
_DrawControls
lda L0C02C8
sta $01
lda L0C02C8+2
sta $03
pea $0078
pea $0018
_MoveTo
ldy #$0006
lda [$01],Y
and #$00FF
clc
adc $01
tax
lda $03
adc #$0000
tay
txa
clc
adc #$0007
tax
tya
adc #$0000
pha
phx
_DrawString
pea $0078
pea $000D
_MoveTo
lda L0C02C8
clc
adc #$0006
tax
lda L0C02C8+2
adc #$0000
pha
phx
_DrawString
pea $0004
pea $0000
_Move
pea ^L0C02E0
pea L0C02E0
_DrawString
pha
pea ^L0C0292
pea L0C0292
_StringWidth
lda #$00C3
sec
sbc $01,S
sta $01,S
pea $0026
_MoveTo
pea ^L0C0292
pea L0C0292
_DrawString
pha
pea ^L0C0299
pea L0C0299
_StringWidth
lda #$0199
sec
sbc $01,S
sta $01,S
pea $0026
_MoveTo
pea ^L0C0299
pea L0C0299
_DrawString
pha
pea ^L0C02A0
pea L0C02A0
_StringWidth
lda #$00C3
sec
sbc $01,S
sta $01,S
pea $0035
_MoveTo
pea ^L0C02A0
pea L0C02A0
_DrawString
pha
pea ^L0C02AE
pea L0C02AE
_StringWidth
lda #$0199
sec
sbc $01,S
sta $01,S
pea $0035
_MoveTo
pea ^L0C02AE
pea L0C02AE
_DrawString
pha
pea ^L0C02A7
pea L0C02A7
_StringWidth
lda #$00C3
sec
sbc $01,S
sta $01,S
pea $0040
_MoveTo
pea ^L0C02A7
pea L0C02A7
_DrawString
pha
pea ^L0C02B5
pea L0C02B5
_StringWidth
lda #$0199
sec
sbc $01,S
sta $01,S
pea $0040
_MoveTo
pea ^L0C02B5
pea L0C02B5
_DrawString
pla
pla
pld
plb
rtl
*--------------
L0C073D dw $001A
dw $008C
dw $0042
dw $01EA

1405
fishhead/BM.BC.S Normal file

File diff suppressed because it is too large Load Diff

584
fishhead/BM.Batch.s Normal file
View File

@ -0,0 +1,584 @@
*----------------------------------------
* BatchMan : Batch
*----------------------------------------
batNEXT0 = $1710
batBACK0 = $1720
batCANC0 = $1730
batPOPUP = $1740
batREFR0 = $1750
batNEXT1 = $1810
batBACK1 = $1820
batCANC1 = $1830
batPATH1 = $1840
batBROW1 = $1850
batNEXT2 = $1910
batBACK2 = $1920
batCANC2 = $1930
batPATH2 = $1940
batBROW2 = $1950
dcNEXT = $1A82
dcBACK = $1A81
dcCANC = $1A80
dcTEST = $1A44
*----------------------------------------
* Entry point for FILE COPY
*----------------------------------------
meBATCH jsr batchPFXIN ; first window
jsr batchWINDOW0
cpy #batCANC0
beq meBATCH1
meBATCH0 jsr batchWINDOW2 ; second window
cpy #batBACK2
beq meBATCH
cpy #batNEXT2
beq meBATCH2
meBATCH1 rts ; we cancel
meBATCH2 = * ; we continue
jsr batchPFXOUT
jsr checkPFXOUT
bcs meBATCH0 ; destination prefix is wrong
* V1.0b4
PushLong #0
_RefreshDesktop
*
jsr GSOSsetPFXsave
jsr doFC ; do file copy!
cmp #-1 ; destination path in source path?
bne meBATCH3
PushWord #0 ; Bad prefix
PushWord #5 ; flags
PushLong #0
PushLong #alertSAME ; reference of alert
_AlertWindow
pla
bra meBATCH0
meBATCH3 rts
*----------------------------------------
* Entry point for DISK COPY
*----------------------------------------
dcBATCH jsr batchPFXIN ; first window
jsr batchWINDOW0
cpy #batCANC0
beq dcBATCH1
dcBATCHa jsr batchDISK ; second window
cpy #dcBACK
beq dcBATCH
cpy #dcCANC
beq dcBATCH1
dcBATCH0 jsr batchWINDOW2 ; third window
cpy #batBACK2
beq dcBATCHa
cpy #batNEXT2
beq dcBATCH2
dcBATCH1 rts ; we cancel
dcBATCH2 = * ; we continue
jsr batchPFXOUT
jsr checkPFXOUT
bcs dcBATCH0 ; destination prefix is wrong
* V1.0b4
PushLong #0
_RefreshDesktop
*
rts
jsr GSOSsetPFXsave
* jsr doBC ; do block copy!
cmp #-1 ; destination path in source path?
bne dcBATCH3
PushWord #0 ; Bad prefix
PushWord #5 ; flags
PushLong #0
PushLong #alertSAME ; reference of alert
_AlertWindow
pla
bra dcBATCH0
dcBATCH3 rts
*----------------------------------------
* First modal window: device
*----------------------------------------
batchWINDOW0 = *
pha
pha
PushLong #0
PushLong #1
PushLong #PAINTBATCH0
PushLong #0
PushWord #refIsResource
PushLong #wBATCH0
PushWord #$800e
_NewWindow2
PullLong wiBATCH0
* v1.0b8
baWINDOW2 lda #deviceALL ; all devices
jsr buildPOPUP
]lp pha
pha
PushLong #taskREC
PushLong #0
PushLong #0
PushLong #-1
PushWord #%11000000_00011000
_DoModalWindow
ply
sty batchBUTTON
plx
cpy #batBACK0 ; Easter egg
beq batchWINDOW07
cpy #batNEXT0 ; end
beq batchWINDOW08
cpy #batCANC0 ; cancel
beq batchWINDOW09
cpy #batREFR0 ; v1.0b8
beq baWINDOW2
* bne baWINDOW4
*
* jsr popupUPDATE
* bra baWINDOW2
baWINDOW4 cpy #batPOPUP
bne ]lp ; blahblah
jsr doPOPUP
bra ]lp
*blahblah cpy #batREFR0 ; refresh list
* beq baWINDOW2
* bne ]lp
* jsr popupUPDATE
* bra ]lp
batchWINDOW07 jsr batchEASTER
bra ]lp
batchWINDOW08 = *
jsr batchESCAPE0
bcs ]lp
batchWINDOW09 = *
_InitCursor
PushLong wiBATCH0
_CloseWindow
* PushWord #batPOPUP
* _DeleteMenu
ldy batchBUTTON
rts
batchBUTTON ds 2
*----------------------------------------
* First modal window:
*----------------------------------------
batchWINDOW1 pha
pha
PushLong #0
PushLong #1
PushLong #PAINTBATCH1
PushLong #0
PushWord #refIsResource
PushLong #wBATCH1
PushWord #$800e
_NewWindow2
PullLong wiBATCH1
batchWINDOW12 jsr batchENTRY1
]lp pha
pha
PushLong #taskREC
PushLong #0
PushLong #0
PushLong #-1
PushWord #%11000000_00011000
_DoModalWindow
ply
sty batchBUTTON
plx
cpy #batBACK1
beq batchWINDOW17
cpy #batNEXT1
beq batchWINDOW18
cpy #batCANC1
beq batchWINDOW19
cpy #batBROW1
bne ]lp
jsr stdOPEN4
bcs batchWINDOW16 ; v1.0b7
jsr batchPFXIN
batchWINDOW16 bra batchWINDOW12
batchWINDOW17 jsr batchEASTER
bra ]lp
batchWINDOW18 phy
jsr batchESCAPE1
ply
batchWINDOW19 phy
_InitCursor
PushLong wiBATCH1
_CloseWindow
ply
rts
*----------------------------------------
* Disk copy: modal window
*----------------------------------------
batchDISK pha
pha
PushLong #0
PushLong #1
PushLong #PAINTDISK
PushLong #0
PushWord #refIsResource
PushLong #wDISK
PushWord #$800e
_NewWindow2
PullLong wiDISK
batchDISK12 = * ; jsr diskENTRY1
]lp pha
pha
PushLong #taskREC
PushLong #0
PushLong #0
PushLong #-1
PushWord #%11000000_00011000
_DoModalWindow
ply
sty batchBUTTON
plx
cpy #dcBACK
beq batchDISK19
cpy #dcNEXT
beq batchDISK19
cpy #dcCANC
beq batchDISK19
cpy #dcTEST
bne ]lp
jsr doBATCH
bra batchDISK12
batchDISK19 phy
_InitCursor
PushLong wiDISK
_CloseWindow
ply
rts
*----------------------------------------
* Second modal window: destination folder
*----------------------------------------
batchWINDOW2 pha
pha
PushLong #0
PushLong #1
PushLong #PAINTBATCH2
PushLong #0
PushWord #refIsResource
PushLong #wBATCH2
PushWord #$800e
_NewWindow2
PullLong wiBATCH2
batchWINDOW22 jsr batchENTRY2
]lp pha
pha
PushLong #taskREC
PushLong #0
PushLong #0
PushLong #-1
PushWord #%11000000_00011000
_DoModalWindow
ply
sty batchBUTTON
plx
cpy #batNEXT2
beq batchWINDOW28
cpy #batCANC2
beq batchWINDOW29
cpy #batBACK2
beq batchWINDOW29
cpy #batBROW2
bne ]lp
jsr stdSAVE2
* bcs batchWINDOW27 ; v1.0b7
jsr batchPFXIN
batchWINDOW27 bra batchWINDOW22
batchWINDOW28 phy
jsr batchESCAPE2
ply
batchWINDOW29 phy
_InitCursor
PushLong wiBATCH2
_CloseWindow
ply
rts
*--------------
PAINTBATCH0 PushLong wiBATCH0
_DrawControls
rtl
PAINTBATCH1 PushLong wiBATCH1
_DrawControls
rtl
PAINTBATCH2 PushLong wiBATCH2
_DrawControls
rtl
PAINTDISK PushLong wiDISK
_DrawControls
rtl
*--------------
wiBATCH0 ds 4
wiBATCH1 ds 4
wiBATCH2 ds 4
wiDISK ds 4
*--------------
doBATCH sep #$20
ldal $c034
inc
stal $c034
rep #$20
rts
*--------------
batchESCAPE0 = *
lda thePOPUP
cmp #welcomeITEM
bne batchESC01
pha ; no device selected
PushWord #4 ; same player, shoot again
PushLong #0
PushLong #alertDEVICE
_AlertWindow
pla
sec
rts
batchESC01 jsr getPOPUP
* PushLong popctlHA
* _HLock
* copy the device name until a '(' is found
sep #$20
ldy #1
]lp lda [popctlPTR],y
cmp #' '
beq batchESC02
sta menuNAME2,y
iny
cpy #126 ; maxLength
bcc ]lp
sec ; for further error handling
rts
batchESC02 dey ; length found
sty menuNAME
rep #$20
* now loop through the devices
* to find the right device
* stz theDEVICE
lda #1 ; start with device 1
sta proDIopen+2
]lp jsl proDOS ; get device info
dw $202C
adrl proDIopen
bcc batchESC04
cmp #$0011 ; no more devices
beq batchESC09
batchESC03 inc proDIopen+2
bra ]lp
batchESC04 ldy devNAMEopen ; compare length
cpy menuNAME
bne batchESC03
]lp lda devNAMEopen,y
cmp menuNAME,y
bne batchESC03
dey
bne ]lp
batchESC09 clc
rts
* lda proDIopen+2
* sta theDEVICE
* this is the end, we have it or not
*batchESC09 PushLong popctlHA
* _HUnlock
* PushLong popctlHA
* _DisposeHandle
* rts
*--------------
batchENTRY1 PushLong wiBATCH1
PushLong #batPATH1
PushLong #batVPATH1
_SetLETextByID
rts
batchESCAPE1 PushLong wiBATCH1
PushLong #batPATH1
PushLong #batVPATH1
_GetLETextByID
rts
batchEASTER PushLong wiBATCH1
PushLong #batPATH1
PushLong #batEASTER
_SetLETextByID
rts
*--------------
batchENTRY2 PushLong wiBATCH2
PushLong #batPATH2
PushLong #batVPATH2
_SetLETextByID
rts
batchESCAPE2 PushLong wiBATCH2
PushLong #batPATH2
PushLong #batVPATH2
_GetLETextByID
rts
*--------------
batchPFXIN lda pfxOPEN2 ; copy length
sta batVPATH1
lda pfxSAVE2
sta batVPATH2
ldx #256-2 ; copy string
]lp lda pfxOPEN3,x
sta batVPATH1+1,x
lda pfxSAVE3,x
sta batVPATH2+1,x
dex
dex
bpl ]lp
rts
batchPFXOUT lda batVPATH1 ; copy length
and #$00ff
sta pfxOPEN2
lda batVPATH2
and #$00ff
sta pfxSAVE2
ldx #256-2 ; copy string
]lp lda batVPATH1+1,x
sta pfxOPEN3,x
lda batVPATH2+1,x
sta pfxSAVE3,x
dex
dex
bpl ]lp
rts
*--------------
checkPFXOUT = *
lda pfxSAVE2 ; length is null
beq checkPFXOUTerr
cmp #1 ; length is only one char
beq checkPFXOUTerr
sep #$20 ; it does not begin with :
lda pfxSAVE3
cmp #':'
bne checkPFXOUTerr
rep #$20
jsr GSOScheckPFXsave
bcs checkPFXOUTerr
clc
rts
checkPFXOUTerr = *
rep #$20
PushWord #0 ; Bad prefix
PushWord #5 ; flags
PushLong #0
PushLong #alertPATH ; reference of alert
_AlertWindow
pla
sec
rts
*--------------
batVPATH0 ds 262
batVPATH1 ds 262
batVPATH2 ds 262
*--------------
batEASTER str 'Antoine says : Great! You have found the hidden message'

1405
fishhead/BM.FC.s Normal file

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More