nice Genius

This commit is contained in:
Antoine Vignau 2024-01-09 23:15:26 +01:00
parent 57b84496d9
commit 9568ef7d30
9 changed files with 26232 additions and 24938 deletions

Binary file not shown.

View File

@ -348,7 +348,17 @@ loadBACK _HideCursor
*----------------------------------- Open
doLOAD jsr doSOUNDOFF
mx %11
doLOAD sta pGAME+10
rep #$30
jsr loadALL
sep #$30
rts
mx %00
jsr doSOUNDOFF
jsr saveBACK
PushWord #30
@ -370,11 +380,19 @@ doLOAD1 jsr copyPATH
jsr loadALL
rts
mx %00
*----------------------------------- Save
doSAVE jsr doSOUNDOFF
mx %11
doSAVE sta pGAME+10
rep #$30
jsr saveALL
sep #$30
rts
mx %00
jsr doSOUNDOFF
jsr saveBACK
PushWord #25
@ -521,7 +539,7 @@ proWRITEGAME
ds 4 ; C - transfer_count
dw 1 ; cache_priority
pGAME strl '0/ '
pGAME strl '1/Partie0' ; +10 pour la partie
*-----------------------------------
* DES DONNES 16-BITS

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -15,6 +15,24 @@
ext picGENIUS
ext picMONDE
ext txtTELEX
ext txtGENIUSTEXTE
ext txtSERPENT1
ext txtSERPENT2
ext txtSERPENT3
ext txtSERPENT4
ext txtECRITPAR1
ext txtECRITPAR2
ext txtECRITPAR3
ext txtECRITPAR4
ext txtECRITPAR5
ext txtECRITPAR6
ext txtMONDE
ext txtEXPLICATIONS1
ext txtEXPLICATIONS2
ext txtEXPLICATIONS3
ext txtEXPLICATIONS4
*-----------------------------------
* CODE
*-----------------------------------
@ -25,6 +43,8 @@ intro jsr intro_telex
bcs intro_end
jsr intro_serpent
bcs intro_end
jsr intro_ecritpar
bcs intro_end
jsr intro_genius_image
bcs intro_end
jsr intro_monde
@ -59,6 +79,140 @@ intro_genius_texte
intro_serpent
rts
*-----------------------------------
* DE QUI EST CE LOGICIEL ?
*-----------------------------------
mx %00
intro_ecritpar
PushWord #$9999
_ClearScreen
jsr petit_genius
rts
*----------- Affiche le petit Genius
petit_genius
lda #picGENIUS
sta dpFROM
lda #^picGENIUS
sta dpFROM+2
lda ptrSCREEN
clc
adc #56 ; pour center
sta dpTO
lda ptrSCREEN+2
sta dpTO+2
ldx #0
pgLOOP ldy #0
sep #$20
]lp lda [dpFROM],y
jsr outputPG
iny
cpy #17
bcc ]lp
rep #$20
lda dpFROM
clc
adc #17
sta dpFROM
txa
clc
adc #160-51 ; 17x3 (6 bits = 3 pixels)
tax
cpx #84*160 ; 84 lignes
bcc pgLOOP
*-----------
sep #$20
pgK2 ldal KBD
bpl pgK2
stal KBDSTROBE
rep #$20
clc
rts
*-----------
mx %10
outputPG phy
pha
txy
lda #$99
sta dpPX
lda 1,s
and #%0010_0000
beq outputPG1
lda dpPX
and #$0f
ora dpCOL1
sta dpPX
outputPG1 lda 1,s
and #%0001_0000
beq outputPG2
lda dpPX
and #$f0
ora dpCOL2
sta dpPX
outputPG2 lda dpPX
sta [dpTO],y
iny
lda #$99
sta dpPX
lda 1,s
and #%0000_1000
beq outputPG3
lda dpPX
and #$0f
ora dpCOL1
sta dpPX
outputPG3 lda 1,s
and #%0000_0100
beq outputPG4
lda dpPX
and #$f0
ora dpCOL2
sta dpPX
outputPG4 lda dpPX
sta [dpTO],y
iny
lda #$99
sta dpPX
lda 1,s
and #%0000_0010
beq outputPG5
lda dpPX
and #$0f
ora dpCOL1
sta dpPX
outputPG5 lda 1,s
and #%0000_0001
beq outputPG6
lda dpPX
and #$f0
ora dpCOL2
sta dpPX
outputPG6 lda dpPX
sta [dpTO],y
iny
tyx
pla
ply
rts
*-----------------------------------
* GENIUS
*-----------------------------------
@ -76,7 +230,7 @@ intro_genius_image
lda ptrSCREEN
clc
adc #56 ; pour center
adc #34 ; pour center
sta dpTO
lda ptrSCREEN+2
sta dpTO+2
@ -99,9 +253,9 @@ igLOOP ldy #0
txa
clc
adc #160-51 ; 17x3 (6 bits = 3 pixels)
adc #320-102 ; 17x6 (6 bits = 3 pixels)
tax
cpx #84*160 ; 84 lignes
cpx #168*160 ; 84x2 lignes
bcc igLOOP
*-----------
@ -116,70 +270,132 @@ igK2 ldal KBD
*-----------
colIGBK = $77
mx %10
outputIG phy
pha
txy
lda #$77
sta dpPX
lda 1,s
and #%0010_0000
beq outputIG1
lda dpPX
and #$0f
ora dpCOL1
sta dpPX
outputIG1 lda 1,s
and #%0001_0000
beq outputIG2
lda dpPX
and #$f0
ora dpCOL2
sta dpPX
outputIG2 lda dpPX
lda #$00
beq outputIG1B
outputIG1 lda #colIGBK
outputIG1B phy
pha
sta [dpTO],y
rep #$20
tya
clc
adc #160
tay
sep #$20
pla
sta [dpTO],y
ply
iny
lda 1,s
and #%0001_0000
beq outputIG2
lda #$00
beq outputIG2B
outputIG2 lda #colIGBK
outputIG2B phy
pha
sta [dpTO],y
rep #$20
tya
clc
adc #160
tay
sep #$20
pla
sta [dpTO],y
ply
iny
lda #$77
sta dpPX
lda 1,s
and #%0000_1000
beq outputIG3
lda dpPX
and #$0f
ora dpCOL1
sta dpPX
outputIG3 lda 1,s
and #%0000_0100
beq outputIG4
lda dpPX
and #$f0
ora dpCOL2
sta dpPX
outputIG4 lda dpPX
lda #$00
beq outputIG3B
outputIG3 lda #colIGBK
outputIG3B phy
pha
sta [dpTO],y
rep #$20
tya
clc
adc #160
tay
sep #$20
pla
sta [dpTO],y
ply
iny
lda 1,s
and #%0000_0100
beq outputIG4
lda #$00
beq outputIG4B
outputIG4 lda #colIGBK
outputIG4B phy
pha
sta [dpTO],y
rep #$20
tya
clc
adc #160
tay
sep #$20
pla
sta [dpTO],y
ply
iny
lda #$77
sta dpPX
lda 1,s
and #%0000_0010
beq outputIG5
lda dpPX
and #$0f
ora dpCOL1
sta dpPX
outputIG5 lda 1,s
lda #$00
beq outputIG5B
outputIG5 lda #colIGBK
outputIG5B phy
pha
sta [dpTO],y
rep #$20
tya
clc
adc #160
tay
sep #$20
pla
sta [dpTO],y
ply
iny
lda 1,s
and #%0000_0001
beq outputIG6
lda dpPX
and #$f0
ora dpCOL2
sta dpPX
outputIG6 lda dpPX
lda #$00
beq outputIG6B
outputIG6 lda #colIGBK
outputIG6B phy
pha
sta [dpTO],y
rep #$20
tya
clc
adc #160
tay
sep #$20
pla
sta [dpTO],y
ply
iny
tyx

View File

@ -7,6 +7,121 @@
lst off
*-----------------------------------
* LES TEXTES DE L'INTRO
*-----------------------------------
txtTELEX ENT
asc 'Une heure du matin (heure francaise)'0d
asc 'sur tous les telex du monde apparait'0d
asc 'ce message angoissant...'00
*-----------------------------------
txtGENIUSTEXTE ENT
asc 'Moi, GENIUS, je defie le monde. J'27'ai'0d
asc 'invente une nouvelle arme capable de'0d
asc 'raser la terre, ce que je ferai dans'0d
asc 'deux semaines... Mais, comme je ne suis'0d
asc 'pas un monstre, je vous laisse une'0d
asc 'chance. J'27'accepte que des hommes de'0d
asc 'tout pays se rendent sur mon vaisseau'0d
asc 'en orbite autour de la terre afin de'0d
asc 'tenter de desamorcer mes armes. Mais,'0d
asc 'jamais plus d'27'un homme a la fois....'00
*-----------------------------------
txtSERPENT1 ENT
asc 'LORICIELS'00
txtSERPENT2 ENT
asc 'vous propose ce que'00
txtSERPENT3 ENT
asc 'vous redoutiez'00
txtSERPENT4 ENT
asc 'depuis longtemps'00
*-----------------------------------
txtECRITPAR1 ENT
asc 'Ecrit par Laurent Benes'00
txtECRITPAR2 ENT
asc 'Assiste de Karine Le Pors'00
txtECRITPAR3 ENT
asc 'Version Apple IIgs'00
txtECRITPAR4 ENT
asc 'Brutal Deluxe Software'00
txtECRITPAR5 ENT
asc 'Merci XavSnap'00
txtECRITPAR6 ENT
asc '3 jours plus tard dans les journaux'00
*-----------------------------------
txtMONDE ENT
asc 'C'27'est ainsi que vous decidez de'0d
asc 'vous rendre aux autorites pour combat-'0d
asc 'tre a nouveau le Dr Genius.'
asc 'Le lendemain, on vous emmene au vais-'0d
asc 'seau ou vous allez maintenant tenter'0d
asc 'de vaincre le Dr Genius afin de sauver'0d
asc 'la terre.'0d0d0d
asc ' BON COURAGE...'0d0d0d
asc 'Vous en aurez besoin !'00
*-----------------------------------
txtEXPLICATIONS1 ENT
asc 0d'Voici quelques explications'0d0d
asc 'Le jeu est en temps reel, un chronome-'0d
asc 'tre sera affiche en permanence.'0d
asc 'D'27'autre part, vous devrez prendre'0d
asc 'garde a votre energie qui diminuera au'0d
asc 'fil de la partie.'0d
asc 'Attention, plus vous transportez'0d
asc 'd'27'objets, plus votre force decroit.'0d0d
asc 'Pour converser avec l'27'ordinateur, vous'0d
asc 'pouvez utiliser un vocabulaire choisi'0d
asc 'parmi pres de 150 mots que vous allez'0d
asc 'donc decouvrir au fur et a mesure...'0d
asc 'et oui, c'27'est ca l'27'aventure.'0d0d
asc 'D'27'autre part, l'27'ordinateur ne prendra'0d
asc 'en compte que les 4 premieres lettres'0d
asc 'de chaque mot, ainsi : PRENDS CARTON'0d
asc 'sera compris comme : PREN CART'00
txtEXPLICATIONS2 ENT
asc 0d'L'27'ordinateur ne prend en compte en'0d
asc 'general que deux mots, exemple :'0d
asc '- ALLUME SALLE'0d
asc '- EST ou E ou AVANCE EST'0d0d
asc 'Dans certains cas,l'27'ordinateur prendra'0d
asc 'en compte trois mots. Il s'27'agit de cas'0d
asc 'ou un qualificatif est necessaire, ou'0d
asc 'lorsque l'27'on veut mettre une chose'0d
asc 'dans une autre. Exemple :'0d0d
asc 'PRENDS LIVRE VERT'0d
asc 'PRENDS MOUCHOIR PAPIER'0d
asc ' ou'0d
asc 'CRAYON DANS BOITE'0d0d
asc 'Ce dernier cas indiquera qu'27'il faut'0d
asc 'mettre le crayon dans la boite.'0d
asc 'a condition que vous possediez crayon'0d
asc 'et boite, evidemment.'00
txtEXPLICATIONS3 ENT
asc 0d'Une derniere chose, il est possible de'0d
asc 'sauver une partie en cours, et de la'0d
asc 'recharger, mais a vous de trouver le'0d
asc 'vocabulaire adequat...'0d0d0d0d
asc 'Et maintenant, tres bonne aventure...'0d0d
asc 'et prenez garde a vous !'0d0d0d
asc 'Tapez une touche pour charger le'0d
asc 'programme de jeu.'00 ; Fond rouge, encre
txtEXPLICATIONS4 ENT
asc 'Voulez-vous revoir la presentation (O/N) '00
*-----------------------------------
* IMAGE DU DR GENIUS (DRACULA)
*-----------------------------------

View File

@ -1081,21 +1081,46 @@ MDP$ asc 'MANOIR'
*----------- SAVE - LOGO
:4590 stz fgTIME
rep #$30
jsr :4595
bcs :4591
* rep #$30
jsr doSAVE
sep #$30
inc fgTIME
* sep #$30
:4591 inc fgTIME
rts
*----------- LOAD - LOGO
:4600 stz fgTIME
rep #$30
jsr :4595
bcs :4601
* rep #$30
jsr doLOAD
sep #$30
* sep #$30
inc fgTIME
jmp REPLAY
:4601 inc fgTIME
rts
*----------- Slot for load/save
:4595 @print #str4595
jsr GETLN1
cpx #1
bne :4595
lda TEXTBUFFER
cmp #'0'
bcc :4595
beq :4597
cmp #'9'+1
bcs :4595
clc
rts
:4597 sec
rts
str4595 asc 'Slot 1-9 (0=sortir) ? '00
*----------- LE MOT DE PASSE FINAL
:4610 @print #str4610

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.