mirror of
https://github.com/antoinevignau/source.git
synced 2025-01-22 14:30:24 +00:00
2893 lines
35 KiB
ArmAsm
2893 lines
35 KiB
ArmAsm
*
|
||
* Le manoir du Dr Genius
|
||
*
|
||
* (c) 1983, Loriciels (Oric)
|
||
* (c) 2023, Brutal Deluxe Software (Apple II)
|
||
*
|
||
|
||
mx %11
|
||
org $4000
|
||
lst off
|
||
|
||
*-----------------------------------
|
||
* SOFTSWITCHES AND FRIENDS
|
||
*-----------------------------------
|
||
|
||
WNDTOP = $22 ; top of text window
|
||
WNDBTM = $23 ; bottom+1 of text window
|
||
CH = $24 ; cursor horizontal position
|
||
CV = $25 ; cursor vertical position
|
||
LINNUM = $50 ; result from GETADR
|
||
X0L = $e0 ; X-coord
|
||
X0H = $e1
|
||
Y0 = $e2 ; Y-coord
|
||
|
||
maxY = 191 ; 0 to 191 = 192
|
||
|
||
chrRET2 = $8d
|
||
chrSPC2 = $a0
|
||
TEXTBUFFER = $200
|
||
|
||
chrOUI = "O"
|
||
chrNON = "N"
|
||
|
||
PRODOS = $bf00
|
||
|
||
KBD = $c000
|
||
CLR80VID = $c00c
|
||
KBDSTROBE = $c010
|
||
VBL = $c019
|
||
VERTCNT = $c02e
|
||
SPKR = $c030
|
||
CYAREG = $C036
|
||
TXTCLR = $c050
|
||
TXTSET = $c051
|
||
MIXCLR = $c052
|
||
MIXSET = $c053
|
||
TXTPAGE1 = $c054
|
||
TXTPAGE2 = $c055
|
||
LORES = $c056
|
||
HIRES = $c057
|
||
|
||
*--- The firmware routines
|
||
|
||
HGR = $F3E2 ; HGR
|
||
HPLOT = $F457 ; HPLOT
|
||
HILIN = $F53A ; HPLOT TO
|
||
HCOLOR = $F6E9 ; HCOLOR= (call+3)
|
||
INIT = $FB2F
|
||
TABV = $FB5B
|
||
HOME = $FC58
|
||
WAIT = $FCA8
|
||
RDKEY = $FD0C
|
||
GETLN1 = $FD6F
|
||
COUT = $FDED
|
||
IDROUTINE = $FE1F
|
||
SETNORM = $FE84
|
||
SETKBD = $FE89
|
||
|
||
*-----------------------------------
|
||
* MACROS
|
||
*-----------------------------------
|
||
|
||
@draw mac
|
||
ldx #>]1
|
||
ldy #<]1
|
||
jsr drawPICTURE
|
||
eom
|
||
|
||
@explode mac
|
||
jsr EXPLODE
|
||
eom
|
||
|
||
@play mac
|
||
ldx #>]1
|
||
ldy #<]1
|
||
jsr playMUSIC
|
||
eom
|
||
|
||
@print mac
|
||
ldx #>]1
|
||
ldy #<]1
|
||
jsr printCSTRING
|
||
eom
|
||
|
||
@wait mac
|
||
ldx #>]1
|
||
ldy #<]1
|
||
jsr waitMS
|
||
eom
|
||
|
||
*-----------------------------------
|
||
* CODE BASIC EN ASM :-)
|
||
*-----------------------------------
|
||
|
||
sec
|
||
jsr IDROUTINE
|
||
bcs notiigs
|
||
|
||
lda CYAREG ; 1 MHz vaincra!
|
||
sta sauveCYA
|
||
and #%0111_1111
|
||
sta CYAREG
|
||
notiigs
|
||
|
||
*-------- CAN WE DO lowercase?
|
||
|
||
lda $FBB3
|
||
cmp #$06
|
||
beq lowerOK
|
||
|
||
lda #$80 ; ONLY UPPERCASE
|
||
sta fgCASE
|
||
lowerOK
|
||
|
||
*--------
|
||
|
||
jsr introPIC ; la picture GR
|
||
jsr :51000 ; le disclaimer
|
||
jsr :40000 ; les instructions
|
||
|
||
REPLAY
|
||
jsr initALL
|
||
jsr HGR
|
||
|
||
lda #20 ; et c'est fen<65>trŽ en plus !
|
||
sta WNDTOP
|
||
lda #24
|
||
sta WNDBTM
|
||
jsr HOME
|
||
|
||
*-----------------------------------
|
||
* DU BASIC A L'ASSEMBLEUR (BEURK)
|
||
*-----------------------------------
|
||
|
||
:100 lda SALLE
|
||
cmp #14
|
||
beq :105
|
||
cmp #16
|
||
beq :105
|
||
cmp #17
|
||
beq :105
|
||
cmp #19
|
||
beq :105
|
||
|
||
lda #0
|
||
ldx #2
|
||
sta P,x
|
||
|
||
:105 ldx #2
|
||
lda P,x
|
||
beq :200
|
||
|
||
ldx #22
|
||
lda O,x
|
||
cmp SALLE
|
||
bne :107
|
||
ldx #7
|
||
lda P,x
|
||
cmp #1
|
||
beq :200
|
||
|
||
:107 ldx #5
|
||
lda O,x
|
||
cmp SALLE
|
||
bne :110
|
||
ldx #3
|
||
lda P,x
|
||
cmp #1
|
||
beq :200
|
||
|
||
:110 ldx #9
|
||
lda C,x
|
||
cmp #2
|
||
bcc :130
|
||
sec ; enter if >1
|
||
sbc #1
|
||
sta C,x
|
||
|
||
:130 jsr HGR
|
||
jsr setMIXEDON
|
||
@print #strILFAITNOIR
|
||
@wait #400
|
||
jmp :500
|
||
|
||
*-----------------------------------
|
||
* 200 - description salle
|
||
*-----------------------------------
|
||
|
||
:200 jsr setHGR
|
||
|
||
@print #strVOUS ; always output "VOUS ETES "
|
||
|
||
lda SALLE
|
||
asl
|
||
tax
|
||
lda tbl7000,x
|
||
sta :222+1
|
||
lda tbl7000+1,x
|
||
sta :222+2
|
||
|
||
:222 jsr $bdbd
|
||
jsr setMIXEDON
|
||
|
||
:300 lda #0
|
||
sta H
|
||
sta HH ; for comma
|
||
lda #1
|
||
sta N
|
||
|
||
:310 ldx N
|
||
lda O,x
|
||
cmp SALLE
|
||
bne :400
|
||
|
||
lda H
|
||
bne :350
|
||
|
||
@print #strILYA
|
||
|
||
inc H
|
||
|
||
:350 lda HH
|
||
beq :360
|
||
|
||
@print #strCOMMA
|
||
|
||
:360 @print #strSPACE
|
||
lda N
|
||
asl
|
||
tax
|
||
ldy tblO$,x
|
||
lda tblO$+1,x
|
||
tax
|
||
jsr printCSTRING
|
||
@wait #150
|
||
|
||
inc HH
|
||
|
||
:400 inc N
|
||
lda N
|
||
cmp #nbO ; la constante 25
|
||
bcc :310
|
||
beq :310
|
||
|
||
@print #strRETURN
|
||
|
||
*-----------------------------------
|
||
* 500 - ACCEPTATION COMMANDE
|
||
*-----------------------------------
|
||
|
||
:500 lda #1
|
||
sta T
|
||
lda #0
|
||
sta N
|
||
jmp :1000
|
||
|
||
:530 ldx #7
|
||
lda C,x
|
||
cmp #1+1
|
||
bcc :540
|
||
lda P,x
|
||
cmp #1
|
||
bne :540
|
||
lda C,x
|
||
sec
|
||
sbc #1
|
||
sta C,x
|
||
|
||
:540 ldx #3
|
||
lda C,x
|
||
cmp #1+1
|
||
bcc :545
|
||
lda P,x
|
||
cmp #1
|
||
bne :545
|
||
lda C,x
|
||
sec
|
||
sbc #1
|
||
sta C,x
|
||
|
||
:545 ldx #4
|
||
lda C,x
|
||
cmp #1+1
|
||
bcc :547
|
||
lda P,x
|
||
cmp #1
|
||
bne :547
|
||
lda C,x
|
||
sec
|
||
sbc #1
|
||
sta C,x
|
||
|
||
:547 ldx #5
|
||
lda C,x
|
||
cmp #1+1
|
||
bcc :550
|
||
lda C,x
|
||
sec
|
||
sbc #1
|
||
sta C,x
|
||
|
||
:550 @print #strCOMMANDE
|
||
jsr GETLN1
|
||
|
||
lda TEXTBUFFER
|
||
cmp #chrRET2
|
||
bne :570
|
||
jsr switchVIDEO
|
||
jmp :550
|
||
|
||
:570 stx lenSTRING ; longueur de la chaine saisie
|
||
jsr rewriteSTRING ; from lower to upper
|
||
jsr :6000 ; cherche les mots
|
||
|
||
lda MO$1
|
||
bne :900
|
||
|
||
@print #strJENECOMPRENDS
|
||
@wait #200
|
||
jmp :100
|
||
|
||
*-----------------------------------
|
||
* 900 - CONTROLES APPLE II
|
||
*-----------------------------------
|
||
|
||
:900 cmp #59 ; switch wait to de/accelerate the game
|
||
bne :905
|
||
|
||
jsr switchWAIT
|
||
jmp :100
|
||
|
||
:905 cmp #60 ; quitter
|
||
bne :910
|
||
jmp :20050
|
||
|
||
:910 cmp #61
|
||
bne :915
|
||
|
||
jsr switchCASE
|
||
jmp :100
|
||
|
||
*-----------------------------------
|
||
* 910 - CONTROLE MVT
|
||
*-----------------------------------
|
||
|
||
:915 ldy #0
|
||
|
||
:920 lda SALLE ; T$=MID(M$(SALLE),Z,2)
|
||
asl
|
||
tax
|
||
lda tblM$,x
|
||
sta LINNUM
|
||
lda tblM$+1,x
|
||
sta LINNUM+1
|
||
|
||
lda (LINNUM),y
|
||
beq :980
|
||
cmp MO$1
|
||
bne :970
|
||
|
||
:950 iny
|
||
lda (LINNUM),y
|
||
sta SALLE
|
||
jmp :100
|
||
|
||
:970 iny
|
||
iny
|
||
bne :920
|
||
|
||
:980 lda #0
|
||
sta T
|
||
sta A1
|
||
|
||
*-----------------------------------
|
||
* 1000 - CONTROLE
|
||
*-----------------------------------
|
||
|
||
: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 #10+1
|
||
bcs :1190
|
||
|
||
@print #strCECHEMIN
|
||
|
||
:1190 @print #strEXCLAM
|
||
jmp :100
|
||
|
||
:1200 lda NL
|
||
sec
|
||
sbc #1
|
||
asl
|
||
tax
|
||
lda tblA,x
|
||
cmp MO$1
|
||
beq :1210
|
||
jmp :1100
|
||
|
||
:1210 lda tblA+1,x
|
||
beq :1230
|
||
cmp MO$2
|
||
beq :1230
|
||
jmp :1100
|
||
|
||
:1230 lda tblA$,x
|
||
sta LINNUM
|
||
lda tblA$+1,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 ; 7893
|
||
lda E$,x ; 7894
|
||
cmp #"."
|
||
bne :1430
|
||
jmp :1700 ; do actions
|
||
|
||
:1430 sec ; 428F
|
||
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
|
||
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 inc E
|
||
|
||
lda #1
|
||
sta A1
|
||
|
||
:1710 ldx E
|
||
lda E$,x
|
||
cmp #"."
|
||
bne :1720
|
||
jmp :1100
|
||
|
||
:1720 sec
|
||
sbc #"A"
|
||
asl
|
||
pha ; LI
|
||
|
||
lda E$+1,x
|
||
cmp #"."
|
||
beq :1740
|
||
|
||
sec
|
||
sbc #"0"
|
||
tay
|
||
lda tblD2H,y
|
||
sta N
|
||
|
||
lda E$+2,x
|
||
sec
|
||
sbc #"0"
|
||
clc
|
||
adc N
|
||
sta N
|
||
|
||
:1740 lda #0
|
||
sta BREAK
|
||
|
||
pla
|
||
tax
|
||
lda tbl1800,x
|
||
sta :1750+1
|
||
lda tbl1800+1,x
|
||
sta :1750+2
|
||
|
||
:1750 jsr $bdbd
|
||
|
||
lda BREAK
|
||
beq :1780
|
||
asl
|
||
tax
|
||
lda tblBRKA,x
|
||
sta :1762+1
|
||
lda tblBRKA+1,x
|
||
sta :1762+2
|
||
:1762 jmp $bdbd
|
||
|
||
:1780 lda E
|
||
clc
|
||
adc #3
|
||
sta E
|
||
jmp :1710
|
||
|
||
*-------- The modified BREAK table
|
||
|
||
tblBRKA da $bdbd
|
||
da :100,:300,:500,:530,:20000
|
||
|
||
*-----------------------------------
|
||
* 1800
|
||
*-----------------------------------
|
||
|
||
tbl1800 da :1800,:1900
|
||
da :2000,:2100,:2200,:2300,:2400,:2500,:2600,:2700,:2800,:2900
|
||
da :3000,:3100,:3200,:3300
|
||
|
||
*-------- A
|
||
|
||
:1800 lda #0
|
||
sta G
|
||
sta HH
|
||
sta H ; for comma
|
||
|
||
:1810 inc G
|
||
lda G
|
||
tax
|
||
lda O,x
|
||
cmp #-1
|
||
beq :1840
|
||
|
||
lda G
|
||
cmp #nbO
|
||
bcc :1810
|
||
bcs :1870
|
||
|
||
:1840 lda HH
|
||
bne :1850
|
||
|
||
@print #strVOUSDETENEZ
|
||
@wait #100
|
||
|
||
:1850 inc HH
|
||
|
||
lda H
|
||
beq :1860
|
||
|
||
@print #strCOMMA
|
||
|
||
:1860 lda G
|
||
asl
|
||
tax
|
||
ldy tblO$,x
|
||
lda tblO$+1,x
|
||
tax
|
||
jsr printCSTRING
|
||
@print #strSPACE
|
||
@wait #150
|
||
|
||
inc H
|
||
|
||
lda G
|
||
cmp #V
|
||
bcc :1810
|
||
|
||
:1870 lda HH
|
||
beq :1880
|
||
|
||
@print #strPOINT
|
||
rts
|
||
|
||
:1880 @print #strVOUSRIEN
|
||
@wait #200
|
||
rts
|
||
|
||
*-------- B
|
||
|
||
:1900 lda S
|
||
cmp #5
|
||
bcc :1930
|
||
|
||
@print #strEVIDENT
|
||
|
||
:1920 @wait #250
|
||
lda #1
|
||
sta BREAK
|
||
rts
|
||
|
||
:1930 ldx N
|
||
lda O,x
|
||
cmp #-1
|
||
bne :1960
|
||
|
||
@print #strVOUSLAVEZ
|
||
@wait #400
|
||
@print #strCONSEILLE
|
||
jmp :1920
|
||
|
||
:1960 ldx N
|
||
lda #-1
|
||
sta O,x
|
||
|
||
inc S
|
||
rts
|
||
|
||
*-------- C
|
||
|
||
:2000 ldx N
|
||
lda O,x
|
||
cmp #-1
|
||
beq :2030
|
||
|
||
@print #strNOTOWNED
|
||
jmp :1920
|
||
|
||
:2030 lda SALLE
|
||
sta O,x
|
||
|
||
dec S
|
||
rts
|
||
|
||
*-------- D
|
||
|
||
:2100
|
||
lda N
|
||
asl
|
||
tax
|
||
lda tbl4000,x
|
||
sta :2112+1
|
||
lda tbl4000+1,x
|
||
sta :2112+2
|
||
|
||
:2112 jmp $bdbd
|
||
|
||
*-------- E
|
||
|
||
:2200 ldx N
|
||
lda #1
|
||
sta P,x
|
||
rts
|
||
|
||
*-------- F
|
||
|
||
:2300 ldx N
|
||
lda #0
|
||
sta P,x
|
||
rts
|
||
|
||
*-------- G
|
||
|
||
:2400 lda N
|
||
sec
|
||
sbc #1
|
||
asl
|
||
tax
|
||
lda tblA$,x
|
||
sta LINNUM
|
||
lda tblA$+1,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
|
||
|
||
*-------- H
|
||
|
||
:2500 ldx N
|
||
lda O,x
|
||
cmp #-1
|
||
bne :2510
|
||
|
||
dec S
|
||
|
||
:2510 ldx N
|
||
lda #0
|
||
sta O,x
|
||
rts
|
||
|
||
*-------- I
|
||
|
||
:2600 lda N
|
||
sta SALLE
|
||
rts
|
||
|
||
*-------- J
|
||
|
||
:2700 @print #strDACCORD
|
||
@wait #150
|
||
lda #2
|
||
sta BREAK
|
||
rts
|
||
|
||
*-------- K
|
||
|
||
:2800 lda #3
|
||
sta BREAK
|
||
rts
|
||
|
||
*-------- L
|
||
|
||
:2900 lda #4
|
||
sta BREAK
|
||
rts
|
||
|
||
*-------- M
|
||
|
||
:3000 lda #1
|
||
sta BREAK
|
||
rts
|
||
|
||
*-------- N
|
||
|
||
:3100
|
||
* pla
|
||
* pla
|
||
jmp :20000
|
||
|
||
*-------- O
|
||
|
||
:3200 ldx N
|
||
lda SALLE
|
||
sta O,x
|
||
rts
|
||
|
||
*-------- P
|
||
|
||
:3300 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
|
||
|
||
*-----------------------------------
|
||
* 4000 - LES REPONSES
|
||
*-----------------------------------
|
||
|
||
tbl4000 da :4000,:4010,:4020,:4030,:4040,:4050,:4060,:4070,:4080,:4090
|
||
da :4100,:4110,:4120,:4130,:4140,:4150,:4160,:4170,:4180,:4190
|
||
da :4200,:4210,:4220,:4230,:4240,:4250,:4260,:4270,:4280,:4290
|
||
da :4300,:4310,:4320,:4330,:4340,:4350,:4360,:4370,:4380,:4390
|
||
da :4400,:4410,:4420,:4430,:4440,:4450,:4460,:4470,:4480,:4490
|
||
da :4500,:4510,:4520,:4530,:4540,:4550,:4560,:4570,:4580,:4590
|
||
da :4600,:4610,:4620,:4630,:4640
|
||
|
||
*--------
|
||
|
||
:4000 @explode
|
||
@print #str4000
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4010 @print #str4010
|
||
@wait #500
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4020 @print #str4020
|
||
@wait #500
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4030 @print #str4030
|
||
@wait #500
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4040 @print #str4040
|
||
@wait #300
|
||
@print #str4042
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4050 @print #str4050
|
||
@wait #500
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4060 @print #str4060
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4070 @explode
|
||
@print #str4070
|
||
@wait #500
|
||
@print #str4072
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4080 @print #str4080
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4090 @print #str4090
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4100 @print #str4100
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4110 @print #str4110
|
||
@wait #500
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4120 @print #str4120
|
||
@wait #400
|
||
@print #str4124
|
||
@wait #250
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4130 @print #str4130
|
||
@wait #400
|
||
|
||
* pla
|
||
* pla
|
||
|
||
@print #str4133
|
||
@wait #200
|
||
jmp :20050
|
||
|
||
*--------
|
||
|
||
:4140 @print #str4140
|
||
@wait #450
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4150 @print #str4150
|
||
@wait #400
|
||
@print #str4152
|
||
@wait #500
|
||
@print #str4156
|
||
@wait #200
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4160 @print #str4160
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4170 @print #str4170
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4180 @print #str4180
|
||
@explode
|
||
@wait #300
|
||
@print #str4185
|
||
@wait #200
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4190 @print #str4190
|
||
@wait #300
|
||
@print #str4195
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4200 @print #str4200
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4210 @print #str4210
|
||
@wait #400
|
||
@print #str4215
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4220 @print #str4220
|
||
@wait #200
|
||
@print #str4225
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4230 @explode
|
||
@print #str4230
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4240 @print #str4240
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4250 @print #str4250
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4260 @print #str4260
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4270 @print #str4270
|
||
@wait #200
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4280 @print #str4280
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4290 @print #str4290
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4300 @print #str4300
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4310 @print #str4310
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4320 @print #str4320
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4330 @print #str4330
|
||
@wait #200
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4340 @print #str4340
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4350 @explode
|
||
@print #str4350
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4360 @print #str4360
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4370 @print #str4370
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4380 @print #str4380
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4390 @print #str4390
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4400 @print #str4400
|
||
@wait #150
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4410 @print #str4410
|
||
@wait #200
|
||
@print #str4412
|
||
@wait #200
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4420 @print #str4420
|
||
@wait #200
|
||
@print #str4425
|
||
@wait #200
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4430 @print #str4430
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4440 @print #str4440
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4450 @print #str4450
|
||
@wait #100
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4460 @print #str4460
|
||
@wait #250
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4470 @print #str4470
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4480 @explode
|
||
@print #str4480
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4490 @explode
|
||
@print #str4490
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4500 @print #str4500
|
||
@wait #300
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4510 @print #str4510
|
||
@wait #150
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4520 @print #str4520
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4530 @print #str4530
|
||
@wait #200
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4540 @print #str4540
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4550 @print #str4550
|
||
@print #PL
|
||
@print #str4552
|
||
@wait #300
|
||
@print #str4555
|
||
@wait #150
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4560 @explode
|
||
@print #str4560
|
||
@wait #200
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4570 @explode
|
||
@print #str4570
|
||
@wait #250
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4580 @print #str4580
|
||
@wait #300
|
||
@print #str4582
|
||
@wait #100
|
||
@print #str4585
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4590 @print #str4590
|
||
jsr GETLN1
|
||
* cpx #4
|
||
* bne :4595
|
||
|
||
ldx #4-1
|
||
]lp lda TEXTBUFFER,x
|
||
cmp PL,x
|
||
bne :4595
|
||
dex
|
||
bpl ]lp
|
||
bmi :4600 ; t'as gagnŽ
|
||
:4595 jmp :4570 ; t'as perdu
|
||
|
||
*-----------------------------------
|
||
* 4600
|
||
*-----------------------------------
|
||
|
||
:4600
|
||
@wait #200 ; et le texte
|
||
@print #strCODEEXACT
|
||
@wait #400
|
||
jsr :10000
|
||
@print #strENDEHORS
|
||
jmp :32000
|
||
|
||
*--------
|
||
|
||
:4610
|
||
@print #str4610
|
||
@wait #400
|
||
@print #str4615
|
||
@wait #150
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4620
|
||
@print #str4620
|
||
@wait #350
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4630
|
||
@print #str4630
|
||
@wait #400
|
||
rts
|
||
|
||
*--------
|
||
|
||
:4640
|
||
@print #str4640
|
||
@wait #350
|
||
rts
|
||
|
||
*-----------------------------------
|
||
* 6000 - ANALYSE DU MOT
|
||
*-----------------------------------
|
||
|
||
:6000 lda #0
|
||
sta N
|
||
sta X$1
|
||
sta X$2
|
||
|
||
sta MO$1
|
||
sta MO$2
|
||
|
||
* 1. cherche le premier caract<EFBFBD>re
|
||
|
||
ldx #0 ; cherche le premier caractere
|
||
]lp lda TEXTBUFFER,x
|
||
* cmp #chrRET2
|
||
* beq :6021
|
||
cmp #chrSPC2
|
||
bne :6022 ; on a trouvŽ un caract<63>re
|
||
inx
|
||
cpx lenSTRING
|
||
* bcs :6021
|
||
* cpx #nbCAR
|
||
bcc ]lp
|
||
:6021 rts ; retourne sans avoir trouve
|
||
|
||
* 2. recopie le mot
|
||
|
||
* 0123456789A
|
||
* 123456789
|
||
* PREN COMBI\
|
||
|
||
:6022 ldy #1
|
||
]lp lda TEXTBUFFER,x
|
||
cmp #chrRET2
|
||
beq :6023
|
||
cmp #chrSPC2
|
||
beq :6023
|
||
sta X$1,y ; 0P1R2E3N4
|
||
inx
|
||
cpx lenSTRING
|
||
bcs :6023
|
||
iny
|
||
cpy #4
|
||
bcc ]lp
|
||
beq ]lp
|
||
dey
|
||
:6023 sty X$1 ; sauve la longueur
|
||
|
||
* 3. cherche un espace
|
||
|
||
* inx
|
||
]lp lda TEXTBUFFER,x
|
||
* cmp #chrRET2
|
||
* beq :6032
|
||
cmp #chrSPC2
|
||
beq :6032
|
||
inx ; 5
|
||
cpx lenSTRING
|
||
* bcs :6100
|
||
* cpx #nbCAR
|
||
bcc ]lp
|
||
bcs :6100
|
||
|
||
* 4. recopie le mot
|
||
|
||
:6032 inx
|
||
ldy #1
|
||
]lp lda TEXTBUFFER,x
|
||
cmp #chrRET2
|
||
beq :6033
|
||
cmp #chrSPC2
|
||
beq :6033
|
||
sta X$2,y
|
||
inx
|
||
cpx lenSTRING
|
||
bcs :6033
|
||
iny
|
||
cpy #4
|
||
bcc ]lp
|
||
beq ]lp
|
||
dey
|
||
:6033 sty X$2 ; sauve la longueur
|
||
|
||
* 5. cherche le mot dans les options
|
||
* X$1 4 PREN
|
||
* X$2 4 LAMP
|
||
* V$x 6 04PREN
|
||
* 0 123456
|
||
|
||
:6100 lda X$1
|
||
bne :6110
|
||
rts
|
||
|
||
:6110 ldy #1
|
||
]lp tya
|
||
asl
|
||
tax
|
||
lda tblV$,x
|
||
sta :6225+1
|
||
lda tblV$+1,x
|
||
sta :6225+2
|
||
|
||
ldx #1
|
||
:6225 lda $bdbd,x
|
||
cmp X$1,x
|
||
bne :6250
|
||
inx
|
||
cpx X$1
|
||
bcc :6225
|
||
beq :6225
|
||
|
||
lda tblV,y
|
||
sta MO$1
|
||
bne :6300
|
||
|
||
:6250 iny
|
||
cpy #V
|
||
bcc ]lp
|
||
beq ]lp
|
||
|
||
* 6. on change de mot
|
||
|
||
:6300 lda X$2
|
||
bne :6310
|
||
rts
|
||
|
||
:6310 ldy #1
|
||
]lp tya
|
||
asl
|
||
tax
|
||
lda tblV$,x
|
||
sta :6325+1
|
||
lda tblV$+1,x
|
||
sta :6325+2
|
||
|
||
ldx #1
|
||
:6325 lda $bdbd,x
|
||
cmp X$2,x
|
||
bne :6350
|
||
inx
|
||
cpx X$2
|
||
bcc :6325
|
||
beq :6325
|
||
|
||
lda tblV,y
|
||
sta MO$2
|
||
bne :6400
|
||
|
||
:6350 iny
|
||
cpy #V
|
||
bcc ]lp
|
||
beq ]lp
|
||
|
||
:6400 rts
|
||
|
||
*-----------------------------------
|
||
* 7000 - DESCRIPTION DES PIECES
|
||
*-----------------------------------
|
||
|
||
tbl7000
|
||
da $bdbd
|
||
da :7000
|
||
da :7010
|
||
da :7020
|
||
da :7030
|
||
da :7040
|
||
da :7050
|
||
da :7060
|
||
da :7070
|
||
da :7080
|
||
da :7090
|
||
da :7100
|
||
da :7110
|
||
da :7120
|
||
da :7130
|
||
da :7140
|
||
da :7150
|
||
da :7160
|
||
da :7170
|
||
da :7180
|
||
da :7190
|
||
da :7200
|
||
da :7210
|
||
da :7220
|
||
da :7230
|
||
da :7240
|
||
|
||
:7000
|
||
@print #str7000
|
||
@wait #250
|
||
@print #str7001
|
||
jsr :10000
|
||
rts
|
||
|
||
:7010
|
||
@print #str7010
|
||
jmp :10100
|
||
|
||
:7020
|
||
@print #str7020
|
||
jmp :10200
|
||
|
||
:7030
|
||
@print #str7030
|
||
lda #0
|
||
sta F1
|
||
jmp :10300
|
||
|
||
:7040
|
||
@print #str7040
|
||
lda #1
|
||
sta F1
|
||
jmp :10300
|
||
|
||
:7050
|
||
@print #str7050
|
||
jmp :10500
|
||
|
||
:7060
|
||
@print #str7060
|
||
jmp :10600
|
||
|
||
:7070
|
||
@print #str7070
|
||
lda #0
|
||
sta LX
|
||
jmp :10700
|
||
|
||
:7080
|
||
@print #str7080
|
||
jmp :10800
|
||
|
||
:7090
|
||
@print #str7090
|
||
lda #0
|
||
sta LX
|
||
jmp :10900
|
||
|
||
:7100
|
||
@print #str7100
|
||
lda #0
|
||
sta LX
|
||
jmp :11000
|
||
|
||
:7110
|
||
@print #str7110
|
||
lda #2
|
||
sta LX
|
||
jmp :10700
|
||
|
||
:7120
|
||
@print #str7120
|
||
lda #1
|
||
sta LX
|
||
jmp :10700
|
||
|
||
:7130 ; nada
|
||
rts
|
||
|
||
:7140
|
||
@print #str7140
|
||
lda #2
|
||
sta LX
|
||
jmp :12200
|
||
|
||
:7150
|
||
@print #str7150
|
||
@print #str7001
|
||
jmp :11500
|
||
|
||
:7160
|
||
@print #str7160
|
||
lda #1
|
||
sta LX
|
||
jmp :10900
|
||
|
||
:7170
|
||
@wait #300
|
||
@print #str7170
|
||
jmp :11700
|
||
|
||
:7180
|
||
@print #str7180
|
||
jmp :11800
|
||
|
||
:7190
|
||
@print #str7190
|
||
lda #2
|
||
sta LX
|
||
jmp :10900
|
||
|
||
:7200
|
||
@print #str7200
|
||
lda #1
|
||
sta LX
|
||
jmp :12200
|
||
|
||
:7210
|
||
@print #str7210
|
||
lda #1
|
||
sta LX
|
||
jmp :11000
|
||
|
||
:7220
|
||
@print #str7220
|
||
lda #0
|
||
sta LX
|
||
jmp :12200
|
||
|
||
:7230
|
||
@print #str7230
|
||
jmp :12300
|
||
|
||
:7240
|
||
@print #str7240
|
||
jmp :12400
|
||
|
||
*--------
|
||
|
||
*-----------------------------------
|
||
* 8000 - CHARGEMENT VARIABLES
|
||
*-----------------------------------
|
||
|
||
hex bdbdbdbd
|
||
|
||
initALL
|
||
ldx #FIN_DATA-DEBUT_DATA-1
|
||
lda #0
|
||
]lp sta A1,x
|
||
dex
|
||
bpl ]lp
|
||
|
||
*---
|
||
|
||
lda #1
|
||
sta SALLE
|
||
|
||
* ldx #10
|
||
* lda #0
|
||
*]lp sta P,x
|
||
* sta C,x
|
||
* dex
|
||
* bne ]lp
|
||
|
||
* lda #0
|
||
* sta P+11
|
||
* sta P+12
|
||
|
||
lda #14
|
||
sta C+3
|
||
lda #12
|
||
sta C+7
|
||
sta C+9
|
||
lda #80
|
||
sta C+1
|
||
|
||
* PL=INT(RND(1)*9000+1000)
|
||
|
||
ldx #0
|
||
]lp lda VBL
|
||
eor VERTCNT
|
||
and #%0000_0111
|
||
clc
|
||
adc #1
|
||
cmp #9+1
|
||
bcs ]lp
|
||
ora #"0"
|
||
sta PL,x
|
||
inx
|
||
cpx #4
|
||
bcc ]lp
|
||
|
||
*---
|
||
|
||
ldx #nbO ; reset object table
|
||
]lp lda refO,x
|
||
sta O,x
|
||
dex
|
||
bpl ]lp
|
||
|
||
ldx #nbO*2 ; reset object table
|
||
]lp lda refO$,x
|
||
sta tblO$,x
|
||
dex
|
||
bpl ]lp
|
||
rts
|
||
|
||
*-----------------------------------
|
||
* 10000 - LES IMAGES
|
||
*-----------------------------------
|
||
|
||
:10000
|
||
@draw #data10000
|
||
rts
|
||
|
||
:10100
|
||
@draw #data10100
|
||
rts
|
||
|
||
:10200
|
||
@draw #data10200
|
||
rts
|
||
|
||
:10300
|
||
@draw #data10300
|
||
lda F1
|
||
bne :10301
|
||
@draw #data10301
|
||
:10301 rts
|
||
|
||
:10400
|
||
@draw #data10400
|
||
rts
|
||
|
||
:10500
|
||
@draw #data10500
|
||
rts
|
||
|
||
:10600
|
||
@draw #data10600
|
||
rts
|
||
|
||
:10700
|
||
@draw #data10700
|
||
lda LX
|
||
cmp #2
|
||
beq :10745
|
||
@draw #data10701
|
||
:10745 lda LX
|
||
bne :10750
|
||
@draw #data10702
|
||
rts
|
||
:10750 cmp #1
|
||
beq :10780
|
||
@draw #data10703
|
||
rts
|
||
:10780 @draw #data10704
|
||
rts
|
||
|
||
:10800
|
||
@draw #data10800
|
||
rts
|
||
|
||
:10900
|
||
@draw #data10900
|
||
lda LX
|
||
bne :10915
|
||
@draw #data10901
|
||
jmp :10920
|
||
:10915 @draw #data10902
|
||
:10920 @draw #data10903
|
||
lda LX
|
||
bne :10935
|
||
@draw #data10904
|
||
rts
|
||
:10935 cmp #1
|
||
bne :10940
|
||
@draw #data10905
|
||
rts
|
||
:10940 @draw #data10906
|
||
rts
|
||
|
||
:11000
|
||
@draw #data11000
|
||
lda LX
|
||
bne :11030
|
||
@draw #data11001
|
||
rts
|
||
:11030 @draw #data11002
|
||
rts
|
||
|
||
:11500
|
||
@draw #data11500
|
||
rts
|
||
|
||
:11700
|
||
@draw #data11700
|
||
rts
|
||
|
||
:11800
|
||
@draw #data11800
|
||
rts
|
||
|
||
:12200
|
||
@draw #data12200
|
||
lda LX
|
||
cmp #2
|
||
bne :12220
|
||
@draw #data12201
|
||
:12220 @draw #data12202
|
||
lda LX
|
||
cmp #2
|
||
beq :12230
|
||
@draw #data12203
|
||
:12230 @draw #data12204
|
||
lda LX
|
||
cmp #2
|
||
beq :12235
|
||
@draw #data12205
|
||
:12235 lda LX
|
||
beq :12240
|
||
@draw #data12206
|
||
rts
|
||
:12240 @draw #data12207
|
||
rts
|
||
|
||
:12300
|
||
@draw #data12300
|
||
rts
|
||
|
||
:12400
|
||
@draw #data12400
|
||
rts
|
||
|
||
*-----------------------------------
|
||
* 20000 - PERDU
|
||
*-----------------------------------
|
||
|
||
:20000
|
||
@draw #data13000
|
||
@play #zikPERDU
|
||
|
||
:20050 ; commun avec gagne
|
||
jsr setTEXTFULL
|
||
]lp @print #strREPLAY
|
||
jsr translateKEY
|
||
cmp #chrNON
|
||
beq :20001
|
||
cmp #chrOUI
|
||
bne ]lp
|
||
jmp REPLAY
|
||
|
||
:20001
|
||
lda sauveCYA
|
||
sta CYAREG
|
||
|
||
jsr PRODOS ; exit
|
||
dfb $65
|
||
da proQUIT
|
||
brk $bd ; on ne se refait pas ;-)
|
||
|
||
*--- Data
|
||
|
||
proQUIT dfb 4
|
||
ds 1
|
||
ds 2
|
||
ds 1
|
||
ds 2
|
||
|
||
sauveCYA ds 1
|
||
|
||
*-----------------------------------
|
||
* 32000 - GAGNE
|
||
*-----------------------------------
|
||
|
||
:32000
|
||
@play #zikGAGNE
|
||
|
||
:32010
|
||
jsr setTEXTFULL
|
||
@print #strGAGNE
|
||
|
||
*--- L'animation du nain qui rode
|
||
|
||
ldx #1
|
||
ldy #190
|
||
]lp lda #" "
|
||
sta $551,x
|
||
sta $5d1,x
|
||
sta $650,x
|
||
|
||
lda #"o"
|
||
sta $552,x
|
||
lda #"O"
|
||
sta $5d2,x
|
||
lda #"/"
|
||
sta $651,x
|
||
lda #"\"
|
||
sta $653,x
|
||
|
||
bit SPKR
|
||
|
||
tya
|
||
jsr WAIT
|
||
|
||
lda #"\"
|
||
sta $651,x
|
||
lda #"/"
|
||
sta $653,x
|
||
|
||
tya
|
||
jsr WAIT
|
||
|
||
bit SPKR
|
||
|
||
tya
|
||
clc
|
||
adc #2
|
||
tay
|
||
|
||
inx
|
||
cpx #30
|
||
bcc ]lp
|
||
|
||
jmp :20050
|
||
|
||
*-----------------------------------
|
||
* 40000 - LISTE DES INSTRUCTIONS
|
||
*-----------------------------------
|
||
|
||
:40000
|
||
jsr setTEXTFULL
|
||
]lp @print #strINSTR
|
||
jsr translateKEY
|
||
cmp #chrNON
|
||
beq :40001
|
||
cmp #chrOUI
|
||
bne ]lp
|
||
|
||
@print #strINSTR2
|
||
jsr translateKEY
|
||
|
||
:40001 rts
|
||
|
||
*-----------------------------------
|
||
* 51000 - DISCLAIMER
|
||
*-----------------------------------
|
||
|
||
:51000
|
||
jsr setTEXTFULL
|
||
@print #strDISCLAIMER
|
||
jmp translateKEY
|
||
|
||
*-----------------------------------
|
||
* introPIC - la picture GR
|
||
*-----------------------------------
|
||
|
||
introPIC
|
||
jsr setTEXTFULL
|
||
|
||
lda #3
|
||
sta CH
|
||
lda #11
|
||
jsr TABV
|
||
@print #strLORICIELS
|
||
@wait #300
|
||
|
||
jsr HOME
|
||
@print #strLEMANOIR
|
||
|
||
lda #5
|
||
sta CH
|
||
lda #22
|
||
jsr TABV
|
||
@print #strINTRO1
|
||
@wait #300
|
||
|
||
lda #5
|
||
sta CH
|
||
@print #strINTRO2
|
||
@wait #300
|
||
|
||
lda #5
|
||
sta CH
|
||
@print #strINTRO3
|
||
@wait #300
|
||
|
||
lda #5
|
||
sta CH
|
||
@print #strINTRO4
|
||
|
||
@play #zikINTRODUCTION
|
||
rts
|
||
|
||
*-----------------------------------
|
||
* ORIC
|
||
*-----------------------------------
|
||
|
||
EXPLODE ldx #$25
|
||
]lp lda TXTSET
|
||
lda #$25
|
||
jsr WAIT
|
||
lda TXTCLR
|
||
lda #$25
|
||
jsr WAIT
|
||
dex
|
||
bpl ]lp
|
||
rts
|
||
|
||
*-----------------------------------
|
||
* CODE 6502
|
||
*-----------------------------------
|
||
|
||
*----------------------
|
||
* setTEXTFULL
|
||
*----------------------
|
||
|
||
setTEXTFULL ; 40x24 text
|
||
sta CLR80VID
|
||
jsr INIT ; text screen
|
||
jsr SETNORM ; set normal text mode
|
||
jsr SETKBD ; reset input to keyboard
|
||
jmp HOME ; home cursor and clear to end of page
|
||
|
||
*----------------------
|
||
* setHGR
|
||
*----------------------
|
||
|
||
setHGR ; HGR
|
||
sta TXTCLR
|
||
sta MIXCLR
|
||
sta TXTPAGE1
|
||
sta HIRES
|
||
rts
|
||
|
||
*----------------------
|
||
* switchCASE
|
||
*----------------------
|
||
|
||
switchCASE
|
||
lda fgCASE
|
||
eor #$80
|
||
sta fgCASE
|
||
rts
|
||
|
||
*----------------------
|
||
* switchVIDEO
|
||
*----------------------
|
||
|
||
switchVIDEO
|
||
lda #0
|
||
eor #1
|
||
sta switchVIDEO+1
|
||
bne setMIXEDOFF
|
||
|
||
*----------------------
|
||
* setMIXEDON
|
||
*----------------------
|
||
|
||
setMIXEDON ; HGR + 4 LINES OF TEXT
|
||
sta MIXSET
|
||
rts
|
||
|
||
*----------------------
|
||
* setMIXEDOFF
|
||
*----------------------
|
||
|
||
setMIXEDOFF ; FULL HGR
|
||
sta MIXCLR
|
||
rts
|
||
|
||
*----------------------
|
||
* printCSTR
|
||
*----------------------
|
||
|
||
printCSTRING
|
||
sty pcs1+1
|
||
stx pcs1+2
|
||
|
||
pcs1 lda $ffff
|
||
beq pcs3
|
||
|
||
bit fgCASE
|
||
bpl pcs2
|
||
|
||
tax ; from lower to upper
|
||
lda tblKEY,x
|
||
|
||
pcs2 jsr COUT
|
||
|
||
inc pcs1+1
|
||
bne pcs1
|
||
inc pcs1+2
|
||
bne pcs1
|
||
|
||
pcs3 rts
|
||
|
||
*--------
|
||
|
||
fgCASE ds 1 ; $00 lower OK, $80 otherwise
|
||
|
||
*----------------------
|
||
* waitMS
|
||
*----------------------
|
||
|
||
switchWAIT
|
||
lda waitMS+1
|
||
eor #1
|
||
sta waitMS+1
|
||
rts
|
||
|
||
waitMS lda #0 ; skip if not zero
|
||
bne waitMS9
|
||
|
||
sty LINNUM
|
||
doW1 ldy LINNUM
|
||
]lp lda #60 ; 1/100<30>me de seconde
|
||
jsr WAIT
|
||
dey
|
||
bne ]lp
|
||
dex
|
||
bpl doW1
|
||
waitMS9 rts
|
||
|
||
*----------------------
|
||
* drawPICTURE
|
||
*----------------------
|
||
|
||
drawPICTURE
|
||
sty drawREAD+1
|
||
stx drawREAD+2
|
||
|
||
drawLOOP jsr drawREAD
|
||
cmp #$ff
|
||
bne drawPIC1
|
||
rts ; the end
|
||
|
||
drawPIC1 ldx #myADRS-myCMDS-1
|
||
]lp cmp myCMDS,x
|
||
beq drawPIC2
|
||
dex
|
||
bpl ]lp
|
||
rts
|
||
|
||
drawPIC2 txa
|
||
asl
|
||
tax
|
||
lda myADRS,x
|
||
sta drawPIC3+1
|
||
lda myADRS+1,x
|
||
sta drawPIC3+2
|
||
drawPIC3 jsr $bdbd
|
||
jmp drawLOOP
|
||
|
||
*-------- Read data
|
||
|
||
drawREAD lda $bdbd
|
||
inc drawREAD+1
|
||
bne drawREAD1
|
||
inc drawREAD+2
|
||
drawREAD1 rts
|
||
|
||
*----------------------------------- CURSET x,y,fb
|
||
|
||
doS
|
||
jsr drawREAD
|
||
sta theX
|
||
jsr drawREAD
|
||
sta theX+1
|
||
|
||
jsr drawREAD
|
||
sta theY
|
||
jsr drawREAD
|
||
sta theY+1
|
||
rts
|
||
|
||
*----------------------------------- CURMOV x,y,fb
|
||
|
||
doM
|
||
jsr drawREAD
|
||
clc
|
||
adc theX
|
||
sta theX
|
||
jsr drawREAD
|
||
adc theX+1
|
||
sta theX+1 ; new X-coord
|
||
|
||
jsr drawREAD
|
||
clc
|
||
adc theY
|
||
sta theY
|
||
jsr drawREAD
|
||
adc theY+1
|
||
sta theY+1 ; new X-coord
|
||
rts
|
||
|
||
*----------------------------------- DRAW x,y,fb
|
||
|
||
doD
|
||
jsr drawREAD
|
||
clc
|
||
adc theX
|
||
sta theX2
|
||
jsr drawREAD
|
||
adc theX+1
|
||
sta theX2+1 ; new X-coord
|
||
|
||
jsr drawREAD
|
||
clc
|
||
adc theY
|
||
sta theY2
|
||
jsr drawREAD
|
||
adc theY+1
|
||
sta theY2+1 ; new Y-coord
|
||
|
||
*---------- Check height
|
||
|
||
lda theY
|
||
cmp #maxY
|
||
bcc doD1
|
||
lda #maxY
|
||
sta theY
|
||
|
||
doD1 lda theY2
|
||
cmp #maxY
|
||
bcc doD2
|
||
lda #maxY
|
||
sta theY2
|
||
doD2
|
||
|
||
*---------- It is now time to draw as we have all variables
|
||
|
||
ldy theINK ; the ink color
|
||
ldx oric2hgr,y ; from the Oric to the Apple II
|
||
jsr HCOLOR+3 ; to skip CHRGET
|
||
|
||
ldx theX ; HPLOT x,y
|
||
ldy theX+1
|
||
lda theY
|
||
jsr HPLOT
|
||
|
||
lda theX2 ; TO x2,Y2
|
||
ldx theX2+1
|
||
ldy theY2
|
||
jsr HILIN ; draw the line
|
||
|
||
lda X0L ; save the updated coords
|
||
sta theX
|
||
lda X0H
|
||
sta theX+1
|
||
lda Y0
|
||
sta theY
|
||
rts
|
||
|
||
*----------------------------------- CIRCLE n,fb
|
||
|
||
doC
|
||
jsr drawREAD
|
||
sta theRADIUS ; the radius
|
||
rts
|
||
|
||
*----------------------------------- INK fb
|
||
|
||
doI
|
||
jsr drawREAD
|
||
sta theINK
|
||
rts
|
||
|
||
*----------------------------------- PAPER fb
|
||
|
||
doP
|
||
jsr drawREAD
|
||
sta thePAPER
|
||
rts
|
||
|
||
*----------------------------------- HIRES
|
||
|
||
doH
|
||
jsr HGR
|
||
sta MIXCLR
|
||
rts
|
||
|
||
*----------------------
|
||
* DonnŽes du moteur
|
||
*----------------------
|
||
|
||
myCMDS asc "SMDCIPH"
|
||
|
||
myADRS da doS ; curset
|
||
da doM ; curmov
|
||
da doD ; draw
|
||
da doC ; circle
|
||
da doI ; ink
|
||
da doP ; paper
|
||
da doH ; hires
|
||
|
||
*----------------------
|
||
|
||
theX dw 140 ; milieu de l'Žcran par dŽfaut
|
||
theY ds 96
|
||
theX2 ds 2
|
||
theY2 ds 2
|
||
theRADIUS ds 1
|
||
theFB ds 1
|
||
theINK ds 1
|
||
thePAPER ds 1
|
||
|
||
* APPLE ORIC
|
||
* 0 black1 black
|
||
* 1 green red
|
||
* 2 blue green
|
||
* 3 white1 yellow
|
||
* 4 black2 blue
|
||
* 5 - magenta
|
||
* 6 - cyan
|
||
* 7 white2 white
|
||
|
||
oric2hgr hex 0705010602030400
|
||
|
||
*-----------------------------------
|
||
* rewriteSTRING (lower -> upper)
|
||
*-----------------------------------
|
||
|
||
rewriteSTRING
|
||
ldx #0
|
||
]lp ldy TEXTBUFFER,x
|
||
lda tblKEY,y
|
||
sta TEXTBUFFER,x
|
||
inx
|
||
cpx lenSTRING
|
||
bcc ]lp
|
||
rts
|
||
|
||
*-----------------------------------
|
||
* translateKEY (lower -> upper)
|
||
*-----------------------------------
|
||
|
||
translateKEY
|
||
jsr RDKEY
|
||
tax
|
||
lda tblKEY,x
|
||
rts
|
||
|
||
tblKEY
|
||
hex 00,01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F
|
||
hex 10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F
|
||
hex 20,21,22,23,24,25,26,27,28,29,2A,2B,2C,2D,2E,2F
|
||
hex 30,31,32,33,34,35,36,37,38,39,3A,3B,3C,3D,3E,3F
|
||
hex 40,41,42,43,44,45,46,47,48,49,4A,4B,4C,4D,4E,4F
|
||
hex 50,51,52,53,54,55,56,57,58,59,5A,5B,5C,5D,5E,5F
|
||
hex 60,61,62,63,64,65,66,67,68,69,6A,6B,6C,6D,6E,6F
|
||
hex 70,71,72,73,74,75,76,77,78,79,7A,7B,7C,7D,7E,7F
|
||
hex 80,81,82,83,84,85,86,87,88,89,8A,8B,8C,8D,8E,8F
|
||
hex 90,91,92,93,94,95,96,97,98,99,9A,9B,9C,9D,9E,9F
|
||
hex A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,AA,AB,AC,AD,AE,AF
|
||
hex B0,B1,B2,B3,B4,B5,B6,B7,B8,B9,BA,BB,BC,BD,BE,BF
|
||
hex C0,C1,C2,C3,C4,C5,C6,C7,C8,C9,CA,CB,CC,CD,CE,CF
|
||
hex D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,DB,DC,DD,DE,DF
|
||
hex E0,C1,C2,C3,C4,C5,C6,C7,C8,C9,CA,CB,CC,CD,CE,CF
|
||
hex D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,DA,FB,FC,FD,FE,FF
|
||
|
||
*-----------------------------------
|
||
* VARIABLES
|
||
*-----------------------------------
|
||
|
||
V = 73
|
||
|
||
tblV$ da $bdbd
|
||
da V$1,V$2,V$3,V$4,V$5,V$6,V$7,V$8,V$9
|
||
da V$10,V$11,V$12,V$13,V$14,V$15,V$16,V$17,V$18,V$19
|
||
da V$20,V$21,V$22,V$23,V$24,V$25,V$26,V$27,V$28,V$29
|
||
da V$30,V$31,V$32,V$33,V$34,V$35,V$36,V$37,V$38,V$39
|
||
da V$40,V$41,V$42,V$43,V$44,V$45,V$46,V$47,V$48,V$49
|
||
da V$50,V$51,V$52,V$53,V$54,V$55,V$56,V$57,V$58,V$59
|
||
da V$60,V$61,V$62,V$63,V$64,V$65,V$66,V$67,V$68,V$69
|
||
da V$70,V$71,V$72,V$73
|
||
|
||
tblV dfb $bd
|
||
dfb 01,01,02,02,03,03,04,04,05,05
|
||
dfb 06,10,10,11,12,13,14,14,15,16
|
||
dfb 17,17,18,19,20,21,21,22,23,24
|
||
dfb 24,25,25,26,27,28,29,30,31,32
|
||
dfb 33,34,35,36,37,38,18,39,40,41
|
||
dfb 42,43,44,45,46,47,48,49,50,51
|
||
dfb 52,53,53,54,55,55,56,56,57,58
|
||
dfb 59,60,61
|
||
|
||
*---
|
||
|
||
nbO = 25
|
||
|
||
refO dfb $bd
|
||
dfb 06,05,05,08,08,00,00,11,11
|
||
dfb 13,20,18,16,16,16,16,00,21
|
||
dfb 00,22,25,12,00,25,00
|
||
|
||
O dfb $bd
|
||
dfb 06,05,05,08,08,00,00,11,11
|
||
dfb 13,20,18,16,16,16,16,00,21
|
||
dfb 00,22,25,12,00,25,00
|
||
|
||
*---
|
||
|
||
refO$ da $bdbd ; see :3300
|
||
da O$1,O$2,O$3,O$4,O$5,O$6,O$7,O$8,O$9
|
||
da O$10,O$11,O$12,O$13,O$14,O$15,O$16,O$17,O$18,O$19
|
||
da O$20,O$21,O$22,O$23,O$24,O$25
|
||
|
||
tblO$ da $bdbd
|
||
da O$1,O$2,O$3,O$4,O$5,O$6,O$7,O$8,O$9
|
||
da O$10,O$11,O$12,O$13,O$14,O$15,O$16,O$17,O$18,O$19
|
||
da O$20,O$21,O$22,O$23,O$24,O$25
|
||
|
||
*---
|
||
|
||
M = 25
|
||
|
||
tblM$ da $bdbd
|
||
da M$1,M$2,M$3,M$4,M$5,M$6,M$7,M$8,M$9
|
||
da M$10,M$11,M$12,M$13,M$14,M$15,M$16,M$17,M$18,M$19
|
||
da M$20,M$21,M$22,M$23,M$24,M$25
|
||
|
||
M$1 dfb 00
|
||
M$2 dfb 04,03,03,04,00
|
||
M$3 dfb 03,02,00
|
||
M$4 dfb 04,02,03,05,01,06,00
|
||
M$5 dfb 04,04,01,07,03,20,00
|
||
M$6 dfb 02,04,00
|
||
M$7 dfb 04,08,01,09,02,05,00
|
||
M$8 dfb 03,07,00
|
||
M$9 dfb 04,13,02,07,03,10,00
|
||
M$10 dfb 04,09,02,11,00
|
||
M$11 dfb 01,10,03,12,00
|
||
M$12 dfb 04,11,00
|
||
M$13 dfb 03,09,00
|
||
M$14 dfb 02,09,03,15,00
|
||
M$15 dfb 00
|
||
M$16 dfb 00
|
||
M$17 dfb 00
|
||
M$18 dfb 00
|
||
M$19 dfb 01,22,03,21,00
|
||
M$20 dfb 04,05,00
|
||
M$21 dfb 01,25,02,22,00
|
||
M$22 dfb 01,21,00
|
||
M$23 dfb 01,24,04,22,00
|
||
M$24 dfb 02,23,00
|
||
M$25 dfb 02,21,00
|
||
|
||
*--- On commence ˆ index 0
|
||
|
||
AA = 128
|
||
|
||
tblA$ da A$1,A$2,A$3,A$4,A$5,A$6,A$7,A$8,A$9
|
||
da A$10,A$11,A$12,A$13,A$14,A$15,A$16,A$17,A$18,A$19
|
||
da A$20,A$21,A$22,A$23,A$24,A$25,A$26,A$27,A$28,A$29
|
||
da A$30,A$31,A$32,A$33,A$34,A$35,A$36,A$37,A$38,A$39
|
||
da A$40,A$41,A$42,A$43,A$44,A$45,A$46,A$47,A$48,A$49
|
||
da A$50,A$51,A$52,A$53,A$54,A$55,A$56,A$57,A$58,A$59
|
||
da A$60,A$61,A$62,A$63,A$64,A$65,A$66,A$67,A$68,A$69
|
||
da A$70,A$71,A$72,A$73,A$74,A$75,A$76,A$77,A$78,A$79
|
||
da A$80,A$81,A$82,A$83,A$84,A$85,A$86,A$87,A$88,A$89
|
||
da A$90,A$91,A$92,A$93,A$94,A$95,A$96,A$97,A$98,A$99
|
||
da A$100,A$101,A$102,A$103,A$104,A$105,A$106,A$107,A$108,A$109
|
||
da A$110,A$111,A$112,A$113,A$114,A$115,A$116,A$117,A$118,A$119
|
||
da A$120,A$121,A$122,A$123,A$124,A$125,A$126,A$127,A$128
|
||
|
||
A$1 str "A01.I02D02M."
|
||
A$2 str "A03D08.D03N."
|
||
A$3 str "A03E08E09D24.D04D05I19E02M."
|
||
A$4 str "A03E08D24.D04D06N."
|
||
A$5 str "A03E07.I19M."
|
||
A$6 str "A03E03.I19M."
|
||
A$7 str "A03.I19E02M."
|
||
A$8 str "A19D08.D03N."
|
||
A$9 str "A19E08E09D24.D04D05I03M."
|
||
A$10 str "A19E08D24.D04D06N."
|
||
A$11 str "A19.I03M."
|
||
A$12 str "A09E07B22.D07N."
|
||
A$13 str "A09E03B05.D07N."
|
||
A$14 str "A09.I14E02M."
|
||
A$15 str "A14.I16E02M."
|
||
A$16 str "A16E07B22.D07N."
|
||
A$17 str "A16E03B05.D07N."
|
||
A$18 str "A16.I14E02M."
|
||
A$19 str "A15E03B05.D07N."
|
||
A$20 str "A15E07B22.D07N."
|
||
A$21 str "A15.I14E02M."
|
||
A$22 str "A15E03.I17M."
|
||
A$23 str "A15E07.I17M."
|
||
A$24 str "A15.I17E02M."
|
||
A$25 str "A17.F01I15M."
|
||
A$26 str "A17.D08N."
|
||
A$27 str "A17.D09K."
|
||
A$28 str "A18.D10F03E01E02I17M."
|
||
A$29 str "A21E03.I19M."
|
||
A$30 str "A21E07.I19M."
|
||
A$31 str "A21.I19E02M."
|
||
A$32 str "A22E03.I19M."
|
||
A$33 str "A22E07.I19M."
|
||
A$34 str "A22.I19E02M."
|
||
A$35 str "A19.D11N."
|
||
A$36 str "A19.D11N."
|
||
A$37 str "A22.D12I23M."
|
||
A$38 str "A01.D13."
|
||
A$39 str "I01.D14K."
|
||
A$40 str "A03.D15M."
|
||
A$41 str "B01.B01J."
|
||
A$42 str "B08.B08J."
|
||
A$43 str "B04.B04J."
|
||
A$44 str "B05.B05J."
|
||
A$45 str "B21.B21J."
|
||
A$46 str "B24.B24J."
|
||
A$47 str "B12.B12J."
|
||
A$48 str "B09.B09J."
|
||
A$49 str "B10.B10J."
|
||
A$50 str "B18.B18J."
|
||
A$51 str "B03.B03J."
|
||
A$52 str "B22.B22J."
|
||
A$53 str "A20B05.H11P05E05D16K."
|
||
A$54 str "A20.D17K."
|
||
A$55 str ".C01J."
|
||
A$56 str ".C08J."
|
||
A$57 str ".C04J."
|
||
A$58 str ".C05J."
|
||
A$59 str ".C21J."
|
||
A$60 str ".C24J."
|
||
A$61 str "E09.D62K."
|
||
A$62 str ".C12J."
|
||
A$63 str ".C09J."
|
||
A$64 str ".C10J."
|
||
A$65 str ".C18J."
|
||
A$66 str ".C03J."
|
||
A$67 str ".C22J."
|
||
A$68 str ".A00L."
|
||
A$69 str "A05.E04D20G0405J."
|
||
A$70 str "A05.F04J."
|
||
A$71 str "A05E04.P24E08J."
|
||
A$72 str "A05E08.F08P24J."
|
||
A$73 str "E08.D21N."
|
||
A$74 str "B10.D22L."
|
||
A$75 str "B10.D23N."
|
||
A$76 str "B09.D24K."
|
||
A$77 str "B09.D25K."
|
||
A$78 str "A02.D26M."
|
||
A$79 str ".D27K."
|
||
A$80 str "A14.D28K."
|
||
A$81 str ".D29K."
|
||
A$82 str "C22.D33K."
|
||
A$83 str "E07.D30K."
|
||
A$84 str "A14.D07N."
|
||
A$85 str "A17E01.D10K."
|
||
A$86 str "E02.F02E07E06P22M."
|
||
A$87 str ".E07P22J."
|
||
A$88 str "C05.D33K."
|
||
A$89 str "E03.D30K."
|
||
A$90 str "F07.D31L."
|
||
A$91 str "F05.D32L."
|
||
A$92 str "E02.F02E03E06P06P05M."
|
||
A$93 str ".E03P06P05J."
|
||
A$94 str "C22.D33K."
|
||
A$95 str "F07.D30K."
|
||
A$96 str "E06E03.D36F07P22M."
|
||
A$97 str "E06.E02F07F06P22M."
|
||
A$98 str ".F07P22M."
|
||
A$99 str "C05.D33K."
|
||
A$100 str "F03.D30K."
|
||
A$101 str "E07E06.D34F03P05M."
|
||
A$102 str "E06.E02F06F03P05M."
|
||
A$103 str ".F03P05M."
|
||
A$104 str "B01.D35N."
|
||
A$105 str "I16.D45K."
|
||
A$106 str "E02.D43K."
|
||
A$107 str "F03.D44K."
|
||
A$108 str "C04.D46K."
|
||
A$109 str ".P16E10J."
|
||
A$110 str "A16F10.D47K."
|
||
A$111 str "A16.D48N."
|
||
A$112 str "A16.D48N."
|
||
A$113 str "A16F09.D50D06N."
|
||
A$114 str "A16.D49I18M."
|
||
A$115 str "D18E09.D30K."
|
||
A$116 str "D18.P18E09J."
|
||
A$117 str "D18F09.D30K."
|
||
A$118 str "D18.P18F09J."
|
||
A$119 str "A24C12.D51K."
|
||
A$120 str "A24C03.D52N."
|
||
A$121 str "A24.G0503E11D63K."
|
||
A$122 str "E11.D54F11D55K."
|
||
A$123 str "E11.D54F11D55K."
|
||
A$124 str "B21.D56N."
|
||
A$125 str "F08.D57."
|
||
A$126 str ".D58D59."
|
||
A$127 str "A06.D61M."
|
||
A$128 str "A25.D64N."
|
||
|
||
tblA dfb 14,00
|
||
dfb 05,00
|
||
dfb 05,00
|
||
dfb 05,00
|
||
dfb 05,00
|
||
dfb 05,00
|
||
dfb 05,00
|
||
dfb 06,00
|
||
dfb 06,00
|
||
dfb 06,00
|
||
dfb 06,00
|
||
dfb 01,00
|
||
dfb 01,00
|
||
dfb 01,00
|
||
dfb 01,00
|
||
dfb 02,00
|
||
dfb 02,00
|
||
dfb 02,00
|
||
dfb 04,00
|
||
dfb 04,00
|
||
dfb 04,00
|
||
dfb 01,00
|
||
dfb 01,00
|
||
dfb 01,00
|
||
dfb 02,00
|
||
dfb 03,00
|
||
dfb 04,00
|
||
dfb 03,00
|
||
dfb 04,00
|
||
dfb 04,00
|
||
dfb 04,00
|
||
dfb 02,00
|
||
dfb 02,00
|
||
dfb 02,00
|
||
dfb 02,00
|
||
dfb 04,00
|
||
dfb 03,00
|
||
dfb 25,00
|
||
dfb 25,00
|
||
dfb 12,44
|
||
dfb 10,34
|
||
dfb 10,27
|
||
dfb 10,28
|
||
dfb 10,29
|
||
dfb 10,32
|
||
dfb 10,38
|
||
dfb 10,39
|
||
dfb 10,40
|
||
dfb 10,41
|
||
dfb 10,43
|
||
dfb 10,50
|
||
dfb 10,42
|
||
dfb 10,37
|
||
dfb 10,37
|
||
dfb 11,34
|
||
dfb 11,27
|
||
dfb 11,28
|
||
dfb 11,29
|
||
dfb 11,32
|
||
dfb 11,38
|
||
dfb 11,43
|
||
dfb 11,39
|
||
dfb 11,40
|
||
dfb 11,41
|
||
dfb 11,43
|
||
dfb 11,50
|
||
dfb 11,42
|
||
dfb 24,00
|
||
dfb 12,49
|
||
dfb 13,49
|
||
dfb 22,38
|
||
dfb 23,38
|
||
dfb 23,38
|
||
dfb 18,48
|
||
dfb 18,41
|
||
dfb 18,40
|
||
dfb 20,40
|
||
dfb 19,51
|
||
dfb 19,51
|
||
dfb 21,00
|
||
dfb 21,00
|
||
dfb 15,42
|
||
dfb 15,42
|
||
dfb 15,42
|
||
dfb 15,42
|
||
dfb 15,42
|
||
dfb 15,42
|
||
dfb 15,29
|
||
dfb 15,29
|
||
dfb 15,29
|
||
dfb 15,29
|
||
dfb 15,29
|
||
dfb 15,29
|
||
dfb 16,42
|
||
dfb 16,42
|
||
dfb 16,42
|
||
dfb 16,42
|
||
dfb 16,42
|
||
dfb 16,29
|
||
dfb 16,29
|
||
dfb 16,29
|
||
dfb 16,29
|
||
dfb 16,29
|
||
dfb 15,34
|
||
dfb 17,35
|
||
dfb 17,35
|
||
dfb 17,35
|
||
dfb 17,35
|
||
dfb 17,35
|
||
dfb 56,00
|
||
dfb 56,46
|
||
dfb 56,47
|
||
dfb 56,45
|
||
dfb 56,45
|
||
dfb 55,43
|
||
dfb 55,43
|
||
dfb 57,43
|
||
dfb 57,43
|
||
dfb 12,33
|
||
dfb 12,33
|
||
dfb 12,33
|
||
dfb 26,36
|
||
dfb 53,50
|
||
dfb 52,32
|
||
dfb 58,30
|
||
dfb 58,30
|
||
dfb 12,33
|
||
dfb 12,33
|
||
|
||
*--- On commence ˆ index 0
|
||
|
||
* C = 14
|
||
|
||
tblC$ da $bdbd
|
||
da C$1,C$2,C$3,C$4,C$5,C$6,C$7,C$8,C$9
|
||
da C$10,C$11,C$12,C$13,C$14
|
||
|
||
C$1 str "G03E03.D00N."
|
||
C$2 str "G04E04.D01N."
|
||
C$3 str "I14I16I17I19.F02."
|
||
C$4 str "G07E07.D18N."
|
||
C$5 str "GO1.D19N."
|
||
C$6 str "H06C03C08.D37N."
|
||
C$7 str "H08D08.D39L."
|
||
C$8 str "H06D03.D38L."
|
||
C$9 str "G08E08B24.D40D21N."
|
||
C$10 str "H02.D41N."
|
||
C$11 str "G09E02.D42N."
|
||
C$12 str "G05E11.D52N."
|
||
C$13 str "I24E11.D53D52N."
|
||
C$14 str ".L."
|
||
|
||
*-----------------------------------
|
||
|
||
DEBUT_DATA
|
||
|
||
A1 ds 1
|
||
BREAK ds 1
|
||
E ds 1
|
||
F1 ds 1
|
||
G ds 1
|
||
H ds 1
|
||
HH ds 1
|
||
L ds 1
|
||
LX ds 1
|
||
MO$1 ds 1 ; mot 1
|
||
MO$2 ds 1 ; mot 2
|
||
N ds 1
|
||
NL ds 1
|
||
OK ds 1
|
||
S ds 1
|
||
SALLE ds 1
|
||
T ds 1
|
||
W ds 1
|
||
Z ds 1
|
||
lenSTRING ds 1
|
||
|
||
C ds 10+1
|
||
E$ ds 32 ; the longest string
|
||
P ds 13+1
|
||
PL ds 5 ; 1111/0
|
||
X$1 ds 4+1 ; premier mot saisi
|
||
X$2 ds 4+1 ; second mot saisi
|
||
|
||
FIN_DATA
|
||
|
||
*--- The lazy decimal to hexadecimal conversion
|
||
|
||
tblD2H dfb 0,10,20,30,40,50,60,70,80,90
|
||
|
||
*-----------------------------------
|
||
* LES AUTRES FICHIERS
|
||
*-----------------------------------
|
||
|
||
put fr.s
|
||
put ../common/images.s
|
||
put ../common/musiques.s
|
||
|
||
*--- It's the end |