mirror of
https://github.com/antoinevignau/source.git
synced 2024-11-15 13:05:18 +00:00
548200a90a
Antoine's The Tinies & Oliver's TCK source code
1427 lines
26 KiB
ArmAsm
1427 lines
26 KiB
ArmAsm
*--------------------------*
|
|
* *
|
|
* Tinies: Construction Kit *
|
|
* *
|
|
* Brutal Deluxe *
|
|
* *
|
|
* Version: 1.0 du 2/2/95 *
|
|
*--------------------------*
|
|
|
|
lst off
|
|
rel
|
|
dsk TCK.l
|
|
|
|
use 4/Locator.Macs
|
|
use 4/Mem.Macs
|
|
use 4/Misc.Macs
|
|
use 4/Util.Macs
|
|
|
|
mx %00
|
|
xc
|
|
xc
|
|
|
|
*--- Parametres Page Zero
|
|
|
|
Debut = $00
|
|
Arrivee = $04
|
|
Second = $08
|
|
Third = $0c
|
|
|
|
proDOS = $e100a8
|
|
|
|
*-------------------------- Initialisations d'entree
|
|
|
|
phk
|
|
plb
|
|
bra pp
|
|
|
|
*$
|
|
asc 0d
|
|
asc "We cannot promise you anything..."0d
|
|
asc "But Future may be wonderful :->"0d
|
|
asc "Keep your IIgs..."0d
|
|
|
|
pp _TLStartUp
|
|
pha
|
|
_MMStartUp
|
|
pla
|
|
sta myID
|
|
_MTStartUp
|
|
|
|
ldal $e0c060
|
|
bpl noPATCH
|
|
lda #$eaea
|
|
sta PATCH
|
|
|
|
noPATCH sep #$20
|
|
|
|
ldal $e0c022
|
|
sta save1
|
|
ldal $e0c029
|
|
sta save2
|
|
ldal $e0c034
|
|
sta save3
|
|
ldal $e0c035
|
|
sta save4
|
|
|
|
lda #$f0
|
|
stal $e0c022
|
|
lda #$00
|
|
stal $e0c034
|
|
|
|
rep #$20
|
|
|
|
*--- Affichage texte
|
|
|
|
PushWord #0
|
|
PushWord #$29
|
|
_ReadBParam
|
|
pla
|
|
and #$ff
|
|
cmp #$02
|
|
bne noFUCK
|
|
|
|
lda #1
|
|
sta fgLANG
|
|
|
|
*--- Ah! GsBug
|
|
|
|
noFUCK sei
|
|
|
|
phd
|
|
ldal $e1004b
|
|
pha
|
|
ldal $e10049
|
|
sec
|
|
sbc #$82
|
|
pha
|
|
tsc
|
|
tcd
|
|
ldy #0
|
|
]lp lda [$01],y
|
|
cmp #$78f0
|
|
beq bugFOUND1
|
|
iny
|
|
iny
|
|
iny
|
|
cpy #12
|
|
bne ]lp
|
|
bra bugFOUND2
|
|
|
|
*$
|
|
asc 0d"Hello Atreid!"0d
|
|
asc "If you mix The Furies with new intro graphs..."0d
|
|
asc "Then you get... Pac In Time!"0d
|
|
|
|
bugFOUND1 sta bugA
|
|
stx bugY
|
|
lda #$7880
|
|
sta [$01],y
|
|
|
|
lda #1
|
|
sta bugFG
|
|
|
|
bugFOUND2 pla
|
|
pla
|
|
pld
|
|
|
|
PushWord #0
|
|
PushWord #0
|
|
PushWord #0
|
|
PushWord #0
|
|
PushWord #0
|
|
PushWord #0
|
|
PushWord #0
|
|
PushWord #$fe1f
|
|
_FWEntry
|
|
pla
|
|
cmp #1
|
|
beq bugFOUND3
|
|
lda #$cf28
|
|
sta theDESK2+1
|
|
|
|
bugFOUND3 pla
|
|
pla
|
|
pla
|
|
|
|
PushLong #0
|
|
PushWord #$12
|
|
_GetVector
|
|
PullLong saveDESK
|
|
|
|
PushWord #$12
|
|
PushLong #theDESK
|
|
_SetVector
|
|
|
|
cli
|
|
|
|
*--- Compact memory
|
|
|
|
PushLong #0
|
|
PushLong #$8fffff
|
|
PushWord myID
|
|
PushWord #%11000000_00000000
|
|
PushLong #0
|
|
_NewHandle
|
|
_DisposeHandle
|
|
_CompactMem
|
|
|
|
PushLong #0 ; 448ko au total
|
|
_FreeMem
|
|
pla
|
|
pla
|
|
cmp #7 ; 7*64ko
|
|
bcs okINIT2
|
|
sec
|
|
jmp memERR
|
|
|
|
*$
|
|
asc 0d"Hi Gog! Have U ever seen SuperFamicom code?"0d
|
|
|
|
okINIT2 PushLong #0
|
|
PushLong #$8000
|
|
PushWord myID
|
|
PushWord #%11000000_00000011
|
|
PushLong #$012000
|
|
_NewHandle
|
|
pla
|
|
pla
|
|
bcc okINIT3
|
|
sec
|
|
jmp memERR
|
|
|
|
okINIT3 PushLong #0
|
|
PushLong #$10000
|
|
PushWord myID
|
|
PushWord #%11000000_00011100
|
|
PushLong #0
|
|
_NewHandle
|
|
ldx temp
|
|
phd
|
|
tsc
|
|
tcd
|
|
ldy #0
|
|
lda [3],y
|
|
sta ptrTCK1,x
|
|
ldy #2
|
|
lda [3],y
|
|
sta ptrTCK1+2,x
|
|
pld
|
|
pla
|
|
pla
|
|
jsr memERR
|
|
inx
|
|
inx
|
|
inx
|
|
inx
|
|
stx temp
|
|
cpx #4*7
|
|
bne okINIT3
|
|
|
|
*---
|
|
|
|
PushLong #0
|
|
PushLong #$10000
|
|
PushWord myID
|
|
PushWord #%11000000_00011100
|
|
PushLong #0
|
|
_NewHandle
|
|
phd
|
|
tsc
|
|
tcd
|
|
ldy #0
|
|
lda [3],y
|
|
sta ptrUNPACK
|
|
ldy #2
|
|
lda [3],y
|
|
sta ptrUNPACK+2
|
|
pld
|
|
pla
|
|
pla
|
|
jsr memERR
|
|
|
|
*---
|
|
|
|
lda #1
|
|
jsr setSHADOW
|
|
|
|
ldx #$7ffe
|
|
lda #0
|
|
]lp stal $012000,x
|
|
dex
|
|
dex
|
|
bpl ]lp
|
|
|
|
sep #$20
|
|
lda #$c1
|
|
stal $e0c029
|
|
rep #$20
|
|
|
|
*-------------------------- Met les pointeurs
|
|
|
|
lda ptrTCK1
|
|
clc
|
|
adc #$8000
|
|
sta ptrTCK2
|
|
lda ptrTCK1+2
|
|
sta ptrTCK2+2
|
|
|
|
lda ptrNIV
|
|
clc
|
|
adc #$8000
|
|
sta ptrBACK
|
|
lda ptrNIV+2
|
|
sta ptrBACK+2
|
|
|
|
lda ptrDOC
|
|
clc
|
|
adc #$8000
|
|
sta ptrABOUT
|
|
lda ptrDOC+2
|
|
sta ptrABOUT+2
|
|
|
|
lda ptrBOUGE
|
|
clc
|
|
adc #$8000
|
|
sta ptrFONTE
|
|
lda ptrBOUGE+2
|
|
sta ptrFONTE+2
|
|
|
|
lda ptrGADGET2
|
|
clc
|
|
adc #$8000
|
|
sta ptrGADGET3
|
|
lda ptrGADGET2+2
|
|
sta ptrGADGET3+2
|
|
|
|
lda ptrTINY1
|
|
clc
|
|
adc #$8000
|
|
sta ptrTINY2
|
|
lda ptrTINY1+2
|
|
sta ptrTINY2+2
|
|
|
|
*---------------------------
|
|
|
|
jsr doTCK
|
|
jsr loadNIV
|
|
|
|
lda #pLOGO
|
|
ldx ptrUNPACK+1
|
|
jsr loadFILE
|
|
bcc okINIT4
|
|
jmp initOFF
|
|
okINIT4 lda ptrTCK1+1
|
|
jsr unPACK
|
|
|
|
lda ptrTCK1+1
|
|
jsr do3200
|
|
|
|
*---
|
|
|
|
lda #pTCK1
|
|
ldx ptrUNPACK+1
|
|
jsr loadFILE
|
|
lda ptrTCK1+1
|
|
jsr unPACK
|
|
|
|
lda #pTCK2
|
|
ldx ptrUNPACK+1
|
|
jsr loadFILE
|
|
lda ptrTCK2+1
|
|
jsr unPACK
|
|
|
|
lda #pTINY1
|
|
ldx ptrUNPACK+1
|
|
jsr loadFILE
|
|
lda ptrTINY1+1
|
|
jsr unPACK
|
|
|
|
lda #pTINY2
|
|
ldx ptrUNPACK+1
|
|
jsr loadFILE
|
|
lda ptrTINY2+1
|
|
jsr unPACK
|
|
|
|
lda #pFONTE
|
|
ldx ptrUNPACK+1
|
|
jsr loadFILE
|
|
lda ptrFONTE+1
|
|
jsr unPACK
|
|
|
|
*---
|
|
|
|
put TCK.Main
|
|
put TCK.Docu
|
|
|
|
*--------------------------
|
|
* Fin du programme
|
|
*--------------------------
|
|
|
|
initOFF lda #0
|
|
jsr setSHADOW
|
|
|
|
ldx #$7ffe
|
|
lda #0
|
|
]lp stal $012000,x
|
|
dex
|
|
dex
|
|
bpl ]lp
|
|
|
|
initOFF1 sep #$20
|
|
|
|
lda save4
|
|
stal $e0c035
|
|
lda save3
|
|
stal $e0c034
|
|
lda save2
|
|
stal $e0c029
|
|
lda save1
|
|
stal $e0c022
|
|
|
|
rep #$20
|
|
|
|
*--- Ah GsBug
|
|
|
|
lda bugFG
|
|
beq initOFF2
|
|
|
|
sei
|
|
|
|
phd
|
|
ldal $e1004b
|
|
pha
|
|
ldal $e10049
|
|
sec
|
|
sbc #$82
|
|
pha
|
|
tsc
|
|
tcd
|
|
ldy bugY
|
|
lda bugA
|
|
sta [$01],y
|
|
pla
|
|
pla
|
|
pld
|
|
|
|
PushWord #$12
|
|
PushLong saveDESK
|
|
_SetVector
|
|
|
|
cli
|
|
|
|
*---
|
|
|
|
initOFF2 _MTShutDown
|
|
|
|
PushWord myID
|
|
_DisposeAll
|
|
PushWord myID
|
|
_MMShutDown
|
|
_TLShutDown
|
|
|
|
ldal $e0c061
|
|
bpl noQUIT
|
|
|
|
jsl proDOS
|
|
dw $2029
|
|
adrl proQUIT2
|
|
|
|
noQUIT jsl proDOS
|
|
dw $2029
|
|
adrl proQUIT
|
|
|
|
*$
|
|
asc 0d"Hey Joe... Take a walk on the wild side..."0d
|
|
asc "If Tinies could have been released"0d
|
|
asc "It has nothing to do with Gog"0d
|
|
|
|
*--------------------------
|
|
* Code principal
|
|
*--------------------------
|
|
|
|
doTCK lda #pDOC
|
|
ldx ptrUNPACK+1
|
|
jsr loadFILE
|
|
lda ptrDOC+1
|
|
jsr unPACK
|
|
|
|
lda #pABOUT
|
|
ldx ptrUNPACK+1
|
|
jsr loadFILE
|
|
lda ptrABOUT+1
|
|
jsr unPACK
|
|
|
|
*-------------------------------------- Fichiers a charger pour le test
|
|
|
|
lda #pBOUGE
|
|
ldx ptrUNPACK+1
|
|
jsr loadFILE
|
|
lda ptrBOUGE+1
|
|
jsr unPACK
|
|
|
|
lda #pGADGET2
|
|
ldx ptrUNPACK+1
|
|
jsr loadFILE
|
|
lda ptrGADGET2+1
|
|
jsr unPACK
|
|
|
|
lda #pGADGET3
|
|
ldx ptrUNPACK+1
|
|
jsr loadFILE
|
|
lda ptrGADGET3+1
|
|
jsr unPACK
|
|
|
|
lda #pTAB
|
|
ldx ptrTAB+1
|
|
jsr loadFILE
|
|
|
|
rts
|
|
|
|
*-------------------------- Charge l'image NIV en fonction du NIVEAU
|
|
|
|
loadNIV ldx level
|
|
lda lvlINTRO,x
|
|
and #$00ff
|
|
sta temp
|
|
|
|
lda temp
|
|
and #$00f0
|
|
asl
|
|
asl
|
|
asl
|
|
asl
|
|
ora #$3000
|
|
pha
|
|
lda temp
|
|
and #$000f
|
|
ora #$0030
|
|
sta temp
|
|
pla
|
|
ora temp
|
|
xba
|
|
sta temp
|
|
|
|
lda temp
|
|
cmp pNIV+19
|
|
beq loadNIV1
|
|
sta pNIV+19
|
|
|
|
lda #pNIV
|
|
ldx ptrUNPACK+1
|
|
jsr loadFILE
|
|
lda ptrNIV+1
|
|
jsr unPACK
|
|
|
|
loadNIV1 rts
|
|
|
|
*-------------------------- Met le temps
|
|
|
|
doTIME lda ptrTAB
|
|
clc
|
|
adc #$5300
|
|
sta Debut
|
|
lda ptrTAB+2
|
|
sta Debut+2
|
|
|
|
lda level
|
|
asl
|
|
tay
|
|
lda [Debut],y
|
|
pha
|
|
and #$00ff
|
|
sta minutes
|
|
|
|
pla
|
|
and #$ff00
|
|
xba
|
|
sta secondes
|
|
rts
|
|
|
|
putTIME lda ptrTAB
|
|
clc
|
|
adc #$5300
|
|
sta Debut
|
|
lda ptrTAB+2
|
|
sta Debut+2
|
|
|
|
lda level
|
|
asl
|
|
tay
|
|
|
|
lda secondes
|
|
xba
|
|
ora minutes
|
|
sta [Debut],y
|
|
rts
|
|
|
|
*$
|
|
asc 0d"Hello Christer Ericsson"0d
|
|
asc "Thank you for the free distribution of Blockade GS..."0d
|
|
|
|
*--------------------------
|
|
* Routines gs/os
|
|
*--------------------------
|
|
|
|
loadFILE sta proOPEN+4
|
|
stx proREAD+5
|
|
|
|
loadFILE1 jsl proDOS
|
|
dw $2010
|
|
adrl proOPEN
|
|
bcs loadERR
|
|
|
|
lda proOPEN+2
|
|
sta proGETEOF+2
|
|
sta proREAD+2
|
|
|
|
jsl proDOS
|
|
dw $2019
|
|
adrl proGETEOF
|
|
|
|
lda proGETEOF+4
|
|
sta proREAD+8
|
|
lda proGETEOF+6
|
|
sta proREAD+10
|
|
|
|
jsl proDOS
|
|
dw $2012
|
|
adrl proREAD
|
|
bcs loadERR
|
|
|
|
loadFILE2 jsl proDOS
|
|
dw $2014
|
|
adrl proCLOSE
|
|
clc
|
|
rts
|
|
|
|
loadERR jsr loadFILE2
|
|
|
|
PushWord #0
|
|
PushLong #proSTR1
|
|
PushLong #proSTR2
|
|
PushLong #proSTR3
|
|
PushLong #proSTR4
|
|
_TLTextMountVolume
|
|
pla
|
|
cmp #1
|
|
bne loadERR1
|
|
brl loadFILE1
|
|
loadERR1 jmp initOFF1
|
|
|
|
*$
|
|
asc 0d"Hello Christer!"0d
|
|
asc "Do Ya Feel It?"0d
|
|
|
|
*-------------------------- Save file
|
|
|
|
saveFILE lda ptrTAB
|
|
sta proWRITE+4
|
|
lda ptrTAB+2
|
|
sta proWRITE+6
|
|
lda #$53d0
|
|
sta proWRITE+8
|
|
|
|
lda #pTAB
|
|
sta proOPEN+4
|
|
lda #^pTAB
|
|
sta proOPEN+6
|
|
|
|
saveFILE1 jsl proDOS
|
|
dw $2005
|
|
adrl proINFO
|
|
bcs saveERR
|
|
|
|
jsl proDOS
|
|
dw $2002
|
|
adrl proDESTROY
|
|
|
|
jsl proDOS
|
|
dw $2001
|
|
adrl proCREATE
|
|
|
|
jsl proDOS
|
|
dw $2010
|
|
adrl proOPEN
|
|
bcs saveERR
|
|
|
|
lda proOPEN+2
|
|
sta proWRITE+2
|
|
sta proCLOSE+2
|
|
|
|
jsl proDOS
|
|
dw $2013
|
|
adrl proWRITE
|
|
bcs saveERR
|
|
|
|
saveFILE2 jsl proDOS
|
|
dw $2014
|
|
adrl proCLOSE
|
|
|
|
clc
|
|
rts
|
|
|
|
saveERR jsr saveFILE2
|
|
|
|
PushWord #0
|
|
PushLong #proSTR11
|
|
PushLong #proSTR2
|
|
PushLong #proSTR31
|
|
PushLong #proSTR41
|
|
_TLTextMountVolume
|
|
pla
|
|
cmp #1
|
|
bne saveERR1
|
|
brl saveFILE1
|
|
|
|
saveERR1 sec
|
|
rts
|
|
|
|
*--------------------------
|
|
* Routines diverses
|
|
*--------------------------
|
|
|
|
memERR bcs memERR1 ; Erreur de memoire
|
|
rts
|
|
memERR1 PushWord #0
|
|
PushLong #memSTR1
|
|
PushLong #memSTR2
|
|
PushLong #proSTR3
|
|
PushLong #proSTR4
|
|
_TLTextMountVolume
|
|
pla
|
|
jmp initOFF1
|
|
|
|
*--------------------------
|
|
|
|
setSHADOW sep #$20 ; A=0, shadow off
|
|
; A=1, shadow on
|
|
eor #1
|
|
asl
|
|
asl
|
|
asl
|
|
pha
|
|
ldal $e0c035
|
|
and #%11110111
|
|
ora 1,s
|
|
stal $e0c035
|
|
pla
|
|
rep #$20
|
|
rts
|
|
|
|
*$
|
|
asc 0d"A SecondSight Graphic Card? Never"0d
|
|
asc "A TurboRez Graphic Card? Forever"0d
|
|
|
|
*------------------------------
|
|
|
|
nextVBL lda #150
|
|
jsr waitSPOT
|
|
jsr waitVBL
|
|
rts
|
|
|
|
waitSPOT lsr
|
|
sta waitSPOT2+1
|
|
waitSPOT1 ldal $e0c02e
|
|
and #$7f
|
|
waitSPOT2 cmp #150
|
|
blt waitSPOT1
|
|
cmp #100
|
|
bge waitSPOT1
|
|
rts
|
|
|
|
waitVBL ldal $e0c019
|
|
and #$80
|
|
beq waitVBL
|
|
rts
|
|
|
|
*-------------------------- Decompression
|
|
|
|
unPACK tax ; Decompresse
|
|
|
|
phd
|
|
tdc
|
|
clc
|
|
adc #$100
|
|
tcd
|
|
|
|
stz $04
|
|
stz $06
|
|
stx $05
|
|
|
|
lda ptrUNPACK
|
|
sta $00
|
|
lda ptrUNPACK+2
|
|
sta $02
|
|
|
|
lda ptrUNPACK
|
|
clc
|
|
adc #$8000
|
|
sta $1e
|
|
clc
|
|
adc #$2000
|
|
sta $22
|
|
lda ptrUNPACK+2
|
|
sta $20
|
|
sta $24
|
|
|
|
ldy #$3fff
|
|
lda #0
|
|
]lp sta [$1e],y
|
|
dey
|
|
dey
|
|
bpl ]lp
|
|
|
|
lda #$0009
|
|
sta L0517+1
|
|
lda #$01FF
|
|
sta L051E+1
|
|
stz $1C
|
|
pea $FFFF
|
|
|
|
L042C jsr L04E8
|
|
cmp #$0101
|
|
bne L042D
|
|
brl L04A4
|
|
|
|
L042D cmp #$0100
|
|
beq L0491
|
|
sta $12
|
|
cmp $14
|
|
bcc L0443
|
|
lda $10
|
|
pei $0E
|
|
L0443 cmp #$0100
|
|
bcc L0455
|
|
asl
|
|
L0449 tay
|
|
lda [$22],Y
|
|
pha
|
|
lda [$1E],Y
|
|
cmp #$0200
|
|
bcs L0449
|
|
lsr
|
|
L0455 and #$00FF
|
|
sta $0E
|
|
sta $1A
|
|
ldy #$0000
|
|
L045F sta [$04],Y
|
|
iny
|
|
pla
|
|
bpl L045F
|
|
pha
|
|
tya
|
|
clc
|
|
adc $04
|
|
sta $04
|
|
|
|
lda $06
|
|
adc #0
|
|
sta $06
|
|
|
|
jsr L04D8
|
|
lda $12
|
|
sta $10
|
|
lda $14
|
|
cmp $18
|
|
bcc L048F
|
|
lda L0517+1
|
|
cmp #$000C
|
|
beq L048F
|
|
inc
|
|
sta L0517+1
|
|
asl
|
|
tax
|
|
lda packMASK-$12,X
|
|
sta L051E+1
|
|
asl $18
|
|
L048F bra L042C
|
|
L0491 jsr L04C1
|
|
jsr L04E8
|
|
sta $10
|
|
sta $1A
|
|
sta $0E
|
|
sta [$04]
|
|
|
|
lda $04
|
|
clc
|
|
adc #1
|
|
sta $04
|
|
lda $06
|
|
adc #0
|
|
sta $06
|
|
|
|
jmp L042C
|
|
|
|
L04A4 pla
|
|
pld
|
|
phk
|
|
plb
|
|
rts
|
|
|
|
L04C1 lda #$0009
|
|
sta L0517+1
|
|
lda #$01FF
|
|
sta L051E+1
|
|
lda #$0200
|
|
sta $18
|
|
lda #$0102
|
|
sta $14
|
|
rts
|
|
|
|
L04D8 lda $14
|
|
asl
|
|
tay
|
|
lda $1A
|
|
sta [$22],Y
|
|
lda $10
|
|
asl
|
|
sta [$1E],Y
|
|
inc $14
|
|
rts
|
|
|
|
L04E8 lda $1C
|
|
and #$0007
|
|
tax
|
|
lda $1C
|
|
lsr
|
|
lsr
|
|
lsr
|
|
cmp #$03FD
|
|
bcc L0502
|
|
clc
|
|
adc $00
|
|
sta $00
|
|
stx $1C
|
|
lda #$0000
|
|
L0502 tay
|
|
lda [$00],Y
|
|
sta $08
|
|
iny
|
|
iny
|
|
lda [$00],Y
|
|
txy
|
|
beq L0514
|
|
L050E lsr
|
|
L050F ror $08
|
|
dex
|
|
bne L050E
|
|
L0514 lda $1C
|
|
clc
|
|
L0517 adc #$FFFF ; $0009 on beginning
|
|
sta $1C
|
|
lda $08
|
|
L051E and #$FFFF ; $01FF on beginning
|
|
rts
|
|
|
|
*$
|
|
asc 0d
|
|
asc "-Olivier, Gimme Salt"0d
|
|
asc "-Antoine, Gimme Pepper"0d
|
|
asc "-Give us Salt and Pepper"0d
|
|
asc "Let us talk about sex baby"0d
|
|
asc "Let us talk about U and Me"0d
|
|
asc "No, we are not homosexuals"0d
|
|
|
|
*------------------------------
|
|
|
|
nowWAIT dec ; Attend A secondes
|
|
tax
|
|
lda #0
|
|
]lp clc
|
|
adc #60
|
|
cpx #0
|
|
beq nowWAIT1
|
|
dex
|
|
bra ]lp
|
|
nowWAIT1 pha
|
|
jsr waitVBL
|
|
]lp ldal $e0c019
|
|
and #$80
|
|
bne ]lp
|
|
pla
|
|
dec
|
|
bne nowWAIT1
|
|
sec
|
|
rts
|
|
|
|
*--------------------------
|
|
* Routines graphiques
|
|
*--------------------------
|
|
|
|
*--- Routine 3200 couleurs
|
|
|
|
do3200 stz Debut
|
|
stz Debut+2
|
|
sta Debut+1
|
|
|
|
sep #$20
|
|
lda #$1e
|
|
stal $e0c035
|
|
rep #$20
|
|
|
|
ldx #$7ffe
|
|
lda #0
|
|
]lp stal $012000,x
|
|
stal $e12000,x
|
|
dex
|
|
dex
|
|
bpl ]lp
|
|
|
|
ldy #$7d00
|
|
ldx #0
|
|
]lp lda [Debut],y
|
|
stal $012000,x
|
|
iny
|
|
iny
|
|
inx
|
|
inx
|
|
cpx #$1900
|
|
bne ]lp
|
|
|
|
sep #$20
|
|
ldx #$00
|
|
do32001 lda #$0f
|
|
]lp stal $019d00,x
|
|
stal $e19d00,x
|
|
inx
|
|
cpx #$c8
|
|
beq do32002
|
|
dec
|
|
bpl ]lp
|
|
bra do32001
|
|
|
|
do32002 lda #0
|
|
stal $e0c035
|
|
|
|
rep #$20
|
|
|
|
ldy #$7cfe
|
|
]lp tyx
|
|
lda [Debut],y
|
|
stal $e12000,x
|
|
dey
|
|
dey
|
|
bpl ]lp
|
|
|
|
phd
|
|
tsc
|
|
sta mySTACK
|
|
|
|
sei
|
|
|
|
*--- Main routine 3200
|
|
|
|
ldal $e0c068
|
|
ora #$30
|
|
stal $e0c068
|
|
|
|
do32003 ldy #0
|
|
lda #$1f00
|
|
tcd
|
|
|
|
do32004 ldal $e0c02e
|
|
and #$ff
|
|
cmp affTBL,y
|
|
bne do32004
|
|
|
|
iny
|
|
iny
|
|
|
|
lda #$9fff
|
|
tcs
|
|
tdc
|
|
clc
|
|
adc #$0100
|
|
tcd
|
|
|
|
]affPOS1 = $00
|
|
lup $80
|
|
pei ]affPOS1
|
|
]affPOS1 = ]affPOS1+2
|
|
--^
|
|
|
|
tdc
|
|
clc
|
|
adc #$0100
|
|
tcd
|
|
|
|
]affPOS1 = $00
|
|
lup $80
|
|
pei ]affPOS1
|
|
]affPOS1 = ]affPOS1+2
|
|
--^
|
|
|
|
cpy #$1a
|
|
beq do32005
|
|
brl do32004
|
|
|
|
do32005 ldal $e0bfff
|
|
bmi do32007
|
|
ldal $e0c026
|
|
bpl do32006
|
|
and #%00000010_00000000
|
|
bne do32006
|
|
ldal $e0c023
|
|
ldal $e0c023
|
|
and #%10000000_00000000
|
|
beq do32007
|
|
brl do32003
|
|
do32006 ldal $e0c026
|
|
brl do32003
|
|
|
|
do32007 stal $e0c010
|
|
ldal $e0c068
|
|
and #$cf
|
|
stal $e0c068
|
|
|
|
cli
|
|
|
|
lda mySTACK
|
|
tcs
|
|
pld
|
|
phk
|
|
plb
|
|
|
|
ldx #$7ffe
|
|
lda #0
|
|
]lp stal $012000,x
|
|
dex
|
|
dex
|
|
bpl ]lp
|
|
|
|
rts
|
|
|
|
*$
|
|
asc 0d
|
|
asc "Our only drug is the IIgs"0d
|
|
asc "Aaahhh llaaaaa laaaaaa"0d
|
|
|
|
*--- Fade sur les palettes
|
|
|
|
fadeIN sta fadeIN1+2
|
|
clc
|
|
adc #$007e
|
|
sta fadeIN5+2
|
|
sta fadeIN7+2
|
|
sta fadeIN9+2
|
|
cpy #-1
|
|
beq fadeIN2
|
|
|
|
ldx #$7dfe
|
|
fadeIN1 ldal $062000,x
|
|
stal $012000,x
|
|
dex
|
|
dex
|
|
bpl fadeIN1
|
|
|
|
fadeIN2 ldy #$000f
|
|
fadeIN3 ldx #$01fe
|
|
fadeIN4 ldal $019e00,x
|
|
and #$000f
|
|
sta temp
|
|
fadeIN5 ldal $069e00,x
|
|
and #$000f
|
|
cmp temp
|
|
beq fadeIN6
|
|
ldal $019e00,x
|
|
clc
|
|
adc #$0001
|
|
stal $019e00,x
|
|
fadeIN6 ldal $019e00,x
|
|
and #$00f0
|
|
sta temp
|
|
fadeIN7 ldal $069e00,x
|
|
and #$00f0
|
|
cmp temp
|
|
beq fadeIN8
|
|
ldal $019e00,x
|
|
clc
|
|
adc #$0010
|
|
stal $019e00,x
|
|
fadeIN8 ldal $019e00,x
|
|
and #$0f00
|
|
sta temp
|
|
fadeIN9 ldal $069e00,x
|
|
and #$0f00
|
|
cmp temp
|
|
beq fadeIN10
|
|
ldal $019e00,x
|
|
clc
|
|
adc #$0100
|
|
stal $019e00,x
|
|
|
|
fadeIN10 dex
|
|
dex
|
|
bpl fadeIN4
|
|
jsr nextVBL
|
|
dey
|
|
bpl fadeIN3
|
|
rts
|
|
|
|
*---
|
|
|
|
fadeOUT ldy #$000f
|
|
fadeOUT1 ldx #$01fe
|
|
fadeOUT2 ldal $019e00,x
|
|
and #$000f
|
|
beq fadeOUT3
|
|
ldal $019e00,x
|
|
sec
|
|
sbc #$0001
|
|
stal $019e00,x
|
|
fadeOUT3 ldal $019e00,x
|
|
and #$00f0
|
|
beq fadeOUT4
|
|
ldal $019e00,x
|
|
sec
|
|
sbc #$0010
|
|
stal $019e00,x
|
|
fadeOUT4 ldal $019e00,x
|
|
and #$0f00
|
|
beq fadeOUT5
|
|
ldal $019e00,x
|
|
sec
|
|
sbc #$0100
|
|
stal $019e00,x
|
|
|
|
fadeOUT5 dex
|
|
dex
|
|
bpl fadeOUT2
|
|
jsr nextVBL
|
|
dey
|
|
bpl fadeOUT1
|
|
|
|
ldx #$7ffe
|
|
lda #$0000
|
|
]lp stal $012000,x
|
|
dex
|
|
dex
|
|
bpl ]lp
|
|
rts
|
|
|
|
*--------------------------
|
|
* Routine control panel
|
|
*--------------------------
|
|
|
|
mx %11
|
|
|
|
theDESK jmp theDESK1
|
|
jmp theDESK1
|
|
jmp theDESK1
|
|
|
|
theDESK1 sep #$30
|
|
lda $c025
|
|
|
|
phb
|
|
php
|
|
phk
|
|
plb
|
|
|
|
clc
|
|
xce
|
|
rep #$30
|
|
|
|
lda fgBUG
|
|
sta oldBUG
|
|
stz fgBUG
|
|
|
|
sep #$30
|
|
|
|
theDESK2 jsl $feadb9
|
|
|
|
phk
|
|
plb
|
|
|
|
clc
|
|
xce
|
|
sep #$30
|
|
|
|
ldal $e0c034
|
|
and #$f0
|
|
stal $e0c034
|
|
|
|
rep #$30
|
|
|
|
lda oldBUG
|
|
sta fgBUG
|
|
|
|
sep #$30
|
|
plp
|
|
plb
|
|
clc
|
|
rtl
|
|
|
|
mx %00
|
|
|
|
*--------------------------
|
|
* All the datas
|
|
*--------------------------
|
|
|
|
hex 8d8d
|
|
asc "---- Tinies Construction Kit -----",8d
|
|
asc " Version Apple //gs ",8d
|
|
asc " Antoine Vignau Olivier Zardini ",8d
|
|
asc " Brutal Deluxe ",8d
|
|
asc "------------ 9 2 1995 ------------",8d,8d
|
|
|
|
*--- Flags
|
|
|
|
save1 ds 1
|
|
save2 ds 1
|
|
save3 ds 1
|
|
save4 ds 1
|
|
|
|
fgLANG ds 2 ; 1=fr
|
|
|
|
bugA ds 2
|
|
bugY ds 2
|
|
bugFG ds 2
|
|
saveDESK ds 4
|
|
|
|
*--- Textes
|
|
|
|
memSTR1 str 'Can'27't allocate (screen) memory'
|
|
memSTR2 str 'Press a key to quit.'
|
|
|
|
proSTR1 str 'Can'27't load file'
|
|
proSTR11 str 'Can'27't save file'
|
|
proSTR2 str 'Do what now ?'
|
|
proSTR3 str '[RET] Continue'
|
|
proSTR31 str '[RET] Retry'
|
|
proSTR4 str '[ESC] Quit'
|
|
proSTR41 str '[ESC] Cancel'
|
|
|
|
*--- Prodos
|
|
|
|
proQUIT dw 2
|
|
ds 4
|
|
ds 2
|
|
|
|
proQUIT2 dw 2
|
|
adrl pGAME
|
|
ds 2
|
|
|
|
proOPEN dw 2
|
|
ds 2
|
|
adrl pTCK1
|
|
|
|
proGETEOF dw 2
|
|
ds 2
|
|
ds 4
|
|
|
|
proREAD dw 4
|
|
ds 2
|
|
ds 4
|
|
ds 4
|
|
ds 4
|
|
|
|
proCLOSE dw 1
|
|
ds 2
|
|
|
|
proCREATE dw 7
|
|
adrl pTAB ; Pathname
|
|
dw $e3 ; AccessCode
|
|
dw 6 ; FileType
|
|
ds 4 ; AuxType
|
|
dw 2 ; Type d'enregistrement
|
|
adrl $53d0 ; Data segment
|
|
ds 4 ; Resource segment
|
|
|
|
proDESTROY dw 1
|
|
adrl pTAB ; Pathname
|
|
|
|
proINFO dw 4
|
|
adrl pTAB ; Pathname
|
|
dw $e3 ; AccessCode
|
|
dw 6 ; FileType
|
|
ds 4 ; AuxType
|
|
|
|
proWRITE dw 5
|
|
ds 2 ; Id
|
|
ds 4 ; Where
|
|
adrl $53d0 ; Length
|
|
ds 4 ; Written
|
|
ds 2
|
|
|
|
*--- Nom des fichiers
|
|
|
|
pTCK1 strl '1/Tinies.Data/TCK1'
|
|
pTCK2 strl '1/Tinies.Data/TCK2'
|
|
pDOC strl '1/Tinies.Data/Tinies.Docu'
|
|
pABOUT strl '1/Tinies.Data/TCK.About'
|
|
pLOGO strl '1/Tinies.Data/TCK.Logo'
|
|
pNIV strl '1/Tinies.Data/Niv00'
|
|
pTAB strl '1/Tinies.Data/Tinies.Tab2'
|
|
|
|
pBOUGE strl '1/Tinies.Data/Bouge'
|
|
pFONTE strl '1/Tinies.Data/Fonte'
|
|
pGADGET2 strl '1/Tinies.Data/Gadget2'
|
|
pGADGET3 strl '1/Tinies.Data/Gadget3'
|
|
pTINY1 strl '1/Tinies.Data/Tiny1'
|
|
pTINY2 strl '1/Tinies.Data/Tiny2'
|
|
|
|
pGAME strl '1/The.Tinies'
|
|
|
|
*--- Routine 3200 couleurs
|
|
|
|
mySTACK ds 2
|
|
|
|
affTBL dw $e4,$84,$8c,$94,$9c,$a4,$ac
|
|
dw $b4,$bc,$c4,$cc,$d4,$dc
|
|
|
|
*--- Memoire
|
|
|
|
myID ds 2
|
|
|
|
ptrTCK1 ds 4 ; 0
|
|
ptrNIV ds 4 ; 1
|
|
ptrDOC ds 4 ; 2
|
|
ptrTAB ds 4 ; 3
|
|
ptrBOUGE ds 4 ; 4
|
|
ptrGADGET2 ds 4 ; 5
|
|
ptrTINY1 ds 4 ; 6
|
|
|
|
ptrTCK2 ds 4 ; 7
|
|
ptrBACK ds 4 ; 8
|
|
ptrABOUT ds 4 ; 9
|
|
ds 4 ; A (unused 32kb)
|
|
ptrFONTE ds 4 ; B
|
|
ptrGADGET3 ds 4 ; C
|
|
ptrTINY2 ds 4 ; D
|
|
|
|
ptrUNPACK ds 4 ; 64kb for unpacking
|
|
|
|
*--- Decompression
|
|
|
|
packMASK dw $01ff
|
|
dw $03ff
|
|
dw $07ff
|
|
dw $0fff
|
|
dw $0000
|
|
|
|
temp ds 2
|
|
|
|
*--- Lignes
|
|
|
|
Ligne = *
|
|
|
|
]Ligne = $0
|
|
lup 200
|
|
dw ]Ligne
|
|
]Ligne = ]Ligne+160
|
|
--^
|
|
|
|
*$
|
|
asc 0d
|
|
asc "Olivier is happy with his new CdROM: HottestFantasies"0d
|
|
asc "650mB of happiness... :-)"0d
|
|
|
|
put TCK.Play
|
|
put TCK.About
|
|
|
|
*$
|
|
asc 0d
|
|
asc "See You Next Time In The Next Power GS Issue"0d
|
|
asc "End of Transmission.."0d
|