moteur OK

This commit is contained in:
Antoine Vignau 2024-01-05 17:01:36 +01:00
parent 0fc6bdb5fa
commit 7c4fd6567e
15 changed files with 21195 additions and 22599 deletions

View File

@ -14,10 +14,23 @@
mx %11 mx %11
BORDER ldal $c034
inc
stal $c034
rts
*-----------------------------------
mx %11
printNIVEAU ora #'0' printNIVEAU ora #'0'
sta strNIVEAU+9 sta strNIVEAU+9
rep #$30 rep #$30
PushWord #250
PushWord #10
_MoveTo
PushLong #strNIVEAU PushLong #strNIVEAU
_DrawCString _DrawCString
sep #$30 sep #$30
@ -39,7 +52,9 @@ RDKEY phx
jsr CURSOR ; shows the cursor jsr CURSOR ; shows the cursor
rep #$30 rep #$30
]lp pha ]lp inc VBLCounter0 ; for RND
pha
PushWord #%00000000_00001000 PushWord #%00000000_00001000
PushLong #taskREC PushLong #taskREC
_GetNextEvent _GetNextEvent
@ -165,8 +180,7 @@ CURSOR_ERASE
mx %11 mx %11
CURSOR CURSOR lda CH
lda CH
pha pha
lda CV lda CV
pha pha
@ -207,6 +221,12 @@ GOTOXY stx textX
lda #0 lda #0
sta textX+1 sta textX+1
sta textY+1 sta textY+1
rep #$30
PushWord textX
PushWord textY
_MoveTo
sep #$30
rts rts
*----------------------------------- *-----------------------------------
@ -217,7 +237,7 @@ COUTXY pea ^COUTXY
phx phx
phy phy
rep #$30 rep #$30
_DrawString _DrawCString
sep #$30 sep #$30
rts rts
@ -360,27 +380,26 @@ text2shr dw 9,19,29,39,49,59,69,79,89,99
*----------------------------------- *-----------------------------------
mx %11 mx %11
WAIT rts ; LOGO
pha
]lp ldal RDVBLBAR
bmi ]lp
]lp ldal RDVBLBAR
bpl ]lp
pla
rts
*----------------------------------- *RND rep #$30
* PushWord #0
mx %11 * _Random
* pla
* sep #$30
* rts
RND rep #$30 RND rep #$30
PushWord #0 ldal VERTCNT
_Random xba
pla clc
adc VBLCounter0
sta VBLCounter0
and #$ff
sep #$30 sep #$30
rts rts
VBLCounter0 ds 2
*----------------------------------- *-----------------------------------
* RECOPIE ACTION A$ * RECOPIE ACTION A$
*----------------------------------- *-----------------------------------
@ -495,13 +514,12 @@ L95D0 TAX
*-- H - RANDOM *-- H - RANDOM
L95DB jmp L95EF ; LOGO - Use the QDII RND L95DB STA $7C
* LDA $0306
* STA $7C jsr RND
* LDA $0306 CMP $7C
* CMP $7C BCS L95EF
* BCS L95EF JMP L9552
* JMP L9552
*-- I - *-- I -

View File

@ -193,7 +193,13 @@ newA$ hex 0100411246012E4931394DFF
hex 3C3B2E4434364BFF hex 3C3B2E4434364BFF
hex 3D002E4434374BFF hex 3D002E4434374BFF
hex 4E002E41FF hex 4E002E41FF
hex 110E440444052E4330344330354830344830354231394AFF
* 1714D04D05.C04C05H04H05B19J. => TUBE GLAC
* $11 = TUBE / $0E = GLACE
* $5A = METT / $11 = TUBE
* hex 110E440444052E4330344330354830344830354231394AFF
hex 5A11440444052E4330344330354830344830354231394AFF
hex 502144072E4330374830374230364AFF hex 502144072E4330374830374230364AFF
hex 3F002E443438FF hex 3F002E443438FF
hex 40002E4434394EFF hex 40002E4434394EFF
@ -237,260 +243,6 @@ newA$ hex 0100411246012E4931394DFF
hex 3C002E4438384BFF hex 3C002E4438384BFF
hex 00 hex 00
*
* Les actions
*
AA = 155
tblAL$ dfb $bd
dfb <A$1,<A$2,<A$3,<A$4,<A$5,<A$6,<A$7,<A$8,<A$9,<A$10
dfb <A$11,<A$12,<A$13,<A$14,<A$15,<A$16,<A$17,<A$18,<A$19,<A$20
dfb <A$21,<A$22,<A$23,<A$24,<A$25,<A$26,<A$27,<A$28,<A$29,<A$30
dfb <A$31,<A$32,<A$33,<A$34,<A$35,<A$36,<A$37,<A$38,<A$39,<A$40
dfb <A$41,<A$42,<A$43,<A$44,<A$45,<A$46,<A$47,<A$48,<A$49,<A$50
dfb <A$51,<A$52,<A$53,<A$54,<A$55,<A$56,<A$57,<A$58,<A$59,<A$60
dfb <A$61,<A$62,<A$63,<A$64,<A$65,<A$66,<A$67,<A$68,<A$69,<A$70
dfb <A$71,<A$72,<A$73,<A$74,<A$75,<A$76,<A$77,<A$78,<A$79,<A$80
dfb <A$81,<A$82,<A$83,<A$84,<A$85,<A$86,<A$87,<A$88,<A$89,<A$90
dfb <A$91,<A$92,<A$93,<A$94,<A$95,<A$96,<A$97,<A$98,<A$99,<A$100
dfb <A$101,<A$102,<A$103,<A$104,<A$105,<A$106,<A$107,<A$108,<A$109,<A$110
dfb <A$111,<A$112,<A$113,<A$114,<A$115,<A$116,<A$117,<A$118,<A$119,<A$120
dfb <A$121,<A$122,<A$123,<A$124,<A$125,<A$126,<A$127,<A$128,<A$129,<A$130
dfb <A$131,<A$132,<A$133,<A$134,<A$135,<A$136,<A$137,<A$138,<A$139,<A$140
dfb <A$141,<A$142,<A$143,<A$144,<A$145,<A$146,<A$147,<A$148,<A$149,<A$150
dfb <A$151,<A$152,<A$153,<A$154,<A$155
tblAH$ dfb $bd
dfb >A$1,>A$2,>A$3,>A$4,>A$5,>A$6,>A$7,>A$8,>A$9,>A$10
dfb >A$11,>A$12,>A$13,>A$14,>A$15,>A$16,>A$17,>A$18,>A$19,>A$20
dfb >A$21,>A$22,>A$23,>A$24,>A$25,>A$26,>A$27,>A$28,>A$29,>A$30
dfb >A$31,>A$32,>A$33,>A$34,>A$35,>A$36,>A$37,>A$38,>A$39,>A$40
dfb >A$41,>A$42,>A$43,>A$44,>A$45,>A$46,>A$47,>A$48,>A$49,>A$50
dfb >A$51,>A$52,>A$53,>A$54,>A$55,>A$56,>A$57,>A$58,>A$59,>A$60
dfb >A$61,>A$62,>A$63,>A$64,>A$65,>A$66,>A$67,>A$68,>A$69,>A$70
dfb >A$71,>A$72,>A$73,>A$74,>A$75,>A$76,>A$77,>A$78,>A$79,>A$80
dfb >A$81,>A$82,>A$83,>A$84,>A$85,>A$86,>A$87,>A$88,>A$89,>A$90
dfb >A$91,>A$92,>A$93,>A$94,>A$95,>A$96,>A$97,>A$98,>A$99,>A$100
dfb >A$101,>A$102,>A$103,>A$104,>A$105,>A$106,>A$107,>A$108,>A$109,>A$110
dfb >A$111,>A$112,>A$113,>A$114,>A$115,>A$116,>A$117,>A$118,>A$119,>A$120
dfb >A$121,>A$122,>A$123,>A$124,>A$125,>A$126,>A$127,>A$128,>A$129,>A$130
dfb >A$131,>A$132,>A$133,>A$134,>A$135,>A$136,>A$137,>A$138,>A$139,>A$140
dfb >A$141,>A$142,>A$143,>A$144,>A$145,>A$146,>A$147,>A$148,>A$149,>A$150
dfb >A$151,>A$152,>A$153,>A$154,>A$155
A$1 str "A18F01.I19M."
A$2 str "A18E01.I11M."
A$3 str "A18.D03N."
A$4 str "A18.D03N."
A$5 str "E17.D85K."
A$6 str "A02.D04N."
A$7 str "A49.D05K."
A$8 str "A46.D06K."
A$9 str "B01.B01J."
A$10 str "B03.B03J."
A$11 str "B05.B05J."
A$12 str "B06.B06J."
A$13 str "B08.B08J."
A$14 str "B09.B09J."
A$15 str "B10.B10J."
A$16 str "B11.B11J."
A$17 str "B12.B12J."
A$18 str "B14.B14J."
A$19 str "B15.D07J."
A$20 str "A46F09.E09B16J."
A$21 str "B17.B17D08K."
A$22 str "B18.B18J."
A$23 str "E17B02.B02J."
A$24 str "B02.D09E17B02M."
A$25 str "B07.B07J."
A$26 str ".C02J."
A$27 str ".C01J."
A$28 str ".C03J."
A$29 str ".C14J."
A$30 str "B07.C07J."
A$31 str ".C06J."
A$32 str "A21.D89K."
A$33 str ".C08J."
A$34 str ".C09J."
A$35 str ".C10J."
A$36 str ".C11J."
A$37 str "D13.O12C13H13J."
A$38 str ".C12J."
A$39 str ".C16J."
A$40 str ".C17J."
A$41 str ".C18J."
A$42 str "B04.B04J."
A$43 str "B19.C19H19B05B04J."
A$44 str "D04.C04J."
A$45 str "D19.C19H19B05O04J."
A$46 str "D14.D12N."
A$47 str "D14.D12N."
A$48 str "D14.D12N."
A$49 str "A20.D13N."
A$50 str "B11.D14N."
A$51 str "A15.E00D16K."
A$52 str "C07.D17K."
A$53 str ".D18N."
A$54 str "D08.D19N."
A$55 str "D08.D19N."
A$56 str "D18.D20N."
A$57 str "A18.D21N."
A$58 str "B16.B16J."
A$59 str ".D15K."
A$60 str "A49.D05K."
A$61 str "A46.D05K."
A$62 str ".D22K."
A$63 str ".D23N."
A$64 str "A15.D24K."
A$65 str "A15.D25K."
A$66 str "A30.I53M."
A$67 str "A30.I53M."
A$68 str "A44.D27K."
A$69 str "A44.D27K."
A$70 str "A53.I30M."
A$71 str "A44.D26K."
A$72 str "A44.D28K."
A$73 str "A44.D29K."
A$74 str "A44.D30K."
A$75 str "A44.D31K."
A$76 str "A44.D32K."
A$77 str "A15B06.C06H06B07J."
A$78 str "A15B07.D33K."
A$79 str "B19.B19J."
A$80 str "B19.C19J."
A$81 str ".C05J."
A$82 str "D01.D34N."
A$83 str "D01I49I46.D35K."
A$84 str "D01A49.D36I46M."
A$85 str "D01A46.D36I49M."
A$86 str "D01I14I20I23I29I38.D35K."
A$87 str "D01A14.D37F04M."
A$88 str "D01A20.D37F05M."
A$89 str "D01A23.D37F03M."
A$90 str "D01A29.D37F06M."
A$91 str "D01.D37F07M."
A$92 str "B03F18.G0104E18J."
A$93 str "B03.D33K."
A$94 str "D13.D33K."
A$95 str "D12.C12H12B13J."
A$96 str "B09F11.D38K."
A$97 str "B09.D39K."
A$98 str "B09E11.F11J."
A$99 str "B09F11.E11J."
A$100 str "D17.D40K."
A$101 str "D17.D40K."
A$102 str "D17.J."
A$103 str "D13.C13H13B12J."
A$104 str "D10I04I17I22I48I51.D35K."
A$105 str "D10.D41K."
A$106 str ".D42K."
A$107 str ".D43K."
A$108 str ".D44K."
A$109 str ".D45K."
A$110 str ".D46K."
A$111 str ".D46K."
A$112 str ".D47K."
A$113 str ".A."
A$114 str "D04D05.C04C05H04H05B19J."
A$115 str "D07.C07H07B06J."
A$116 str ".D48."
A$117 str ".D49N."
A$118 str ".D50K."
A$119 str "A34E12.D51K."
A$120 str "A34E12.D51K."
A$121 str "A34.D52N."
A$122 str "A34.E13D57K."
A$123 str "E12.D53E14G0205K."
A$124 str "F12I50F13.D54N."
A$125 str "F12E13.D53E14G0205K."
A$126 str "F12A50.D53E14G0205K."
A$127 str "A21E15.D33K."
A$128 str "A21.E15D55G0407K."
A$129 str "A21E15.F15G0400D56M."
A$130 str "A21.D53K."
A$131 str "E16A21.F16D57K."
A$132 str "A21.D66K."
A$133 str ".D59."
A$134 str ".D60."
A$135 str "A29D16F12.D61."
A$136 str "A29F12.D86N."
A$137 str "A29.D62N."
A$138 str "A44.D68K."
A$139 str ".D64K."
A$140 str ".D64K."
A$141 str ".D63K."
A$142 str ".D63K."
A$143 str "D16.D69K."
A$144 str "D16.D69K."
A$145 str "A46.D67I51M."
A$146 str "A46.D70K."
A$147 str "B09.D71K."
A$148 str "A50.D72K."
A$149 str "B01.D90K."
A$150 str "A08.D91N."
A$151 str "A53.I30M."
A$152 str ".M."
A$153 str ".D73K."
A$154 str ".D87K."
A$155 str ".D88K"
tblA1 dfb $bd
dfb 01,03,01,03,25,02,02,04,10,10
dfb 10,10,10,10,10,10,10,10,10,10
dfb 10,10,10,10,10,11,11,11,11,11
dfb 11,25,11,11,11,11,11,11,11,11
dfb 11,10,10,11,11,05,50,75,15,52
dfb 40,40,40,42,52,52,12,10,40,15
dfb 15,15,15,15,67,15,25,15,67,67
dfb 25,82,28,28,28,28,34,34,10,11
dfb 11,20,20,20,20,20,20,20,20,20
dfb 20,52,52,50,50,52,52,36,36,75
dfb 50,51,51,52,52,55,56,57,58,59
dfb 60,61,78,17,80,63,64,20,20,20
dfb 20,20,69,69,69,69,71,71,86,86
dfb 87,87,84,85,37,37,37,28,62,60
dfb 81,60,36,82,71,25,25,25,25,01
dfb 25,25,25,11,60
tblA2 dfb $bd
dfb 00,00,00,00,00,00,00,00,19,18
dfb 14,33,42,43,54,53,45,46,47,16
dfb 48,49,41,41,33,41,19,18,46,33
dfb 33,74,42,43,54,53,45,45,16,48
dfb 49,17,17,17,17,46,46,46,47,53
dfb 35,35,35,00,42,49,76,16,00,77
dfb 77,77,17,68,68,73,73,26,26,73
dfb 26,83,30,31,32,29,33,33,14,14
dfb 14,23,22,22,22,21,21,21,21,21
dfb 21,18,18,45,45,43,43,44,44,48
dfb 48,48,45,54,54,00,00,00,00,00
dfb 59,00,00,14,33,00,00,24,66,65
dfb 66,65,70,70,70,70,74,74,74,74
dfb 88,88,00,00,38,38,38,27,00,62
dfb 00,81,16,16,13,13,43,72,19,00
dfb 39,39,00,89,00
*
* Les conditions
*
*C = 10
tblC$ da $bdbd
da C$1,C$2,C$3,C$4,C$5,C$6,C$7,C$8,C$9,C$10
C$1 str ""
C$2 str ""
C$3 str ""
C$4 str ""
C$5 str ""
C$6 str ""
C$7 str ""
C$8 str ""
C$9 str ""
C$10 str ""
* *
* Les objets dans les salles * Les objets dans les salles
* *
@ -505,9 +257,9 @@ O dfb $bd
dfb 40,33,41,53,43,10,00,21,22,26 dfb 40,33,41,53,43,10,00,21,22,26
dfb 01,06,00,17,20,00,47,19,00 dfb 01,06,00,17,20,00,47,19,00
refO$ da $bdbd *refO$ da $bdbd
da O$1,O$2,O$3,O$4,O$5,O$6,O$7,O$8,O$9,O$10 * da O$1,O$2,O$3,O$4,O$5,O$6,O$7,O$8,O$9,O$10
da O$11,O$12,O$13,O$14,O$15,O$16,O$17,O$18,O$19 * da O$11,O$12,O$13,O$14,O$15,O$16,O$17,O$18,O$19
tblO$ da $bdbd tblO$ da $bdbd
da O$1,O$2,O$3,O$4,O$5,O$6,O$7,O$8,O$9,O$10 da O$1,O$2,O$3,O$4,O$5,O$6,O$7,O$8,O$9,O$10
@ -669,7 +421,7 @@ tblV dfb $bd
dfb 68,69,69,70,70,71,72,73,73,74 dfb 68,69,69,70,70,71,72,73,73,74
dfb 75,76,77,77,78,78,79,80,80,80 dfb 75,76,77,77,78,78,79,80,80,80
dfb 81,81,82,83,83,84,84,84,85,85 dfb 81,81,82,83,83,84,84,84,85,85
dfb 85,86,87,87,88,88,89,89,00 dfb 85,86,87,87,88,88,89,89,90 ; last was 00, now 90
dfb 200 dfb 200
V$1 str 'N' V$1 str 'N'
@ -810,7 +562,7 @@ V$135 str 'DIRE'
V$136 str 'TRAJ' V$136 str 'TRAJ'
V$137 str 'TOUT' V$137 str 'TOUT'
V$138 str 'TOTA' V$138 str 'TOTA'
V$139 str ' ' V$139 str 'RANG' ; RANGER (TUBE DANS GLACE => RANG TUBE)
V$200 str 'TIME' V$200 str 'TIME'
@ -898,7 +650,10 @@ str4600 asc ''00
str4610 asc 'Le sas se referme derriere vous, le tableau de controle s'27'allume et l'27'ordinateur de bord vous demande le mot de passe pour le retour ?'00 str4610 asc 'Le sas se referme derriere vous, le tableau de controle s'27'allume et l'27'ordinateur de bord vous demande le mot de passe pour le retour ?'00
str4615 asc 'Le vaisseau de secours s'27'eloigne, au loin vous voyez Genius qui pleure derriere un hublot'00 str4615 asc 'Le vaisseau de secours s'27'eloigne, au loin vous voyez Genius qui pleure derriere un hublot'00
str4616 asc ' VOUS AVEZ GAGNE'00 str4616 asc ' VOUS AVEZ GAGNE'00
str4618 asc 'Mais, que se passe-t-il,vous avez du vous tromper de mot de passe, votre '00 str4618_1 asc 'Mais, que se passe-t-il,vous avez du vous tromper de mot de passe, votre vaisseau de poche fonce sur le soleil.'00
str4618_2 asc 'Vous venez de realiser que Genius pleurait de JOIE...!'00
str4618_3 asc 'Comme je le pensais , vous vous etes stupidement fait avoir, et votre cadavre (ou ce qu'27'il en reste) reposera a jamais dans l'27'espace...'00
str4620 asc 'La soucoupe a explose au decollage.'00 str4620 asc 'La soucoupe a explose au decollage.'00
str4630 asc 'Energie restante :'00 str4630 asc 'Energie restante :'00
str4640 asc 'Petit drole...Le chronometre est affiche en permanence'00 str4640 asc 'Petit drole...Le chronometre est affiche en permanence'00
@ -933,15 +688,10 @@ str4890 asc 'Il y a effectivement un ordinateur parmi le tableau de controle.'00
str4891 asc 'L'27'ordinateur n'27'est pas en fonction.'00 str4891 asc 'L'27'ordinateur n'27'est pas en fonction.'00
str4900 asc 'Sur le laser, vous voyez trois boutons : jaune, rouge et bleu.'00 str4900 asc 'Sur le laser, vous voyez trois boutons : jaune, rouge et bleu.'00
str4910 asc 'Vous etes entre dans le desintegrateur de particules...'00 str4910 asc 'Vous etes entre dans le desintegrateur de particules...'00
str4920 asc 'Vous etes entre dans le vaisseau par le sas a l'27'ouest qui ne s'27'ouvre pas de l'27'interieur.'00 str4920 asc 'Vous etes entre dans le vaisseau par le sas a l'27'ouest qui ne s'27'ouvre pas de'0d'l'27'interieur.'00
str5500 asc 0d'Etes-vous sur (O/N) ?'00 str5500 asc 0d'Etes-vous sur (O/N) ?'00
str16000 asc 'vaisseau de poche fonce sur le soleil, '00
str16010 asc 'Vous venez de realiser que Genius'00
str16020 asc 'pleurait de JOIE...!'00
str18005 asc 'Comme je le pensais , vous vous etes stupidement fait avoir, et votre cadavre (ou ce qu'27'il en reste) reposera a jamais dans l'27'espace...'00
str19050 asc ' Merci d'27'avoir essaye...!'00 str19050 asc ' Merci d'27'avoir essaye...!'00
str19060 asc ' Reveillez-vous , c'27'est fini !'00 str19060 asc ' Reveillez-vous , c'27'est fini !'00

Binary file not shown.

View File

@ -32,6 +32,7 @@
KBD = $e0c000 KBD = $e0c000
KBDSTROBE = $e0c010 KBDSTROBE = $e0c010
RDVBLBAR = $e0c019 RDVBLBAR = $e0c019
VERTCNT = $e0c02e
GSOS = $e100a8 GSOS = $e100a8
*----------------------- *-----------------------
@ -87,9 +88,9 @@ ICI phk
tdc tdc
sta myDP sta myDP
lda #TEXTBUFFER lda #tblMP$
stal $300 stal $300
lda #^TEXTBUFFER lda #^tblMP$
stal $302 stal $302
_TLStartUp _TLStartUp

File diff suppressed because it is too large Load Diff

View File

@ -60,8 +60,8 @@ idxTIMER = 200
eom eom
@gotoxy mac @gotoxy mac
ldx #>]1 ldx #]1
ldy #<]1 ldy #]2
jsr GOTOXY jsr GOTOXY
eom eom
@ -93,18 +93,6 @@ PLAY sep #$30
sta CV sta CV
jsr TABV ; on a 20 lignes de 10 caract<63>res de haut jsr TABV ; on a 20 lignes de 10 caract<63>res de haut
* @print #strCOMMANDE ; commande avec energie
* jsr GETLN1
*
* ldal $c034
* inc
* stal $c034
*
*]lp ldal $c000
* bpl ]lp
* stal $c010
* jmp QUIT
*----------------------------------- *-----------------------------------
* DU BASIC A L'ASSEMBLEUR (BEURK) * DU BASIC A L'ASSEMBLEUR (BEURK)
*----------------------------------- *-----------------------------------
@ -266,7 +254,7 @@ PLAY sep #$30
beq :310 beq :310
@print #strRETURN @print #strRETURN
*----------------------------------- *-----------------------------------
* 500 - ACCEPTATION COMMANDE * 500 - ACCEPTATION COMMANDE
*----------------------------------- *-----------------------------------
@ -293,6 +281,8 @@ PLAY sep #$30
:520 jmp :3500 :520 jmp :3500
*-----------
:530 @print #strCOMMANDE ; commande avec energie :530 @print #strCOMMANDE ; commande avec energie
:535 jsr GETLN1 :535 jsr GETLN1
@ -367,236 +357,7 @@ PLAY sep #$30
:1040 @print #strEXCLAM :1040 @print #strEXCLAM
jmp :500 jmp :500
* lda E$
* bne :1700
*
*:1000 lda #0
* sta NL
*
*:1100 inc NL
*
* lda T
* beq :1150
*
* lda NL ; E$=C$(NL)
* asl
* tax
* lda tblC$,x
* sta LINNUM
* lda tblC$+1,x
* sta LINNUM+1
*
* ldy #0
* lda (LINNUM),y
* tax
*]lp lda (LINNUM),y
* sta E$,y
* iny
* dex
* bpl ]lp
* jmp :1400
*
*:1150 lda NL
* cmp #AA
* bcc :1200
* beq :1200
*
* lda A1
* cmp #1
* bne :1170
* jmp :500
*
*:1170 @print #strIMPOSSIBLE
*
* lda MO$1 ; les directions
* cmp #9
* bcs :1190
*
* @print #strCECHEMIN
*
*:1190 @print #strEXCLAM
* jmp :500
*
*:1200 ldx NL
* lda tblA1,x
* cmp MO$1
* beq :1210
* jmp :1100
*
*:1210 lda tblA2,x
* beq :1230
* cmp MO$2
* beq :1230
* jmp :1100
*
*:1230 lda tblAL$,x
* sta LINNUM
* lda tblAH$,x
* sta LINNUM+1
*
* ldy #0
* lda (LINNUM),y
* tax
*]lp lda (LINNUM),y
* sta E$,y
* iny
* dex
* bpl ]lp
*
*-----------------------------------
* 1400 - CONDITIONS
*-----------------------------------
*
*:1400 lda #1
* sta E
*
*:1420 ldx E
* lda E$,x
* cmp #"."
* bne :1430
* jmp :1700 ; do actions
*
*:1430 sec
* sbc #"A"
* asl
* pha
*
* lda #0
* sta OK
*
* lda E$+1,x
* sec
* sbc #"0"
* tay
* lda tblD2H,y
* sta N
*
* lda E$+2,x
* sec
* sbc #"0"
* clc
* adc N
* sta N
*
* pla
* tax
* lda tbl1500,x
* sta :1450+1
* lda tbl1500+1,x
* sta :1450+2
*
*:1450 jsr $bdbd
*
* lda OK
* bne :1470
* jmp :1100
*
*:1470 lda E
* clc
* adc #3
* sta E
* jmp :1420
*
*--------
*
*tbl1500 da :1500,:1510,:1520,:1530,:1540
* da :1550,:1560,:1570,:1580
*
*-------- A
*
*:1500 lda N
* cmp SALLE
* bne :1505
* lda #1
* sta OK
*:1505 rts
*
*-------- B
*
*:1510 ldx N
* lda O,x
* cmp #-1
* beq :1515
* cmp SALLE
* bne :1516
*:1515 lda #1
* sta OK
*:1516 rts
*
*-------- C
*
*:1520 ldx N
* lda O,x
* cmp SALLE
* bne :1525
* rts
*:1525 cmp #-1
* bne :1527
* rts
*:1527 lda #1
* sta OK
* rts
*
*-------- D
*
*:1530 ldx N
* lda O,x
* cmp #-1
* bne :1535
* lda #1
* sta OK
*:1535 rts
*
*-------- E
*
*:1540 ldx N
* lda P,x
* cmp #1
* bne :1545
* lda #1
* sta OK
*:1545 rts
*
*-------- F
*
*:1550 ldx N
* lda P,x
* bne :1555
* lda #1
* sta OK
*:1555 rts
*
*-------- G
*
*:1560 ldx N
* lda C,x
* cmp #1
* bne :1565
* lda #1
* sta OK
*:1565 rts
*
*-------- H
*
*:1570 rts
* lda VBL ; LOGO - Use a better RND?
* eor VERTCNT
* cmp N
* bcs :1575
* lda #1
* sta OK
*:1575 rts
*
*-------- I
*
*:1580 lda N
* cmp SALLE
* beq :1585
* lda #1
* sta OK
*:1585 rts
*
*----------------------------------- *-----------------------------------
* 1700 - ACTIONS * 1700 - ACTIONS
*----------------------------------- *-----------------------------------
@ -614,22 +375,21 @@ PLAY sep #$30
:1710 ldx E :1710 ldx E
lda E$,x lda E$,x
sec sec
sbc #"A" sbc #'A'
asl
pha ; LI pha ; LI
lda E$+1,x lda E$+1,x
* cmp #"." cmp #'.'
* beq :1740 beq :1740
sec sec
sbc #"0" sbc #'0'
tay tay
lda tblD2H,y lda tblD2H,y
sta N sta N
lda E$+2,x lda E$+2,x
sec sec
sbc #"0" sbc #'0'
clc clc
adc N adc N
sta N sta N
@ -641,7 +401,8 @@ PLAY sep #$30
cmp #190 ; 255-65 = 190 = la fin cmp #190 ; 255-65 = 190 = la fin
beq :1760 beq :1760
:1745 tax :1745 asl
tax
lda tbl1800,x lda tbl1800,x
sta :1750+1 sta :1750+1
lda tbl1800+1,x lda tbl1800+1,x
@ -803,35 +564,6 @@ tbl1800 da :1800,:1900
*-------- G *-------- G
*:2400 ldx N
* lda tblAL$,x
* sta LINNUM
* lda tblAH$,x
* sta LINNUM+1
*
* ldy E ; +3
* iny
* iny
* sty E
* iny
* lda (LINNUM),y
* sec
* sbc #"0"
* tax
* lda tblD2H,x
*
* ldx N
* sta C,x
*
* iny
* lda (LINNUM),y
* sec
* sbc #"0"
* clc
* adc C,x
* sta C,x
* rts
:2400 ldy E ; +3 :2400 ldy E ; +3
iny iny
iny iny
@ -839,7 +571,7 @@ tbl1800 da :1800,:1900
iny iny
lda E$,y lda E$,y
sec sec
sbc #"0" sbc #'0'
tax tax
lda tblD2H,x lda tblD2H,x
@ -849,7 +581,7 @@ tbl1800 da :1800,:1900
iny iny
lda E$,y lda E$,y
sec sec
sbc #"0" sbc #'0'
clc clc
adc C,x adc C,x
sta C,x sta C,x
@ -862,36 +594,6 @@ tbl1800 da :1800,:1900
sta O,x sta O,x
rts rts
*:2500 ldx N
* lda O,x
* cmp #-1
* bne :2510
*
* dec S
*
*:2510 lda #0
* sta O,x
* rts
*
*:2500 lda N ; exchange object
* asl ; do it here on pointers
* tax ; not on strings
* lda tblO$,x
* pha
* lda tblO$+1,x
* pha
*
* lda tblO$+2,x
* sta tblO$,x
* lda tblO$+3,x
* sta tblO$+1,x
*
* pla
* sta tblO$+3,x
* pla
* sta tblO$+2,x
* rts
*-------- I *-------- I
:2600 lda N :2600 lda N
@ -979,9 +681,11 @@ tbl1800 da :1800,:1900
lda O,x lda O,x
cmp #-1 cmp #-1
bne :3516 bne :3516
:3512 ldx #8
dec C,x
:3514 ldx #8 :3514 ldx #8
dec C,x
lda C,x lda C,x
bne :3516 bne :3516
jmp :4740 jmp :4740
@ -989,15 +693,16 @@ tbl1800 da :1800,:1900
:3516 ldx #1 :3516 ldx #1
lda C,x lda C,x
beq :3534 beq :3534
sec
sbc #1 :3518 dec C,x
sta C,x
:3520 lda C,x
cmp #1 cmp #1
bcs :3534 bcs :3534
:3522 ldx #3 :3522 ldx #3
lda O,x lda O,x
cmp #255 cmp #-1
bne :3524 bne :3524
jmp :4750 jmp :4750
@ -1017,7 +722,7 @@ tbl1800 da :1800,:1900
ldx #$13 ldx #$13
lda O,x lda O,x
cmp #51 cmp #51
bne :3530 beq :3530
jmp :4780 jmp :4780
:3530 lda SALLE :3530 lda SALLE
@ -1040,7 +745,7 @@ tbl1800 da :1800,:1900
lda P,x lda P,x
beq :3537 beq :3537
ldx #2 :3535 ldx #2
dec C,x dec C,x
lda C,x lda C,x
cmp #1 cmp #1
@ -1050,14 +755,11 @@ tbl1800 da :1800,:1900
lda #0 lda #0
sta P,x sta P,x
:3537 ldx #$c :3537 ldx #$c ; LOGO - It was a PEEK not a DEEK
lda P,x lda P,x
beq :3538 cmp #0
bmi :3538 bcs :3540
lda P+1,x
beq :3538
bpl :3540
:3538 lda SALLE :3538 lda SALLE
cmp #50 cmp #50
beq :3540 beq :3540
@ -1078,7 +780,7 @@ tbl1800 da :1800,:1900
lda C,x lda C,x
beq :3548 beq :3548
:3546 ldx #6 :3546
dec C,x dec C,x
lda C,x lda C,x
bne :3548 bne :3548
@ -1103,7 +805,7 @@ tbl1800 da :1800,:1900
lda C,x lda C,x
beq :3556 beq :3556
:3554 ldx #4 :3554
dec C,x dec C,x
lda C,x lda C,x
cmp #1 cmp #1
@ -1205,7 +907,8 @@ tbl4000 da $bdbd,:4010,:4020,:4030,:4040,:4050,:4060,:4070,:4080,:4090
:4250 @print #str4250 :4250 @print #str4250
rts rts
:4260 @draw #57 :4260 jsr setHGR
@draw #57
lda #44 lda #44
sta SALLE sta SALLE
rts rts
@ -1301,32 +1004,39 @@ tbl4000 da $bdbd,:4010,:4020,:4030,:4040,:4050,:4060,:4070,:4080,:4090
:4540 @print #str4540 :4540 @print #str4540
rts rts
:4550 @draw #56 ; LOGO :4550 jsr setHGR
@draw #56 ; LOGO
jsr :12020 jsr :12020
lda #21 lda #21
sta SALLE sta SALLE
@gotoxy #43;#21-8 @gotoxy #43;#21 ; Vous avez deux essais pour
@printxy #str4550 @printxy #str4550
@gotoxy #43;#29-8 @gotoxy #43;#29 ; entrer le mot de passe
@printxy #str4552 @printxy #str4552
@gotoxy #43;#37 ; entrer le mot de passe
jsr :4556_input ; saisie 1 jsr :4556_input ; saisie 1
bcc :4554 ; ok bcc :4554 ; ok
@gotoxy #43;#45 ; entrer le mot de passe
@print #str4553 ; FAUX! @print #str4553 ; FAUX!
@gotoxy #43;#37 ; entrer le mot de passe
jsr :4556_input ; saisie 2 jsr :4556_input ; saisie 2
bcc :4554 ; ok bcc :4554 ; ok
@gotoxy #43;#45 ; entrer le mot de passe
@print #str4554 ; encore faux @print #str4554 ; encore faux
jmp :perdu ; ciao jmp :perdu ; ciao
:4554 @gotoxy #43;#42-8 :4554 @gotoxy #43;#56 ; 42
@printxy #str4558 @printxy #str4558
@gotoxy #43;#56-8 @gotoxy #43;#64 ; 56
@printxy #str4559_1 @printxy #str4559_1
@gotoxy #43;#67-8 @gotoxy #43;#72 ; 67
@printxy #str4559_2 @printxy #str4559_2
@gotoxy #43;#80-8 @gotoxy #43;#80
@printxy #str4559_3 @printxy #str4559_3
@gotoxy #43;#88-8 @gotoxy #43;#88
@printxy #str4559_4 @printxy #str4559_4
ldx #>MP$ ldx #>MP$
@ -1382,11 +1092,30 @@ MDP$ asc 'MANOIR'
:4610 @print #str4610 :4610 @print #str4610
jsr GETLN1 jsr GETLN1
cpx #5
bcc :4615
cpx #6
bcs :4615
jsr rewriteSTRING jsr rewriteSTRING
@print #str4615 ldx #5-1
]lp lda TEXTBUFFER,x
cmp MP$,x
bne :4615
dex
bpl ]lp
jmp :gagne
:4615 @print #str4615
@explode
@print #str4616 @print #str4616
rts @wait #400
@print #str4618_1
@wait #200
@print #str4618_2
@wait #200
@print #str4618_3
jmp :perdu
:4620 @print #str4620 :4620 @print #str4620
rts rts
@ -1418,6 +1147,7 @@ MDP$ asc 'MANOIR'
:4710 lda SALLE :4710 lda SALLE
pha pha
jsr setHGR
@draw #54 @draw #54
pla pla
sta SALLE sta SALLE
@ -1425,6 +1155,7 @@ MDP$ asc 'MANOIR'
:4720 lda SALLE :4720 lda SALLE
pha pha
jsr setHGR
@draw #55 @draw #55
pla pla
sta SALLE sta SALLE
@ -1756,6 +1487,25 @@ initALL
ldx #$c ldx #$c
sta P,x sta P,x
*--- Le mot de passe
]lp jsr RND
and #%0000_0111 ; 7
cmp #%0000_0101 ; 5
bcs ]lp
asl
tax
lda tblMP$,x
sta LINNUM
lda tblMP$+1,x
sta LINNUM+1
ldy #5-1
]lp lda (LINNUM),y
sta MP$,y
dey
bpl ]lp
*--- *---
ldx #nbO ; reset object table ldx #nbO ; reset object table
@ -1764,11 +1514,11 @@ initALL
dex dex
bpl ]lp bpl ]lp
ldx #nbO*2 ; reset object table * ldx #nbO*2 ; reset object table
]lp lda refO$,x *]lp lda refO$,x
sta tblO$,x * sta tblO$,x
dex * dex
bpl ]lp * bpl ]lp
rts rts
*----------------------------------- *-----------------------------------
@ -1792,9 +1542,6 @@ initALL
*----------------------------------- *-----------------------------------
:perdu @explode :perdu @explode
@draw #3
@wait #400
jsr setTEXTFULL jsr setTEXTFULL
@print #strPERDU @print #strPERDU
* @play #zikPERDU * @play #zikPERDU
@ -1815,8 +1562,6 @@ initALL
*----------------------------------- *-----------------------------------
:gagne :gagne
@draw #6
@wait #400
jsr setTEXTFULL jsr setTEXTFULL
@print #strGAGNE @print #strGAGNE
* @play #zikINTRODUCTION * @play #zikINTRODUCTION
@ -1979,8 +1724,10 @@ waitMS lda #0 ; skip if not zero
sty LINNUM sty LINNUM
doW1 ldy LINNUM doW1 ldy LINNUM
doW2 lda #60 ; 1/100<30>me de seconde doW2 ldal RDVBLBAR
jsr WAIT bpl doW2
*doW3 ldal RDVBLBAR
* bmi doW3
dey dey
bne doW2 bne doW2
dex dex

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

View File

@ -1,6 +1,4 @@
RETOUR DU DR. GENIUS - A French Oric adventure... E RETOUR DU DR. GENIUS - A French Oric adventure...
E
E E
N N
D D
@ -55,7 +53,7 @@ S
O O
O O
Pren Tube Pren Tube
Tube Dans Glac Rang Tube ; au lieu de TUBE DANS GLAC (qui ne fonctionnait pas)
E E
E E
N N
@ -90,9 +88,8 @@ E
E E
N N
Corr Traj Corr Traj
Allu Ordi Allu Ordi password is "MANOIR"; write down password for way back
password is Manoir'; write down password for way back possible return passwords are ORIC1 ATMOS GENIE ECHEC ARGON
possible codes for the return password are ORIC1 ATMOS GENIE ECHEC ARGON
Etei Ordi Etei Ordi
S S
O O
@ -108,7 +105,6 @@ D
S S
O O
O O
O
S S
E E
N N

View File

@ -3,11 +3,13 @@
400 0, 1, 2 - dŽfinit le cadre dessinŽ 400 0, 1, 2 - dŽfinit le cadre dessinŽ
401 pointeurs sur les 57 images du jeu 401 pointeurs sur les 57 images du jeu
47A..47E password 47A..47E password
480 P - les pointeurs 480.4FF est mis ˆ zŽro 480 P - les pointeurs 480.4FF est mis ˆ zŽro
491 ˆ 1 = aveugle 491 - ˆ 1 = aveugle
4A0 C - les conditions 4A0 C - les conditions
4BF flag pour le temps, 0:off, 1:on 4BF - flag pour le temps, 0:off, 1:on
4C0 O - les objets 4C0 O - les objets
4F7..4F8 CH, unitŽs de force 4F7..4F8 CH, unitŽs de force
4F9 S(1) 4F9 S(1)
4FA SALLE 4FA SALLE

View File

@ -132,21 +132,25 @@ SALLE 2600 POKE #BFFF,N:RETURN
3000 BR=100:RETURN 3000 BR=100:RETURN
I'm dead 3100 POP:WAIT 30:GOTO 18000 I'm dead 3100 POP:WAIT 30:GOTO 18000
O+N,SA 3200 SA=PEEK(#BFFF):POKE #4C0+N,SA:RETURN O+N,SA 3200 SA=PEEK(#BFFF):POKE #4C0+N,SA:RETURN
P+1 3500 IF PEEK(#BFFF)=11 THEN POKE #481,1 P+1 3500 IF PEEK(#BFFF)=11 THEN POKE #481,1
P+1 3502 IF PEEK(#BFFF)=19 THEN POKE #481,0 P+1 3502 IF PEEK(#BFFF)=19 THEN POKE #481,0
P+2 3504 IF PEEK(#BFFF)<>36 OR PEEK(#482)=1 THEN 3510 P+2 3504 IF PEEK(#BFFF)<>36 OR PEEK(#482)=1 THEN 3510
O+D, P+2 3506 IF PEEK(#4CD)=255 THEN WAIT 100:GOSUB 4010:POKE #482,1:GOTO 3510 O+D, P+2 3506 IF PEEK(#4CD)=255 THEN WAIT 100:GOSUB 4010:POKE #482,1:GOTO 3510
3508 WAIT 100:GOTO 4020 3508 WAIT 100:GOTO 4020
O+4 3510 IF PEEK(#4C4)<>255 THEN 3516 O+4 3510 IF PEEK(#4C4)<>255 THEN 3516
C+8 3512 A=PEEK(#4A8)-1:POKE #4A8,A C+8 3512 A=PEEK(#4A8)-1:POKE #4A8,A
C+8 3514 IF PEEK(#4A8)=0 THEN 4740 C+8 3514 IF PEEK(#4A8)=0 THEN 4740
C+1 3516 IF PEEK(#4A1)=0 THEN 3534 C+1 3516 IF PEEK(#4A1)=0 THEN 3534
C+1 3518 A=PEEK(#4A1)-1:POKE #4A1,A C+1 3518 A=PEEK(#4A1)-1:POKE #4A1,A
3520 IF A>0 THEN 3534 3520 IF A>0 THEN 3534
O+3 3522 IF PEEK(#4C3)=255 THEN 4750 O+3 3522 IF PEEK(#4C3)=255 THEN 4750
O+3 3524 IF PEEK(#4C3)<>51 THEN 4760 O+3 3524 IF PEEK(#4C3)<>51 THEN 4760
3526 A=PEEK(#BFFF):IF A=51 THEN 4750 3526 A=PEEK(#BFFF):IF A=51 THEN 4750
O+4 3528 IF PEEK(#4C4)<>51 AND PEEK(#4D3)<>51 THEN 4780 O+4 3528 IF PEEK(#4C4)<>51 AND PEEK(#4D3)<>51 THEN 4780
3530 IF A=46 OR A=49 THEN 4770 3530 IF A=46 OR A=49 THEN 4770
P+$C, P+$10 3532 POKE #48C,0:GOSUB 4790:POKE #490,1:GOTO 3540 P+$C, P+$10 3532 POKE #48C,0:GOSUB 4790:POKE #490,1:GOTO 3540
P+$E 3534 IF PEEK(#48E)=0 THEN 3537 P+$E 3534 IF PEEK(#48E)=0 THEN 3537
@ -154,15 +158,18 @@ C+2 3535 A=PEEK(#4A2)-1:POKE #4A2,A:IF A>0 THEN 3540
P+$E 3536 POKE #48E,0 P+$E 3536 POKE #48E,0
P+$C..$D 3537 IF DEEK(#48C)>0 THEN 3540 P+$C..$D 3537 IF DEEK(#48C)>0 THEN 3540
SALLE 3538 IF PEEK(#BFFF)=50 THEN 3540 ELSE 4800 SALLE 3538 IF PEEK(#BFFF)=50 THEN 3540 ELSE 4800
P+$10 3540 IF PEEK(#490)=0 THEN 3544 P+$10 3540 IF PEEK(#490)=0 THEN 3544
C+5 3542 A=PEEK(#4A5)-1:POKE #4A5,A:IF A=1 THEN 4810 C+5 3542 A=PEEK(#4A5)-1:POKE #4A5,A:IF A=1 THEN 4810
C+6 3544 IF PEEK(#4A6)=0 THEN 3548 C+6 3544 IF PEEK(#4A6)=0 THEN 3548
C+6 3546 A=PEEK(#4A6)-1:POKE #4A6,A:IF A=0 THEN GOSUB 4830:POKE #488,0 C+6 3546 A=PEEK(#4A6)-1:POKE #4A6,A:IF A=0 THEN GOSUB 4830:POKE #488,0
P+8 3548 IF PEEK(#488)=1 THEN 3552 P+8 3548 IF PEEK(#488)=1 THEN 3552
C+7 3550 A=PEEK(#4A7)-1:POKE #4A7,A:IF A=0 THEN GOSUB 4580:GOTO 18E3 C+7 3550 A=PEEK(#4A7)-1:POKE #4A7,A:IF A=0 THEN GOSUB 4580:GOTO 18E3
C+4 3552 IF PEEK(#4A4)=0 THEN 3556 C+4 3552 IF PEEK(#4A4)=0 THEN 3556
C+4 3554 A=PEEK(#4A4)-1:POKE #4A4,A:IF A=1 THEN 4840 C+4 3554 A=PEEK(#4A4)-1:POKE #4A4,A:IF A=1 THEN 4840
3556 GOTO 530 3556 GOTO 530
4010 PRINT "Une boule d'acier tombee du plafond" 4010 PRINT "Une boule d'acier tombee du plafond"
4011 PRINT "vient de s'ecraser sur votre casque.":RETURN 4011 PRINT "vient de s'ecraser sur votre casque.":RETURN
4020 PRINT "Une boule d'acier vient de tomber du" 4020 PRINT "Une boule d'acier vient de tomber du"