diff --git a/.DS_Store b/.DS_Store index ddec6df..0e9bb19 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/leretour/apple2/common/images.s b/leretour/apple2/common/images.s new file mode 100644 index 0000000..3affcde --- /dev/null +++ b/leretour/apple2/common/images.s @@ -0,0 +1,2081 @@ +* +* Le retour du Dr Genius +* +* (c) 1983, Loriciels +* (c) 2023, Brutal Deluxe Software (Apple II) +* + + mx %11 + lst off + +*----------------------------------- +* DONNEES DES IMAGES +*----------------------------------- + +data10000 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 100,190 + asc "D" + dw 0,-60 + asc "D" + dw 97,0 + asc "D" + dw 7,10 + asc "D" + dw -97,0 + asc "D" + dw -7,-10 + asc "D" + dw 15,-20 + asc "D" + dw -30,-50 + asc "D" + dw -15,20 + asc "D" + dw 30,50 + asc "S" + dw 100,190 + asc "D" + dw -30,-50 + asc "D" + dw 0,-60 + asc "S" + dw 100,190 + asc "D" + dw 22,0 + asc "D" + dw 0,-30 + asc "D" + dw 15,0 + asc "D" + dw 0,30 + asc "D" + dw 60,0 + asc "D" + dw 0,-50 + asc "M" + dw 0,-10 + asc "D" + dw 0,-30 + asc "D" + dw -67,-40 + asc "D" + dw -23,30 + asc "D" + dw -30,-50 + asc "D" + dw 23,-30 + asc "D" + dw 30,50 + asc "S" + dw 197,100 + asc "D" + dw -45,-60 + asc "D" + dw -52,-30 + asc "S" + dw 85,60 + asc "D" + dw 0,-6 + asc "S" + dw 115,110 + asc "D" + dw 0,-30 + asc "M" + dw 7,0 + asc "D" + dw 7,-10 + asc "D" + dw 7,10 + asc "D" + dw 0,20 + asc "D" + dw -15,0 + asc "D" + dw 0,-20 + asc "M" + dw 7,-10 + asc "D" + dw 0,30 + asc "S" + dw 182,100 + asc "D" + dw -30,0 + asc "D" + dw 0,20 + asc "D" + dw 30,0 + asc "D" + dw 0,-20 + asc "M" + dw -7,0 + asc "D" + dw 0,20 + asc "M" + dw -16,0 + asc "D" + dw 0,-20 + asc "S" + dw 122,190 + asc "D" + dw 13,7 + asc "D" + dw 0,-30 + asc "D" + dw -13,-7 + asc "S" + dw 133,182 + asc "S" + dw 182,150 + asc "D" + dw -30,0 + asc "D" + dw 0,20 + asc "D" + dw 30,0 + asc "D" + dw 0,-20 + asc "M" + dw -7,0 + asc "D" + dw 0,20 + asc "M" + dw -16,0 + asc "D" + dw 0,-20 + asc "S" + dw 78,130 + asc "D" + dw 15,25 + asc "D" + dw 0,-20 + asc "D" + dw -15,-25 + asc "D" + dw 0,20 + asc "M" + dw 3,5 + asc "D" + dw 0,-20 + asc "M" + dw 9,15 + asc "D" + dw 0,20 + asc "I" + dfb 3 + asc "I" + dfb 3 + dfb $ff + +data10100 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 15,190 + asc "D" + dw 0,-160 + asc "D" + dw 75,-20 + asc "D" + dw 0,40 + asc "D" + dw 0,-40 + asc "D" + dw 60,0 + asc "D" + dw 0,20 + asc "D" + dw 10,10 + asc "D" + dw -40,0 + asc "D" + dw 40,0 + asc "D" + dw 0,3 + asc "D" + dw -40,0 + asc "D" + dw 0,-3 + asc "D" + dw 0,-10 + asc "D" + dw 30,0 + asc "D" + dw 0,-20 + asc "D" + dw 82,20 + asc "D" + dw 0,160 + asc "D" + dw -73,-126 + asc "D" + dw 73,126 + asc "D" + dw -30,-50 + asc "D" + dw 0,-80 + asc "D" + dw -22,-16 + asc "D" + dw 0,58 + asc "M" + dw 19,-9 + asc "C" + dfb 1 + asc "S" + dw 15,190 + asc "D" + dw 37,-68 + asc "D" + dw 0,-70 + asc "D" + dw 18,-13 + asc "D" + dw 0,50 + asc "D" + dw -18,33 + asc "D" + dw 38,-71 + asc "D" + dw 31,0 + asc "D" + dw 0,-8 + asc "D" + dw 0,23 + asc "D" + dw 3,0 + asc "D" + dw 0,-23 + asc "D" + dw 0,8 + asc "D" + dw 21,0 + asc "D" + dw 0,-8 + asc "D" + dw 0,8 + asc "D" + dw 1,2 + asc "D" + dw 0,-10 + asc "D" + dw 0,10 + asc "D" + dw 2,0 + asc "D" + dw 0,-10 + asc "D" + dw 0,8 + asc "D" + dw 2,0 + asc "D" + dw 0,-8 + asc "D" + dw 0,8 + asc "D" + dw 3,5 + asc "D" + dw 0,-12 + asc "D" + dw 0,20 + asc "D" + dw 2,3 + asc "D" + dw 0,-23 + asc "D" + dw 0,23 + asc "D" + dw 3,0 + asc "D" + dw 0,-23 + asc "S" + dw 67,68 + asc "C" + dfb 1 + asc "I" + dfb 3 + dfb $ff + +data10200 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 15,190 + asc "D" + dw 0,-120 + asc "D" + dw 105,-50 + asc "D" + dw 60,0 + asc "D" + dw 45,50 + asc "D" + dw 0,110 + asc "D" + dw -45,-100 + asc "M" + dw 0,-60 + asc "D" + dw 0,60 + asc "D" + dw -60,0 + asc "M" + dw 0,-60 + asc "D" + dw 0,60 + asc "D" + dw -52,54 + asc "S" + dw 15,190 + asc "D" + dw 24,-26 + asc "D" + dw 0,-104 + asc "D" + dw 0,60 + asc "D" + dw 27,14 + asc "D" + dw 0,-10 + asc "D" + dw 53,-50 + asc "D" + dw -6,-2 + asc "D" + dw -54,47 + asc "M" + dw 7,3 + asc "D" + dw -7,-3 + asc "D" + dw 0,-10 + asc "D" + dw 53,-44 + asc "D" + dw 0,8 + asc "D" + dw 0,-8 + asc "D" + dw -5,-2 + asc "D" + dw -56,40 + asc "D" + dw 9,4 + asc "D" + dw -9,-4 + asc "D" + dw 0,-10 + asc "D" + dw 55,-36 + asc "D" + dw 0,7 + asc "D" + dw 0,-7 + asc "D" + dw -5,-2 + asc "D" + dw -56,33 + asc "D" + dw 7,3 + asc "D" + dw -7,-3 + asc "D" + dw 0,-10 + asc "D" + dw -5,-2 + asc "D" + dw 5,2 + asc "D" + dw 57,-30 + asc "D" + dw 0,8 + asc "D" + dw 0,-8 + asc "D" + dw -5,-2 + asc "D" + dw -57,25 + asc "D" + dw 57,-25 + asc "D" + dw 0,-7 + asc "D" + dw -57,24 + asc "D" + dw 57,-24 + asc "D" + dw -5,-2 + asc "D" + dw -16,5 + asc "D" + dw 16,-5 + asc "D" + dw 0,-4 + asc "S" + dw 211,146 + asc "D" + dw 0,-64 + asc "D" + dw -15,-20 + asc "D" + dw 0,52 + asc "S" + dw 207,108 + asc "C" + dfb 1 + asc "S" + dw 156,80 + asc "D" + dw 24,0 + asc "D" + dw 6,12 + asc "D" + dw -6,-12 + asc "D" + dw 0,-40 + asc "D" + dw -26,0 + asc "D" + dw 0,40 + asc "D" + dw 5,12 + asc "D" + dw 27,0 + asc "D" + dw 0,-42 + asc "D" + dw -6,-10 + asc "D" + dw 6,10 + asc "D" + dw -27,0 + asc "D" + dw -4,-10 + asc "D" + dw 4,10 + asc "D" + dw 0,42 + asc "S" + dw 169,70 + asc "C" + dfb 4 + asc "S" + dw 169,66 + asc "D" + dw 0,-3 + asc "S" + dw 169,74 + asc "D" + dw 0,2 + asc "S" + dw 165,70 + asc "D" + dw -2,0 + asc "S" + dw 173,70 + asc "D" + dw 2,0 + asc "S" + dw 165,58 + asc "C" + dfb 1 + asc "S" + dw 170,58 + asc "C" + dfb 1 + asc "S" + dw 175,58 + asc "C" + dfb 1 + asc "I" + dfb 3 + dfb $ff + +data10300 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 15,190 + asc "D" + dw 67,-110 + asc "D" + dw 68,0 + asc "D" + dw 82,110 + asc "D" + dw 0,-140 + asc "D" + dw -82,-40 + asc "D" + dw 0,70,0 + asc "D" + dw 0,-70 + asc "D" + dw -68,0 + asc "D" + dw 0,70,0 + asc "D" + dw 0,-70 + asc "D" + dw -67,40 + asc "D" + dw 0,140 + asc "S" + dw 90,80 + asc "D" + dw 0,-50 + asc "D" + dw 24,0 + asc "D" + dw 0,50 + asc "D" + dw -24,0 + asc "D" + dw 18,10 + asc "D" + dw 0,-50 + asc "D" + dw -18,-10 + asc "S" + dw 105,64 + asc "S" + dw 210,160 + asc "D" + dw 0,-90 + asc "D" + dw -23,-14 + asc "D" + dw 0,74 + asc "S" + dw 205,110 + asc "S" + dw 45,140 + asc "D" + dw 0,-74 + asc "D" + dw 18,-14 + asc "D" + dw 0,60 + asc "S" + dw 60,86 + dfb $ff +data10301 +*IF F1=0 THEN + asc "I" + dfb 3 + dfb $ff + +data10400 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 124,80 + asc "D" + dw 26,0 + asc "D" + dw 0,-70 + asc "D" + dw 0,70 + asc "S" + dw 149,80 + asc "D" + dw 12,14 + asc "S" + dw 150,80 + asc "D" + dw 10,14 + asc "S" + dw 168,18 + asc "D" + dw 0,86 + asc "D" + dw -38,0 + asc "D" + dw 0,-86 + asc "D" + dw 38,0 + asc "D" + dw -38,0 + asc "D" + dw -6,-8 + asc "D" + dw 0,70 + asc "D" + dw 6,24 + asc "S" + dw 168,94 + asc "D" + dw -38,0 + asc "S" + dw 168,94 + asc "D" + dw -8,-10 + asc "S" + dw 168,84 + asc "D" + dw -38,0 + asc "S" + dw 168,84 + asc "D" + dw -8,-10 + asc "S" + dw 168,74 + asc "D" + dw -38,0 + asc "S" + dw 168,74 + asc "D" + dw -9,-10 + asc "S" + dw 168,64 + asc "D" + dw -38,0 + asc "S" + dw 168,64 + asc "D" + dw -9,-10 + asc "S" + dw 168,54 + asc "D" + dw -38,0 + asc "S" + dw 168,54 + asc "D" + dw -18,-18 + asc "D" + dw -18,0 + asc "D" + dw 18,0 + asc "D" + dw 0,-16 + asc "I" + dfb 3 + dfb $ff + +data10500 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 13,180 + asc "D" + dw 0,-132 + asc "D" + dw 63,-28 + asc "D" + dw 83,0 + asc "D" + dw 67,30 + asc "D" + dw 0,130 + asc "D" + dw -11,-14 + asc "D" + dw -4,-4 + asc "D" + dw -17,-25 + asc "D" + dw -24,-36 + asc "D" + dw -12,-20 + asc "D" + dw 0,-61 + asc "D" + dw 0,61 + asc "D" + dw -83,0 + asc "D" + dw 0,-60 + asc "D" + dw 0,60 + asc "D" + dw -63,100 + asc "S" + dw 22,90 + asc "D" + dw 19,0 + asc "D" + dw 0,-30 + asc "D" + dw -19,0 + asc "D" + dw 0,30 + asc "D" + dw 0,-30 + asc "D" + dw 33,-20 + asc "D" + dw 13,0 + asc "D" + dw 0,20 + asc "D" + dw -28,30 + asc "D" + dw 0,-30 + asc "D" + dw 27,-20 + asc "D" + dw -11,9 + asc "D" + dw 0,23 + asc "S" + dw 52,64 + asc "S" + dw 60,58 + asc "S" + dw 157,100 + asc "D" + dw 30,0 + asc "D" + dw 29,34 + asc "D" + dw -40,0 + asc "D" + dw 0,2 + asc "D" + dw 40,0 + asc "D" + dw 0,-2 + asc "D" + dw 0,2 + asc "D" + dw -2,0 + asc "D" + dw 0,34 + asc "D" + dw -3,0 + asc "D" + dw 0,-34 + asc "D" + dw -30,0 + asc "D" + dw 0,34 + asc "D" + dw -3,0 + asc "D" + dw 0,-34 + asc "D" + dw -2,0 + asc "D" + dw -20,-34 + asc "D" + dw 0,-2 + asc "D" + dw 20,34 + asc "S" + dw 159,104 + asc "D" + dw 0,24 + asc "D" + dw 3,0 + asc "D" + dw 0,-18 + asc "I" + dfb 3 + dfb $ff + +data10600 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 15,190 + asc "D" + dw 0,-130 + asc "D" + dw 75,-50 + asc "D" + dw 52,0 + asc "D" + dw 90,50 + asc "D" + dw 0,130 + asc "D" + dw -22,-32 + asc "D" + dw 0,-52 + asc "D" + dw -3,-5 + asc "D" + dw -42,-43 + asc "D" + dw -6,0 + asc "D" + dw -2,4 + asc "D" + dw 0,10 + asc "D" + dw -12,0 + asc "D" + dw 5,0 + asc "D" + dw -7,-10 + asc "D" + dw 0,-50 + asc "D" + dw 0,50 + asc "D" + dw -22,0 + asc "D" + dw 0,-30 + asc "D" + dw -15,0 + asc "D" + dw 13,3 + asc "D" + dw 0,30 + asc "D" + dw -13,-3 + asc "D" + dw 0,-30 + asc "D" + dw 0,30 + asc "D" + dw -15,0 + asc "D" + dw 0,-50 + asc "D" + dw 0,50 + asc "D" + dw -23,40 + asc "D" + dw -22,0 + asc "D" + dw 22,0 + asc "D" + dw 0,-52 + asc "D" + dw -22,22 + asc "D" + dw 0,70 + asc "D" + dw -30,50 + asc "S" + dw 116,49 + asc "S" + dw 210,158 + asc "D" + dw -45,0 + asc "D" + dw 0,-18 + asc "D" + dw 0,18 + asc "D" + dw -26,-60 + asc "D" + dw 0,-10 + asc "D" + dw 6,-16 + asc "D" + dw 12,0 + asc "D" + dw 4,4 + asc "D" + dw -12,0 + asc "D" + dw -4,-4 + asc "D" + dw 4,4 + asc "D" + dw -6,14 + asc "D" + dw 10,-2 + asc "D" + dw 9,0 + asc "D" + dw 0,-11 + asc "D" + dw 0,11 + asc "D" + dw 19,25 + asc "S" + dw 165,140 + asc "D" + dw 10,-20 + asc "D" + dw 21,0 + asc "D" + dw -5,-7 + asc "D" + dw -21,0 + asc "D" + dw 5,7 + asc "D" + dw -5,-7 + asc "D" + dw -7,14 + asc "D" + dw -20,-37 + asc "S" + dw 165,140 + asc "D" + dw -26,-50 + asc "S" + dw 165,158 + asc "D" + dw -26,-59 + asc "D" + dw 0,-1 + asc "S" + dw 196,120 + asc "D" + dw 0,-14 + asc "D" + dw 2,-5 + asc "D" + dw 9,0 + asc "D" + dw -9,0 + asc "D" + dw -39,-43 + asc "I" + dfb 3 + dfb $ff + +data10700 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 15,190 + asc "D" + dw 57,-106 + asc "D" + dw -57,106 + asc "D" + dw 0,-150 + asc "D" + dw 67,-30 + asc "D" + dw 0,32 + asc "D" + dw 0,-32 + asc "D" + dw 75,0 + asc "D" + dw 0,50 + asc "D" + dw 0,-50 + asc "D" + dw 75,30 + asc "D" + dw 0,150 + asc "D" + dw -75,-130 + asc "S" + dw 202,138 + asc "D" + dw 0,-78 + asc "D" + dw -22,-18 + asc "D" + dw 0,56 + asc "S" + dw 157,60 + asc "D" + dw -9,0 + asc "D" + dw 2,3 + asc "D" + dw -78,0 + asc "D" + dw 0,8 + asc "D" + dw 78,0 + asc "D" + dw 0,-8 + asc "D" + dw 0,20 + asc "D" + dw -78,0 + asc "D" + dw 0,-38 + asc "D" + dw 10,-12 + asc "S" + dw 82,42 + asc "D" + dw -10,13 + asc "D" + dw 6,1 + asc "D" + dw 9,-13 + asc "D" + dw -4,-1 + asc "D" + dw 4,1 + asc "D" + dw 0,6 + asc "D" + dw -9,13 + asc "D" + dw 0,1 + asc "D" + dw 0,-7 + asc "D" + dw 0,6 + asc "D" + dw 9,-13 + asc "D" + dw 55,0 + asc "D" + dw 8,15 + dfb $ff +*IF LX=2 THEN GOTO 10745 +data10701 + asc "S" + dw 197,93 + asc "C" + dfb 1 + dfb $ff +*IF LX=0 THEN +data10702 + asc "I" + dfb 3 + dfb $ff +*IF LX=1 THEN GOTO 10780 +data10703 + asc "S" + dw 202,137 + asc "D" + dw 0,-77,0 + asc "D" + dw -22,-18 + asc "D" + dw 0,55,0 + asc "S" + dw 30,162 + asc "D" + dw 26,-49 + asc "D" + dw 0,1,0 + asc "D" + dw -26,49 + asc "S" + dw 30,162 + asc "D" + dw 0,-80 + asc "D" + dw 22,-22 + asc "D" + dw 0,9 + asc "D" + dw 0,-9 + asc "D" + dw -22,22 + asc "D" + dw 27,-15 + asc "D" + dw 0,77 + asc "D" + dw -25,18 + asc "S" + dw 51,111 + asc "C" + dfb 1 + asc "I" + dfb 3 + dfb $ff +data10704 + asc "S" + dw 30,50 + asc "D" + dw 0,40 + asc "D" + dw 22,-24 + asc "D" + dw 0,-29 + asc "D" + dw -22,14 + asc "D" + dw 12,-8 + asc "D" + dw 0,33 + asc "I" + dfb 3 + dfb $ff + +data10800 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 15,190 + asc "D" + dw 0,-140 + asc "D" + dw 82,-40 + asc "D" + dw 53,0 + asc "D" + dw 75,40 + asc "D" + dw 0,140 + asc "D" + dw -30,-50 + asc "D" + dw 0,-80 + asc "D" + dw -26,-22 + asc "D" + dw 0,60 + asc "D" + dw 26,0 + asc "D" + dw -26,0 + asc "D" + dw -19,-30 + asc "D" + dw 0,-58 + asc "D" + dw 0,58 + asc "D" + dw -22,0 + asc "D" + dw 0,-40 + asc "D" + dw -15,0 + asc "D" + dw 13,4 + asc "D" + dw 0,40 + asc "D" + dw -13,-4 + asc "D" + dw 0,-40 + asc "D" + dw 0,40 + asc "D" + dw -15,0 + asc "D" + dw 0,-58 + asc "D" + dw 0,58 + asc "D" + dw -30,42 + asc "D" + dw -22,0 + asc "D" + dw 22,0 + asc "D" + dw 0,-68 + asc "D" + dw -22,16 + asc "D" + dw 0,86 + asc "D" + dw -30,43 + asc "S" + dw 123,52 + asc "I" + dfb 3 + dfb $ff + +data10900 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 232,190 + asc "D" + dw 0,-150 + asc "D" + dw -82,-30 + asc "D" + dw 0,50 + asc "D" + dw 0,-50 + asc "D" + dw -60,0 + asc "D" + dw 0,50 + asc "D" + dw 0,-50 + asc "D" + dw -75,30 + asc "D" + dw 0,150 + dfb $ff +*IF LX=0 THEN +data10901 + asc "D" + dw 75,-130 + asc "D" + dw -23,40 + dfb $ff +*GOTO10920 +data10902 + asc "D" + dw 30,-52 + asc "D" + dw -30,52 + asc "D" + dw 75,-130 + asc "D" + dw -23,40 + asc "D" + dw -22,0 + asc "D" + dw 22,0 + dfb $ff +* 10920 +data10903 + asc "D" + dw 0,-58 + asc "D" + dw -22,16 + asc "D" + dw 0,80 + asc "S" + dw 90,60 + asc "D" + dw 60,0 + asc "D" + dw 82,130 + dfb $ff +*IF LX=0 THEN +data10904 + asc "S" + dw 63,78 + asc "C" + dfb 1 + asc "I" + dfb 3 + dfb $ff +*IF LX=1 THEN +data10905 + asc "I" + dfb 3 + dfb $ff +data10906 + asc "S" + dw 210,100 + asc "D" + dw -15,0 + asc "D" + dw -3,-10 + asc "D" + dw 18,0 + asc "D" + dw 0,10 + asc "D" + dw 0,-10 + asc "D" + dw -27,-25 + asc "D" + dw 0,5 + asc "D" + dw 20,20 + asc "D" + dw -20,-20 + asc "D" + dw -8,0 + asc "D" + dw 8,0 + asc "D" + dw 0,-5 + asc "D" + dw -12,0 + asc "D" + dw 21,25 + asc "D" + dw -21,-25 + asc "D" + dw -1,0 + asc "D" + dw 2,8 + asc "D" + dw 21,26 + asc "I" + dfb 3 + dfb $ff + +data11000 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 15,190 + asc "D" + dw 0,-150 + asc "D" + dw 82,-30 + asc "D" + dw 0,40 + asc "D" + dw 0,-40 + asc "D" + dw 60,0 + asc "D" + dw 0,40 + asc "D" + dw 0,-40 + asc "D" + dw 75,30 + asc "D" + dw 0,150 + asc "D" + dw -22,-42 + asc "D" + dw 0,-75 + asc "D" + dw -23,-21 + asc "D" + dw 0,52 + asc "D" + dw 23,0 + asc "D" + dw -23,0 + asc "D" + dw -30,-54 + asc "D" + dw -60,0 + asc "D" + dw -82,140 + asc "D" + dw 82,-140 + asc "D" + dw 15,0 + asc "D" + dw 0,-24 + asc "D" + dw 12,0 + asc "D" + dw 0,24 + asc "M" + dw -3,-12 + dfb $ff +*IF LX=0 THEN +data11001 + asc "I" + dfb 3 + dfb $ff +*ELSE +data11002 + asc "S" + dw 187,104 + asc "D" + dw 22,0 + asc "M" + dw -22,0 + asc "D" + dw 23,44 + asc "M" + dw -5,-45 + asc "C" + dfb 1 + asc "S" + dw 30,50 + asc "D" + dw 0,40 + asc "D" + dw 37,-34 + asc "D" + dw 0,-25 + asc "D" + dw -37,20 + asc "D" + dw 21,-10 + asc "D" + dw 0,31 + asc "I" + dfb 3 + dfb $ff + +data11500 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 15,180 + asc "D" + dw 0,-140 + asc "D" + dw 67,-30 + asc "D" + dw 75,0 + asc "D" + dw 67,30 + asc "D" + dw 0,150 + asc "D" + dw -42,-70 + asc "D" + dw 0,-70 + asc "D" + dw -24,-20 + asc "D" + dw 0,-20 + asc "D" + dw 0,20 + asc "D" + dw -45,0 + asc "D" + dw -15,20 + asc "D" + dw 85,0 + asc "D" + dw -33,0 + asc "D" + dw 0,70 + asc "D" + dw 33,0 + asc "D" + dw -34,0 + asc "D" + dw -14,-40 + asc "D" + dw 0,-30 + asc "D" + dw 0,30 + asc "D" + dw -22,0 + asc "D" + dw 0,-30 + asc "D" + dw 0,30 + asc "D" + dw -15,40 + asc "D" + dw 0,-70 + asc "D" + dw 0,30 + asc "D" + dw -15,0 + asc "D" + dw 0,-70 + asc "D" + dw 0,70 + asc "D" + dw -67,100 + asc "S" + dw 167,60 + asc "C" + dfb 1 + asc "M" + dw 0,10 + asc "C" + dfb 1 + asc "M" + dw 0,10 + asc "C" + dfb 1 + asc "M" + dw 0,20 + asc "D" + dw 6,2 + asc "D" + dw -6,-2 + asc "C" + dfb 8 + asc "I" + dfb 3 + dfb $ff + +data11700 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 15,190 + asc "D" + dw 0,-140 + asc "D" + dw 60,-40 + asc "D" + dw 75,00 + asc "D" + dw 82,40 + asc "D" + dw 0,140 + asc "D" + dw -45,-72 + asc "D" + dw 0,-54 + asc "D" + dw -15,-14 + asc "D" + dw 0,44 + asc "S" + dw 232,190 + asc "D" + dw -82,-130 + asc "D" + dw 0,-50 + asc "D" + dw 0,50 + asc "D" + dw -75,0 + asc "D" + dw 0,-50 + asc "D" + dw 0,50 + asc "D" + dw -4,10 + asc "D" + dw 9,0 + asc "D" + dw -23,0 + asc "D" + dw -34,50 + asc "D" + dw 39,0 + asc "D" + dw 18,-50 + asc "D" + dw 0,4 + asc "D" + dw -18,52 + asc "D" + dw 0,-6 + asc "D" + dw 0,6 + asc "D" + dw -39,0 + asc "D" + dw 0,-6 + asc "S" + dw 15,190 + asc "D" + dw 15,-33 + asc "D" + dw 0,-30 + asc "D" + dw 4,0 + asc "D" + dw 0,37 + asc "D" + dw -4,0 + asc "D" + dw 0,-7 + asc "D" + dw 0,7 + asc "D" + dw 4,0 + asc "D" + dw 3,-8 + asc "D" + dw 0,-29 + asc "D" + dw 15,0 + asc "D" + dw 0,37 + asc "D" + dw 4,0 + asc "D" + dw 0,-37 + asc "D" + dw 0,37 + asc "D" + dw 3,-8 + asc "D" + dw 0,-29 + asc "D" + dw -14,0 + asc "D" + dw -7,16 + asc "S" + dw 74,93 + asc "D" + dw 0,12 + asc "D" + dw 3,0 + asc "D" + dw 0,-19 + asc "D" + dw 0,19 + asc "D" + dw 2,-7 + asc "D" + dw 0,-18 + asc "S" + dw 184,86 + asc "I" + dfb 3 + dfb $ff + +data11800 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 15,191 + asc "D" + dw 0,-160 + asc "D" + dw 75,-30 + asc "D" + dw 52,0 + asc "D" + dw 90,30 + asc "D" + dw 0,160 + asc "S" + dw 15,191 + asc "D" + dw 75,-140 + asc "D" + dw 0,-50 + asc "D" + dw 0,50 + asc "D" + dw 15,0 + asc "D" + dw 0,-30 + asc "D" + dw 12,4 + asc "D" + dw 0,30 + asc "D" + dw -12,-4 + asc "D" + dw 0,-30 + asc "D" + dw 15,0 + asc "D" + dw 0,30 + asc "D" + dw 22,0 + asc "D" + dw 0,-50 + asc "D" + dw 0,50 + asc "D" + dw 36,55 + asc "D" + dw 21,0 + asc "D" + dw -21,0 + asc "D" + dw 0,-60 + asc "D" + dw 21,15 + asc "D" + dw 0,74 + asc "D" + dw 6,8 + asc "D" + dw -106,0 + asc "D" + dw -15,46 + asc "D" + dw 15,-46 + asc "D" + dw 0,10 + asc "D" + dw 106,0 + asc "D" + dw 0,-10 + asc "D" + dw 0,10 + asc "D" + dw 4,5 + asc "D" + dw -112,0 + asc "D" + dw 2,-5 + asc "D" + dw -2,5 + asc "D" + dw 0,10 + asc "D" + dw 112,0 + asc "D" + dw 0,-10 + asc "D" + dw 0,10 + asc "D" + dw 4,6 + asc "D" + dw -119,0 + asc "D" + dw 3,-6 + asc "D" + dw -3,6 + asc "D" + dw 0,10 + asc "D" + dw 119,0 + asc "D" + dw 0,-10 + asc "D" + dw 0,10 + asc "D" + dw 4,6 + asc "D" + dw -126,0 + asc "D" + dw 3,-6 + asc "S" + dw 115,49 + asc "I" + dfb 3 + dfb $ff + +data12200 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 15,190 + asc "D" + dw 0,-150 + asc "D" + dw 75,-30 + asc "D" + dw 0,50 + asc "D" + dw 0,-50 + asc "D" + dw 60,0 + asc "D" + dw 0,50 + asc "D" + dw 0,-50 + asc "D" + dw 82,30 + asc "D" + dw 0,150 + asc "D" + dw -82,-130 + asc "D" + dw -45,0 + asc "D" + dw 0,-30 + asc "D" + dw 15,0 + asc "D" + dw 0,30 + asc "D" + dw -30,0 + asc "D" + dw -30,53 + dfb $ff +*IF LX=2 THEN +data12201 + asc "D" + dw -23,0 + asc "D" + dw 23,0 + asc "D" + dfb $ff +data12202 + dw 0,-60 + asc "D" + dw -23,17 + asc "D" + dw 0,80 + dfb $ff +*IF LX<>2 THEN +data12203 + asc "D" + dw 23,-37 + asc "D" + dw -23,37 + dfb $ff +* 12230 +data12204 + asc "D" + dw -22,40 + dfb $ff +*IF LX<>2 THEN +data12205 + asc "S" + dw 57,88 + asc "C" + dfb 1 + dfb $ff +*IF LX<>0 THEN +data12206 + asc "S" + dw 117,45 + asc "C" + dfb 1 + asc "I" + dfb 3 + dfb $ff +data12207 + asc "S" + dw 105,60 + asc "D" + dw 15,0 + asc "M" + dw -15,0 + asc "D" + dw 0,-30 + asc "D" + dw 12,3 + asc "D" + dw 0,30 + asc "D" + dw -12,-4 + asc "S" + dw 115,48 + asc "I" + dfb 3 + dfb $ff + +data12300 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 15,190 + asc "D" + dw 0,-150 + asc "D" + dw 67,-30 + asc "D" + dw 67,0 + asc "D" + dw 82,30 + asc "D" + dw 0,150 + asc "D" + dw -65,-104 + asc "D" + dw 0,-54 + asc "D" + dw -16,-10 + asc "D" + dw 0,-10 + asc "D" + dw 0,10 + asc "D" + dw -37,0 + asc "D" + dw -3,10 + asc "D" + dw 0,54 + asc "D" + dw 56,0 + asc "D" + dw 0,-54 + asc "D" + dw -28,0 + asc "D" + dw 0,54 + asc "D" + dw 0,-54 + asc "D" + dw -28,0 + asc "D" + dw 0,30 + asc "D" + dw -27,0 + asc "D" + dw 0,-50 + asc "D" + dw 0,50 + asc "D" + dw -67,130 + asc "S" + dw 133,60 + asc "C" + dfb 1 + asc "M" + dw 11,0 + asc "C" + dfb 1 + asc "I" + dfb 3 + dfb $ff + +data12400 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 30,164 + asc "D" + dw -15,26 + asc "D" + dw 0,-143 + asc "D" + dw 15,-7 + asc "D" + dw 0,124 + asc "D" + dw 15,0 + asc "D" + dw 0,-124 + asc "D" + dw -15,0 + asc "D" + dw 15,0 + asc "D" + dw 45,-30 + asc "D" + dw 0,13 + asc "D" + dw 0,-13 + asc "D" + dw 60,0 + asc "D" + dw 0,50 + asc "D" + dw 0,-50 + asc "D" + dw 82,30 + asc "D" + dw 0,150 + asc "D" + dw -82,-130 + asc "D" + dw -50,0 + asc "D" + dw -32,104 + asc "D" + dw -22,0 + asc "D" + dw 22,0 + asc "D" + dw 0,-92 + asc "D" + dw -22,0 + asc "D" + dw 44,-48 + asc "D" + dw 10,0 + asc "D" + dw -32,48 + asc "D" + dw 32,-48 + asc "D" + dw 0,35 + asc "D" + dw -14,46 + asc "D" + dw 0,-61 + asc "S" + dw 81,88 + asc "C" + dfb 1 + asc "M" + dw 11,-21 + asc "C" + dfb 1 + asc "I" + dfb 3 + dfb $ff + +data13000 + asc "H" + asc "I" + dfb 0 + asc "S" + dw 75,62 + asc "D" + dw -5,0 + asc "D" + dw -55,108 + asc "D" + dw 37,-10 + asc "D" + dw 30,-90 + asc "D" + dw -19,5 + asc "D" + dw 19,-5 + asc "D" + dw 20,5 + asc "D" + dw -12,94 + asc "D" + dw -38,-10 + asc "D" + dw 38,10 + asc "D" + dw 0,20 + asc "D" + dw -75,0 + asc "D" + dw 0,-20 + asc "D" + dw 0,20 + asc "D" + dw 75,0 + asc "D" + dw 15,-112 + asc "D" + dw 0,-15 + asc "D" + dw -3,14 + asc "D" + dw 3,-14 + asc "D" + dw -13,0 + asc "D" + dw 0,-12 + asc "D" + dw 0,12 + asc "D" + dw -4,10 + asc "D" + dw 0,-22 + asc "D" + dw 12,0 + asc "D" + dw 4,-7 + asc "D" + dw 0,-15 + asc "D" + dw -4,6 + asc "D" + dw 0,16 + asc "D" + dw 0,-16 + asc "D" + dw -12,0 + asc "D" + dw 4,-6 + asc "D" + dw 12,0 + asc "D" + dw -12,0 + asc "D" + dw 0,-16 + asc "D" + dw -4,6 + asc "D" + dw 0,16 + asc "D" + dw 0,-16 + asc "D" + dw -12,0 + asc "D" + dw 4,-6 + asc "D" + dw 12,0 + asc "D" + dw -12,0 + asc "D" + dw -4,6 + asc "D" + dw 0,16 + asc "D" + dw -12,0 + asc "D" + dw 4,-6 + asc "D" + dw 7,0 + asc "D" + dw -7,0 + asc "D" + dw -4,6 + asc "D" + dw 0,16 + asc "D" + dw 12,0 + asc "D" + dw 0,22 + asc "I" + dfb 3 + dfb $ff diff --git a/leretour/apple2/common/musiques.s b/leretour/apple2/common/musiques.s new file mode 100644 index 0000000..6665415 --- /dev/null +++ b/leretour/apple2/common/musiques.s @@ -0,0 +1,475 @@ +* +* Le retour du Dr Genius +* +* (c) 1983, Loriciels +* (c) 2023, Brutal Deluxe Software (Apple II) +* + + mx %11 + lst off + +*----------------------------------- +* PLAYMUSIC +*----------------------------------- + +playMUSIC + sty $1e + stx $1f + + LDA #$01 + STA $09 + STA $1D + PHA + PHA + PHA + BNE LA04D +LA038 INY + LDA ($1E),Y + STA $09 + INY + LDA ($1E),Y + STA $1D +LA042 LDA $1E + CLC + ADC #$03 + STA $1E + BCC LA04D + INC $1F +LA04D LDY #$00 + LDA ($1E),Y + CMP #$01 + BEQ LA038 + BCS LA067 + PLA + PLA + PLA +LA05A LDX #$49 + INY + LDA ($1E),Y + BNE LA063 + LDX #$C9 +LA063 BIT KBDSTROBE + RTS + +LA067 STA $08 + JSR LA05A + STX LA0B6 + STA $06 + LDX $09 +LA073 LSR + DEX + BNE LA073 + STA LA0AE+1 + JSR LA05A + STX LA0EE + STA $07 + LDX $1D +LA084 LSR + DEX + BNE LA084 + STA LA0E6+1 +* + PLA + TAY + PLA + TAX + PLA + BNE LA098 +LA095 BIT SPKR +LA098 CMP #$00 + BMI LA09F + NOP + BPL LA0A2 +LA09F BIT SPKR +LA0A2 STA $4E + BIT KBD + BMI LA063 + DEY + BNE LA0AE + BEQ LA0B4 +LA0AE CPY #$36 + BEQ LA0B6 + BNE LA0B8 +LA0B4 LDY $06 +LA0B6 EOR #$40 +LA0B8 BIT $4E + BVC LA0C3 + BVS LA0BE +LA0BE BPL LA0C9 + NOP + BMI LA0CC +LA0C3 NOP + BMI LA0C9 + NOP + BPL LA0CC +LA0C9 CMP SPKR +LA0CC DEC $4F + BNE LA0E1 + DEC $08 + BNE LA0E1 + BVC LA0D9 + BIT SPKR +LA0D9 PHA + TXA + PHA + TYA + PHA + JMP LA042 + +LA0E1 DEX + BNE LA0E6 + BEQ LA0EC +LA0E6 CPX #$0C + BEQ LA0EE + BNE LA0F0 +LA0EC LDX $07 +LA0EE EOR #$80 +LA0F0 BVS LA095 + NOP + BVC LA098 + NOP + +*--- End of player + +*--- INTRODUCTION (Prelude) + +zikINTRODUCTION + hex 0C80000C2B800C19800C1C800C19400C + hex 2B400C19560C2B560C80000C2B800C19 + hex 800C1C800C19400C2B400C19560C2B56 + hex 0102020C80000C26800C18800C19800C + hex 18390C26390C18400C26400C80000C26 + hex 800C18800C19800C18440C26440C1840 + hex 0C26400103030C80000C22800C18800C + hex 19800C18390C22390C18560C22560C80 + hex 000C22800C18800C19800C18560C2256 + hex 0C18390C22390102020C80000C20800C + hex 19800C1C800C19560C20560C19560C20 + hex 560C4C000C204C0C194C0C1C4C0C1944 + hex 0C20440C19440C20440101010C80000C + hex 26800C19800C1C800C19400C20400C22 + hex 400C20400C26390C20390C22390C2039 + hex 0C33000C2B330C2D330C33000102020C + hex 2D000C202D0C1C330C20330C1C390C20 + hex 390C1C400C20400C44000C20440C1C4C + hex 0C204C0C1C560C20560C1C600C206001 + hex 01010C22560C1C560C15560C16560C15 + hex 560C1C560C20000C1C000C22560C1C56 + hex 0C20560C1C560C2B560C22560C26000C + hex 2B000102020C4C000C334C0C204C0C22 + hex 4C0C204C0C334C0C204C0C334C0C5600 + hex 0C33560C20560C22560C204C0C334C0C + hex 20560C33560103030C4C000C264C0C2B + hex 4C0C264C0C2B000C2D000C33000C3900 + hex 0C20720C22720C26720C15000C16000C + hex 19000C1C000C20000102020C22560C26 + hex 560C2B560C15560C1C560C15560C2200 + hex 0C1C000C2B560C26560C22560C1C560C + hex 20560C22560C26000C2B000101010C1E + hex 560C2B560C24560C26560C243C0C2B3C + hex 0C1E330C2B330C19560C2B560C24560C + hex 26560C243C0C2B3C0C1E330C2B330102 + hex 020C60000C26600C1C600C19600C1860 + hex 0C1C600C26600C2B600C30000C26300C + hex 1C330C19330C18390C1C390C22720C26 + hex 720103030C28660C22660C28660C2266 + hex 0C1C300C22300C1C330C22330C28390C + hex 22390C28390C22390C1C400C22400C1C + hex 440C22440102020C204C0C224C0C2633 + hex 0C20330C22300C20300C1C300C22300C + hex 204C0C224C0C264C0C2B4C0C30000C33 + hex 000C39000C40000101010C44000C3044 + hex 0C2B440C30440C2B440C30440C2B000C + hex 30000102020C72000C30720C2B720C30 + hex 720C2B720C30720C2B000C3000010101 + hex 0C40000C33400C24400C26400C24800C + hex 33800C24800C33800102020C40000C33 + hex 400C24400C26400C24800C33800C2480 + hex 0C33800103030C40000C30400C26400C + hex 2B400C26800C30800C26800C30800102 + hex 020C40000C30400C26400C2B400C2680 + hex 0C30800C26800C30800103030C40000C + hex 22400C18400C19400C18800C22800C18 + hex 800C22800102020C40000C22400C1840 + hex 0C19400C18800C22800C18800C228001 + hex 01010C40000C2B400C19400C1C400C19 + hex 800C20800C22800C26800C2B800C3080 + hex 0C33800C39800C40000C44000C4C000C + hex 56000102020C5A000C395A0C265A0C22 + hex 5A0C205A0C265A0C22000C2000010401 + hex 0101010C5A000C395A0C265A0C225A0C + hex 205A0C265A0C22000C20000102020C60 + hex 000C39600C2B600C26600C22600C2B60 + hex 0C26000C22000103030C60000C39600C + hex 2B600C26600C22600C2B600C26000C22 + hex 000101010C60000C39600C2B300C2230 + hex 0C1C300C16300C15560102020C15000C + hex 39000C33000C2D000C2B000C26000C22 + hex 000C20000103030C1C560C22560C2B56 + hex 0C26560C22560C20560C1C000C190001 + hex 02020C18560C1C560C22560C20560C1C + hex 560C19560C18000C15000103030C1422 + hex 0C15220C16220C15220C15280C18280C + hex 19280C18280C182B0C1C2B0C222B0C26 + hex 2B0C2B560C30560C33560C3056010202 + hex 0C56000C39560C2B560C22560C1C560C + hex 19560C18000C1C000C19560C20560C2B + hex 560C30560C33560C40560C39000C3300 + hex 0101010C56000C40560C33560C2B560C + hex 20560C1C560C19000C20000102020C16 + hex 260C1B260C1C260C1B260C1B2D0C1C2D + hex 0C1E2D0C1C2D0C1C000C20000C22000C + hex 20000C20000C26000C2D000C33000C39 + hex 000C2D390C26390C20390C1C400C1640 + hex 0C15400C16400103030C15440C1C440C + hex 22440C26440C22660C1C660C2B660C22 + hex 660102020C39000C2B390C2D390C3339 + hex 0C395A0C405A0C445A0C4C5A0101010C + hex 00560C00560C184C0C194C0C1C440C20 + hex 440C22400C26400C2B390C18390C1933 + hex 0C1C330C20300C22300C26400C2B4001 + hex 02020C304C0C194C0C1C4C0C204C0C22 + hex 000C26000C2B000C30000C33500C1C50 + hex 0C204C0C224C0C26440C28440C30800C + hex 33800103030C39600C20600C22600C26 + hex 600C22560C1C560C2B440C1C440C2640 + hex 0C1C400C22390C1C390C20330C1C330C + hex 262D0C1C2D0102020C22560C1C560C2B + hex 440C1C440C20330C1C330C262D0C1C2D + hex 0C22560C1C560C2B440C1C440C20330C + hex 1C330C262D0C1C2D0101010C22560C1C + hex 560C2B2B0C1C2B0C26260C1C260C2222 + hex 0C1C220C20200C1C200C1C1C0C1C000C + hex 19190C1C190C2B2B0C1C2B0102020C1C + hex 1C0C1C000C19190C1C190C18180C1C18 + hex 0C2B2B0C1C2B0C19190C1C190C18180C + hex 1C180C15150C1C150C19190C1C190103 + hex 030C18180C1C180C19190C1C190C1818 + hex 0C1C180C1C1C0C1C000C19190C1C190C + hex 1C1C0C1C000C19190C1C190C20200C1C + hex 200102020C1C1C0C1C000C20200C1C20 + hex 0C1C1C0C1C000C22220C1C220C20200C + hex 1C200C22220C1C220C20200C1C200C26 + hex 260C1C260101010C22220C1C220C2B2B + hex 0C262B0102020C243C0C24560C22390C + hex 22560C20360C20560C1E330C1E560C1C + hex 300C1C560C1B2D0103030C1B560C192B + hex 0C19560C18280C18560C16260C16560C + hex 15240C15560C14220C14560C13200C13 + hex 560C121E0C12560C111C0C1156010101 + hex 0C10560C19560C2B560C19560C102B0C + hex 192B0C102B0C192B0103030C10560C19 + hex 560C2B560C19560C102B0C192B0C102B + hex 0C192B0101010C10560C1C560C2B560C + hex 1C560C102B0C1C2B0C102B0C1C2B0103 + hex 030C10560C1C560C2B560C1C560C102B + hex 0C1C2B0C102B0C1C2B0101010C11560C + hex 1C560C2B560C1C560C11300C1C300C11 + hex 300C1C300102020C11560C1C560C2B56 + hex 0C1C560C11300C1C300C11560C1C5630 + hex 1040FFFFFE00FFFE1000000000000000 + hex 00000000000000000000000000000000 + +*--- GAGNE (Air) + +zikGAGNE + hex 01020308000008306008306008306020 + hex 3C7808000008366C08366C08366C4040 + hex 80080000083000083000083000083C90 + hex 082D90082D90082D90083090081E9008 + hex 1E90081E901824900824900824900830 + hex 90083090083090084098082D98082D98 + hex 082D98083098081B98081B98081B9818 + hex 2098082098082098081898081898081B + hex 98081E00081E78081E78081E6C082060 + hex 081860081860081B60081E00081E7808 + hex 1E78081E6C082060081860081860081B + hex 60101E60100000102478100000201880 + hex 080000082D5A082D5A082D5A601B6C08 + hex 0000082D00082D00082D000836400836 + hex 4008364008364C08365A08365A08365A + hex 0836600836C00836C00836C0083C6008 + hex 2D00082D00082D000836000836400836 + hex 4008364008364C08365A08365A08365A + hex 083660081BC0081BC0081BC0081E6008 + hex 30000824000824001024D80824000824 + hex D80826D80826D80826000820001020D8 + hex 0820000820D80824D80824D808240008 + hex 1E00081E4C08204C062000040000061B + hex 00030000081B50081C50061C00040000 + hex 061800030000081848081B48061B0004 + hex 00000616000300000816480818480618 + hex 00040000061400030000081448081648 + hex 06160004000006120003000008125608 + hex 13560613000400000610000400000812 + hex 60080F60080F00080F60081260081860 + hex 081800081860081E6008246008300008 + hex 3060083C60084860084800084860084C + hex 6C080D6C08100008106C08136C08166C + hex 08180008186C08206C08266C08300008 + hex 366C08406C084C6C0848000848000848 + hex 56080F56080F00080F56081256081556 + hex 081500081556081856081E56081E0008 + hex 1E56082456082B56082B00082B562015 + hex 56100000200000201450100000080000 + hex 08280008280008280020003C20360020 + hex 0050102850101E501020A0081E00081E + hex A0101BA00824000824A01024F0082800 + hex 0828F01028F0081E00081EF01020A008 + hex 1E00081EA0101BA00824000824A01024 + hex F00828000828F01028F0081E00081EF0 + hex 1020A0081E00081EA0101BA008240008 + hex 24A01024F00828000828F01028C00824 + hex 000824C01022E40824000824E41028D8 + hex 0824000824D81028D8082B00082BD810 + hex 22B4081E00081EB4101BC0081E00081E + hex C01022E4081E00081EE41022B4082400 + hex 0824B4101EB4081B00081BB41019AC08 + hex 1B00081BAC101EAC081B00081BAC1019 + hex A0081B00081BA0101EA0101B00101998 + hex 081B00081B98101E98101B0010199008 + hex 1B00081B90101E90101B00101990081B + hex 00081B90101990101500101480081400 + hex 0814800814F00612F00600000614F006 + hex 00000618F00600000818F00818F0061B + hex 00060000061E00060000081ED80820D8 + hex 062400060000062000060000081BC008 + hex 1EC00628000600000630000600000820 + hex B40824B4062D00060000063600060000 + hex 0824A00828A0063000060000063C0006 + hex 00000800A00815A00814000815000814 + hex F00815F00814D80815D80614A0060000 + hex 0612A006000006148006000006168006 + hex 00000816F00818F0061BC0060000061E + hex C0060000081ED80820D80624B4060000 + hex 0620B4060000081BC0081EC00628A006 + hex 00000630A00600000820B40824B4062D + hex 900600000636900600000824A00828A0 + hex 061650060000061B500600000800A008 + hex 28A0081450081450081E50080B30080B + hex 30080B30080F3C081450081450081450 + hex 081860081E3C081E3C081E3C0828A008 + hex 1B50081B50081B50081878080B30080B + hex 30080B30080F3C081450081450081450 + hex 081860081E78081E78081E780828A008 + hex 14500814500814501014501000000800 + hex 00081450081450081450101450100000 + hex 080000081050081050081050100F5010 + hex 00002000004000000830600830600830 + hex 60203C7808000008366C08366C08366C + hex 40408008000008300008300008300008 + hex 3C90082D90082D90082D90083090081E + hex 90081E90081E90182490082490082490 + hex 083090083090083090084098082D9808 + hex 2D98082D98083098081B98081B98081B + hex 98182098082098082098081898081898 + hex 081B98081E00081E78081E78081E6C08 + hex 2060081860081860081B60081E00081E + hex 78081E78081E6C082060081860081860 + hex 081B60101E6010000010247810000020 + hex 188008000008165A08165A08165A601B + hex 6C080000082D00082D00082D00083640 + hex 08364008364008364C08365A08365A08 + hex 365A0836600836C00836C00836C0083C + hex 60082D00082D00082D00083600083640 + hex 08364008364008364C08365A08365A08 + hex 365A083660081BC0081BC0081BC0081E + hex 600830000824000824001024D8082400 + hex 0824D80826D80826D808260008200010 + hex 20D80820000820D80824D80824D80824 + hex 00081E00081E4C08204C062000060000 + hex 061B00060000081B50081C50061C0006 + hex 0000061800060000081848081B48061B + hex 00060000061600060000081648081848 + hex 06180006000006140006000008144808 + hex 16480616000600000612000600000812 + hex 56081356061300060000061000060000 + hex 081260080F60080F00080F6008126008 + hex 1860081800081860081E600824600830 + hex 00083060083C60084860084800084860 + hex 084C6C080D6C08100008106C08136C08 + hex 166C08180008186C08206C08266C0830 + hex 0008366C08406C084C6C084800084800 + hex 08482D080F3C080F3C080F3C08124808 + hex 1556081556081556081966081E78081E + hex 78081E78082490082BAC082BAC082BAC + hex 10339010000020000010309810000008 + hex 0000083000083000083000083C90082D + hex 90082D90082D90083090081E90081E90 + hex 081E9010249008249008249008309008 + hex 3090083090083C90082D90082D90082D + hex 90083090081E90081E90081E90182490 + hex 0824900824900820C00820C00820C010 + hex 1E901000000800000820C00820C00820 + hex C0101EC01000000800000820C00820C0 + hex 0820C0101ED81020C0101ED81020C010 + hex 1ED81015C01014D81015C01014D81000 + hex 001026C01000002024D80062C5000000 + hex 00000000000000000000000000000000 + +*--- PERDU (Beethoven's fifth) + +zikPERDU + hex 010303302B6C302B36302B39302B7230 + hex 2B80302B40302B48302B90309FA00102 + hex 0218205018285018304C18364C183998 + hex 1836980C39900C36900C39900C369030 + hex 39901840901848903048A00101013024 + hex AC302456302460302460180066010303 + hex 182B66183C6618406618308018338018 + hex 24801828800102023028601828601828 + hex 6C182860182856182850182860182872 + hex 01010118307218407218487218369018 + hex 3990182890182B90302B6C302B36302B + hex 390102021826721824723036800C3640 + hex 0C3040182B40182B4C18304C18306018 + hex 36600103031839481840480C406C0C39 + hex 6C18366C303660183960184060010101 + hex 18489018488018487218486C18486018 + hex 4850184856184860010303302B6C302B + hex 36302B39302B72302B80302B40302B48 + hex 302B90309FA001020218205018285018 + hex 304C18364C1839981836980C39900C36 + hex 900C39900C3690303990184090184890 + hex 3048A00101013024AC30245630246030 + hex 2460180066010303182B66183C661840 + hex 66183080183380182480182880010202 + hex 30286018286018286C18286018285618 + hex 28501828601828720101011830721840 + hex 72184872183690183990182890182B90 + hex 302B6C302B36302B3901020218267218 + hex 24723036800C36400C3040182B40182B + hex 4C18304C183060183660010303183948 + hex 1840480C406C0C396C18366C30366018 + hex 3960184060010101C0488F3039903039 + hex 481839500C36500C39500C40A00C39A0 + hex 1848A01848AC1840AC303C56303C6030 + hex 3C600102023040663020661800561824 + hex 56182880182B80010303302860302860 + hex 0C286C0C2B6C0C306C0C366C18396C18 + hex 406C0102021844721840723039721839 + hex 80183680303080010404183090182B90 + hex 302880302872302B9001020218308018 + hex 36801839501840500C39600C36601830 + hex 60303656304080303F40304748308F90 + hex 01010130369830364C183656182B5618 + hex 30AC1836AC3020601820601820563020 + hex 4C18246C18266C0103030C2B720C3072 + hex 18247230487230406C1840600C39600C + hex 3660303990183948183F403048500101 + hex 013048A03036AC303656303650182BA0 + hex 1830A001020230309830304C30304818 + hex 2890182B90010303302B88302B44302B + hex 40182480182880010404302860302830 + hex 30283630286C01040430487230487218 + hex 48901839901830721828720103031828 + hex 6C182B6C302B6C302B78182B780C2878 + hex 0C247801020230368030368018369018 + hex 2B90182448181E480103033020503020 + hex 50302056303656183960183060302860 + hex 30286C30406C3048720102020C30900C + hex 2B9018289018286C182B6C182B501830 + hex 500103030C36900C39901840901840A0 + hex 1839A00C39900C36900C39900C369018 + hex 39901836903036D8C0D7D80066B31000 + hex 00000000000000000000000000000000 diff --git a/leretour/apple2/fr/fr.s b/leretour/apple2/fr/fr.s new file mode 100644 index 0000000..63f198f --- /dev/null +++ b/leretour/apple2/fr/fr.s @@ -0,0 +1,828 @@ +* +* Le retour du Dr Genius +* +* (c) 1983, Loriciels +* (c) 2023, Brutal Deluxe Software (Apple II) +* + +* +* Les chaines standards +* + +strVOUSDETENEZ + asc 8D"Vous avez en votre possession : "00 + +strVOUSRIEN + asc 8D"Pas la peine de regarder, vous n"A7"avez"8D + asc "rien sur vous"00 + +strPOINT + asc "."00 + +strEVIDENT + asc 8D"Vous vous prenez pour HULK..., vous ne"8D + asc "pouvez porter tant de choses !"8D00 + +strVOUSLAVEZ + asc 8D"Vous l"A7"avez deja. Si votre memoire"8D + asc "est mauvaise, faites une liste"8D00 + +strNOTOWNED + asc 8D"Jusqu"A7"a nouvel ordre, on ne peut poser"8D + asc "ce que l"A7"on ne possede pas..."8D00 + +strDACCORD + asc "D"A7"accord"00 + +strILFAITNOIR + asc "Il fait trop sombre pour voir quelque"8D + asc "chose, il faudrait peut-etre allumer"8D00 + +strILYA asc 8D"Ici, il y a egalement :"00 +strCOMMA asc ","00 +strSPACE asc 8D" "00 +strRETURN asc 8D00 + +strCMD asc 8D"Votre commande ? "00 + +strCOMMANDE asc 8D"Commande (" +strTEMPS asc "5000) ? "00 + +tbl580 da $bdbd + da str581,str582,str583,str584,str585 + da str586,str587,str588,str589,str590 + +str581 asc 8D"Ne racontez pas n"A7"importe quoi"8D00 +str582 asc 8D"Pardon"8D00 +str583 asc 8D"Comment"8D00 +str584 asc 8D"Je ne comprends pas"8D00 +str585 asc 8D"Sorry, I don"A7"t understand"8D00 +str586 asc 8D"Les rigolos qui m"A7"ont programme ne m"A7"ont" + asc "pas appris ce vocabulaire"8D00 +str587 asc 8D"Je n"A7"ai pas compris"8D00 +str588 asc 8D"OK"8D00 +str589 asc 8D"Ca marche"8D00 +str590 asc 8D"D"A7"accord"8D00 + +strIMPOSSIBLE + asc 8D"Impossible "00 +strCECHEMIN + asc "de prendre ce chemin"00 +strEXCLAM + asc " !"8D00 + +strREPLAY asc 8D"Voulez-vous rejouer ? "00 + +strPERDU + asc "EN CETTE HEURE PENIBLE, MOI APPLE ]["8D8D + asc "J"A7"ai le terrible devoir de vous"8D + asc "annoncer la mort tragique de votre"8D + asc "propre personne dans la redoutable"8D + asc "KIKEKANKOI, mais peut-etre vous en"8D + asc "etiez vous rendu compte...?"8D + asc 8D + asc "Vos funerailles furent respectables,"8D + asc "de par la preuve de courage que vous"8D + asc "aviez donnee et pour la personne qui"8D + asc "a cette heure-ci est encore prison-"8D + asc "niere de la cite mysterieuse... "00 + +strPERDU2 + asc 8D8D"OUF..... oui je sais, c"A7"est toujours"8D + asc "trop long les sepultures..."8D8D00 + +strGAGNE + asc "Quelle classe..., ressortir vivant de"8D + asc "KIKEKANKOI, il fallait le faire,"8D + asc "d"A7"autant plus que vous ne vous etes"8D + asc "meme pas ecorche un doigt! Mais ne"8D + asc "restez pas trop dans les parages, car"8D + asc "le savant fou a peut-etre encore"8D + asc "quelques experiences a faire sur vous,"8D + asc "comme vous greffer une tete de singe"8D + asc "ou un cerveau electronique de 64 Ko..."8D + asc 8D + asc "Merci d"A7"etre reste si longtemps a"8D + asc "votre clavier et encore toutes mes"8D + asc "felicitations"8D8D00 + +*----------------------------------- +* LES DONNEES +*----------------------------------- + +* +* Les conditions +* + +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 + +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.E08D16K." +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 +* + +nbO = 19 + +refO dfb $bd + dfb 40,33,41,53,43,10,00,21,22,26 + dfb 01,06,00,17,20,00,47,19,00 + +O dfb $bd + dfb 40,33,41,53,43,10,00,21,22,26 + dfb 01,06,00,17,20,00,47,19,00 + +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$11,O$12,O$13,O$14,O$15,O$16,O$17,O$18,O$19 + +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$11,O$12,O$13,O$14,O$15,O$16,O$17,O$18,O$19 + +O$1 asc "Un pistolet laser"00 +O$2 asc "Des gants ensanglantes"00 +O$3 asc "Une bombe a retardement"00 +O$4 asc "Un tube"00 +O$5 asc "Une glaciere"00 +O$6 asc "Une boite vide"00 +O$7 asc "Une boite pleine d"A7"eau"00 +O$8 asc "Un vaporisateur"00 +O$9 asc "Un magnetophone"00 +O$10 asc "Un compteur Geiger"00 +O$11 asc "Un ventilateur"00 +O$12 asc "Un casque"00 +O$13 asc "Un casque enfile"00 +O$14 asc "Des echasses"00 +O$15 asc "Des containers"00 +O$16 asc "Une radiocommande"00 +O$17 asc "Des lunettes de soleil"00 +O$18 asc "Une tronconneuse"00 +O$19 asc "La glaciere avec le tube a l"A7"interieur"00 + +* +* Les directions +* + +M = 53 + +tblM$ da $bdbd + da M$1,M$2,M$3,M$4,M$5,M$6,M$7,M$8,M$9,M$10 + da M$11,M$12,M$13,M$14,M$15,M$16,M$17,M$18,M$19,M$20 + da M$21,M$22,M$23,M$24,M$25,M$26,M$27,M$28,M$29,M$30 + da M$31,M$32,M$33,M$34,M$35,M$36,M$37,M$38,M$39,M$40 + da M$41,M$42,M$43,M$44,M$45,M$46,M$47,M$48,M$49,M$50 + da M$51,M$52,M$53 + +M$1 dfb 20230300 +M$2 dfb 30440100 +M$3 dfb 10120431900 +M$4 dfb 10220540300 +M$5 dfb 30640453800 +M$6 dfb 10540700 +M$7 dfb 20631640800 +M$8 dfb 20730900 +M$9 dfb 10821331041100 +M$10 dfb 1090 +M$11 dfb 11820931700 +M$12 dfb 31362700 +M$13 dfb 11240900 +M$14 dfb 3150 +M$15 dfb 11441600 +M$16 dfb 10721500 +M$17 dfb 1110 +M$18 dfb 00 +M$19 dfb 10322031800 +M$20 dfb 4190 +M$21 dfb 3230 +M$22 dfb 22342500 +M$23 dfb 12132442200 +M$24 dfb 1230 +M$25 dfb 22264900 +M$26 dfb 1270 +M$27 dfb 32642851200 +M$28 dfb 22742900 +M$29 dfb 22843000 +M$30 dfb 2290 +M$31 dfb 24033200 +M$32 dfb 13124433300 +M$33 dfb 13234900 +M$34 dfb 14144300 +M$35 dfb 23634300 +M$36 dfb 13724843500 +M$37 dfb 13833600 +M$38 dfb 13924733744560500 +M$39 dfb 33844000 +M$40 dfb 23943100 +M$41 dfb 3340 +M$42 dfb 15024300 +M$43 dfb 13523444200 +M$44 dfb 4320 +M$45 dfb 2380 +M$46 dfb 00 +M$47 dfb 34843800 +M$48 dfb 14743600 +M$49 dfb 13335052500 +M$50 dfb 14934200 +M$51 dfb 3460 +M$52 dfb 00 +M$53 dfb 2290 + +* +* Le vocabulaire +* on fera index-1 b/c 8-bits +* + +V = 139+2 + +tblVL$ dfb $bd + dfb V$1,>V$2,>V$3,>V$4,>V$5,>V$6,>V$7,>V$8,>V$9,>V$10 + dfb >V$11,>V$12,>V$13,>V$14,>V$15,>V$16,>V$17,>V$18,>V$19,>V$20 + dfb >V$21,>V$22,>V$23,>V$24,>V$25,>V$26,>V$27,>V$28,>V$29,>V$30 + dfb >V$31,>V$32,>V$33,>V$34,>V$35,>V$36,>V$37,>V$38,>V$39,>V$40 + dfb >V$41,>V$42,>V$43,>V$44,>V$45,>V$46,>V$47,>V$48,>V$49,>V$50 + dfb >V$51,>V$52,>V$53,>V$54,>V$55,>V$56,>V$57,>V$58,>V$59,>V$60 + dfb >V$61,>V$62,>V$63,>V$64,>V$65,>V$66,>V$67,>V$68,>V$69,>V$70 + dfb >V$71,>V$72,>V$73,>V$74,>V$75,>V$76,>V$77,>V$78,>V$79,>V$80 + dfb >V$81,>V$82,>V$83,>V$84,>V$85,>V$86,>V$87,>V$88,>V$89,>V$90 + dfb >V$91,>V$92,>V$93,>V$94,>V$95,>V$96,>V$97,>V$98,>V$99,>V$100 + dfb >V$101,>V$102,>V$103,>V$104,>V$105,>V$106,>V$107,>V$108,>V$109,>V$110 + dfb >V$111,>V$112,>V$113,>V$114,>V$115,>V$116,>V$117,>V$118,>V$119,>V$120 + dfb V$131,>V$132,>V$133,>V$134,>V$135,>V$136,>V$137,>V$138,>V$139 + dfb >V$201,>V$202 + +tblV dfb $bd + dfb 01,01,02,02,03,03,04,04,05,05 + dfb 05,05,06,06,10,10,10,11,12,12 + dfb 13,13,14,15,16,17,17,17,18,19 + dfb 19,20,20,21,22,23,24,25,25,25 + dfb 26,27,28,29,30,31,32,33,34,35 + dfb 35,36,37,37,38,38,38,39,39,39 + dfb 40,41,42,43,43,44,45,46,47,48 + dfb 49,50,50,50,51,51,52,52,52,53 + dfb 54,54,55,55,56,56,57,58,58,59 + dfb 60,61,62,62,63,63,64,65,66,67 + dfb 68,69,69,70,70,71,72,73,73,74 + dfb 75,76,77,77,78,78,79,80,80,80 + dfb 81,81,82,83,83,84,84,84,85,85 + dfb 85,86,87,87,88,88,89,89,00 + dfb 201,202 + +V$1 str "N" +V$2 str "NORD" +V$3 str "E" +V$4 str "EST " +V$5 str "S" +V$6 str "SUD " +V$7 str "O" +V$8 str "OUES" +V$9 str "G" +V$10 str "GRIM" +V$11 str "M" +V$12 str "MONT" +V$13 str "D" +V$14 str "DESC" +V$15 str "PREN" +V$16 str "SAIS" +V$17 str "RAMA" +V$18 str "POSE" +V$19 str "SAUT" +V$20 str "ENJA" +V$21 str "TELE" +V$22 str "TV" +V$23 str "GLAC" +V$24 str "OUVR" +V$25 str "RADI" +V$26 str "FLAC" +V$27 str "TUBE" +V$28 str "NITR" +V$29 str "BOMB" +V$30 str "LASE" +V$31 str "PIST" +V$32 str "APPU" +V$33 str "ENFO" +V$34 str "ROUG" +V$35 str "BLEU" +V$36 str "JAUN" +V$37 str "BOUT" +V$38 str "APPR" +V$39 str "EXAM" +V$40 str "REGA" +V$41 str "BIBL" +V$42 str "LIVR" +V$43 str "LIS" +V$44 str "MATH" +V$45 str "DALL" +V$46 str "ARLE" +V$47 str "MEMO" +V$48 str "BOIT" +V$49 str "REMP" +V$50 str "EAU" +V$51 str "H2O" +V$52 str "RETO" +V$53 str "ENTR" +V$54 str "ABOR" +V$55 str "VAIS" +V$56 str "SOUC" +V$57 str "ASTR" +V$58 str "SALL" +V$59 str "PIEC" +V$60 str "LIEU" +V$61 str "BOIS" +V$62 str "GANT" +V$63 str "VAPO" +V$64 str "MAGN" +V$65 str "LECT" +V$66 str "CASS" +V$67 str "CASQ" +V$68 str "ECHA" +V$69 str "CONT" +V$70 str "LUNE" +V$71 str "TRON" +V$72 str "ENFI" +V$73 str "PASS" +V$74 str "METS" +V$75 str "ENLE" +V$76 str "DEPO" +V$77 str "ENCL" +V$78 str "DECL" +V$79 str "ACTI" +V$80 str "VENT" +V$81 str "GEIG" +V$82 str "COMP" +V$83 str "REFL" +V$84 str "PENS" +V$85 str "RIEN" +V$86 str "ATTE" +V$87 str "DORS" +V$88 str "AIDE" +V$89 str "SECO" +V$90 str "CONS" +V$91 str "DEMA" +V$92 str "ECOU" +V$93 str "CHRO" +V$94 str "TEMP" +V$95 str "QUIT" +V$96 str "ABAN" +V$97 str "SUIC" +V$98 str "MANU" +V$99 str "AUTO" +V$100 str "FERM" +V$101 str "ROBI" +V$102 str "RETI" +V$103 str "ARRE" +V$104 str "RESP" +V$105 str "SOUF" +V$106 str "ALLU" +V$107 str "TABL" +V$108 str "REFR" +V$109 str "FRIG" +V$110 str "ORDI" +V$111 str "ESSA" +V$112 str "FLAQ" +V$113 str "PORT" +V$114 str "SAS" +V$115 str "LIST" +V$116 str "INVE" +V$117 str "ESCA" +V$118 str "VIDE" +V$119 str "VERS" +V$120 str "RENV" +V$121 str "FORC" +V$122 str "ENER" +V$123 str "TOUR" +V$124 str "PAGE" +V$125 str "FEUI" +V$126 str "SAVE" +V$127 str "SAUV" +V$128 str "CSAV" +V$129 str "LOAD" +V$130 str "CLOA" +V$131 str "ENRE" +V$132 str "ETEI" +V$133 str "RETA" +V$134 str "CORR" +V$135 str "DIRE" +V$136 str "TRAJ" +V$137 str "TOUT" +V$138 str "TOTA" +V$139 str " " + +V$201 str "CASE" +V$201 str "TIME" + +* +* Les lieux (str8xxx) +* + +* "0 1 2 3 " +* "0123456789012345678901234567890123456789" +* "----------------------------------------" + +str8010 asc ""00 +str8020 asc ""00 +str8030 asc ""00 +str8040 asc ""00 +str8050 asc ""00 +str8060 asc ""00 +str8070 asc ""00 +str8080 asc ""00 +str8090 asc ""00 +str8100 asc ""00 +str8110 asc ""00 +str8120 asc ""00 +str8130 asc ""00 +str8140 asc ""00 +str8150 asc ""00 +str8160 asc ""00 +str8170 asc ""00 +str8180 asc ""00 +str8190 asc ""00 +str8200 asc ""00 +str8210 asc ""00 +str8220 asc ""00 +str8230 asc ""00 +str8240 asc ""00 +str8250 asc ""00 +str8260 asc ""00 +str8270 asc ""00 +str8280 asc ""00 +str8290 asc ""00 +str8300 asc ""00 +str8310 asc ""00 +str8320 asc ""00 +str8330 asc ""00 +str8340 asc ""00 +str8350 asc ""00 +str8360 asc ""00 +str8370 asc ""00 +str8380 asc ""00 +str8390 asc ""00 +str8400 asc ""00 +str8410 asc ""00 +str8420 asc ""00 +str8430 asc ""00 +str8440 asc ""00 +str8450 asc ""00 +str8460 asc ""00 +str8470 asc ""00 +str8480 asc ""00 +str8490 asc ""00 +str8500 asc ""00 +str8510 asc ""00 +str8520 asc ""00 +str8530 asc ""00 +str8540 asc ""00 +str8550 asc ""00 +str8560 asc ""00 +str8570 asc ""00 +str8580 asc ""00 +str8590 asc ""00 +str8600 asc ""00 + +* +* Les reponses (str7xxx) +* + +* "0 1 2 3 " +* "0123456789012345678901234567890123456789" +* "----------------------------------------" + +str4010 asc ""00 +str4020 asc ""00 +str4030 asc ""00 +str4040 asc ""00 +str4050 asc ""00 +str4060 asc ""00 +str4070 asc ""00 +str4080 asc ""00 +str4090 asc ""00 +str4100 asc ""00 +str4110 asc ""00 +str4120 asc ""00 +str4130 asc ""00 +str4140 asc ""00 +str4150 asc ""00 +str4160 asc ""00 +str4170 asc ""00 +str4180 asc ""00 +str4190 asc ""00 +str4200 asc ""00 +str4210 asc ""00 +str4220 asc ""00 +str4230 asc ""00 +str4240 asc ""00 +str4250 asc ""00 +str4260 asc ""00 +str4270 asc ""00 +str4280 asc ""00 +str4290 asc ""00 +str4300 asc ""00 +str4310 asc ""00 +str4320 asc ""00 +str4330 asc ""00 +str4340 asc ""00 +str4350 asc ""00 +str4360 asc ""00 +str4370 asc ""00 +str4380 asc ""00 +str4390 asc ""00 +str4400 asc ""00 +str4410 asc ""00 +str4420 asc ""00 +str4430 asc ""00 +str4440 asc ""00 +str4450 asc ""00 +str4460 asc ""00 +str4470 asc ""00 +str4480 asc ""00 +str4490 asc ""00 +str4500 asc ""00 +str4510 asc ""00 +str4520 asc ""00 +str4530 asc ""00 +str4540 asc ""00 +str4550 asc ""00 +str4560 asc ""00 +str4570 asc ""00 +str4580 asc ""00 +str4590 asc ""00 +str4600 asc ""00 +str4610 asc ""00 +str4620 asc ""00 +str4630 asc ""00 +str4640 asc ""00 +str4650 asc ""00 +str4670 asc ""00 +str4680 asc ""00 +str4690 asc ""00 +str4700 asc ""00 +str4710 asc ""00 +str4720 asc ""00 +str4730 asc ""00 +str4740 asc ""00 +str4750 asc ""00 diff --git a/leretour/apple2/fr/leretour.s b/leretour/apple2/fr/leretour.s new file mode 100644 index 0000000..6f00b52 --- /dev/null +++ b/leretour/apple2/fr/leretour.s @@ -0,0 +1,2321 @@ +* +* Le retour du Dr Genius +* +* (c) 1983, Loriciels +* (c) 2023, Brutal Deluxe Software (Apple II) +* + + mx %11 + org $400 + 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 +nbLINES = 200 ; 200 lignes sur un CPC +deltaY = 32 + +nbOaP = 10 ; on peut porter dix objets + +chrLA = $88 +chrRA = $95 +chrDEL = $ff +chrRET = $8d +chrSPC = $a0 +TEXTBUFFER = $200 +maxLEN = 20 + +chrOUI = "O" +chrNON = "N" + +idxCASSE = 200 +idxTIMER = 201 + +PRODOS = $bf00 + +KBD = $c000 +CLR80VID = $c00c +KBDSTROBE = $c010 +VBL = $c019 +MONOCOLOR = $c021 +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 ; using mine now +COUT = $FDED +IDROUTINE = $FE1F +SETNORM = $FE84 +SETKBD = $FE89 + +*----------------------------------- +* MACROS +*----------------------------------- + +@draw mac + lda #]1 + jsr showPIC + 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 + + lda MONOCOLOR + sta sauveMONO + ora #%1000_0000 +* and #%0111_1111 + sta MONOCOLOR + +notiigs + +*-------- CAN WE DO lowercase? + + lda $FBB3 + cmp #$06 + beq lowerOK + + lda #$80 ; ONLY UPPERCASE + sta fgCASE +lowerOK + +*-------- + +* lda #0 +* sta deltaY +* +* jsr introPIC ; la picture GR +* +* lda #32 +* sta deltaY + + @play #zikINTRODUCTION + +REPLAY jsr initALL + jsr HGR + + jsr HOME ; clear text screen + lda #0 ; move cursor to 0,20 + sta CH + lda #20 + jsr TABV + +*----------------------------------- +* DU BASIC A L'ASSEMBLEUR (BEURK) +*----------------------------------- + +:100 ldx #2 + lda #0 + sta P,x + + lda SALLE + cmp #10 + beq :100_OK + cmp #22 + beq :100_OK + cmp #54 + beq :100_OK + cmp #15 + bne :105 + +:100_OK lda #1 + sta P,x + +:105 ldx #10 + lda O,x + cmp SALLE + beq :200 + cmp #-1 + beq :200 + + ldx #2 ; :106 + lda P,x + beq :200 + + ldx #9 ; :115 + lda C,x + cmp #2 + bcc :130 + dec C,x + +:130 jsr HGR + jsr setMIXEDON + @print #strILFAITNOIR + jmp :500 + +*----------------------------------- +* 200 - description salle +*----------------------------------- + +:200 jsr setHGR + +* @print #strRETURN + + 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 + + inc HH + +:400 inc N + lda N + cmp #nbO + bcc :310 + beq :310 + + @print #strRETURN + +*----------------------------------- +* 500 - ACCEPTATION COMMANDE +*----------------------------------- + +:500 ldx #1 + lda C,x + cmp #2 + bcc :501 + dec C,x + +:501 ldx #2 + lda C,x + cmp #2 + bcc :502 + dec C,x + +:502 ldx #4 + lda C,x + cmp #2 + bcc :503 + dec C,x + +:503 ldx #6 + lda C,x + cmp #2 + bcc :504 + dec C,x + +:504 ldx #10 + lda O,x + cmp SALLE + beq :505 + cmp #-1 + bne :510 + +:505 ldx #3 + lda C,x + cmp #2 + bcc :510 + dec C,x + +:510 lda #1 + sta T + lda #0 + sta N + jmp :1000 + +:530 lda switchENERGIE+1 + beq :531 + @print #strCMD ; commande sans energie + jmp :535 +:531 @print #strCOMMANDE ; commande avec energie + +:535 jsr GETLN1 + jsr rewriteSTRING ; from lower to upper + jsr :6000 ; cherche les mots + + lda MO$1 + bne :900 + + lda VBL ; LOGO - Use a better RND? + eor VERTCNT + and #7 + clc + adc #1 + asl + tax + ldy tbl580,x + lda tbl580+1,x + tax + jsr printCSTRING + jmp :100 + +*----------------------------------- +* 900 - CONTROLES APPLE II +*----------------------------------- + +:900 cmp #idxCASSE + bne :910 + + jsr switchCASE + jmp :100 + +:910 cmp #idxTIMER + bne :915 + + jsr switchENERGIE + 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 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 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,:500,:530 + +*----------------------------------- +* 1800 +*----------------------------------- + +tbl1800 da :1800,:1900 + da :2000,:2100,:2200,:2300,:2400,:2500,:2600,:2700,:2800,:2900 + da :3000,:3100,:3200 + +*-------- A + +:1800 lda #0 + sta G + sta HH + sta H ; for comma + +* lda #2 ; 500 +* sta BREAK + +: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 + +:1850 inc HH + + lda H + beq :1860 + + @print #strCOMMA + +:1860 @print #strSPACE + + lda G + asl + tax + ldy tblO$,x + lda tblO$+1,x + tax + jsr printCSTRING + + inc H + + lda G + cmp #nbO + bcc :1810 + +:1870 lda HH + beq :1880 + + @print #strPOINT + rts + +:1880 @print #strVOUSRIEN + rts + +*-------- B + +:1900 lda S + cmp #nbOaP ; nombre d'objets porter + bcc :1930 + + @print #strEVIDENT + +:1920 lda #1 + sta BREAK + rts + +:1930 ldx N + lda O,x + cmp #-1 + bne :1960 + + @print #strVOUSLAVEZ + jmp :1920 + +:1960 lda #-1 + sta O,x + + inc S + rts + +*-------- C + +:2000 ldx N + lda O,x + cmp #-1 + beq :2030 + + @print #strNOTOWNED + + lda #2 + sta BREAK + rts + +: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 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 + +*-------- H + +:2500 ldx N + lda #0 + sta O,x + 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 + +:2600 lda N + sta SALLE + rts + +*-------- J + +:2700 @print #strDACCORD + +*-------- K + +:2800 + lda #2 + sta BREAK + rts + +*-------- L + +:2900 lda #3 + sta BREAK + rts + +*-------- M + +:3000 lda #1 + sta BREAK + rts + +*-------- N + +:3100 rts + +*-------- O + +:3200 ldx N + lda SALLE + sta O,x + rts + +*----------------------------------- +* 4000 - LES REPONSES +*----------------------------------- + +tbl4000 da $bdbd + da :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,:4650,:4660,:4670,:4680,:4690 + da :4700,:4710,:4720,:4730,:4740,:4750 + +*-------- + +:4010 @print #str4010 + rts + +:4020 @print #str4020 + rts + +:4030 @print #str4030 + rts + +:4040 @print #str4040 + rts + +:4050 @print #str4050 + rts + +:4060 @print #str4060 + rts + +:4070 @print #str4070 + rts + +:4080 @print #str4080 + rts + +:4090 @print #str4090 + rts + +:4100 @print #str4100 + rts + +:4110 @print #str4110 + rts + +:4120 @print #str4120 + rts + +:4130 @print #str4130 + rts + +:4140 @print #str4140 + rts + +:4150 @print #str4150 + rts + +:4160 @print #str4160 + rts + +:4170 @print #str4170 + rts + +:4180 @print #str4180 + rts + +:4190 @print #str4190 + rts + +:4200 @print #str4200 + rts + +:4210 @print #str4210 + rts + +:4220 @print #str4220 + rts + +:4230 @print #str4230 + rts + +:4240 @print #str4240 + rts + +:4250 @print #str4250 + rts + +:4260 @print #str4260 + rts + +:4270 @print #str4270 + rts + +:4280 @print #str4280 + rts + +:4290 @print #str4290 + rts + +:4300 @print #str4300 + rts + +:4310 @print #str4310 + rts + +:4320 @print #str4320 + rts + +:4330 @print #str4330 + rts + +:4340 @print #str4340 + rts + +:4350 @print #str4350 + rts + +:4360 @print #str4360 + rts + +:4370 @print #str4370 + rts + +:4380 @print #str4380 + rts + +:4390 @print #str4390 + rts + +:4400 @print #str4400 + rts + +:4410 @print #str4410 + rts + +:4420 @print #str4420 + rts + +:4430 @print #str4430 + rts + +:4440 @print #str4440 + rts + +:4450 @print #str4450 + rts + +:4460 @print #str4460 + rts + +:4470 @print #str4470 + rts + +:4480 @print #str4480 + rts + +:4490 @print #str4490 + rts + +:4500 @print #str4500 + rts + +:4510 @print #str4510 + jmp :gagne + +:4520 @print #str4520 + rts + +:4530 @print #str4530 + rts + +:4540 @print #str4540 + rts + +:4550 @print #str4550 + rts + +:4560 @print #str4560 + rts + +:4570 @print #str4570 + rts + +:4580 @print #str4580 + rts + +:4590 @print #str4590 + rts + +:4600 @print #str4600 + rts + +:4610 @print #str4610 + rts + +:4620 @print #str4620 + rts + +:4630 @print #str4630 + rts + +:4640 @print #str4640 + rts + +:4650 @print #str4650 + rts + +*--- + +:4660 lda VBL ; LOGO - Use a better RND? + eor VERTCNT + and #7 + clc + adc #1 +:4665 asl + tax + ldy tbl4660,x + lda tbl4660+1,x + tax + jsr printCSTRING + rts + +:4670 lda #1 + bne :4665 + +:4680 lda #2 + bne :4665 + +:4690 lda #3 + bne :4665 + +:4700 lda #4 + bne :4665 + +:4710 lda #5 + bne :4665 + +:4720 lda #6 + bne :4665 + +:4730 lda #7 + bne :4665 + +:4740 lda #8 + bne :4665 + +:4750 lda #9 + bne :4665 + +*----------------------------------- +* 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 caractre + + ldx #0 ; cherche le premier caractere +]lp lda TEXTBUFFER,x +* cmp #chrRET +* beq :6021 + cmp #chrSPC + bne :6022 ; on a trouv un caractre + 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 #chrRET + beq :6023 + cmp #chrSPC + 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 #chrRET +* beq :6032 + cmp #chrSPC + 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 #chrRET + beq :6033 + cmp #chrSPC + 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 lda tblVL$,y + sta :6225+1 + lda tblVH$,y + sta :6225+2 + + ldx #0 +: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 lda tblVL$,y + sta :6325+1 + lda tblVH$,y + sta :6325+2 + + ldx #0 +: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 :7010,:7020,:7030,:7040,:7050,:7060,:7070,:7080,:7090 + da :7100,:7110,:7120,:7130,:7140,:7150,:7160,:7170,:7180,:7190 + da :7200,:7210,:7220,:7230,:7240,:7250,:7260,:7270,:7280,:7290 + da :7300,:7310,:7320,:7330,:7340,:7350,:7360,:7370,:7380,:7390 + da :7400,:7410,:7420,:7430,:7440,:7450,:7460,:7470,:7480,:7490 + da :7500,:7510,:7520,:7530,:7540,:7550,:7560,:7570,:7580,:7590 + da :7600 + +:7010 @print #str8010 + @draw #1 + rts + +:7020 @print #str8020 + @draw #2 + rts + +:7030 @print #str8030 + @draw #3 + rts + +:7040 @print #str8040 + @draw #4 + rts + +:7050 @print #str8050 + @draw #5 + rts + +:7060 @print #str8060 + @draw #6 + rts + +:7070 @print #str8070 + @draw #7 + rts + +:7080 @print #str8080 + @draw #8 + rts + +:7090 @print #str8090 + @draw #9 + rts + +:7100 @print #str8100 + @draw #10 + rts + +:7110 @print #str8110 + @draw #11 + rts + +:7120 @print #str8120 + @draw #12 + rts + +:7130 @print #str8130 + @draw #13 + rts + +:7140 @print #str8140 + @draw #14 + rts + +:7150 @print #str8150 + @draw #15 + rts + +:7160 @print #str8160 + @draw #16 + rts + +:7170 @print #str8170 + @draw #17 + rts + +:7180 @print #str8180 + @draw #18 + rts + +:7190 @print #str8190 + @draw #19 + rts + +:7200 @print #str8200 + @draw #20 + rts + +:7210 @print #str8210 + @draw #21 + rts + +:7220 @print #str8220 + @draw #22 + rts + +:7230 @print #str8230 + @draw #23 + rts + +:7240 @print #str8240 + @draw #24 + rts + +:7250 @print #str8250 + @draw #25 + rts + +:7260 @print #str8260 + @draw #26 + rts + +:7270 @print #str8270 + @draw #27 + rts + +:7280 @print #str8280 + @draw #28 + rts + +:7290 @print #str8290 + @draw #29 + rts + +:7300 @print #str8300 + @draw #30 + rts + +:7310 @print #str8310 + @draw #31 + rts + +:7320 @print #str8320 + @draw #32 + rts + +:7330 @print #str8330 + @draw #33 + rts + +:7340 @print #str8340 + @draw #34 + rts + +:7350 @print #str8350 + @draw #35 + rts + +:7360 @print #str8360 + @draw #36 + rts + +:7370 @print #str8370 + @draw #37 + rts + +:7380 @print #str8380 + @draw #38 + rts + +:7390 @print #str8390 + @draw #39 + rts + +:7400 @print #str8400 + @draw #40 + rts + +:7410 @print #str8410 + @draw #41 + rts + +:7420 @print #str8420 + @draw #42 + rts + +:7430 @print #str8430 + @draw #43 + rts + +:7440 @print #str8440 + @draw #44 + rts + +:7450 @print #str8450 + @draw #45 + rts + +:7460 @print #str8460 + @draw #46 + rts + +:7470 @print #str8470 + @draw #47 + rts + +:7480 @print #str8480 + @draw #48 + rts + +:7490 @print #str8490 + @draw #49 + rts + +:7500 @print #str8500 + @draw #50 + rts + +:7510 @print #str8510 + @draw #51 + rts + +:7520 @print #str8520 + @draw #52 + rts + +:7530 @print #str8530 + @draw #53 + rts + +:7540 @print #str8540 + @draw #54 + rts + +:7550 @print #str8550 + @draw #55 + rts + +:7560 @print #str8560 + @draw #56 + rts + +:7570 @print #str8570 + @draw #57 + rts + +:7580 @print #str8580 + @draw #58 + rts + +:7590 @print #str8590 + @draw #59 + rts + +:7600 @print #str8600 + @draw #60 + rts + +*----------------------------------- +* 8000 - CHARGEMENT VARIABLES +*----------------------------------- + +initALL + ldx #FIN_DATA-DEBUT_DATA + lda #0 +]lp sta A1-1,x + dex + bne ]lp + +*--- + + lda #filleNUE + sta ptrSALLEBA+1 + + lda #1 + sta SALLE + + lda #5 ; 5000 + sta TEMPS + lda #0 + sta TEMPS+1 + sta TEMPS+2 + sta TEMPS+3 + + lda #"5" + sta strTEMPS + lda #"0" + sta strTEMPS+1 + sta strTEMPS+2 + sta strTEMPS+3 + +*--- + + 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 + +*----------------------------------- +* 20000 - PERDU +*----------------------------------- + +:perdu @explode + @draw #3 + @wait #400 + + jsr setTEXTFULL + @print #strPERDU + @play #zikPERDU + @print #strPERDU2 + +:20050 ; commun avec gagne +]lp @print #strREPLAY + jsr translateKEY + cmp #chrNON + beq :20001 + cmp #chrOUI + bne ]lp + jmp REPLAY + +:20001 + lda sauveMONO + sta MONOCOLOR + 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 +sauveMONO ds 1 + +*----------------------------------- +* 32000 - GAGNE +*----------------------------------- + +:gagne + @draw #6 + @wait #400 + jsr setTEXTFULL + @print #strGAGNE + @play #zikINTRODUCTION + jmp :20050 + +*----------------------------------- +* 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 + +*---------------------- +* GETLEN1 par LoGo +*---------------------- + +GETLN1 ldx #0 +]lp jsr RDKEY + cmp #chrRET + beq doRET + cmp #chrDEL + beq doBACK + cmp #chrLA + beq doBACK + cmp #chrRA + beq ]lp + + jsr testENERGIE + + sta TEXTBUFFER,x + jsr COUT +doNEXT inx + cpx #maxLEN + bcc ]lp + +doEXIT lda #chrRET + sta TEXTBUFFER,x + stx lenSTRING + jmp COUT + +doBACK cpx #0 + beq ]lp + dec CH + dex + jmp ]lp + +doRET cpx #0 + bne doEXIT + + jsr switchVIDEO + jmp ]lp + +*---------------------- +* ENERGIE +*---------------------- + +switchENERGIE + lda #0 + eor #1 + sta switchENERGIE+1 + rts + +testENERGIE tay + lda switchENERGIE+1 + beq wedoENERGIE + tya + rts + +wedoENERGIE dec TEMPS+3 + lda TEMPS+3 + bpl printENERGIE + lda #9 + sta TEMPS+3 + dec TEMPS+2 + bpl printENERGIE + lda #9 + sta TEMPS+2 + dec TEMPS+1 + bpl printENERGIE + lda #9 + sta TEMPS+1 + dec TEMPS + bpl printENERGIE + jmp :4370 ; la fin !!! + +printENERGIE + lda TEMPS + ora #"0" + sta strTEMPS + lda TEMPS+1 + ora #"0" + sta strTEMPS+1 + lda TEMPS+2 + ora #"0" + sta strTEMPS+2 + lda TEMPS+3 + ora #"0" + sta strTEMPS+3 + + tya ; restore Y + rts + +*---------------------- +* switchVIDEO +*---------------------- + +switchVIDEO + lda #0 + eor #1 + sta switchVIDEO+1 + bne setMIXEDOFF + +*---------------------- +* setMIXEDON +*---------------------- + +setMIXEDON ; HGR + 4 LINES OF TEXT + sta TXTCLR + sta MIXSET + rts + +*---------------------- +* setMIXEDOFF +*---------------------- + +setMIXEDOFF ; FULL HGR + sta TXTSET + sta MIXSET + 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/100me de seconde + jsr WAIT + dey + bne ]lp + dex + bpl doW1 +waitMS9 rts + +*----------------------------- +* MOTEUR +*----------------------------- + +showPIC pha + + jsr HGR + sta MIXCLR + + ldx #>picFRAME + ldy # 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 + +*----------------------------------- +* Electric Duet Player +*----------------------------------- + +*----------------------------------- +* PLAYMUSIC +*----------------------------------- + +playMUSIC + sty $1e + stx $1f + + LDA #$01 + STA $09 + STA $1D + PHA + PHA + PHA + BNE LA04D +LA038 INY + LDA ($1E),Y + STA $09 + INY + LDA ($1E),Y + STA $1D +LA042 LDA $1E + CLC + ADC #$03 + STA $1E + BCC LA04D + INC $1F +LA04D LDY #$00 + LDA ($1E),Y + CMP #$01 + BEQ LA038 + BCS LA067 + PLA + PLA + PLA +LA05A LDX #$49 + INY + LDA ($1E),Y + BNE LA063 + LDX #$C9 +LA063 BIT KBDSTROBE + RTS + +LA067 STA $08 + JSR LA05A + STX LA0B6 + STA $06 + LDX $09 +LA073 LSR + DEX + BNE LA073 + STA LA0AE+1 + JSR LA05A + STX LA0EE + STA $07 + LDX $1D +LA084 LSR + DEX + BNE LA084 + STA LA0E6+1 +* + PLA + TAY + PLA + TAX + PLA + BNE LA098 +LA095 BIT SPKR +LA098 CMP #$00 + BMI LA09F + NOP + BPL LA0A2 +LA09F BIT SPKR +LA0A2 STA $4E + BIT KBD + BMI LA063 + DEY + BNE LA0AE + BEQ LA0B4 +LA0AE CPY #$36 + BEQ LA0B6 + BNE LA0B8 +LA0B4 LDY $06 +LA0B6 EOR #$40 +LA0B8 BIT $4E + BVC LA0C3 + BVS LA0BE +LA0BE BPL LA0C9 + NOP + BMI LA0CC +LA0C3 NOP + BMI LA0C9 + NOP + BPL LA0CC +LA0C9 CMP SPKR +LA0CC DEC $4F + BNE LA0E1 + DEC $08 + BNE LA0E1 + BVC LA0D9 + BIT SPKR +LA0D9 PHA + TXA + PHA + TYA + PHA + JMP LA042 + +LA0E1 DEX + BNE LA0E6 + BEQ LA0EC +LA0E6 CPX #$0C + BEQ LA0EE + BNE LA0F0 +LA0EC LDX $07 +LA0EE EOR #$80 +LA0F0 BVS LA095 + NOP + BVC LA098 + +*----------------------------------- +* VARIABLES +*----------------------------------- + +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 +TEMPS ds 4 ; le temps = 5000 + +C ds 61+1 +E$ ds 32 ; the longest string +P ds 61+1 +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 \ No newline at end of file diff --git a/leretour/images/retour.jpg b/leretour/images/retour.jpg new file mode 100644 index 0000000..ad0f3fe Binary files /dev/null and b/leretour/images/retour.jpg differ diff --git a/leretour/leretour.2mg b/leretour/leretour.2mg new file mode 100644 index 0000000..a44e7e7 Binary files /dev/null and b/leretour/leretour.2mg differ diff --git a/leretour/oric/Commandes.txt b/leretour/oric/Commandes.txt new file mode 100644 index 0000000..8e23110 --- /dev/null +++ b/leretour/oric/Commandes.txt @@ -0,0 +1,155 @@ +1=N : 0100=>A18F01.I19M. +2=S : 0300=>A18E01.I11M. +3=N : 0100=>A18.D03N. +4=S : 0300=>A18.D03N. +5=APPR : 2500=>E17.D85K. +6=E : 0200=>A02.D04N. +7=E : 0200=>A49.D05K. +8=O : 0400=>A46.D06K. +9=PREN LASE : 1019=>B01.B01J. +10=PREN BOMB : 1018=>B03.B03J. +11=PREN GLAC : 1014=>B05.B05J. +12=PREN BOIT : 1033=>B06.B06J. +13=PREN VAPO : 1042=>B08.B08J. +14=PREN MAGN : 1043=>B09.B09J. +15=PREN GEIG : 1054=>B10.B10J. +16=PREN VENT : 1053=>B11.B11J. +17=PREN CASQ : 1045=>B12.B12J. +18=PREN ECHA : 1046=>B14.B14J. +19=PREN CONT : 1047=>B15.D07J. +20=PREN RADI : 1016=>A46F09.E09B16J. +21=PREN LUNE : 1048=>B17.B17D08K. +22=PREN TRON : 1049=>B18.B18J. +23=PREN GANT : 1041=>E17B02.B02J. +24=PREN GANT : 1041=>B02.D09E17B02M. +25=PREN BOIT : 1033=>B07.B07J. +26=POSE GANT : 1141=>.C02J. +27=POSE LASE : 1119=>.C01J. +28=POSE BOMB : 1118=>.C03J. +29=POSE ECHA : 1146=>.C14J. +30=POSE BOIT : 1133=>B07.C07J. +31=POSE BOIT : 1133=>.C06J. +32=APPR ORDI : 2574=>A21.D89K. +33=POSE VAPO : 1142=>.C08J. +34=POSE MAGN : 1143=>.C09J. +35=POSE GEIG : 1154=>.C10J. +36=POSE VENT : 1153=>.C11J. +37=POSE CASQ : 1145=>D13.O12C13H13J. +38=POSE CASQ : 1145=>.C12J. +39=POSE RADI : 1116=>.C16J. +40=POSE LUNE : 1148=>.C17J. +41=POSE TRON : 1149=>.C18J. +42=PREN FLAC : 1017=>B04.B04J. +43=PREN FLAC : 1017=>B19.C19H19B05B04J. +44=POSE FLAC : 1117=>D04.C04J. +45=POSE FLAC : 1117=>D19.C19H19B05O04J. +46=G ECHA : 0546=>D14.D12N. +47=ENFI ECHA : 5046=>D14.D12N. +48=ESSA ECHA : 7546=>D14.D12N. +49=OUVR CONT : 1547=>A20.D13N. +50=ENCL VENT : 5253=>B11.D14N. +51=BOIS EAU : 4035=>A15.E08D16K. +52=BOIS EAU : 4035=>C07.D17K. +53=BOIS EAU : 4035=>.D18N. +54=VAPO : 4200=>D08.D19N. +55=ENCL VAPO : 5242=>D08.D19N. +56=ENCL TRON : 5249=>D18.D20N. +57=SAUT FLAQ : 1276=>A18.D21N. +58=PREN RADI : 1016=>B16.B16J. +59=BOIS : 4000=>.D15K. +60=OUVR PORT : 1577=>A49.D05K. +61=OUVR PORT : 1577=>A46.D05K. +62=OUVR PORT : 1577=>.D22K. +63=OUVR FLAC : 1517=>.D23N. +64=OUVR ROBI : 1568=>A15.D24K. +65=FERM ROBI : 6768=>A15.D25K. +66=OUVR REFR : 1573=>A30.I53M. +67=APPR REFR : 2573=>A30.I53M. +68=OUVR BIBL : 1526=>A44.D27K. +69=FERM BIBL : 6726=>A44.D27K. +70=FERM REFR : 6773=>A53.I30M. +71=APPR BIBL : 2526=>A44.D26K. +72=TOUR PAGE : 8283=>A44.D28K. +73=LIS DALL : 2830=>A44.D29K. +74=LIS ARLE : 2831=>A44.D30K. +75=LIS MEMO : 2832=>A44.D31K. +76=LIS MATH : 2829=>A44.D32K. +77=REMP BOIT : 3433=>A15B06.C06H06B07J. +78=REMP BOIT : 3433=>A15B07.D33K. +79=PREN GLAC : 1014=>B19.B19J. +80=POSE GLAC : 1114=>B19.C19J. +81=POSE GLAC : 1114=>.C05J. +82=APPU JAUN : 2023=>D01.D34N. +83=APPU BLEU : 2022=>D01I49I46.D35K. +84=APPU BLEU : 2022=>D01A49.D36I46M. +85=APPU BLEU : 2022=>D01A46.D36I49M. +86=APPU ROUG : 2021=>D01I14I20I23I29I38.D35K. +87=APPU ROUG : 2021=>D01A14.D37F04M. +88=APPU ROUG : 2021=>D01A20.D37F05M. +89=APPU ROUG : 2021=>D01A23.D37F03M. +90=APPU ROUG : 2021=>D01A29.D37F06M. +91=APPU ROUG : 2021=>D01.D37F07M. +92=ENCL BOMB : 5218=>B03F18.G0104E18J. +93=ENCL BOMB : 5218=>B03.D33K. +94=ENFI CASQ : 5045=>D13.D33K. +95=ENFI CASQ : 5045=>D12.C12H12B13J. +96=ENCL MAGN : 5243=>B09F11.D38K. +97=ENCL MAGN : 5243=>B09.D39K. +98=RETO CASS : 3644=>B09E11.F11J. +99=RETO CASS : 3644=>B09F11.E11J. +100=ESSA LUNE : 7548=>D17.D40K. +101=ENFI LUNE : 5048=>D17.D40K. +102=ENLE LUNE : 5148=>D17.J. +103=ENLE CASQ : 5145=>D13.C13H13B12J. +104=ENCL GEIG : 5254=>D10I04I17I22I48I51.D35K. +105=ENCL GEIG : 5254=>D10.D41K. +106=REFL : 5500=>.D42K. +107=RIEN : 5600=>.D43K. +108=DORS : 5700=>.D44K. +109=AIDE : 5800=>.D45K. +110=CONS : 5900=>.D46K. +111=DEMA CONS : 6059=>.D46K. +112=ECOU : 6100=>.D47K. +113=LIST : 7800=>.A. +114=FLAC GLAC : 1714=>D04D05.C04C05H04H05B19J. +115=VIDE BOIT : 8033=>D07.C07H07B06J. +116=QUIT : 6300=>.D48. +117=SUIC : 6400=>.D49N. +118=APPU BOUT : 2024=>.D50K. +119=APPU AUTO : 2066=>A34E12.D51K. +120=APPU MANU : 2065=>A34E12.D51K. +121=APPU AUTO : 2066=>A34.D52N. +122=APPU MANU : 2065=>A34.E13D57K. +123=RETI RESP : 6970=>E12.D53E14G0205K. +124=RETI RESP : 6970=>F12I50F13.D54N. +125=RETI RESP : 6970=>F12E13.D53E14G0205K. +126=RETI RESP : 6970=>F12A50.D53E14G0205K. +127=ALLU ORDI : 7174=>A21E15.D33K. +128=ALLU ORDI : 7174=>A21.E15D55G0407K. +129=ETEI ORDI : 8674=>A21E15.F15G0400D56M. +130=ETEI ORDI : 8674=>A21.D53K. +131=RETA DIRE : 8788=>E16A21.F16D57K. +132=RETA DIRE : 8788=>A21.D66K. +133=SAVE : 8400=>.D59. +134=LOAD : 8500=>.D60. +135=ENTR VAIS : 3738=>A29D16F12.D61. +136=ENTR VAIS : 3738=>A29F12.D86N. +137=ENTR VAIS : 3738=>A29.D62N. +138=LIS LIVR : 2827=>A44.D68K. +139=CHRO : 6200=>.D64K. +140=DEMA CHRO : 6062=>.D64K. +141=FORC : 8100=>.D63K. +142=DEMA FORC : 6081=>.D63K. +143=RETO RADI : 3616=>D16.D69K. +144=TOUR RADI : 8216=>D16.D69K. +145=ALLU TELE : 7113=>A46.D67I51M. +146=APPR TELE : 2513=>A46.D70K. +147=APPR MAGN : 2543=>B09.D71K. +148=APPR TABL : 2572=>A50.D72K. +149=APPR LASE : 2519=>B01.D90K. +150=N : 0100=>A08.D91N. +151=APPR SALL : 2539=>A53.I30M. +152=APPR SALL : 2539=>.M. +153=APPR : 2500=>.D73K. +154=POSE TOUT : 1189=>.D87K. +155=DEMA : 6000=>.D88K diff --git a/leretour/oric/Retour Du Dr. Genius, Le (F) (1984) (File 1 of 2).zip b/leretour/oric/Retour Du Dr. Genius, Le (F) (1984) (File 1 of 2).zip new file mode 100644 index 0000000..ae410bb Binary files /dev/null and b/leretour/oric/Retour Du Dr. Genius, Le (F) (1984) (File 1 of 2).zip differ diff --git a/leretour/oric/Retour Du Dr. Genius, Le (F) (1984) (File 2 of 2).zip b/leretour/oric/Retour Du Dr. Genius, Le (F) (1984) (File 2 of 2).zip new file mode 100644 index 0000000..d17dedc Binary files /dev/null and b/leretour/oric/Retour Du Dr. Genius, Le (F) (1984) (File 2 of 2).zip differ diff --git a/leretour/oric/Retour.bin b/leretour/oric/Retour.bin new file mode 100644 index 0000000..7990c51 Binary files /dev/null and b/leretour/oric/Retour.bin differ diff --git a/leretour/oric/RetourGenius_DATAs.txt b/leretour/oric/RetourGenius_DATAs.txt new file mode 100644 index 0000000..9bbf185 --- /dev/null +++ b/leretour/oric/RetourGenius_DATAs.txt @@ -0,0 +1,443 @@ +## +# TABLEAU VOCABULAIRE V$(139) +# +9100 DIM V$(139) +9101 LET V$(01)="01N " +9102 LET V$(02)="01NORD" +9103 LET V$(03)="02E " +9104 LET V$(04)="02EST " +9105 LET V$(05)="03S " +9106 LET V$(06)="03SUD " +9107 LET V$(07)="04O " +9108 LET V$(08)="04OUES" +9109 LET V$(09)="05G " +9110 LET V$(10)="05GRIM" +9111 LET V$(11)="05M " +9112 LET V$(12)="05MONT" +9113 LET V$(13)="06D " +9114 LET V$(14)="06DESC" +9115 LET V$(15)="10PREN" +9116 LET V$(16)="10SAIS" +9117 LET V$(17)="10RAMA" +9118 LET V$(18)="11POSE" +9119 LET V$(19)="12SAUT" +9120 LET V$(20)="12ENJA" +9121 LET V$(21)="13TELE" +9122 LET V$(22)="13TV " +9123 LET V$(23)="14GLAC" +9124 LET V$(24)="15OUVR" +9125 LET V$(25)="16RADI" +9126 LET V$(26)="17FLAC" +9127 LET V$(27)="17TUBE" +9128 LET V$(28)="17NITR" +9129 LET V$(29)="18BOMB" +9130 LET V$(30)="19LASE" +9131 LET V$(31)="19PIST" +9132 LET V$(32)="20APPU" +9133 LET V$(33)="20ENFO" +9134 LET V$(34)="21ROUG" +9135 LET V$(35)="22BLEU" +9136 LET V$(36)="23JAUN" +9137 LET V$(37)="24BOUT" +9138 LET V$(38)="25APPR" +9139 LET V$(39)="25EXAM" +9140 LET V$(40)="25REGA" +9141 LET V$(41)="26BIBL" +9142 LET V$(42)="27LIVR" +9143 LET V$(43)="28LIS " +9144 LET V$(44)="29MATH" +9145 LET V$(45)="30DALL" +9146 LET V$(46)="31ARLE" +9147 LET V$(47)="32MEMO" +9148 LET V$(48)="33BOIT" +9149 LET V$(49)="34REMP" +9150 LET V$(50)="35EAU " +9151 LET V$(51)="35H2O " +9152 LET V$(52)="36RETO" +9153 LET V$(53)="37ENTR" +9154 LET V$(54)="37ABOR" +9155 LET V$(55)="38VAIS" +9156 LET V$(56)="38SOUC" +9157 LET V$(57)="38ASTR" +9158 LET V$(58)="39SALL" +9159 LET V$(59)="39PIEC" +9160 LET V$(60)="39LIEU" +9161 LET V$(61)="40BOIS" +9162 LET V$(62)="41GANT" +9163 LET V$(63)="42VAPO" +9164 LET V$(64)="43MAGN" +9165 LET V$(65)="43LECT" +9166 LET V$(66)="44CASS" +9167 LET V$(67)="45CASQ" +9168 LET V$(68)="46ECHA" +9169 LET V$(69)="47CONT" +9170 LET V$(70)="48LUNE" +9171 LET V$(71)="49TRON" +9172 LET V$(72)="50ENFI" +9173 LET V$(73)="50PASS" +9174 LET V$(74)="50METS" +9175 LET V$(75)="51ENLE" +9176 LET V$(76)="51DEPO" +9177 LET V$(77)="52ENCL" +9178 LET V$(78)="52DECL" +9179 LET V$(79)="52ACTI" +9180 LET V$(80)="53VENT" +9181 LET V$(81)="54GEIG" +9182 LET V$(82)="54COMP" +9183 LET V$(83)="55REFL" +9184 LET V$(84)="55PENS" +9185 LET V$(85)="56RIEN" +9186 LET V$(86)="56ATTE" +9187 LET V$(87)="57DORS" +9188 LET V$(88)="58AIDE" +9189 LET V$(89)="58SECO" +9190 LET V$(90)="59CONS" +9191 LET V$(91)="60DEMA" +9192 LET V$(92)="61ECOU" +9193 LET V$(93)="62CHRO" +9194 LET V$(94)="62TEMP" +9195 LET V$(95)="63QUIT" +9196 LET V$(96)="63ABAN" +9197 LET V$(97)="64SUIC" +9198 LET V$(98)="65MANU" +9199 LET V$(99)="66AUTO" +9200 LET V$(100)="67FERM" +9201 LET V$(101)="68ROBI" +9202 LET V$(102)="69RETI" +9203 LET V$(103)="69ARRE" +9204 LET V$(104)="70RESP" +9205 LET V$(105)="70SOUF" +9206 LET V$(106)="71ALLU" +9207 LET V$(107)="72TABL" +9208 LET V$(108)="73REFR" +9209 LET V$(109)="73FRIG" +9210 LET V$(110)="74ORDI" +9211 LET V$(111)="75ESSA" +9212 LET V$(112)="76FLAQ" +9213 LET V$(113)="77PORT" +9214 LET V$(114)="77SAS " +9215 LET V$(115)="78LIST" +9216 LET V$(116)="78INVE" +9217 LET V$(117)="79ESCA" +9218 LET V$(118)="80VIDE" +9219 LET V$(119)="80VERS" +9220 LET V$(120)="80RENV" +9221 LET V$(121)="81FORC" +9222 LET V$(122)="81ENER" +9223 LET V$(123)="82TOUR" +9224 LET V$(124)="83PAGE" +9225 LET V$(125)="83FEUI" +9226 LET V$(126)="84SAVE" +9227 LET V$(127)="84SAUV" +9228 LET V$(128)="84CSAV" +9229 LET V$(129)="85LOAD" +9230 LET V$(130)="85CLOA" +9231 LET V$(131)="85ENRE" +9232 LET V$(132)="86ETEI" +9233 LET V$(133)="87RETA" +9234 LET V$(134)="87CORR" +9235 LET V$(135)="88DIRE" +9236 LET V$(136)="88TRAJ" +9237 LET V$(137)="89TOUT" +9238 LET V$(138)="89TOTA" +9239 LET V$(139)="00 " + + +DIM M$(53) +M$(1)="20230300" +M$(2)="30440100" +M$(3)="10120431900" +M$(4)="10220540300" +M$(5)="30640453800" +M$(6)="10540700" +M$(7)="20631640800" +M$(8)="20730900" +M$(9)="10821331041100" +M$(10)="1090" +M$(11)="11820931700" +M$(12)="31362700" +M$(13)="11240900" +M$(14)="3150" +M$(15)="11441600" +M$(16)="10721500" +M$(17)="1110" +M$(18)="00" +M$(19)="10322031800" +M$(20)="4190" +M$(21)="3230" +M$(22)="22342500" +M$(23)="12132442200" +M$(24)="1230" +M$(25)="22264900" +M$(26)="1270" +M$(27)="32642851200" +M$(28)="22742900" +M$(29)="22843000" +M$(30)="2290" +M$(31)="24033200" +M$(32)="13124433300" +M$(33)="13234900" +M$(34)="14144300" +M$(35)="23634300" +M$(36)="13724843500" +M$(37)="13833600" +M$(38)="13924733744560500" +M$(39)="33844000" +M$(40)="23943100" +M$(41)="3340" +M$(42)="15024300" +M$(43)="13523444200" +M$(44)="4320" +M$(45)="2380" +M$(46)="00" +M$(47)="34843800" +M$(48)="14743600" +M$(49)="13335052500" +M$(50)="14934200" +M$(51)="3460" +M$(52)="00" +M$(53)="2290" + + +# TABLEAU OBJET ET POSE DANS PIECE (O$(37);Q(37)) +# -------------------------------- +DIM O$(37) +DIM Q(37) +O$(1)="UN PISTOLET LASER" +O$(2)="DES GANTS ENSANGLANTES" +O$(3)="UNE BOMBE A RETARDEMENT" +O$(4)="UN TUBE" +O$(5)="UNE GLACIERE" +O$(6)="UNE BOITE VIDE" +O$(7)="UNE BOITE PLEINE D'EAU" +O$(8)="UN VAPORISATEUR" +O$(9)="UN MAGNETOPHONE" +O$(10)="UN COMPTEUR GEIGER" +O$(11)="UN VENTILATEUR" +O$(12)="UN CASQUE" +O$(13)="UN CASQUE ENFILE" +O$(14)="DES ECHASSES" +O$(15)="DES CONTAINERS" +O$(16)="UNE RADIOCOMMANDE" +O$(17)="DES LUNETTES DE SOLEIL" +O$(18)="UNE TRONCONNEUSE" +O$(19)="LA GLACIERE AVEC LE TUBE A L'INTERIEUR" +Q(1)=40 +Q(2)=33 +Q(3)=41 +Q(4)=53 +Q(5)=43 +Q(6)=10 +Q(7)=0 +Q(8)=21 +Q(9)=22 +Q(10)=26 +Q(11)=1 +Q(12)=6 +Q(13)=0 +Q(14)=17 +Q(15)=20 +Q(16)=0 +Q(17)=47 +Q(18)=19 +Q(19)=0 + +# TABLEAU ACTIONS A$(181) + +# A NN: SI NOUS SOMMES DANS LA SALLE NN +# B NN: SI L OBJET O$(NN) EST PRESENT OU TRANSPORTE +# C NN: SI L OBJET O$(NN) EST NON PRESENT OU NON TRANSPORTE +# D NN: SI L OBJET O$(NN) EST TRANSPORTE +# E NN: SI LE POINTEUR S(NN) EST ACTIVE +# F NN: SI LE POINTEUR S(NN) N EST PAS ACTIVE +# G NN: SI LE COMPTEUR C(NN) EST ATTEINT LA VALEUR 1 +# H NN: SI LE NOMBRE ALEATOIRE (1-99) EST INFERIEUR A NN +# DONC.."." +# A : AFFICHE LA LISTE DES OBJETS TRANSPORTES +# A NN : DANS LA SALLE NN +# B NN : TRANSPORTES OBJETS O$(NN) +# C NN : POSE OBJETS O$(NN) +# D NN : AFFICHE LE MESSAGE EN 7000+(NN*10) +# E NN : ACTIVE LE POINTEUR S(NN) +# F NN : DESACTIVE LE POINTEUR S(NN) +# G NNMM : FIXE LE COMPTEUR (-) C(NN) A MM +# H NN : INVERSE LES LIGNES NN ET NN+1 DANS LE TABEAU OBJET +# I NN : POSE OBJET O$(NN) DANS LA SALLE EN COURS +# J NN : MET LE NO DE SALLE CONTENANT L OBJET O$(NN) A 0 +# K NN : FIXE LE NO DE SALLE EN COURS A LA VALEUR NN +# L : AFFICHE D ACCORD ET ATTEND +# M : ATTEND UNE NOUVELLE COMMANDE MAIS LE TABLEAU DES ACTIONS EST REPASSE EN REVUE +# N : ATTEND UNE NOUVELLE COMMANDE +# O : AFFICHE LA DESCRIPTION DE LA SALLE EN COURS +# P : ETES VOUS SURE ? >>> STOP +# Q : STOP +# R : Mort... +# S : PREND L OBJET NN ET VIDE LA SALLE ACTUELLE. + +# E01: +# E02: +# E03: +# E04: +# E05: +# E06: +# E07: +# E08: +# E09: +# E10: +# E11: +9100 DIM A$(155) +9501 LET A$(1)="0100A18F01.I19M." +9502 LET A$(2)="0300A18E01.I11M." +9503 LET A$(3)="0100A18.D03N." +9504 LET A$(4)="0300A18.D03N." +9505 LET A$(5)="2500E17.D85K." +9506 LET A$(6)="0200A02.D04N." +9507 LET A$(7)="0200A49.D05K." +9508 LET A$(8)="0400A46.D06K." +9509 LET A$(9)="1019B01.B01J." +9510 LET A$(10)="1018B03.B03J." +9511 LET A$(11)="1014B05.B05J." +9512 LET A$(12)="1033B06.B06J." +9513 LET A$(13)="1042B08.B08J." +9514 LET A$(14)="1043B09.B09J." +9515 LET A$(15)="1054B10.B10J." +9516 LET A$(16)="1053B11.B11J." +9517 LET A$(17)="1045B12.B12J." +9518 LET A$(18)="1046B14.B14J." +9519 LET A$(19)="1047B15.D07J." +9520 LET A$(20)="1016A46F09.E09B16J." +9521 LET A$(21)="1048B17.B17D08K." +9522 LET A$(22)="1049B18.B18J." +9523 LET A$(23)="1041E17B02.B02J." +9524 LET A$(24)="1041B02.D09E17B02M." +9525 LET A$(25)="1033B07.B07J." +9526 LET A$(26)="1141.C02J." +9527 LET A$(27)="1119.C01J." +9528 LET A$(28)="1118.C03J." +9529 LET A$(29)="1146.C14J." +9530 LET A$(30)="1133B07.C07J." +9531 LET A$(31)="1133.C06J." +9532 LET A$(32)="2574A21.D89K." +9533 LET A$(33)="1142.C08J." +9534 LET A$(34)="1143.C09J." +9535 LET A$(35)="1154.C10J." +9536 LET A$(36)="1153.C11J." +9537 LET A$(37)="1145D13.O12C13H13J." +9538 LET A$(38)="1145.C12J." +9539 LET A$(39)="1116.C16J." +9540 LET A$(40)="1148.C17J." +9541 LET A$(41)="1149.C18J." +9542 LET A$(42)="1017B04.B04J." +9543 LET A$(43)="1017B19.C19H19B05B04J." +9544 LET A$(44)="1117D04.C04J." +9545 LET A$(45)="1117D19.C19H19B05O04J." +9546 LET A$(46)="0546D14.D12N." +9547 LET A$(47)="5046D14.D12N." +9548 LET A$(48)="7546D14.D12N." +9549 LET A$(49)="1547A20.D13N." +9550 LET A$(50)="5253B11.D14N." +9551 LET A$(51)="4035A15.E08D16K." +9552 LET A$(52)="4035C07.D17K." +9553 LET A$(53)="4035.D18N." +9554 LET A$(54)="4200D08.D19N." +9555 LET A$(55)="5242D08.D19N." +9556 LET A$(56)="5249D18.D20N." +9557 LET A$(57)="1276A18.D21N." +9558 LET A$(58)="1016B16.B16J." +9559 LET A$(59)="4000.D15K." +9560 LET A$(60)="1577A49.D05K." +9561 LET A$(61)="1577A46.D05K." +9562 LET A$(62)="1577.D22K." +9563 LET A$(63)="1517.D23N." +9564 LET A$(64)="1568A15.D24K." +9565 LET A$(65)="6768A15.D25K." +9566 LET A$(66)="1573A30.I53M." +9567 LET A$(67)="2573A30.I53M." +9568 LET A$(68)="1526A44.D27K." +9569 LET A$(69)="6726A44.D27K." +9570 LET A$(70)="6773A53.I30M." +9571 LET A$(71)="2526A44.D26K." +9572 LET A$(72)="8283A44.D28K." +9573 LET A$(73)="2830A44.D29K." +9574 LET A$(74)="2831A44.D30K." +9575 LET A$(75)="2832A44.D31K." +9576 LET A$(76)="2829A44.D32K." +9577 LET A$(77)="3433A15B06.C06H06B07J." +9578 LET A$(78)="3433A15B07.D33K." +9579 LET A$(79)="1014B19.B19J." +9580 LET A$(80)="1114B19.C19J." +9581 LET A$(81)="1114.C05J." +9582 LET A$(82)="2023D01.D34N." +9583 LET A$(83)="2022D01I49I46.D35K." +9584 LET A$(84)="2022D01A49.D36I46M." +9585 LET A$(85)="2022D01A46.D36I49M." +9586 LET A$(86)="2021D01I14I20I23I29I38.D35K." +9587 LET A$(87)="2021D01A14.D37F04M." +9588 LET A$(88)="2021D01A20.D37F05M." +9589 LET A$(89)="2021D01A23.D37F03M." +9590 LET A$(90)="2021D01A29.D37F06M." +9591 LET A$(91)="2021D01.D37F07M." +9592 LET A$(92)="5218B03F18.G0104E18J." +9593 LET A$(93)="5218B03.D33K." +9594 LET A$(94)="5045D13.D33K." +9595 LET A$(95)="5045D12.C12H12B13J." +9596 LET A$(96)="5243B09F11.D38K." +9597 LET A$(97)="5243B09.D39K." +9598 LET A$(98)="3644B09E11.F11J." +9599 LET A$(99)="3644B09F11.E11J." +9600 LET A$(100)="7548D17.D40K." +9601 LET A$(101)="5048D17.D40K." +9602 LET A$(102)="5148D17.J." +9603 LET A$(103)="5145D13.C13H13B12J." +9604 LET A$(104)="5254D10I04I17I22I48I51.D35K." +9605 LET A$(105)="5254D10.D41K." +9606 LET A$(106)="5500.D42K." +9607 LET A$(107)="5600.D43K." +9608 LET A$(108)="5700.D44K." +9609 LET A$(109)="5800.D45K." +9610 LET A$(110)="5900.D46K." +9611 LET A$(111)="6059.D46K." +9612 LET A$(112)="6100.D47K." +9613 LET A$(113)="7800.A." +9614 LET A$(114)="1714D04D05.C04C05H04H05B19J." +9615 LET A$(115)="8033D07.C07H07B06J." +9616 LET A$(116)="6300.D48." +9617 LET A$(117)="6400.D49N." +9618 LET A$(118)="2024.D50K." +9619 LET A$(119)="2066A34E12.D51K." +9620 LET A$(120)="2065A34E12.D51K." +9621 LET A$(121)="2066A34.D52N." +9622 LET A$(122)="2065A34.E13D57K." +9623 LET A$(123)="6970E12.D53E14G0205K." +9624 LET A$(124)="6970F12I50F13.D54N." +9625 LET A$(125)="6970F12E13.D53E14G0205K." +9626 LET A$(126)="6970F12A50.D53E14G0205K." +9627 LET A$(127)="7174A21E15.D33K." +9628 LET A$(128)="7174A21.E15D55G0407K." +9629 LET A$(129)="8674A21E15.F15G0400D56M." +9630 LET A$(130)="8674A21.D53K." +9631 LET A$(131)="8788E16A21.F16D57K." +9632 LET A$(132)="8788A21.D66K." +9633 LET A$(133)="8400.D59." +9634 LET A$(134)="8500.D60." +9635 LET A$(135)="3738A29D16F12.D61." +9636 LET A$(136)="3738A29F12.D86N." +9637 LET A$(137)="3738A29.D62N." +9638 LET A$(138)="2827A44.D68K." +9639 LET A$(139)="6200.D64K." +9640 LET A$(140)="6062.D64K." +9641 LET A$(141)="8100.D63K." +9642 LET A$(142)="6081.D63K." +9643 LET A$(143)="3616D16.D69K." +9644 LET A$(144)="8216D16.D69K." +9645 LET A$(145)="7113A46.D67I51M." +9646 LET A$(146)="2513A46.D70K." +9647 LET A$(147)="2543B09.D71K." +9648 LET A$(148)="2572A50.D72K." +9649 LET A$(149)="2519B01.D90K." +9650 LET A$(150)="0100A08.D91N." +9651 LET A$(151)="2539A53.I30M." +9652 LET A$(152)="2539.M." +9653 LET A$(153)="2500.D73K." +9654 LET A$(154)="1189.D87K." +9655 LET A$(155)="6000.D88K" \ No newline at end of file diff --git a/leretour/oric/Vecteurs.bin b/leretour/oric/Vecteurs.bin new file mode 100644 index 0000000..18c95f4 Binary files /dev/null and b/leretour/oric/Vecteurs.bin differ diff --git a/leretour/oric/retour.bas b/leretour/oric/retour.bas new file mode 100644 index 0000000..7f2c1f6 --- /dev/null +++ b/leretour/oric/retour.bas @@ -0,0 +1,419 @@ +## BASIC ORIC FILE. +## NAME: RETOUR +## + 0 TRUECONT CALL + 0 num TO PLAY ro28*juin1985 + 0 + 0 CAHIERDESAS + 0 ------------------------------------------------------------- + 0 W OR DRACE + 1303  + 17209 ,#423B:CALL #86F5 + 30 TEXT:HIMEM #4569:DOKE998,9985:POKE #26A,10:GOSUB 24000 + 35 HIRES:POKE 618,10:PRINT:PRINT SPC(11)"ATTENDEZ S.V.P":CH=4000 + 40 FOR N=1 TO PEEK(#305):ZZ=RND(1):NEXT + 43 A$="1031141221242713182310291430271214232927102110272718311427103023141427" + 50 POKE #BFFF,11:FOR N=#480 TO #4FF:POKE N,0:NEXT + 51 POKE #4A8,10:POKE #4A5,18:POKE #4A3,10:POKE #4A6,22:POKE #4A7,9 + 60 GOSUB 8000:WW=100 + 70 FOR N=#483 TO #488:POKE N,1:NEXT + 75 POKE #48C,1 + 99 CALL #96C9 + 100 POKE #4BF,1:IF PEEK(#491)=1 THEN 140 + 101 SA=PEEK(#BFFF):IF SA=23 AND PEEK(#483)=1 THEN 130 + 102 IF SA=14 AND PEEK(#484)=1 THEN 130 + 104 IF SA=20 AND PEEK(#485)=1 THEN 130 + 106 IF SA=29 AND PEEK(#486)=1 THEN 130 + 108 IF SA=38 AND PEEK(#487)=1 THEN 130 + 110 GOTO 200 + 130 HIRES:A$="La salle n'est pas eclairee.":X=12:Y=190:GOSUB 30000:GOTO 500 + 140 HIRES:PRINT "Vos yeux ne voient plus rien.":GOTO 500 + 200 HIRES:INK 0:CALL #9292:CALL #9245 + 205 A=PEEK(#400):GOSUB 12000+A*10 + 206 IF PP=0 AND SA=11 THEN PP=1:GOSUB 4920 + 210 A$="":IF SA<21 THEN A$="1":GOTO 270 + 220 IF SA<26 THEN A$="3":GOTO 270 + 230 IF SA<31 THEN A$="0":GOTO 270 + 240 IF SA<52 THEN A$="2":GOTO 270 + 270 IF A$="" THEN 300 + 280 A$="NIVEAU: "+A$:FOR N=1 TO 9:CURSET 6+6*N,190,0:CHAR ASC(MID$(A$,N,1)),0,1:NEXT + 300 H=0:N=1 + 310 IF PEEK(#4C0+N)<>SA THEN 400 + 320 IF H=1 THEN 350 + 325 POKE #4BF,0:WAIT 50:CLS + 330 PRINT "Il y a aussi ";:H=1 + 350 PRINT ", ";O$(N);:WAIT 100 + 400 N=N+1:IF N<=O THEN 310 + 450 IF H=1 THEN PRINT:WAIT 100 + 500 POKE #4BF,0 + 505 SA=PEEK(#BFFF):IF SA<>51 AND SA<>48 AND SA<>22 AND SA<>4 AND SA<>17 THEN 3500 + 510 A=PEEK(#4A3):POKE #4A3,A-1:IF A=1 THEN 4820 + 520 GOTO 3500 + 530 POKE #4BF,1:IF PEEK(617)<>0 THEN PRINT + 531 X$=KEY$:K=S(1)/5:IF K<.5 THEN K=.5 + 532 FOR N=#BFB3 TO #BFB7:IF PEEK(N)<58 AND PEEK(N)>47 THEN POKE N,32 + 533 NEXT:IF PEEK(#BFB5)=58 THEN POKE #BFB5,32 + 552 PRINT CHR$(27)"P"CHR$(27)"FOrdre:"CHR$(27)"C";:X$="" + 553 A$=KEY$:CH=CH-K:WW=WW-K:IF A$=CHR$(13) THEN 579 + 554 IF A$<>"" THEN AA=ASC(A$) ELSE AA=33 + 555 IF AA<32 THEN 553 + 556 IF A$=CHR$(127) AND X$<>"" THEN 558 + 557 IF A$=CHR$(127) THEN 553 ELSE 564 + 558 XX=LEN(X$):IF XX=1 THEN X$="":GOTO 560 + 559 X$=LEFT$(X$,XX-1) + 560 IF PEEK(617)<>2 THEN 563 + 561 PRINT CHR$(8)CHR$(8)CHR$(8)" "CHR$(8);:GOTO 553 + 563 PRINT CHR$(8)" "CHR$(8);:GOTO 553 + 564 IF LEN(X$)=26 THEN 553 ELSE X$=X$+A$ + 565 IF WW<0 THEN WW=WW+100:MUSIC 1,3,5,7:PLAY 1,0,0,0:WAIT 8:PLAY 0,0,0,0 + 566 IF CH<0 THEN CH=0:PRINT:GOSUB 4630:WAIT 200:GOTO 18000 + 568 IF DEEK(#4FB)=12336 AND DEEK(#4FE)=12336 THEN 4650 + 578 PRINT A$;:GOTO 553 + 579 IF X$="" THEN CLS:PRINT " Tres drole...":WAIT 50:GOTO 530 + 580 PRINT FRE(""):CLS:PRINT X$:GOSUB 6000 + 581 IF X1$="AVAN" THEN X1$=X2$:X2$="" + 585 L=LEN(X1$):FOR N=1 TO 4:IF N<=L THEN POKE #BFDF+N,ASC(MID$(X1$,N,1)) + 590 IF N>L THEN POKE #BFDF+N,32 + 600 NEXT:POKE #BFE5,0:CALL #9500 + 610 IF PEEK(#BFE5)=0 THEN CLS:PRINT "JE NE COMPRENDS PAS '";X1$"'":GOTO 3500 + 615 K=PEEK(#BFE5):POKE #80,K + 620 IF X2$="" THEN POKE #81,0:GOTO 900 + 630 L=LEN(X2$):FOR N=1 TO 4:IF N<=L THEN POKE #BFDF+N,ASC(MID$(X2$,N,1)) + 640 IF N>L THEN POKE #BFDF+N,32 + 650 NEXT:POKE #BFE5,0:CALL #9500 + 660 IF PEEK(#BFE5)=0 THEN CLS:PRINT "JE NE COMPRENDS PAS '";X2$"'":GOTO 3500 + 665 K=PEEK(#BFE5):POKE #81,K + 900 IF PEEK(#80)>9 THEN 1000 + 910 Z=1:SA=PEEK(#BFFF):T=PEEK(#80):MO$=MID$(STR$(T),2,1) + 920 T$=MID$(M$(SA),Z,1):IF T$="0" THEN 1000 + 940 IF T$<>MO$ THEN 970 ELSE SA=VAL(MID$(M$(SA),Z+1,2)):POKE #BFFF,SA:GOTO 100 + 970 Z=Z+3:GOTO 920 + 1000 POKE #BFF0,10:CALL #9533 + 1010 IF PEEK(#BFF0)<>0 THEN 1700 + 1020 PRINT "IMPOSSIBLE "; + 1030 IF PEEK(#80)<9 THEN PRINT "DE PRENDRE CETTE DIRECTION" ELSE PRINT + 1040 GOTO 500 + 1700 E$="":N=#BFE0:E=1 + 1705 E$=E$+CHR$(PEEK(N)):N=N+1:IF PEEK(N-1)<>255 THEN 1705 + 1710 LI=ASC(MID$(E$,E,1))-65 + 1720 IF LI=190 THEN 1740 + 1730 N=VAL(MID$(E$,E+1,2)) + 1740 BR=0:GOSUB 1800+LI*100 + 1760 IF BR<>0 THEN GOTO BR + 1780 E=E+3:GOTO 1710 + 1800 POKE #4BF,0:G=0:HH=0:BR=500:CLS + 1810 G=G+1 + 1820 IF PEEK(#4C0+G)=255 THEN 1840 + 1830 IF G255 THEN 1960 + 1940 POKE #4BF,0:CLS:PRINT CHR$(27)"R"CHR$(27)"@Vous avez deja cela...etourdi!" + 1950 WAIT 150:BR=500:RETURN + 1960 POKE #4C0+N,255:S(1)=S(1)+1:RETURN + 2000 IF PEEK(#4C0+N)=255 THEN 2030 + 2010 POKE #4BF,0:CLS:PRINT CHR$(27)"T Je ne savais pas qu'on pouvait poser" + 2020 PRINT CHR$(27)"T ce qu'on ne possede pas..." + 2025 BR=500:RETURN + 2030 SA=PEEK(#BFFF):POKE #4C0+N,SA:S(1)=S(1)-1:RETURN + 2100 POKE #4BF,0:CLS:GOSUB 4000+N*10:WAIT 200:RETURN + 2200 POKE #480+N,1:RETURN + 2300 POKE #480+N,0:RETURN + 2400 C=VAL(MID$(E$,E+3,2)):E=E+2:POKE #4A0+N,C:RETURN + 2500 POKE #4C0+N,0:RETURN + 2600 POKE #BFFF,N:RETURN + 2700 PRINT "D'ACCORD" + 2710 WAIT 35:BR=500:RETURN + 2800 BR=500:RETURN + 2900 BR=530:RETURN + 3000 BR=100:RETURN + 3100 POP:WAIT 30:GOTO 18000 + 3200 SA=PEEK(#BFFF):POKE #4C0+N,SA:RETURN + 3500 IF PEEK(#BFFF)=11 THEN POKE #481,1 + 3502 IF PEEK(#BFFF)=19 THEN POKE #481,0 + 3504 IF PEEK(#BFFF)<>36 OR PEEK(#482)=1 THEN 3510 + 3506 IF PEEK(#4CD)=255 THEN WAIT 100:GOSUB 4010:POKE #482,1:GOTO 3510 + 3508 WAIT 100:GOTO 4020 + 3510 IF PEEK(#4C4)<>255 THEN 3516 + 3512 A=PEEK(#4A8)-1:POKE #4A8,A + 3514 IF PEEK(#4A8)=0 THEN 4740 + 3516 IF PEEK(#4A1)=0 THEN 3534 + 3518 A=PEEK(#4A1)-1:POKE #4A1,A + 3520 IF A>0 THEN 3534 + 3522 IF PEEK(#4C3)=255 THEN 4750 + 3524 IF PEEK(#4C3)<>51 THEN 4760 + 3526 A=PEEK(#BFFF):IF A=51 THEN 4750 + 3528 IF PEEK(#4C4)<>51 AND PEEK(#4D3)<>51 THEN 4780 + 3530 IF A=46 OR A=49 THEN 4770 + 3532 POKE #48C,0:GOSUB 4790:POKE #490,1:GOTO 3540 + 3534 IF PEEK(#48E)=0 THEN 3537 + 3535 A=PEEK(#4A2)-1:POKE #4A2,A:IF A>0 THEN 3540 + 3536 POKE #48E,0 + 3537 IF DEEK(#48C)>0 THEN 3540 + 3538 IF PEEK(#BFFF)=50 THEN 3540 ELSE 4800 + 3540 IF PEEK(#490)=0 THEN 3544 + 3542 A=PEEK(#4A5)-1:POKE #4A5,A:IF A=1 THEN 4810 + 3544 IF PEEK(#4A6)=0 THEN 3548 + 3546 A=PEEK(#4A6)-1:POKE #4A6,A:IF A=0 THEN GOSUB 4830:POKE #488,0 + 3548 IF PEEK(#488)=1 THEN 3552 + 3550 A=PEEK(#4A7)-1:POKE #4A7,A:IF A=0 THEN GOSUB 4580:GOTO 18E3 + 3552 IF PEEK(#4A4)=0 THEN 3556 + 3554 A=PEEK(#4A4)-1:POKE #4A4,A:IF A=1 THEN 4840 + 3556 GOTO 530 + 4010 PRINT "Une boule d'acier tombee du plafond" + 4011 PRINT "vient de s'ecraser sur votre casque.":RETURN + 4020 PRINT "Une boule d'acier vient de tomber du" + 4021 PRINT "plafond,vous avez le crane defonce...":GOTO 18000 + 4030 PRINT "Vous venez de tomber dans une flaque d'acide,ca crepite...":RETURN + 4040 PRINT "Vous venez de rentrer dans le reacteuratomique du vaisseau..!":RETURN + 4050 PRINT "La porte ne veut pas s'ouvrir":RETURN + 4060 PRINT "Un peu de memoire...comment etes-vous entre ?":RETURN + 4070 PRINT "Je ne vous savais pas assez muscle pour soulever une tonne.":RETURN + 4080 PRINT "Vous avez raison,la vue c'est la vie!":RETURN + 4090 PRINT "Les gants etaient radioactifs,vous perdez la vue.":RETURN + 4100 PRINT "Vous l'avez deja sur vous.":RETURN + 4110 PRINT "Impossible,je ne vois pas ceci ici.":RETURN + 4120 PRINT "Vous vous arrachez la tete en tombant des echasses.":RETURN + 4130 PRINT "Des monstres sortis des containers vous devorent tout cru!":RETURN + 4140 PRINT "L'air frais vous fait du bien. Dommageque l'helice vous ait coupe la "; + 4141 PRINT "tete.":RETURN + 4150 PRINT "Qu'est ce que vous voulez boire ???":RETURN + 4160 PRINT "Ah oui...l'eau est bonne.":RETURN + 4170 PRINT "Il n'y a pas d'eau ici.":RETURN + 4180 PRINT "L'eau etait contaminee par les boites radioactives.":RETURN + 4190 PRINT "Vous retrecissez..petit..petit..et unearaignee vous mange!":RETURN + 4200 PRINT "Ca coupe une tronconneuse,comme le prouve votre tete au sol.":RETURN + 4210 PRINT "Vous glissez et tombez dans la flaque.L'acide crepite.":RETURN + 4220 PRINT "Il n'y a pas ici de porte verrouillee";:RETURN + 4230 EXPLODE:WAIT 10:EXPLODE:PRINT "En secouant le tube pour l'ouvrir,la" + 4232 PRINT "la nitroglycerine a explose.":RETURN + 4240 PRINT "Pourquoi ouvrir un robinet qui ne ferme pas!":RETURN + 4250 PRINT "Le robinet ne se ferme pas.":RETURN + 4260 POKE #BFFF,57:HIRES:INK 0:CALL #9292:POKE #BFFF,44:RETURN + 4270 PRINT "La bibliotheque n'a pas de porte...":RETURN + 4280 PRINT "Il n'y a rien de mieux sur les autres pages.":RETURN + 4290 PRINT "...c'est toi J.R qui a pris ma femme et mon petrole , tu es infame." + 4291 RETURN + 4300 PRINT "Collection Arlepin,tout un reve":PRINT "d'evasion.":RETURN + 4310 PRINT "...et c'est moi Genius le grand qui crea un superbe manoir...":RETURN + 4320 A$="10311412212427131823102914302712142329271021102727183114271030231414" + 4321 A$=A$+"27142324303114212114":PRINT A$" ";:GET K$:RETURN + 4330 PRINT "Vous l'avez deja fait.":RETURN + 4340 EXPLODE:PRINT "Le laser vient d'exploser.":RETURN + 4350 PRINT "Il ne se passe rien.":RETURN + 4360 PRINT "Le sas s'ouvre,vous passez dans la salle a cote.":RETURN + 4370 PRINT "Cela agit sur un contacteur a infra- rouge qui commande l'eclairage." + 4371 RETURN + 4380 PRINT "Allons enfants de la patrie...":RETURN + 4390 PRINT "Vous entendez: 'Le laser ouvrira la porte'":RETURN + 4400 PRINT "Les lunettes sont trop fortes , vous voyez trouble.":RETURN + 4410 PRINT "La salle est radioactive.":RETURN + 4420 PRINT "Vous avez quelque chose pour ?":RETURN + 4430 PRINT "C'est votre probleme, mais le temps passe.":RETURN + 4440 PRINT "Avez-vous si sommeil que ca ?":RETURN + 4450 PRINT "Et puis quoi encore !":RETURN + 4460 PRINT "Faites un plan...":RETURN + 4470 PRINT "Vous entendez le ronronnement des moteurs.":RETURN + 4480 GOSUB 5500:IF A$="N" THEN 500 + 4481 PRINT "J'etais sur que vous etiez un lache.":GOTO 19E3 + 4490 PRINT "Vous passez la tete a travers un sas," + 4491 PRINT "et appuyez sur le bouton de fermeture":RETURN + 4500 PRINT "Quel bouton ?":RETURN + 4510 PRINT "Les boutons ne fonctionnent pas car" + 4511 PRINT "l'ordinateur central les controle.":RETURN + 4520 PRINT "Le systeme automatique est deregle,il" + 4521 PRINT "met du gaz carbonique a la place de l'oxygene.";:RETURN + 4530 PRINT "Vous respirez un grand coup.":RETURN + 4540 PRINT "Que voulez-vous respirer,il n'y a plusd'oxygene.":RETURN + 4550 HIRES:POKE #BFFF,56:INK 0:CALL #9292:GOSUB 12020:POKE #BFFF,21 + 4551 A$="Vous avez deux essais pour":X=43:Y=21:GOSUB 3E4 + 4552 A$="entrer le mot de passe.":X=43:Y=29:GOSUB 3E4 + 4553 INPUT "Mot de passe ";MO$:IF MO$="MANOIR" THEN 4558 ELSE PRINT "FAUX!" + 4554 INPUT "Mot de passe ";MO$:IF MO$="MANOIR" THEN 4558 + 4556 PRINT "Encore rate.L'ordinateur vous";:EXPLODE:PRINT " explosea la figure." + 4557 WAIT 100:GOTO 18E3 + 4558 A$="Exact,vous etes perspicace!":X=43:Y=42:GOSUB 3E4:A$="UIN LOI QRU ILD " + 4559 A$=A$+"ESP ECU TAS":X=43:Y=56:GOSUB 3E4:A$="ASU VIE RAL HOU MEA":GOTO 4655 + 4560 PRINT "C'est d'accord.":RETURN + 4570 PRINT "Il etait temps,vous alliez mourir.":RETURN + 4580 PRINT "Vous mourrez deshydrate.":RETURN + 4590 GOSUB 5500:IF A$="N" THEN 500 + 4591 PRINT "Appuyez sur 'S' quand vous etes pres.":SA=PEEK(#BFFF):POKE #4FA,SA + 4592 GET A$:IF A$<>"S" THEN 4592 + 4593 CALL #96FC:POKE #400,96:POKE #4F9,S(1):DOKE#4F7,CH + 4594 FOR I=1 TO 5:POKE #479+I,ASC(MID$(MP$,I,1)):NEXT + 4595 CSAVE"MEMOIRE",A#400,E#4FF,AUTO + 4596 RUN + 4600 GOSUB 5500:IF A$="N" THEN 500 + 4601 PRINT "Appuyez sur 'L' quand vous etes pres." + 4602 GET A$:IF A$<>"L" THEN 4602 + 4603 CALL #96FC + 4604 DOKE#BFEA,DEEK(#9C):CLOAD"MEMOIRE":DOKE#9C,DEEK(#BFEA) + 4605 SA=PEEK(#4FA):POKE #BFFF,SA:CH=DEEK(#4F7):S(1)=PEEK(#4F9) + 4606 MP$="":FOR N=#47A TO #47E:MP$=MP$+CHR$(PEEK(N)):NEXT:CALL #90F9 + 4607 GOTO 100 + 4610 TEXT:PAPER 4:INK 2:PRINT "Le sas se referme derriere vous ," + 4611 PRINT:PRINT "le tableau de controle s'allume et" + 4612 PRINT:PRINT "l'ordinateur de bord vous demande le" + 4613 PRINT:PRINT "mot de passe pour le retour ?" + 4614 PRINT:PRINT:PRINT:INPUT "MOT DE PASSE";MO$:IF MO$=MP$ THEN 20000 + 4615 POKE #26A,10::PRINT:PRINT:PRINT "Le vaisseau de secour s'eloigne , au" + 4616 PRINT "loin vous voyez Genius qui pleure" + 4617 PRINT "derriere un hublot":ZAP:ZAP:PRINT:PRINT SPC(10)"VOUS AVEZ GAGNE":WAIT 999 + 4618 PRINT:PRINT "Mais , que se passe-t-il,vous avez du" + 4619 PRINT "vous tromper de mot de passe,votre":GOTO 16000 + 4620 EXPLODE:PRINT "La soucoupe a explose au decollage.":RETURN + 4630 PRINT "Energie restante :";INT(CH*10+.5)/100:RETURN + 4640 PRINT "Petit drole...Le chronometre est":PRINT "affhche en permanence":RETURN + 4650 PRINT:PRINT "Le temps que vous aviez pour votre "; + 4651 PRINT "mission est ecoule,vous avez echoue.":GOTO 19000 + 4655 A$=A$+" NOI THE":X=43:Y=67:GOSUB 3E4 + 4656 A$="Le mot de passe pour le":X=43:Y=80:GOSUB 3E4:A$="retour est : "+MP$ + 4657 X=43:Y=88:GOSUB 3E4:RETURN + 4660 PRINT "Votre trajectoire est bonne,potrquoi la corriger >":RETURN + 4670 PRINT "Le mur au nnrd coulisse,vous avancez dans cette salle.":RETURN + 4680 PRINT "Quel livre ?":RETURN + 4690 PRINT "au dos du boitier est marque :":PRINT SPC(8)"'PROTEGEZ MOI'":RETURN + 4700 PRINT "Vous remarquez un boitier de":PRINT "radiocommande.":RETURN + 4710 SA=PEEK(#BFFF):POKE #BFFF,54:HIRES:INK 0:CALL #9292:POKE #BFFF,SA:RETURN + 4720 POKE #BFFF,55:HIRES:INK 0:CALL #9292:POKE #BFFF,50:RETURN + 4730 PRINT "Que regardez vous ?":RETURN + 4740 EXPLODE:WAIT 5:EXPLODE:PRINT "Le tube de nitroglycerine vient" + 4742 PRINT "d'exploser,vous etes pulverise.":WAIT 200:GOTO 18E3 + 4750 EXPLODE:WAIT 5:EXPLODE:PRINT "La bombe a retardement vient":GOTO 4742 + 4760 EXPLODE:WAIT 5:EXPLODE:PRINT "La bombe a retardement a explose,elle" + 4762 PRINT "a endommage le systeme de chauffage , vous etes carbonise";:GOTO 18E3 + 4770 EXPLODE:WAIT 5:EXPLODE:PRINT "La bombe a explose,vous etiez trop" + 4772 PRINT "pres et etes devenu fou...":GOTO 18E3 + 4780 EXPLODE:WAIT 5:EXPLODE:PRINT "La bombe a retardement n'etait pas" + 4782 PRINT "assez forte,l'ordinateur central n'est"; + 4784 PRINT "qu'endommage,il vous fait exploser...";:GOTO 18E3 + 4790 EXPLODE:WAIT 15:EXPLODE:PRINT "Bravo! L'ordinateur central est" + 4792 PRINT "detruit,mais le systeme d'oxygenation" + 4794 PRINT "ne fonctionne plus,de plus la";:WAIT 300 + 4796 PRINT:PRINT "trajectoire du vaisseau a change.";:WAIT 250:RETURN + 4800 PRINT "Vous n'avez plus de souffle,vous etes mort asphyxie.":WAIT 200:GOTO 18E3 + 4810 PRINT "Vous auriez du corriger la trajectoirevous avez percute le soleil." + 4812 WAIT 200:GOTO 18E3 + 4820 PRINT "A force de traverser les salles radio-"; + 4822 PRINT "actives,vous etes mort contamine.":WAIT 200:GOTO 18E3 + 4830 PRINT "Il fait de plus en plus chaud...";:RETURN + 4840 EXPLODE:PRINT "L'ordinateur vient d'exploser!" + 4845 PRINT "Vous avez du le laisser allume.":WAIT 150:GOTO 18E3 + 4850 PRINT "Comment !!! Vous etes aveugle.":RETURN + 4860 PRINT "Vous n'aviez pas pris la radiocommande"; + 4861 PRINT "qui a explose quand le vaisseau a per-"; + 4862 PRINT "cute le soleil,son explosion a declen";:WAIT 250 + 4863 PRINT "-che la fin du monde.";:RETURN + 4870 IF S(1)=0 THEN PRINT "Non! pas de strip-tease.":RETURN + 4871 SA=PEEK(#BFFF) + 4872 IF PEEK(#4CD)=255 THEN POKE #4CC,255:POKE #4CD,0 + 4873 FOR N=#4C1 TO #4D3:IF PEEK(N)=255 THEN POKE N,SA + 4874 NEXT:S(1)=0:PRINT "Vous avez pose tout ce que vous":PRINT "transportiez.":RETURN + 4880 PRINT "Ca ne se demande pas.":RETURN + 4890 PRINT "Il y a effectivement un ordinateur parmi le tableau de controle." + 4891 PRINT "L'ordinateur n'est pas en fonction.";:RETURN + 4900 PRINT "Sur le laser,vous voyez trois boutons:jaune , rouge et bleu.":RETURN + 4910 PRINT "Vous etes entre dans le desintegrateurde particules..." + 4911 PLAY 1,0,0,0:FOR N=300 TO 50 STEP -5:SOUND 1,N,10:NEXT:PLAY 0,0,0,0:RETURN + 4920 PRINT "Vous etes entre dans le vaisseau par "; + 4922 PRINT "le sas a l'ouest qui ne s'ouvre pas de"; + 4924 PRINT "l'interieur.";:WAIT 200:RETURN + 5500 PRINT "Etes-vous sur (O/N) ?" + 5510 GET A$:IF A$<>"O" AND A$<>"N" THEN 5510 + 5520 RETURN + 6000 N=0:GN=0:L=0:X1$="":X2$="":K1=LEN(X$) + 6010 REPEAT:N=N+1:UNTIL MID$(X$,N,1)=" " OR N=K1 + 6015 K=N:IF K>4 THEN K=4 + 6020 X1$=MID$(X$,1,K):IF N=K1 THEN RETURN + 6030 REPEAT:GN=GN+1:UNTIL MID$(X$,N+1+GN,1)=" " OR GN+N=K1 + 6040 K=GN:IF K>4 THEN K=4 + 6050 X2$=MID$(X$,N+1,K):IF GN+N=K1 THEN RETURN + 6060 IF X2$<>"BOUT" AND X2$<>"LIVR" AND X2$<>"DANS" THEN RETURN + 6070 REPEAT:L=L+1:UNTIL GN+N+L=K1 OR L=4 + 6090 X2$=MID$(X$,GN+N+2,L):RETURN + 8000 RESTORE + 8010 DIM M$(53):FOR N=1 TO 53:READ M$(N):NEXT + 8020 DATA 2023030,3044010,1012043190,1022054030,3064045380,1054070,2063164080 + 8030 DATA 2073090,1082133104110,1090,1182093170,3136270,1124090,3150,1144160 + 8040 DATA 1072150,1110,0,1032203180,4190,3230,2234250,1213244220,1230,2226490 + 8050 DATA 1270,3264285120,2274290,2284300,2290,2403320,1312443330,1323490 + 8060 DATA 1414430,2363430,1372484350,1383360,1392473374456050,3384400,2394310 + 8070 DATA 3340,1502430,1352344420,4320,2380,0,3484380,1474360,1333505250 + 8080 DATA 1493420,3460,0,2290 + 8100 O=19:DIM O$(O):FOR N=1 TO O:READ O$(N):READ A:POKE (#4C0+N),A:NEXT + 8110 DATA "UN PISTOLET LASER",40,"DES GANTS ENSANGLANTES",33 + 8120 DATA "UNE BOMBE A RETARDEMENT",41,"UN TUBE",53,"UNE GLACIERE",43 + 8130 DATA "UNE BOITE VIDE",10,"UNE BOITE PLEINE D'EAU",0,"UN VAPORISATEUR",21 + 8140 DATA "UN MAGNETOPHONE",22,"UN COMPTEUR GEIGER",26,"UN VENTILATEUR",1 + 8150 DATA "UN CASQUE",6,"UN CASQUE ENFILE",0,"DES ECHASSES",17,"DES CONTAINERS" + 8160 DATA 20,"UNE RADIOCOMMANDE",00,"DES LUNETTES DE SOLEIL",47 + 8170 DATA "UNE TRONCONNEUSE",19,"LA GLACIERE AVEC LE TUBE A L'INTERIEUR",0 + 8180 A=INT(RND(1)*5+1):FOR N=1 TO A:READ MP$:NEXT + 8190 DATA ORIC1,ATMOS,GENIE,ECHEC,ARGON + 8200 IF A=5 THEN 8500 + 8210 FOR N=A TO 4:READ A$:NEXT + 8500 FOR N=1 TO 57:READ A$:A=VAL("#"+A$):DOKE#3FF+N*2,A:NEXT + 8530 DATA 786F,7974,4F61,4E95,7CC8,6BDC,5EFA,7DE2,7F38,62EF,57EA,5925,63F6 + 8540 DATA 47C3,5A21,5021,4DFF,64EF,4700,5D77,52CA,4E41,6AF2,81EA,827B,61DF + 8550 DATA 497F,4C16,4A8D,4CEE,5B40,6FDD,6F05,65FF,8088,7A40,774C,7B63,5CC6 + 8560 DATA 5BEE,50F6,6D58,6C6E,74D2,70F6,487A,71E0,4DAB,55C8,72CA,6958,0000 + 8570 DATA 5F6B,60EB,6812,6E33,8367 + 12000 RETURN + 12010 FOR N=0 TO 13:CURSET 111+N*2,93,1:NEXT:FOR N=0 TO 16:CURSET 108+N*2,95,1:NEXT + 12015 CURSET 96,93,0:FILL 3,1,1:INK 6:RETURN + 12020 A=-10:FOR N=0 TO 9:CURSET 40+N*17,129,1:DRAW A,11,1:DRAW 12,0,1:A=A+1 + 12022 DRAW -A,-11,1:DRAW -11,0,1:A=A+1:NEXT:A=-11 + 12024 FOR N=0 TO 8:CURSET 30+N*21,146,1:DRAW INT(A),13,1:DRAW 14,0,1:A=A+1.20 + 12026 DRAW -INT(A),-13,1:DRAW -13,0,1:A=A+1.20:NEXT:INK 6:RETURN + 16000 PRINT "vaisseau de poche fonce sur le soleil," + 16010 WAIT 600:PRINT "Vous venez de realiser que Genius":WAIT 300 + 16020 PRINT "pleurait de JOIE...!":WAIT 200:GOTO 18000 + 18000 CALL #96FC:WAIT 200:TEXT:CLS:POKE #26A,10:INK 3 + 18003 POKE #30E,64:PING:PLAY 0,0,0,0:POKE #30E,192 + 18005 CLS:PRINT:PRINT "Comme je le pensais , vous vous etes" + 18010 PRINT:PRINT "stupidement fait avoir , et votre" + 18020 PRINT:PRINT "cadavre (ou ce qu'il en reste) repo-" + 18030 PRINT:PRINT "sera a jamais dans l'espace..." + 18500 AD=#8520:FOR N=1 TO 70:A1=PEEK(AD):A2=PEEK(AD+1):A3=PEEK(AD+2):A4=PEEK(AD+3) + 18510 A5=PEEK(AD+4):A6=PEEK(AD+5):MUSIC 1,A1,A2,VO:MUSIC 2,A3,A4,VO + 18520 PLAY A5,0,0,0:WAIT A6:AD=AD+6:NEXT:PLAY 0,0,0,0 + 19000 WAIT 300:TEXT:POKE 618,10:PRINT:PRINT CHR$(4):CLS + 19005 PRINT:PRINT CHR$(27)"P"CHR$(27)"C";CHR$(27)"J"; + 19010 PRINT " Voulez-vous rejouer (O ou N) ?" + 19020 A=4:B=2:D=0:REPEAT:PLOT 3,3,A:PLOT 3,4,B:C=A:A=B:B=C:D=D+1 + 19030 X$=KEY$:UNTIL X$="N" OR X$="O" OR D=300 + 19040 IF X$="O" THEN RUN + 19050 IF X$="N" THEN PRINT:PRINT CHR$(4):PRINT " Merci d'avoir essaye...!":END + 19060 PRINT CHR$(4):CLS:PING:PRINT:PRINT:PRINT " Reveillez-vous , c'est fini !":GOTO 19000 + 20000 WAIT 200:TEXT:CLS:POKE #26A,10:INK 6:PRINT:PRINT:PRINT " D'accord," + 20010 PRINT "vous m'avez battu, mais c'est un coup" + 20020 PRINT "de chance, et la prochaine fois ma" + 20030 PRINT "vengeance sera terrible." + 20040 PRINT "Prenez peur , car le jour ou je serais"; + 20050 PRINT "a nouveau la, ma puissance n'aura plus"; + 20060 PRINT "de limites, alors l'heure de la souf-" + 20070 PRINT "france aura sonne..." + 20080 PRINT:PRINT:PRINT SPC(20)" Dr GENIUS." + 20100 WAIT 100:GOSUB 20500:GOTO 19E3 + 20500 AD=#9100:FOR N=0 TO 48:A1=PEEK(AD):AD=AD+1:IF A1=0 THEN PLAY 4,0,0,0:NEXT + 20510 A2=PEEK(AD):A3=PEEK(AD+1):A4=PEEK(AD+2):A5=PEEK(AD+3):A6=PEEK(AD+4) + 20520 A7=PEEK(AD+5):MUSIC 1,A1,A2,VO:MUSIC 2,A3,A4,VO:MUSIC 3,A5,A6,VO + 20530 PLAY A7,0,0,0:WAIT 12:AD=AD+6:NEXT:WAIT 12:PLAY 0,0,0,0:RETURN + 24000 CLS:PAPER 0:INK 6:PRINT:PRINT:PRINT CHR$(4) + 24010 A$=CHR$(27)+"P"+CHR$(27)+"A"+CHR$(27)+"J" + 24020 PRINT:PRINT:PRINT:PRINT:PRINT A$;" LE RETOUR DU Dr GENIUS" + 24040 FOR I=1 TO 7:PRINT CHR$(4):NEXT:PRINT " Vous avez 20 minutes , et" + 24050 PRINT " 400 unites de force pour" + 24060 PRINT " remplir votre mission..." + 24080 PLOT 7,25,"APPUYEZ SUR UNE TOUCHE":X$=KEY$ + 24090 A=1:B=2:REPEAT:PLOT 5,7,A:PLOT 5,8,B:C=A:A=B:B=C:WAIT 5:UNTIL KEY$<>"" + 24100 CLS:PRINT:PRINT:PRINT:POKE 618,10 + 24105 PRINT SPC(5);CHR$(4)CHR$(27)"JVOLUME (1 a 5) :"; + 24110 GET A$:IF PEEK(#35)<49 OR PEEK(#35)>53 THEN PING:GOTO 24100 + 24120 PRINT A$:PRINT CHR$(4):A=VAL(A$):VO=A*2:WAIT 100:RETURN + 30000 FOR N=1 TO LEN(A$):CURSET X+6*N-6,Y,0:CHAR ASC(MID$(A$,N,1)),0,1:NEXT:RETURN + \ No newline at end of file