Pendant mes vacances ... PC1600 et X07

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Pendant mes vacances ... PC1600 et X07

Message par charognard » 16 août 2008 18:03

Un jeu de rôle adapté d'une programationpar un certain "tortue géniale" sur PC E500, l'adaptation sur PC 1600 à surtout demandé un travail sur l'interface et la taille de l'écran (4 lignes de quarante caractères pour le E500), les fonction LINE et GPRINT fonctionnent de manière différente sur 1600.
fonctions interressantes : POINT dans sa syntaxe point(A) et GPRINT avec filtre logique (OR, XOR, AND)
le listing

Code : Tout sélectionner

    5 CLEAR :DEGREE :CLS :WAIT 0:CURSOR 5,0:PRINT "DUNGEON MONSTER"
   10 CURSOR 1,1:PRINT "par:Tortue Geniale(E500)
   11 CURSOR 1,2:PRINT "Adaptation par charognard":CURSOR 0,3:PRINT "tapez une touche..."
   12 A=31
   13 IF A<151LET B=POINT (A):GCURSOR A-1,0:GPRINT OR ,B;:A=A+1
   14 IF INKEY$ =""THEN 13
   15 SO=1
   16 DIM GR$(12),CH$(0)*80,ME$(0)*80
   17 RESTORE 6000
   18 FOR GR=0TO 12:READ GR$(GR):NEXT GR
   20 B$="FFFFFFFFFFFFFFFF":C$="0000000000000000":DIM PV(3):DIM G(3):G(1)=149:G2)=179
   21 G(3)=209:LE=1:DIM OBJ$(3),TR$(2)*80,NO(3),C(20,20):X=1:Y=2:X1=1:Y1=2
   23 TR$(0)="l'objet est la cle du niveau mais utilisable par un magicien uniquement
   24 TR$(1)="mais seul 1 magicien peut l'utiliser  "
   25 TR$(2)=" a lamentablement glisse sur une merde de chien  "
   30 G=91:P=1:PV(1)=81:PV(2)=54:PV(3)=32:DIM N$(3):N$(1)="Haalk":N$(2)="Angela"
   31 N$(3)="Gothmog":N=1:DIM M(3)
   40 CLS :CURSOR 2,1:PRINT "Please":CURSOR 3,2:PRINT "wait
   42 GOSUB "SON":GCURSOR 151,6:GPRINT "4177497741"
   45 A=1:B=1:X=X+1:A2=90:A1=0:X1=X1+1:X2=X1:Y2=Y1
   50 GOSUB "DIRECT"
   70 GCURSOR 91,1:GPRINT "000000000CF8387C3EFF3E7C38F80C00000000000000"
   80 GCURSOR 91,9:GPRINT "00E0100808C40F23854505A30FC4080810E000000000"
   90 GCURSOR 109,1:GPRINT "00000000000000F8FC0CA60E06A60CFCF800000000000000"
  100 GCURSOR 109,9:GPRINT "000000C020904827E7E2E24545E2E2E727489020C0000000"
  110 GCURSOR 137,1:GPRINT "806090ECF2CF31C0":GCURSOR 129,9
  111 GPRINT "00000000C0300E113E7F7F7F3F3F3F1C031C20C000"
  120 LINE (91,0)-(109,17),,,B:LINE (111,0)-(129,17),,,B:LINE (131,0)-(149,17),,,B
  125 IF P<>1THEN LINE (G+1,1)-(G+17,16),X,,BF
  130 IF P<>2THEN LINE (G+21,1)-(G+37,16),X,,BF
  135 IF P<>3THEN LINE (G+41,1)-(G+57,16),X,,BF
  140 LINE (63,0)-(83,20),,,B
  142 GCURSOR 52,0:GPRINT "1E051E000C12001F02":GCURSOR 52,6:GPRINT "1F0501001408140201
  145 GCURSOR 52,12:GPRINT "11191513151C14141C14
  147 GOSUB "MISAJOUR
  150 RESTORE 5000+100*LE
  155 LINE (64,1)-(82,19),,,B
  160 FOR I=0TO 19:C(I,0)=1:C(I,1)=1:C(I,19)=1
  170 C(0,I)=1:C(1,I)=1:C(19,I)=1:NEXT I
  180 'LIT NIV
  190 READ S,T,U:IF S=-1THEN 211
  200 C(S,T)=U:IF LEV<4AND U=1THEN PSET (S+63,T)
  210 GOTO 180
  211 O1=RND 9+15
  220 FOR Q=10TO 25
  221 V=RND 18:W=RND 18:IF C(V,W)<>0OR (V=XAND W=Y)THEN 221ELSE LET C(V,W)=Q
  223 NEXT Q
  224 FOR Q1=1TO 4:FOR Q=31TO 40
  225 V=RND (18):W=RND (18):IF C(V,W)<>0OR (V=XAND W=Y)THEN 225ELSE LET C(V,W)=Q
  226 NEXT Q:NEXT Q1
  229 GOTO 250
  230 'AFF+DEP
  235 GCURSOR 151,6:GPRINT "0000000000
  240 A$=INKEY$ :IF CL=0THEN LINE (X+63,Y)-(X+63,Y),X,,BF
  241 CL=CL+1:IF CL=10THEN LET CL=0
  242 IF A$=""AND C2<21THEN 240ELSE IF A$=""THEN LET U=U+1:IF U<60THEN 240ELSE LET U=0:GOSUB "TRUC":GOTO 240
  245 GOSUB "VIDE"
  246 PRESET (X+63,Y)
  247 GCURSOR 151,6:GPRINT "4177497741
  250 IF A$=" "THEN "SPACE"
  260 IF A$="A"THEN "ACT"
  265 IF A$="F"THEN "FRAP"
  266 IF A$="Z"THEN "ZZ"
  267 IF A$="S"LET SO=ABS (SO-1):GOSUB "SON":BEEP SO,100,30:GOTO 235
  270 IF A$="8"AND A=0AND B=-1LET Y1=Y-1
  280 IF A$="8"AND A=0AND B=1LET Y1=Y+1
  290 IF A$="8"AND A=1AND B=0LET X1=X+1
  300 IF A$="8"AND A=-1AND B=0LET X1=X-1
  310 IF A$="2"AND A=0AND B=-1LET Y1=Y+1
  320 IF A$="2"AND A=0AND B=1LET Y1=Y-1
  330 IF A$="2"AND A=1AND B=0LET X1=X-1
  340 IF A$="2"AND A=-1AND B=0LET X1=X+1
  350 IF A$="4"AND A=0AND B=-1LET X1=X-1
  360 IF A$="4"AND A=0AND B=1LET X1=X+1
  370 IF A$="4"AND A=1AND B=0LET Y1=Y-1
  380 IF A$="4"AND A=-1AND B=0LET Y1=Y+1
  390 IF A$="6"AND A=0AND B=-1LET X1=X+1
  400 IF A$="6"AND A=0AND B=1LET X1=X-1
  410 IF A$="6"AND A=1AND B=0LET Y1=Y+1
  420 IF A$="6"AND A=-1AND B=0LET Y1=Y-1
  430 IF A$="7"LET A1=A1+90:A2=A2+90
  440 IF A$="9"LET A1=A1-90:A2=A2-90
  450 IF A1>360LET A1=90
  460 IF A2>360LET A2=90
  470 IF A1<0LET A1=270
  480 IF A2<0LET A2=270
  490 GOSUB "DIRECT
  530 IF C(X1,Y1)=1OR C(X1,Y1)>20LET X1=X2:Y1=Y2:GOSUB 1330:GOTO 230ELSE LET X=X1:Y=Y1:X2=X1:Y2=Y1
  540 FOR J=0TO 24STEP 8
  550 GCURSOR 0,J:GPRINT C$;C$;C$;C$;C$;C$;"00000000"
  560 NEXT J
  570 A=COS A1:B=COS A2
  580 K2=X+A:L2=Y+B
  590 IF A=0AND B=-1THEN LET K3=X+1,L3=Y-1,K4=X-1,L4=Y-1,K5=X,L5=Y-2,K6=X+1,L6=Y-2,K7=X-1
  595 IF A=0AND B=-1THEN LET L7=Y-2,K8=X-1,L8=Y,K9=X+1,L9=Y
  600 IF A=0AND B=1THEN LET K3=X-1,L3=Y+1,K4=X+1,L4=Y+1,K5=X,L5=Y+2,K6=X-1,L6=Y+2,K7=X+1
  605 IF A=0AND B=1THEN LET L7=Y+2,K8=X+1,L8=Y,K9=X-1,L9=Y
  610 IF A=1AND B=0THEN LET K3=X+1,L3=Y+1,K4=X+1,L4=Y-1,K5=X+2,L5=Y,K6=X+2,L6=Y+1,K7=X+2
  615 IF A=1AND B=0THEN LET L7=Y-1,K8=X,L8=Y-1,K9=X,L9=Y+1
  620 IF A=-1AND B=0THEN LET K3=X-1,L3=Y-1,K4=X-1,L4=Y+1,K5=X-2,L5=Y,K6=X-2,L6=Y-1,K7=X-2
  625 IF A=-1AND B=0THEN LET L7=Y+1,K8=X,L8=Y+1,K9=X,L9=Y-1
  630 C1=C(X,Y),C2=C(K2,L2),C3=C(K3,L3),C4=C(K4,L4),C5=C(K5,L5),C6=C(K6,L6)
  631 C7=C(K7,L7),C8=C(K8,L8),C9=C(K9,L9)
  632 PSET (X+63,Y)
  640 IF C2=1THEN GOSUB "MUR2":GOTO 710ELSE IF C2=2LET U=1:GOSUB "SORT1"ELSE IF C2=3LET U=-1:GOSUB "SORT2"
  650 IF C8=1THEN GOSUB "MUR6"ELSE IF C4=1THEN GOSUB "MUR8"
  660 IF C9=1THEN GOSUB "MUR7"ELSE IF C3=1THEN GOSUB "MUR9"
  670 IF C4<>1AND C7=1THEN GOSUB "TOURNE1"ELSE IF C4=1GOSUB "MUR3"ELSE GOSUB "NOIR2"
  680 IF C3<>1AND C6=1THEN GOSUB "TOURNE2"ELSE IF C3=1GOSUB "MUR4"ELSE GOSUB "NOIR3"
  690 IF C5=1THEN GOSUB "MUR5"ELSE GOSUB "NOIR"
  710 IF C1=3OR (C1=2AND NO(3)=O1)THEN GOTO "LEV"
  711 IF C2=1THEN PSET (K2+63,L2)
  712 IF C3=1THEN PSET (K3+63,L3)
  713 IF C4=1THEN PSET (K4+63,L4)
  719 IF C1>=10AND C1<=30THEN BEEP SO,50,30:GOSUB "OBJET"
  720 IF C1=O1THEN BEEP SO,180,30:ME$(0)=TR$(0):GOSUB "AFF"
  721 IF C1=25THEN GOSUB "HASARD":ME$(0)=N$(P1)+TR$(2):GOSUB "AFF":NO=0:C(X,Y)=0
  722 IF C2>30THEN GOSUB "MONST"
  725 IF C2=4THEN GOSUB "FONT"
  726 IF C1=4THEN GOSUB "JOU":GOSUB "MISAJOUR"
  729 GOTO 230
  730 "MUR6"LINE (0,0)-(3,2):LINE -(3,29):LINE -(0,30):RETURN
  740 "MUR7"LINE (51,0)-(48,2):LINE -(48,29):LINE -(51,30):RETURN
  750 "MUR2"LINE (0,0)-(51,31),,,B:LINE (25,0)-(25,31):RETURN
  760 "TOURNE1"LINE (3,9)-(13,23),,,B:RETURN
  770 "MUR3"LINE (3,2)-(13,9):LINE -(13,23):LINE -(3,29):LINE (8,5)-(8,26):RETURN
  780 "MUR4"LINE (48,2)-(36,9):LINE -(36,23):LINE -(48,29):LINE (42,5)-(42,26):RETURN
  790 "TOURNE2"LINE (36,9)-(48,23),,,B:RETURN
  800 "MUR5"LINE (13,9)-(36,23),,,B:LINE (25,9)-(25,23):RETURN
  805 "PORTE"LINE (17,5)-(32,26),,,B:LINE (18,6)-(31,25),R,,BF:LINE (8,5)-(17,26),,,B
  806 LINE (9,6)-(16,25),R,,BF:LINE (31,5)-(42,26),,,B:LINE (32,6)-(41,25),R,,BF
  807 LINE (26,15)-(29,15):LINE (29,16)-(28,16):RETURN
  810 "NOIR"
  820 GCURSOR 13,8:GPRINT B$:GCURSOR 21,8:GPRINT B$:GCURSOR 29,8:GPRINT B$
  830 GCURSOR 13,15:GPRINT B$:GCURSOR 21,15:GPRINT B$:GCURSOR 29,15:GPRINT B$
  840 RETURN
  850 "MUR8"LINE (0,2)-(3,2):LINE -(3,29):LINE -(0,29):RETURN
  860 "MUR9"LINE (51,2)-(48,2):LINE -(48,29):LINE -(51,29):RETURN
  870 "NOIR2"
  880 GCURSOR 3,8:GPRINT B$:GCURSOR 6,8:GPRINT B$:GCURSOR 3,15:GPRINT B$:GCURSOR 6,15:GPRINT B$
  890 RETURN
  900 "NOIR3"
  910 GCURSOR 36,8:GPRINT B$:GCURSOR 41,8:GPRINT B$:GCURSOR 36,15:GPRINT B$:GCURSOR 41,15:GPRINT B$
  920 RETURN
  930 "SORT1"
  931 LINE (9,29)-(15,25):LINE -(34,25):LINE -(42,29):LINE -(9,29)
  932 LINE (24,29)-(24,20):LINE (34,29)-(34,20):LINE (24,27)-(34,27):LINE (24,21)-(34,21)
  933 RETURN
  934 "SORT2"
  935 LINE (9,2)-(15,6):LINE -(34,6):LINE -(42,2):LINE -(9,2)
  936 LINE (24,2)-(24,11):LINE (34,2)-(34,11):LINE (24,4)-(34,4):LINE (24,10)-(34,10)
  939 RETURN
  940 "SPACE"LINE (G+1,1)-(G+17,16),X,,BF:G=G+20
  960 IF G>131THEN LET G=91
  970 LINE (G+1,1)-(G+17,16),X,,BF:P=P+1:IF P>3THEN LET P=1
  980 BEEP SO,10,30
  981 GOSUB 1005
  990 GOTO 230
 1000 "MISAJOUR"GCURSOR 87,19:GPRINT OR ,"1F0502000C100C000A
 1001 FOR PE=1TO 3:GCURSOR 77+PE*20,19:CH$=STR$ PV(PE):GOSUB "FONT5"
 1002 IF M(PE)=0THEN LINE (77+PE*20,19)-(90+PE*20,23),R,,BF:GPRINT OR ,CH$(0)+"0000000000"
 1003 IF M(PE)=1THEN LINE (77+PE*20,19)-(90+PE*20,23),R,,BF:GPRINT OR ,"1F050D12001F001F050502
 1004 NEXT PE
 1005 CURSOR 9,3:PRINT USING "&&&&&&&&&&&&&&&&&";N$(P)+"["+OB$(P)+"]":USING
 1010 RETURN
 1020 "ACT"
 1025 IF M(P)=1THEN 235
 1030 CURSOR 10,3:PRINT "ange aisse rends";:MA$=""
 1031 GCURSOR 52,24:GPRINT "FE82F6EEF682FE":GCURSOR 84,24:GPRINT "FE82BEBEFE":GCURSOR 120,24:GPRINT "FE82EAF6FE
 1032 K$=INKEY$ :IF K$=""THEN 1032
 1033 GOSUB "VIDE":GCURSOR 52,24:GPRINT C$
 1034 IF K$="M"THEN IF NO>=5AND NO<=10LET PV(P)=PV(P)+RND OB:MA$="MIAM MIAM":BEEP SO,200,30
 1035 IF K$="M"THEN IF NO>=5AND NO<=10LET C(X,Y)=0ELSE LET MA$="INDIGESTE!":PV(P)=PV(P)-2
 1036 IF K$="P"LET OB$(P)=OB$:C(X,Y)=0:NO(P)=NO
 1037 IF K$="L"AND C(X,Y)=0LET C(X,Y)=NO(P):NO(P)=0:OB$(P)=""ELSE IF K$="L"THEN LET MA$="PAS ICI!
 1038 IF MA$<>""THEN CURSOR 9,3:PAUSE MA$
 1040 GOSUB "VIDE":GOSUB "MISAJOUR":GOTO 230
 1120 "HASARD"P1=RND 3
 1130 IF M(P1)=1THEN 1120
 1140 RETURN
 1150 "AFF"TA$=MID$ (" "+ME$(0)+"   ",N,16)
 1160 IF INKEY$ =CHR$ (12)THEN WAIT 0ELSE WAIT 20
 1170 IF RIGHT$ (TA$,3)="   "LET N=1:WAIT 0:RETURN
 1190 CURSOR 9,3:PRINT TA$:N=N+1:GOTO 1150
 1200 "MORT"
 1210 LINE (G(P1),1)-(G(P1)+24,17),X,,BF:PV(P1)=0:M(P1)=1
 1215 IF M(1)=1AND M(2)=1AND M(3)=1THEN CLS :FOR I=0TO 239STEP 8:FOR J=7TO 31STEP 8:GCURSOR (I,J)
 1216 IF M(1)=1AND M(2)=1AND M(3)=1THEN GPRINT "00406070747E3410":NEXT J:NEXT I:CURSOR 9,1:PRINT "GAME OVER!":END
 1220 RETURN
 1230 "LEV"
 1240 CLS :CURSOR 15,1:PAUSE "LET'S GO ON !!!!"
 1250 LE=LE+U:ERASE C():OB$(3)="":NO(3)=0
 1255 IF LE=7THEN "FIN
 1260 CLS :GOTO 40
 1270 "OBJET"
 1280 RESTORE 3000
 1290 READ NO,OB$,OB
 1300 IF NO<>C(X,Y)THEN 1290
 1310 CURSOR 9,3:PRINT OB$
 1320 RETURN
 1330 "COGN"
 1340 FOR P1=1TO 3:IF PV(P1)>0LET PV(P1)=PV(P1)-1
 1341 IF PV(P1)=0AND M(P1)=0THEN GOSUB "MORT"
 1345 NEXT P1
 1346 GCURSOR 32,24:GPRINT C$+C$
 1350 CURSOR 9,3:PRINT "AIE!!":BEEP SO,100,30:GOSUB "MISAJOUR"
 1360 RETURN
 1370 "MONST"
 1380 RESTORE 3020
 1390 READ NM,MO$,PM
 1395 IF NM<>C2THEN 1390
 1396 CURSOR 9,3:PRINT MO$
 1400 ON NM-30GOTO "VER","CHE","SPE","DEM","FLA","POD","LIM","GRO","PON","PLU"
 1401 "VER"GCURSOR 13,12:GPRINT "0000000000000080C0C0C0C0C04040489090A0A060A04080":GCURSOR 13,20
 1402 GPRINT "000000000000472F5A1F1F5A2F4F08080404040405050201":RETURN
 1403 "CHE"GCURSOR 10,12
 1404 GPRINT "000030F0C080FCFEFFFCF080E03818000000000000C0F0FCFFFCF0C0000000"
 1405 GCURSOR 10,20:GPRINT "0000000001231F3F1F0F1F2F0300000000000000104E3F07"
 1406 GCURSOR 34,20:GPRINT "2F1F3F1F1F2E0000":RETURN
 1407 "SPE"GCURSOR 13,4:GPRINT "000000000000010304183CFEFFFE3C180403010000000000":GCURSOR 13,12
 1408 GPRINT "00010204085038540AFD01143C407D8506847C0000000000"
 1409 GCURSOR 21,20:GPRINT "007E81817F81817E":RETURN
 1410 "FRAP"
 1411 IF (C2=0OR C2=1)AND M(P)=0THEN CURSOR 9,3:PRINT "coup pour rien!":GOTO 235
 1415 IF M(P)=1THEN 235
 1420 PM=PM-INT (PV(P)/4)+1
 1425 GCURSOR 32,25:CH$=STR$ (PM):GOSUB "FONT5":GPRINT CH$(0)+"0000
 1430 IF PM<=0THEN LET C(K2,L2)=0:CURSOR 9,3:PRINT "tu";CHR$ (130);"!!        ":GOTO 270
 1440 GOSUB "TRUC
 1450 GOTO 235
 1999 "TRUC"
 2000 IF RND 3<3THEN GOSUB 1120:PV(P1)=PV(P1)-RND 5:CURSOR 9,3:PRINT "AIE!     ":GOSUB 1000:IF PV(P1)<0THEN GOSUB 1200
 2001 GCURSOR 32,24:GPRINT C$+C$
 2002 RETURN
 2020 "DEM"GCURSOR 18,12:GPRINT "0000000001C2ECFEFEECE261C0986018"
 2025 GCURSOR 18,20:GPRINT "02040202245B8F0F0F8F592006010000":RETURN
 2030 "FLA"GCURSOR 18,12:GPRINT "1CE00E30CC020C10E0080601F80700C"
 2035 GCURSOR 18,20:GPRINT "1863849CF9E4FCF8FDFFF3781C030000":RETURN
 2040 "POD"GCURSOR 18,12:GPRINT "C626580838041C04041C0438085846C6"
 2045 GCURSOR 18,20:GPRINT "010205080E101C10101C100E08050201":RETURN
 2050 "LIM"GCURSOR 18,12:GPRINT "002024284848F0C0F8E45350880C0280"
 2055 GCURSOR 18,20:GPRINT "0000040422118F413F41810608010100":RETURN
 2060 "GRO"GCURSOR 18,12:GPRINT "000040E060F84402C23C000000000000"
 2065 GCURSOR 18,20:GPRINT "0000000001000003641C1C1C7C020200":RETURN
 2070 "PON"GCURSOR 18,12:GPRINT "00003048456952202052694548300000"
 2075 GCURSOR 18,20:GPRINT "00000008183C040402028E0600000000":RETURN
 2080 "PLU"GCURSOR 18,12:GPRINT "0000242448D060BF60D0482424000000"
 2085 GCURSOR 18,20:GPRINT "00000201011D030203031D0102000000":RETURN
 2500 "ZZ"GOSUB "VIDE"
 2510 LINE (0,0)-(51,31),S,,BF:GCURSOR 15,12:GPRINT XOR ,"81C1A191898583810088C8A898880088C8A89888
 2520 IF INKEY$ <>""OR PV(1)>110OR PV(2)>87OR PV(3)>60THEN 270
 2540 FOR E=1TO 3:PV(E)=PV(E)+2*(M(E)=0):NEXT E
 2550 GOSUB "MISAJOUR":GOTO 2520
 2600 "FIN"
 2610 CLS :CURSOR 8,1:PRINT "BRAVO!!vous avez triomphe !":CURSOR 8,2:PRINT "quelle patiente!a la prochain
 2620 END
 2650 "FONT"
 2651 GCURSOR 15,13:GPRINT "00420018442424FC924929294491000":GCURSOR 15,21
 2652 GPRINT "F81414132222223F22222222121415F8":RETURN
 2660 "JOU"
 2662 FOR P2=1TO 3
 2664 IF M(P2)<>0LET M(P2)=0:PV(P2)=20:LINE (G(P2),1)-(G(P2)+24,17),X,,BF
 2665 NEXT P2:RETURN
 2700 "SON"SO$="101C1F1C10":IF SO=0LET SO$="101C131C10"
 2710 GCURSOR 151,0:GPRINT SO$:RETURN
 2800 "FONT5"CH$(0)="":FOR GR=1TO LEN CH$
 2810 CH$(0)=CH$(0)+GR$(ASC (MID$ (CH$,GR,1))-45)
 2820 NEXT GR
 2830 RETURN
 2900 "VIDE"CURSOR 9,3:PRINT "                 ";:RETURN
 2950 "DIRECT"GCURSOR 85,2:IF A1=90THEN GPRINT "04021F0204
 2955 IF A1=360OR A1=0THEN GPRINT "08082A1C08
 2960 IF A1=270THEN GPRINT "04081F0804
 2965 IF A1=180THEN GPRINT "081C2A0808
 2970 RETURN
 3000 DATA 10,"LASAGNES",8,11,"CHAMPAGNE",3,12,"HAMBURGER",9,13,"BOUDIN",5
 3005 DATA 14,"CHORIZO",7,15,"PIZZA",10
 3010 DATA 16,"BROUETTE",0,17,"DENTIER",0,18,"PARACHUTE",0,19,"GOMME",0
 3015 DATA 20,"ASPIRATEUR",0,21,"NOUNOURS",0,22,"ENCLUME",0,23,"CANAPE",0
 3016 DATA 24,"SERVIETTE",0,25,"MERDE",0
 3020 DATA 31,"VER GEANT",152,32,"SPECTRES",135,33,"CHEVALIER",210,34,"DEMON",85,35
 3030 DATA "FLAMME",112,36,"PODDLE",112,37,"BROUTCHMOL",184,38,"VEXIRK",85
 3035 DATA 39,"PONGE",101,40,"ARACHNO",111
 5100 DATA 2,3,1,3,3,1,4,3,1,5,3,1,6,3,1,8,3,1,10,3,1,15,3,1
 5101 DATA 8,2,1,15,2,1,9,11,4
 5102 DATA 3,4,1,8,4,1,10,4,1,15,4,1,16,4,1,18,4,1
 5103 DATA 3,5,1,8,5,1,10,5,1
 5104 DATA 3,6,1,10,6,1
 5105 DATA 8,7,1,9,7,1,10,7,1
 5106 DATA 8,8,1
 5107 DATA 8,9,1,10,9,1
 5108 DATA 8,10,1,9,10,1,10,10,1,11,10,1,12,10,1
 5109 DATA 8,11,1,12,11,1
 5110 DATA 8,12,1,12,12,1
 5111 DATA 8,13,1,9,13,1,11,13,1,12,13,1
 5112 DATA 7,14,1,13,14,1,14,14,1,15,14,1,16,14,1,17,14,1
 5113 DATA 4,15,1,5,15,1,6,15,1,2,16,1
 5114 DATA 4,16,1,5,16,1,8,16,1,9,16,1,10,16,1,11,16,1,13,16,1,14,16,1,16,16,1,17,16,1
 5115 DATA 8,17,1,9,17,1,11,17,1,13,17,1,14,17,1,16,17,1,17,17,1,9,2,2
 5116 DATA 11,18,1,-1
 5200 DATA 3,2,1,9,2,3
 5201 DATA 3,3,1,4,3,1,7,3,1,14,3,1,16,3,1
 5202 DATA 3,4,1,6,4,1,9,4,1,12,4,1,14,4,1,16,4,1,17,4,1
 5203 DATA 3,5,1,5,5,1,8,5,1,12,5,1,16,5,1
 5204 DATA 5,6,1,6,6,1,9,6,1,10,6,1,12,6,1,13,6,1
 5205 DATA 2,7,1,3,7,1,5,7,1,8,7,1,14,7,1,16,7,1,17,7,1,18,7,1
 5206 DATA 3,8,1,5,8,1,7,8,1,8,8,1,14,8,1
 5207 DATA 5,9,1,8,9,1,14,9,1
 5208 DATA 3,10,1,4,10,1,6,10,1,7,10,1,8,10,1,14,10,1,15,10,1,16,10,1
 5209 DATA 16,11,1
 5210 DATA 2,12,1,3,12,1,4,12,1,5,12,1,6,12,1,7,12,1,8,12,1,14,12,1,16,12,1
 5211 DATA 8,13,1,14,13,1,16,13,1,17,13,1
 5212 DATA 3,14,1,5,14,1,8,14,1,14,14,1,16,14,1
 5213 DATA 9,15,1,11,15,1,12,15,1,13,15,1,16,15,1,18,15,1
 5214 DATA 3,16,1,5,16,1,7,16,1,11,16,1,15,16,1
 5215 DATA 9,17,1,11,17,1,13,17,1,14,17,1,17,17,1
 5216 DATA 3,18,1,5,18,1,7,18,1,11,18,1,16,18,1,17,18,2,-1
 5300 DATA 3,2,1,6,2,1,8,2,1,10,2,1,17,2,2
 5301 DATA 10,3,1,13,3,1,16,3,1,18,3,1
 5302 DATA 3,4,1,5,4,1,7,4,1,11,4,1,13,4,1,15,4,1,10,4,4
 5303 DATA 3,5,1,4,5,1,5,5,1,6,5,1,7,5,1,8,5,1,9,5,1,10,5,1,11,5,1,15,5,1,17,5,1
 5304 DATA 3,6,1,11,6,1,13,6,1,14,6,1,17,6,1
 5305 DATA 3,7,1,5,7,1,6,7,1,7,7,1,8,7,1,10,7,1,13,7,1,16,7,1
 5306 DATA 3,8,1,5,8,1,11,8,1,13,8,1,15,8,1,17,8,1
 5307 DATA 3,9,1,5,9,1,7,9,1,8,9,1,9,9,1,10,9,1,11,9,1,17,9,1
 5308 DATA 3,10,1,5,10,1,12,10,1,14,10,1,15,10,1,17,10,1
 5309 DATA 3,11,1,6,11,1,7,11,1,8,11,1,9,11,1,10,11,1
 5310 DATA 3,12,1,5,12,1,11,12,1,13,12,1,15,12,1,16,12,1,17,12,1,18,12,1
 5311 DATA 3,13,1,6,13,1,9,13,1,10,13,1,12,13,1,13,13,1,15,13,1
 5312 DATA 3,14,1,5,14,1,15,14,1,17,14,1
 5313 DATA 3,15,1,6,15,1,8,15,1,9,15,1,10,15,1,12,15,1,13,15,1,15,15,1,17,15,1
 5314 DATA 3,16,1,6,16,1,8,16,1,11,16,1,15,16,1,17,16,1
 5315 DATA 3,17,1,4,17,1,5,17,1,6,17,1,13,17,1,15,17,1
 5316 DATA 11,18,1,13,18,1,17,18,3,-1
 5400 DATA 5,2,1,11,2,1,16,2,1,17,2,3
 5401 DATA 3,3,1,5,3,1,7,3,1,8,3,1,9,3,1,11,3,1,14,3,1
 5402 DATA 3,4,1,5,4,1,16,5,1,17,5,1,18,5,1
 5403 DATA 3,5,1,5,5,1,6,5,1,7,5,1,8,5,1,9,5,1,10,5,1,11,5,1,13,5,1,14,5,1,16,5,1
 5404 DATA 4,6,1,11,6,1
 5405 DATA 11,7,1,13,7,1,14,7,1,15,7,1,16,7,1
 5406 DATA 8,8,2,7,8,1,11,8,1,16,8,1,17,8,1,18,8,1
 5407 DATA 2,9,1,3,9,1,4,9,1,11,9,1,12,9,1,14,9,1,16,9,1
 5408 DATA 4,10,1,8,10,1,14,10,1
 5409 DATA 4,11,1,7,11,1,10,11,1,12,11,1,16,11,1
 5410 DATA 4,12,1,5,12,1,7,12,1,13,12,1,15,12,1,16,12,1,17,12,1
 5411 DATA 8,13,1,9,13,1,10,13,1,11,13,1,12,13,1,16,13,1
 5412 DATA 3,14,1,6,14,1,7,14,1,8,14,1,10,14,1,16,14,1
 5413 DATA 5,15,1,8,15,1,10,15,1,12,15,1,13,15,1,17,15,1
 5414 DATA 2,16,1,3,16,1,4,16,1,12,16,1,13,16,1,15,16,1,17,16,1
 5415 DATA 4,17,1,7,17,1,8,17,1,9,17,1,10,17,1,15,17,1,17,17,1
 5416 DATA 10,18,1,15,18,1,-1
 5500 DATA 2,2,2,4,2,1,10,2,1,11,2,2,13,2,2,15,2,1
 5501 DATA 2,3,1,4,3,1,6,3,1,7,3,1,8,3,1,10,3,1,11,3,1,13,3,1,15,3,1,17,3,1
 5502 DATA 2,4,2,4,4,1,6,4,1,7,4,1,8,4,1,10,4,1,15,4,1,17,4,1
 5503 DATA 2,5,1,4,5,1,6,5,1,7,5,1,8,5,1,10,5,1,11,5,1,12,5,1,14,5,1,15,5,1,17,5,1
 5504 DATA 2,6,2,4,6,1,10,6,1,17,6,1
 5505 DATA 2,7,1,4,7,1,7,7,1,8,7,1,9,7,1,10,7,1,11,7,1,12,7,1,16,7,1
 5506 DATA 2,8,2,4,8,1,7,8,1,8,8,3,15,8,1,18,8,1
 5507 DATA 2,9,1,7,9,1,8,9,1,9,9,1,11,9,1,16,9,1
 5508 DATA 2,10,2,4,10,1,7,10,1,9,10,1,11,10,1,12,10,1,13,10,1,14,10,1,17,10,1
 5509 DATA 2,11,1,4,11,1,7,11,1,11,11,1,16,11,1
 5510 DATA 2,12,2,4,12,1,7,12,1,8,12,1,9,12,1,14,12,1,15,12,1
 5511 DATA 2,13,1,4,13,1,7,13,1,11,13,1,13,13,1,15,13,1,16,13,1,17,13,1
 5512 DATA 2,14,2,4,14,1,7,14,1,9,14,1,11,14,1,15,14,1
 5513 DATA 2,15,1,4,15,1,7,15,1,9,15,1,10,15,1,13,15,1,14,15,1,15,15,1,16,15,1,17,15,1
 5514 DATA 2,16,2,4,16,1,7,16,1,8,16,4,9,16,1,13,16,1,15,16,1
 5515 DATA 2,17,1,4,17,1,7,17,1,8,17,1,9,17,1,13,17,1,15,17,1,17,17,1,18,17,1
 5516 DATA 2,18,2,4,18,1,13,18,1,-1
 5600 DATA 2,2,3,4,2,1,6,2,4,11,2,3,13,2,3
 5601 DATA 2,3,1,4,3,1,16,3,4
 5602 DATA 2,4,3,4,4,1
 5603 DATA 2,5,1,4,5,1,9,5,4,13,5,4
 5604 DATA 2,6,3,4,6,1,18,6,4
 5605 DATA 2,7,1,4,7,1,5,7,4,11,7,4
 5606 DATA 2,8,3,4,8,1,16,8,4
 5607 DATA 2,9,1,4,9,1,5,9,1,6,9,1,7,9,1,8,9,1,9,9,1,10,9,1,14,9,1,15,9,1,16,9,1,17,9,1
 5608 DATA 18,9,1,2,10,3,12,10,4,17,10,2,18,10,1
 5609 DATA 2,11,1,4,11,1,5,11,1,6,11,1,7,11,1,8,11,1,9,11,1,10,11,1,14,11,1,15,11,1,16
 5610 DATA 11,1,17,11,1,18,11,1,2,12,3,4,12,1
 5611 DATA 2,13,1,4,13,1,6,13,4
 5612 DATA 2,14,3,4,14,1,15,14,4
 5613 DATA 2,15,1,4,15,1,10,15,4
 5614 DATA 2,16,3,4,16,1,7,16,4,17,16,4
 5615 DATA 2,17,1,4,17,1,12,17,4
 5616 DATA 2,18,3,4,18,1,9,18,4,-1,1,1
 6000 DATA "040400","","","0E11110E00","021F00","1219151200","1115150A00","0C0A1D0800"
 6010 DATA "1715150900","0E15150900","0119070100","0A15150A00","0215150E00"
 7000 A$=INKEY$ :IF A$=""THEN 7000
 7001 PRINT ASC (A$)
 7002 END
 8000 CLS :CLEAR :DIM L(7)
 8005 GCURSOR 0,0
 8010 GPRINT "00C0300E113E7F7F7F3F3F3F1C031C20C000";
 8015 FOR A=0TO 3:FOR B=0TO 5:CURSOR 0,2
 8020 CO=POINT (6*A+B)
 8025 FOR C=0TO 7
 8030 L(C)=L(C)+(((COAND (INT (2^C+.001)))=INT (2^C+.001))*2)^(7-B)
 8035 PRINT L(C);:NEXT C
 8040 NEXT B:FOR C=0TO 7:L(C)=0:NEXT C:PAUSE "FIN      "
 8050 IF INKEY$ =""THEN 8050
 8060 NEXT A
Explications :
lignes 5~14 : initialisation plus titrage, notez l'utilisation originale de la commande POINT qui sur le 1600 offre une syntaxe originale
lignes 5~45 : initialisation des variables
ligne 50 : appel du sous programme d'affichage de la flèche directionnelle (n'existe pas sur la version E500)
lignes 70~145 : graphisme de l'interface (personnages, touches d'appel, symboles..)
ligne 147 : appel du sous programme de mise à jour des persos
lignes 150~226 : constitution aléatoire des niveaux
lignes 230~729 : programme principal (gestion clavier, appel au differents sous programmes...)
lignes 730~939 : Sous programmes d'affichage de l'environnement
lignes 940~990 : Changement de personnage
lignes 1000~1010 : Sous programme de mise à jour des personnages
lignes 1020~1040 : Programme de gestion des actions disponibles
lignes 1120~1140 : Sous programme de selection aléatoire d'un personnage
lignes 1150~1220 : Sous programme de gestion de ligne d'affichage > 16 caractères
lignes 1230~1260 : On passe au niveau suivant
lignes 1280~1320 : Oh un objet
lignes 1330~1360 : Tiens, prend ça dans ta gueule...
lignes 1370~2085 : Oh un monstre
lignes 2500~2600 : Chut on dort !
lignes 2610~2620 : c'est la fin
lignes 2650~2652 : Oh une fontaine !
lignes 2660~2665 : Allelouia .. je suis vivant
lignes 2700~2710 : Cloche noir ça sonne, cloche blanche ça sonne plus
lignes 2800~2820 : Sous programme pour une police numérique de 5 pixel de haut
ligne 2900 : Nettoyage de la ligne commentaire
lignes 2950~2970 : Sous programme d'affichage de la direction
lignes 3000~6010 : Data (Bouffe, Objet, Monstre, Niveau, Font5)
lignes 7000~7002 : Un bout de code me servant à tester le code ASC d'une touche
lignes 8000~8060 : Oh le programme utile !!!, GPRINT de SHARP --> FONT$ du CANON X07

à venir : quelques photos d'écrans et en WAV l'adaptation partielle sur X07

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Message par badaze » 16 août 2008 18:22

Waouh quel courage. Il a pas fait beau?

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 16 août 2008 18:41

Non :wink:
les photos :
sur sharp
Image
Image
Image
Image
Image
Image

sur canon pas terminé
Image
Image
Image
Image
Image
On change de perso
Image

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Message par badaze » 16 août 2008 18:49

Que dire sinon Chapeau.

:D

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 16 août 2008 19:06

le WMA pour le canon X07 ICI

Avatar de l’utilisateur
gege
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7180
Inscription : 31 janv. 2008 15:24
Localisation : Banlieue Paârisienne
Contact :

Message par gege » 16 août 2008 23:19

Superbe !!
Je trouve "bien" d'avoir laissé le copyright dudit "tortue géniale", j'approuve !
D'après ce qu'on voit en data ça a l'air assez déjanté.

Merci.
G.E.

Avatar de l’utilisateur
badaze
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 7462
Inscription : 12 févr. 2007 19:36
Localisation : Pas très loin de Lyon
Contact :

Message par badaze » 16 août 2008 23:54

gege a écrit :Superbe !!
Je trouve "bien" d'avoir laissé le copyright dudit "tortue géniale", j'approuve !
D'après ce qu'on voit en data ça a l'air assez déjanté.

Merci.
G.E.
Il manque BELLE MERE.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 août 2008 13:06

Notez la routine pour la police de 5 pixels en lignes 2800~2820.
j'en ai une amélioré que je vous donnerais


grosse déception par contre le merge n'existe pas en S1 S2 sur cassette uniquement !!! dommage

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 août 2008 13:11

badaze a écrit :
gege a écrit :Superbe !!
Je trouve "bien" d'avoir laissé le copyright dudit "tortue géniale", j'approuve !
D'après ce qu'on voit en data ça a l'air assez déjanté.

Merci.
G.E.
Il manque BELLE MERE.
rien empeche de faire des modifs !!!
j'ai modifié les data en laissant des "trou" pour ajouter des monstres, objet, lieu....
de plus l'unique caracteristique des personnages est les PV ça serais bon d'en ajouter d'autre, pareil pour l'utiliteé de la voleuse je prevois une utilisation pour l'ouverture des porte, le magicien pour les sorts ...
malgrès les 2 DS dans la voiture les enfants se chamaillait le 1600 pour jouer !!!

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 août 2008 18:27

Un petit casse brique aussi une adaptation d'une version E500 faire par un allemand GUNNAR HOVDEN, programmation interressante et optimisée.
version PC 1600
Image
Image
version canon X07
Image
Image
et même une version HP48G mais là la gestion des touches et les ralentissement rende le jeu non jouable j'ai donc mis un curseur tout le long!
Image

sur PC1600 l'adaptation était assez rapide (taille écran, commande LINE,BEEP.. differente, Variable sur 2 caractères significatif uniquement....etc)
sur PC1360 ... quelle lenteur de plus un print sur une ligne même de quelques caractère efface la totalité de la ligne ... pas très pratique !
Sur Canon X07 : pas de commande Rectangle plein XOR dommage . ça me fait traiter les inversions avec PSET PRESET plutot long mais le jeu reste jouable
Sur HP48 : on appuie sur une touche et le jeu passe en deux fois moins vite, le RPN pour les jeux NON

les listings
PC 1600

Code : Tout sélectionner

10 CLS
20 S=1
30 PRINT "SCORE: 0"
40 DIM VI$(5)*80
50 RA$="0207070707070200
60 FOR A=1TO 5
70 VI$(A)=VI$(A-1)+RA$
80 NEXT A
85 VI$(0)="0000000000000000
90 GCURSOR 2,12
100 GPRINT VI$(5)
110 LINE (71,0)-(71,30)
120 LINE (147,0)-(147,30)
130 LINE (72,0)-(146,3),,,BF
140 LINE (72,6)-(146,9),,,BF
150 LV=5:SC=0
160 BX=108:OBX=BX
170 Y=10:OX=X:OY=Y:RX=-3:RY=2:RX=(2*RND (2)-3)*RX:X=111-RX*(RND (6)+4)
180 LINE (BX,30)-(BX+8,30)
190 X=X+RX:Y=Y+RY
200 IF X<71OR X>144BEEP S,10,10:RX=-RX:X=X+2*RX
210 IF Y<30THEN 250
220 IF BX<=OXAND OX<BX+9BEEP S,20,10:RY=-RY:Y=OY+RY:GOTO 250
230 IF OX+RX=BXOR X-RX=BX+9BEEP S,20,10:RY=-RY:RX=-RX:Y=OY+RY:X=OX+RX:GOTO 250
240 GOTO 410
250 IF Y=-2BEEP S,20,10:RY=-RY:Y=OY+RY
260 IF POINT (X,Y)=0THEN 310
270 BEEP S,10,10
280 SC=SC+5:CURSOR 6,0:PRINT SC
290 LINE (X-RX,Y)-(X-RX+2,Y+1),R,,B
300 Y=Y-2*RY:RY=-RY
310 GOSUB 360
320 LINE (OX,OY)-(OX+2,OY+1),R,,B
330 LINE (X,Y)-(X+2,Y+1),,,B
340 OX=X:OY=Y
350 GOTO 190
360 A$=INKEY$ :A=ASC A$
370 BX=BX+6*(A=13)*(BX<136)-6*(A=32)*(BX>73)
380 LINE (OBX,30)-(OBX+8,30),R:LINE (BX,30)-(BX+8,30)
390 OBX=BX
400 RETURN
410 LINE (OX,OY)-(OX+2,OY+1),R,,B
420 LINE (X,Y)-(X+2,Y+1),,,B
430 LV=LV-1
440 GCURSOR 2,12:GPRINT VI$(LV);"00000000000000"
450 FOR P=1TO 255STEP 3:BEEP S,P,2:NEXT P
460 LINE (X,Y)-(X+2,Y+1),R,,B
470 LINE (BX,30)-(BX+8,30),R
480 IF LV>0FOR P=1TO 1000:NEXT P:GOTO 160
490 LINE (0,0)-(155,30),X,,BF
500 A$=INKEY$
510 CURSOR 0,0:PRINT "     B R E A K O U T             "
520 A$=INKEY$
530 FOR I=1TO 200:NEXT I
540 A$=INPUT $(1)
550 GOTO 30
CANON X07
le WAV

HP48G

Code : Tout sélectionner

« ERASE
{ # 0h # 0h} PVIEW
{ # 31h # 0h } { # 31h # 1Eh } LINE
{ # 7Dh # 0h } { # 7Dh # 1Eh } LINE
{ # 32h # 0h } { # 7Ch # 1h } BOX
{ # 32h # 2h } { # 7Ch # 3h } BOX
# 0h # 56h Ah DUP # 0h 2 -3 109 R>B 1 -> 
sc bx obx y oy ox ry rx x cas
  « { # 32h # 1Eh } { 3 7Ch LINE
DO
	x B>R rx + R>B 'x' STO
	y B>R ry + R>B 'y' STO
	IF x BR 50 < x B>R 124 > OR THEN
		800 .05 BEEP
		rx NEG 'rx' STO
		x B>R 2 rx * + R>B 'x' STO
      	END
      	CASE	'cas==2' THEN
			300 .05 BEEP
			ry NEG 'ry' STO
			oy B>R ry + R>B 'y' STO
        	END
		'cas==3' THEN
			300 .05 BEEP
			ry NEG 'ry' STO
			rx NEG 'rx' STO
			oy B>R ry + R>B 'y' STO
			ox B>R rx + R>B 'x' STO
        	END
	END
	IF y BR -2 == THEN
		300 .1 BEEP
		ry NEG 'ry' STO
		oy B>R ry + R>B 'y' STO
	END
	IF x y 2 LIST PIX? THEN
		300 .1 BEEP
		sc 5 + 'sc' STO
		x y 2 LIST
		x 2 + y 2 LIST
		x y 1 + 2 LIST
		x 2 + y 1 + 2 LIST
		TLINE TLINE
		y ry - 'y' STO
		ry NEG 'ry' STO
	END
	ox oy 2 LIST
	ox 2 + oy 2 LIST
	ox oy 1 + 2 LIST
	ox 2 + oy 1 + 2 LIST
	x y 2 LIST
	x 2 + y 1 + 2 LIST
	BOX TLINE TLINE
	x 'ox' STO
	y 'oy' STO
	0 'cas' STO
      	CASE	y B>R 30 < THEN
			1 'cas' STO
        	END
		bx ox <= ox bx 9 + < AND THEN
			2 'cas' STO
        	END
		ox rx + bx == x rx - bx 9 + == OR THEN
			3 'cas' STO
        	END
	END
UNTIL 'cas==0'
END
  »
»

Avatar de l’utilisateur
pir2
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4594
Inscription : 31 oct. 2006 16:08
Localisation : 67310 Westhoffen
Contact :

Message par pir2 » 17 août 2008 18:45

Merci pour ces programmes ;) ,
j'ai toujours le courage de les commencer :) , jamais de les terminer :?
Image
Image

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 août 2008 19:17

j'en adapterais d'autre la bibliothèque pour le E500 est copieuse et après chargement du listing dans le 1600 reste plus qu'a faire l'adaptation, pour le canon c'est plus long et quelques limitations,
- la gestion du clavier (INKEY$)
- la gestion des graphismes par les font$ (qui à pondu l acréation d'un caractère par ligne plutot que par colonne comme le GPRINT du SHARP ???!!!, bilan 8 octets au lieu de 6 ... connerie)
- graphisme plaçable uniquement sur une matrice de texte et pas au pixel près.
- l'éditeur du canon !!!! une horreur


en bonus : pour le CANON X07
la commande DIR n'affichera que les 6 derniers fichiers de la carte mémoire !!!, heureusement voici le BONUS de Charo

Code : Tout sélectionner

10 ON ERROR GOTO 70: INIT #1,"CAT",200,"D":DIR#1: A=2: INPUT#1,A$:CONSOLE 0,4,0,0,0
20 INPUT#1,A$:PRINT A$,"    [Espace]
30 INPUT#1,A$:IF A MOD 4=0 THEN PRINT A$; ELSE PRINT A$: GOTO 60
40 IF STRIG(0)=0 THEN 40
50 PRINT
60 A=A+1:GOTO 30
70 DELETE "CAT"
80 END
perso je me suis mis en fichier sur carte mémoire l'affectation des touches suivantes :

Code : Tout sélectionner

10 KEY$(1)="dirRUN"+CHR$(34)+"DIR"+CHR$(34)+CHR$(13)
20 KEY$(2)="lodLOAD"+CHR$(34)
30 KEY$(3)="savSAVE"+CHR$(34)
40 KEY$(4)="delDELETE"+CHR$(34)
50 KEY$(5)="mem?FRE(0)"+CHR$(13)
60 KEY$(6)="rclCONSOLE 0,4,0,0,0"+CHR$(13)
70 KEY$(7)="Pi#PI#=3.141596535897"
80 KEY$(8)="cldCLOAD"+CHR$(34)
90 KEY$(9)="csvCSAVE"+CHR$(34)
100 KEY$(10)="slpSLEEP"+CHR$(13)
110 KEY$(11)="cntCONT"+CHR$(13)
120 KEY$(12)="rclCONSOLE,,1"+CHR$(13)
sauvegardé sur carte mémoire on peut retrouver rapidement la configuration des touches la touche 6 et 12 et la touche du milieu du curseur je lui ai affecté l'équivalent de la touche RCL du SHARP PC 1500/1600
Dernière édition par charognard le 18 août 2008 11:02, édité 1 fois.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 août 2008 19:42

Adaptation en court !!! un jeu du canon X07

distribué par logi'stick la programmation basic n'est pas très évoluée et est même à la limite foutage de gueule pour un jeu du commerce (60% du code est pour la présentation !!!) je vais améliorer la chose sur 1600 si ça interesse du monde ?

le listing du canon (j'ai le WAV à dispo)

Code : Tout sélectionner

1 CLEAR:CONSOLE0,4,0,1,0  :CLS:CONSOLEà1,1,0:CONSOLE2,1:CLEAR70
2 ONERRORGOTO3000
3 FONT$(128)="0,0,0,32,112,32,168,248":FONT$(129)="0,112,32,168,112,32,112,32"
4 FONT$(130)="136,248,168,32,32,32,112,32"
5 FONT$(131)="0,112,168,248,168,32,32,80"
6 FONT$(132)="80,32,168,248,168,80,32,0":FONT$(133)="136,80,32,32,248,168,32,32"
7 FONT$(134)="136,136,248,168,32,112,32,0"
8 FONT$(135)="248,32,112,32,32,80,136,0"
10 FONT$(144)="0,48,112,240,112,48,0,0":FONT$(145)="0,192,224,240,224,192,0,0"
11 FONT$(150)="0,24,48,224,48,24,0,0"
20 FORJ=1TO20:B$=B$+MID$(CHR$(150)+"LOGI'STICK PRESENTE",J,1):LOCATE20-J,1
21 PRINTB$:BEEP9,4:FORI=1TO50:NEXTI:NEXTJ
30 LOCATE0,1:PRINT" ":BEEP99,6:LINE(2,6)-(68,6):LINE-(68,17):LINE-(2,17)
31 LINE-(2,6):FORJ=1TO100STEP10:BEEPJ,4:NEXTJ
50 FORJ=0TO19:LOCATEJ,3:PRINTCHR$(128):IFJ>0THENLOCATEJ-1,3:PRINT" "
51 FORI=26TO10STEP-2:PSET (J*6+2,I):BEEP30,1:IFI<26THENPRESET(J*6+2,I+2)
52 NEXTI:BEEP500,3:LOCATEJ,1:PRINT" ":NEXTJ
60 S=0:Y=0:C=10:Z=0:CONSOLE0,4
70 CLS:LINE(21,6)-(97,6):LINE-(97,17):LINE-(21,17):LINE-(21,6):BEEP5,10
75 FORJ=0TO119STEP8.5:LINE(J,0)-(60,6):LINE(J,31)-(60,17):BEEP10,2:NEXTJ
77 BEEP20,9:FORJ=0TO31STEP3:LINE(0,J)-(21,11):LINE(119,J)-(97,11):BEEP50,2
85 NEXTJ:BEEP20,9:FORI=1TO3:LOCATE4,1:PRINT"STAR BLASTER"
87 FORJ=1TO100STEP10:BEEPJ,2:NEXTJ:LOCATE4,1:PRINTSTRING$(12," ")
88 FORJ=1TO99:NEXTJ:NEXTI:FORJ=100TO500STEP50:BEEPJ,5:NEXTJ:CLS
91 PRINT" (SPACE) POUR TIRER   (";CHR$(144);") MVT A GAUCHE":LOCATE2,2
92 PRINT"(";CHR$(145);") MVT A DROITE":GOSUB900:GOTO105
95 GOSUB1800:IFR<=0THENN=N-U:IFN<=0THENS=S+K*1E3:GOTO2400ELSE100
96 GOSUB1900:ONKGOTO120,220,320,420,520,620,720
97 K=K+1:GOSUB1500:GOSUB1660:RETURN
98 U=R:IFN-R<0THENR=N:U=N
99 RETURN
100 ONKGOTO110,210,310,410,510,610,710
105 K=0:N=INT(RND(1)*5+20):GOSUB97:T=2:P=1
110 R=INT(RND(1)*4+2):GOSUB98
111 GOTO95
120 O=RND(1):IFO>.5THEN130
123 FORI=0TO19:FORJ=0TO1:IFSCREEN(I,J)=128+KTHEN125ELSENEXTJ,I:GOTO95
125 FORW=(J+1)*8TO28STEP4:G=I:KH=1:GOTO960
126 NEXTW:G=I:GOSUB910:GOTO95
130 G=0:FORI=0TO19:FORJ=0TO1:IFSCREEN(I,J)=128+KTHEN132
131 NEXTJ,I:GOTO123
132 G=G+1:A(G)=I:IFG<2THEN131
137 FORW=16TO28STEP4:FORI=1TO2:J=1:G=A(I):KH=2: GOTO960
140 NEXTI,W
143 G=A(1):GOSUB910:G=A(2):GOSUB910:GOTO95
200 N=INT(RND(1)*8+19):GOSUB97
210 R=INT(RND(1)*3+3):GOSUB98
211 GOTO95
220 O=RND(1):IFO<.5THEN123
230 G=0:FORI=0TO19:FORJ=0TO1:IFSCREEN(I,J)=128+KTHEN232
231 GOTO131
232 G=G+1:A(G)=I:IFG<3THEN131
237 FORW=16TO28STEP4:FORI=1TO3:KH=3:G=A(I):J=1:GOTO960
245 NEXTI,W: FORI=1TO3:G=A(I):GOSUB910  :NEXTI:GOTO95
300 N=INT(RND(1)*8+20):GOSUB97:T=0:P=1
310 M=1:R=INT(RND(1)*3+3):GOSUB98
311 GOTO95
320  O=RND(1):IFO<.3THEN123
321 IFO<.5THEN230
322 FORJ=1TO5:O=INT(RND(1)*20):FORI=1TO2:IFSCREEN(O,I)<>128+KTHENNEXTI,J:GOTO320
323 FORX=ITO3:BEEP20,1:LOCATEO,X:PRINTCHR$(128+K):LOCATEO,X-1:IFX>ITHENPRINT" "
325 GOSUB1600:NEXTX:G=O:GOSUB910:GOTO95
400 N=INT(RND(1)*10+15):GOSUB97
410 M=1: R=INT(RND(1)*5+3):GOSUB98
411 GOTO95
420 O=RND(1):IFO<.2THEN123
421 IFO<.5THEN230
422 Z=INT(RND(1)*3)+1:G=0:FORJ=0TO19:FORI=1TO2
423 IFSCREEN(J,I)=128+KTHENG=G+1:A(G)=J:B(G)=I:IFG<2THENNEXTI,J:GOTO123
425 L=B(2):IFB(1)<B(2)THENL=B(1)
430 FORX=LTO3:FORI=1TO2:LOCATEA(I),X:PRINTCHR$(128+K):IFX>LTHENLOCATEA(I),X-1:PRINT" "
435 BEEP20,1:GOSUB1600:NEXTI,X:GOTO143
500 N=INT(RND(1)*10+20):GOSUB97:T=2:P=1
510 R=INT(RND(1)*4+4):GOSUB98
512 GOTO95
520  IFR=1THEN322
522 IFR<4THEN422
525 Z=INT(RND(1)*3+2):G=0:FORI=0TO19:FORJ=0TO1:IFSCREEN(I,J)=128+KTHEN527
526 NEXTJ,I:GOTO422
527 G=G+1:A(G)=I:IFG<4THEN526
535 FORX=16TO28STEP4:FORJ=1TO4:F=A(J)*6:H=A(J)*6+4
540 PSET(F,X):PSET(H,X):IFX>16THENPRESET(F,X-4):PRESET(H,X-4)
547 BEEP89,1:GOSUB1600:NEXTJ,X:FORI=1TO4:G=A(I):GOSUB910:NEXTI:GOTO95
600 N=INT(RND(1)*6+5):GOSUB97
610 R=INT(RND(1)*6+10):N=N-1:IFN<0THENS=S+5E3:GOTO2400
620 T$="":G=0:FORI=1TO20:IFRND(1)<.5THENG=G+1:IFG<=20-RTHENT$=T$+" ":GOTO630
625 T$=T$+CHR$(134)
630 NEXTI:BEEP10,5:FORJ=0TO2:GOSUB680:LOCATE0,J:PRINTT$
632 FORW=1TO5:LOCATEINT(RND(1)*20),J:PRINTCHR$(134):NEXTW
635 H=0:Z=INT(RND(1)*3+3)
636 G=INT(RND(1)*20):IFSCREEN(G,J)=32THEN636
637 H=H+1:A(H)=G:IFH<3THEN636
638 FORW=(J+1)*8TO28STEP4:FORX=1TO3:G=A(X):KH=4:GOTO960
643 NEXTX,W:FORX=1TO3: LOCATEA(X),3:IFSCREEN(A(X),3)=128THENGOSUB2500:GOTO610
644 PRINT" ":NEXTX:BEEP9,9:NEXTJ:LOCATE0,2:GOSUB680:LOCATE0,3:PRINTT$
645 IFSCREEN(C,3)=32THENGOSUB1660
646 FORX=0TO19:IFSCREEN(X,3)=128 THEN650
647 NEXTX:GOSUB2500:GOTO610
650 BEEP90,5:LOCATE0,3:PRINTSTRING$(20," "):GOSUB1660:GOTO610
680 IFJ>0THENLOCATE0,J-1:PRINTSTRING$(20," ")
683 CONSOLE0,1:IFJ=0THENCONSOLE2,1
690 RETURN
700 N=INT(RND(1)*5+12):GOSUB97:T=0:P=1
710 R=INT(RND(1)*2+3):GOSUB98:M=1
711 GOTO95
720 G=0:FORI=0TO19:FORQ=1TO2
721 IFSCREEN(I,Q)=135THENG=G+1:A(G)=Q:B(G)=I:IFG=>RTHEN731
730 NEXTQ,I:GOTO750
731 IFR>1THEN Z=INT(RND(1)*2+2)
732 IFRND(1)<.5THEN750
735 X=INT(RND(1)*R+1):FORW=A(X)+1TO3:LOCATEB(X),W-1:IFW>A(X)+1THENPRINT" "
736 LOCATEB(X),W:PRINT"à":BEEP5,1:GOSUB1600:NEXTW:G=B(X):GOSUB910:GOTO95
750 F=0:X=INT(RND(1)*R+1):FORW=(A(X)+1)*8TO28STEP4
755 PSET(B(X)*6,W):PSET(B(X)*6+4,W):H=B(X)*6-F:L=B(X)*6+4+F
760 IFH>=0THENPSET(H,W)
761 IFL<119THENPSET(L,W)
765 BEEP1,1:IFW>(A(X)+1)*8THEN PRESET(B(X)*6,W-4):PRESET(B(X)*6+4,W-4)
770 F=F+6:GOSUB1600:BEEP20,5:NEXTW:BEEP20,10
775 G=B(X):GOSUB910:IFL<119THENG=B(X)+INT(F/6):IFG<20THENGOSUB910
777 IFH>=0THENG=B(X)-INT(F/6):IFG>=0THENGOSUB910
780 GOTO95
900 FORQ=1TO4096:BEEPQ,1:IFINKEY$=CHR$(13)THENRETURNELSENEXTQ:GOTO900
910 IFSCREEN(G,3)=128THENGOSUB2500
920 RETURN
950 IFKI=1THEN105ELSE60
960 PSET(G*6+2,W):IFW>(J+1)*8THENPRESET(G*6+2,W-4)
970 BEEP90,1:GOSUB1600:ONKHGOTO126,140,245,643
980 GOTO95
1500 CONSOLE0,4:CLS:FORJ=1E3TO900STEP-10:BEEPJ,2:NEXTJ:CIRCLE(17,15),12:M=0
1505 M$="KRALESSKULLSZARITSORIONSKAREESCAPELSKRONES":M$=MID$(M$,6*K-5,6)
1510 LOCATE6,0:PRINT"ARMEE :";M$:LOCATE6,2:PRINT"NOMBRE :";N:FORJ=1TO4
1520 FORI=1TON:PSET(INT(RND(1)*12+12),INT(RND(1)*16+8)):NEXTI
1525 BEEP200,10:LOCATE2,1:PRINT"  ":LOCATE2,2:PRINT"  ":FORI=1TO99:NEXTI
1530 NEXTJ:FORJ=1TO100STEP10:BEEPJ,2:NEXTJ:CLS:CONSOLE2,1:J=RND(0):RETURN
1600 E=C:IFSTICK(3)=3THENC=C+1:IFC>19THENC=19
1610 IFSTICK(7)=7THENC=C-1:IFC<0THENC=0
1620 GOSUB1660:IFSTRIG(0)<>-1THENRETURN
1630 FORD=26TO0STEP-2:KL=C*6+2:PSET(KL,D):IFD<26THENPRESET(KL,D+2)
1635 BEEP30,1:IFPOINT(KL,ABS(D-1))<>-1THENNEXTD:RETURN
1645 Z=Z-1:IFZ>0THENRETURN
1650 IFPOINT(KL,ABS( D-2))=-1THEN1850ELSERETURN
1660 LOCATEE,3:PRINT" ":LOCATEC,3:PRINTCHR$(128):RETURN
1700 ONK-5GOTO632,95
1800 CONSOLE0,4:CLS:CONSOLET,P:GOSUB1660:RETURN
1850 R=R-1:LOCATEC,INT((D-1)/8):BEEP1E3,4:PRINT" ":S=S+100*K:RETURN
1900 FORQ=1TOR:LOCATEINT(RND(1)*20),INT(RND(1)*2)+M:BEEP10,2:PRINTCHR$(128+K)
1910 NEXTQ:RETURN
1920 GOTO95
2400 CONSOLE0,4:CLS:PRINT"ENNEMIS DETRUITS !!!********************SCORE =";
2450 PRINTS;"PTS":FORJ=1TO50STEP5:BEEPJ,12:NEXTJ:IFK>6THENKI=1:Y=0:GOTO2550
2460 ONKGOTO200,300,400,500,600,700
2500 CONSOLE0,4:CLS:FORQ=1TO60STEP5:CIRCLE(60,16),Q:BEEP2E3+(Q*10),5:NEXTQ
2510 Y=Y+1:LOCATE2,0:PRINT"IL VOUS RESTE...":M$="VAISSEAUX"
2515 IFY>1THENM$="VAISSEAU"
2516 LOCATE5,2:PRINT3-Y;M$:FORQ=1TO48:BEEPQ,2:NEXTQ
2517 IFY<3THENCLS:CONSOLE2,1:RETURN
2518 LOCATE0,0:PRINT"**** FIN DU JEU ****":KI=0
2520 FORQ=2E3TO3E3STEP50:BEEPQ,5:NEXTQ :IFS>VTHENV=S
2530 CLS:FORQ=0TO2:LOCATE1,Q:PRINTCHR$(128):BEEP10,5:LOCATE18,Q:PRINTCHR$(128)
2535 BEEP9,5:NEXTQ:LOCATE3,0:PRINT"SCORE =";S:LOCATE3,2:PRINT"RECORD=";V:GOSUB900
2550 CLS:PRINT"NOUVEAUX COMBATS...":LOCATE2,2:PRINT"(O)UI OU (N)ON ?":BEEP90,10
2560 H$=INKEY$:IFH$="O"THEN950
2565 IFH$<>"N"THEN2560
2567 IFKI=1THENCLS:GOTO2518
2570 CLS:FORJ=1TO12:LOCATEJ+3,1:PRINTMID$("A BIENTOT...",J,1):BEEP100,5:NEXTJ
2580 LINE(22,17)-(94,17):FORI=1TO100STEP2:BEEPI,2:NEXTI:CLS
2590 CONSOLE0,4,0,1,1:END
3000 RESUME NEXT
le début de l'adaptation sur le sharp 1600 (plus rapide que le canon!!, une bonne gestion de l'écran)

Code : Tout sélectionner

    1 CLS :DIM FO$(15)*10
    2 "ON ERROR GOTO 3000
    3 FO$(0)="60447E4460",FO$(1)="04297F2904",FO$(2)="07227E2207",FO$(3)="0E453F450E"
    4 FO$(4)="1C295E291C",FO$(5)="3112FC1231",FO$(6)="0F247C240F",FO$(7)="81453F4581"
    5 FO$(8)="08081C3622"
   20 FOR J=1TO 25:GCURSOR 158-J*8,8:GPRINT FO$(8):CURSOR 26-J,1:PRINT LEFT$ ("LOGI'STICK PRESENTE... ",J)
   21 BEEP 1,3:NEXT J
   30 BEEP 1,20:LINE (2,6)-(68,16),,,B
   31 FOR J=1TO 100STEP 10:BEEP 1,J,5:NEXT J
   50 FOR J=1TO 10:GCURSOR J*6,25:GPRINT FO$(0):IF J>1THEN CURSOR J-1,3:PRINT " ";
   51 FOR I=26TO 11STEP -2:PSET (J*6+2,I):BEEP 1,20,5
   52 IF I<24AND I<>14THEN PRESET (J*6+2,I+2)
   53 NEXT I:BEEP 1,50,5:CURSOR J,1:PRINT " ";:NEXT J
   60 S=0,Y=0,C=10,Z=0
   70 CLS :LINE (39,6)-(115,17),,,B
   75 FOR J=0TO 156STEP 8.5:LINE (J,0)-(78,6):LINE (J,31)-(78,17):BEEP 1,10,2:NEXT J
   77 BEEP 1,30:FOR J=0TO 31STEP 3:LINE (0,J)-(39,11):LINE (156,J)-(115,11):BEEP 1,10,2
   85 NEXT J:BEEP 1,20,9:FOR I=1TO 3:CURSOR 7,1:PRINT "STAR BLASTER"
   87 FOR J=1TO 100STEP 10:BEEP 1,J,15:NEXT J:CURSOR 7,1:PRINT "            "
   88 FOR J=1TO 200:NEXT J:NEXT I:FOR J=100TO 250STEP 15:BEEP 1,J,5:NEXT J
   89 CURSOR 7,1:PRINT "STAR BLASTER":LINE (40,7)-(114,16),X,,BF:FOR J=0TO 800:NEXT J:CLS
   91 PRINT :PRINT " [SPACE] Pour tirer":PRINT " [4] Mvt a gauche":PRINT " [6] Mvt a droite"
   92 LINE (6,7)-(46,15),X,,BF
   93 IF INKEY$ =""THEN 93
   94 GOTO 105
   95 GOSUB 1800:IF R<=0THEN N=N-U:IF N<=0THEN S=S+K*1E3:GOTO 2400ELSE 100
   96 GOSUB 1900:ON KGOTO 120,220,320,420,520,620,720
   97 K=K+1:GOSUB 1500:GOSUB 1660:RETURN
   98 U=R:IF N-R<0THEN R=N:U=N
   99 RETURN
  100 ON KGOTO 110,210,310,410,510,610,710
  105 K=0:N=RND (5)+20):GOSUB 97:T=2:P=1
  110 R=RND 4+2:GOSUB 98
  111 GOTO 95
  120 IF RND 2=2THEN 130
 2999 END
 3000 RESUME NEXT
le début de l'adaptation sur le sharp 1360 (que c'est lent !!)

Code : Tout sélectionner

  1:CLS : DIM FO$(9)*10: WAIT 0
  2:"ONERROR GOTO3000
  3:FO$(0)="60447E4460",FO$(1)="04297F2904",FO$(2)="07227E2207",FO$(3)="0E453F450E
  4:FO$(4)="1C295E291C",FO$(5)="3112FC1231",FO$(6)="0F247C240F",FO$(7)="81453F4581
  5:FO$(8)="08081C3622",FO$(9)="0000000000
 20:FOR J=1 TO 24: GCURSOR (158-J*8,16): GPRINT FO$(8)
 21:CURSOR 24-J,1: PRINT LEFT$ ("LOGI"+CHR$ (39)+"STICK PRESENTE... ",J):BEEP 1,3,1: NEXT J
 22:GCURSOR (0,15): GPRINT FO$(9)
 30:BEEP 1,20,2: LINE (2,6)-(68,16),B
 31:FOR J=1 TO 100 STEP 10: BEEP 1,J,5:NEXT J
 50:FOR J=1 TO 10: GCURSOR (J*6,32):GPRINT FO$(0): IF J>1 THEN GCURSOR ((J-1)*6,32): GPRINT FO$(9);
 51:FOR I=26 TO 11 STEP -2: PSET (J*6+2,I): BEEP 1,20,5
 52:IF I<24 AND I<>14 THEN PRESET (J*6+2,I+2)
 53:NEXT I: BEEP 1,50,5: GCURSOR (J*6,15): GPRINT FO$(9): NEXT J
Dernière édition par charognard le 17 août 2008 22:35, édité 1 fois.

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 août 2008 19:50

Autre gros défaut du canon les mots clef n'étant pas suivit d'espace automatique en mettre un consome 1 octet et pas bien pour la taille du programme donc on en met pas et la lisibilité du code s'en rescent !!

Certaines lignes de programme de 80 caractères ne seront plus rééditable dommage il faut la refrapper.

les variables int sont géniale pour l'optimisation du code !! dommage n'existe pas sur sharp.

Le beep du canon n'arrete pas le programme bien

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 17 août 2008 20:01

en bonus de fin de journée

un moniteur pour sharp PC 1600 (Les sharpentiers)

Code : Tout sélectionner

    1 DIM A$(0)*40
    5 D=&C000
   10 DATA "444D030AFE232010030AD630F5070707"
   20 DATA "0757F107B2D331030AFE0D20FA210000
   30 DATA "1E040B0AFE3B282BD630FE0A3802D607
   35 DATA "1D280B1D28121D28146F1E0118E40707
   40 DATA "0707B56F1E0218DA671E0318D5070707
   50 DATA "07B467CD090101B7FB3E0D1E0802031D
   60 DATA "20FBCD1201110000CD15011E043E0BF5
   70 DATA "7C181D7D181A3E20CD00010E0006087E
   80 DATA "F5814FF1180A230520F53E3ACD000179
   90 DATA "F5070707071601F6F027C6A0CE40CD00
   91 DATA "01152003F118F0F13DF52003F1180AFE
   92 DATA "0A28C0FE0928BF18CD7BFE042011CD18
   93 DATA "0116001C7BFE04209F01E0FF09180A3D
   94 DATA "28393D286918711894110005CD15013E
   95 DATA "02CD1E01CD6601FE0A202ACD18017AF5
   96 DATA "1C010800097BFE042804F15718DECD2D
  100 DATA "01110300CD15011E0118CC01F8FF091E
  110 DATA "03F15718C7FE0E2001C9FE0B2030CD18
  120 DATA "017AF51D01F8FF097BFEFF2804F15718
  130 DATA "E2CD3001110000CD15011E02189901F8
  140 DATA "FF091E00F15718CB187F188B1896FE0C
  150 DATA "200ECD1801147AFE1520D43E05F51890
  160 DATA "FE08200ECD1801157AFE0420C23E14F5
  170 DATA "18B1060AFE2F282C04FE2A282704FE2D
  180 DATA "282204FE2B281D04FE3D281804FE2E28
  190 DATA "13D63038B7FE0A380AFE1138AFD607FE
  191 DATA "1030A947CD1801E5D57AD605F5CB3F16
  192 DATA "005F19F1CB4728187EE6F0B077D1E1D5
  193 DATA "1600CD15011E03188101F8FF09D11885
  194 DATA "7807070707477EE60F18E0
  200 FOR A=0TO 29
  210 READ A$(0)
  220 GCURSOR 0,0
  225 CLS :WAIT 0
  230 GPRINT A$(0)
  235 GCURSOR 0,0
  237 CURSOR 1,1
  240 FOR C=0TO LEN A$(0)/2-1
  250 POKE D,POINT (C)
  255 D=D+1
  260 NEXT C
  270 NEXT A
notez l'utilisation originale de GPRINT et POINT !!!, pas mal

et un petit programme à mettre en S2: pour le parametrage du port RS232 (LLIST...)

Code : Tout sélectionner

   10 INIT "COM1:",4096
   20 SETCOM "COM1:",9600,8,N,1,X,N
   30 PCONSOLE "COM1:",255,2
   40 SETDEV "COM1:",PO
   50 KBUFF$ =CHR$ 30+"NEW"+CHR$ 13+CHR$ 30+"PRINT COM$"+CHR$ (34)+"COM1:"+CHR$ (13)
je voulais faire une caltoche RPN ... pas fini

Code : Tout sélectionner

   10 CLS
   20 DIM P$(9)*80,C$(50)
   30 POKE &D000,&CD,&66,&01,&01,&00,&D5,&02,&C9
   40 FOR A=0TO 12
   50 READ C$(A)
   60 NEXT A
   70 CALL &D000
   80 CURSOR 1,1:PRINT PEEK &D500
   90 P$=CHR$ (PEEK &D500)
  100 GOSUB 9000
  105 GCURSOR 156-(LEN P$(0)+LEN P$(5))/2,20
  110 GPRINT P$(0);P$(5)
  120 GOTO 70
 9000 REM  AJOUT CARACTERE
 9010 ON ERROR GOTO "ERREUR"
 9020 B=0:ER=9030
 9030 P$(B)=P$(B)+C$(PEEK &D500-46)
 9040 RETURN
 9100 REM  CALCUL LIGNE
 9110 ON ERROR GOTO "ERREUR"
 9120 B=0:ER=9140
 9130 FOR A=1TO LEN P$
 9140 P$(B)=P$(B)+C$(ASC (MID$ (P$,A,1))-46)
 9150 NEXT A
 9160 RETURN
 9900 DATA "8000","","7088887000","10F800","88C8A89000","88A8A85000","6050C84000"
 9910 DATA "B8A8A84800","70A8A84000","08C8380800","50A8A85000","10A8A87000","F8F8A8A800"
 9990 "ERREUR":B=5
 9995 RESUME ER
et une traduction decimal/hexa en utilisant les logs (juste pour le fun) une instruction basic sur le 1600 existe déjà mais j'avais un peu de temps libre

Code : Tout sélectionner

   10 B=255
   20 FOR A=1TO 100
   30 H=BAND 240
   40 R=0
   50 GOSUB 110
   60 L=BAND 15
   70 C$=CHR$ (48+H+7*(H>9))+CHR$ (48+L+7*(L>9))
   80 PRINT C$;" ";
   90 NEXT A
  100 END
  110 D=0:IF HLET D=LN H/LN 2
  120 IF INT D=DLET H=INT R+2^(INT D-4):RETURN
  130 R=R+2^(INT D-4)
  140 E=2^INT D:H=H-E
  150 GOSUB 110
  160 RETURN
dans mon programme de conversion GPRINT --> FONT$
mise en évidence de la fonction ^ boguée du Sharp PC1600/1500 et autre (je crois que la serie 1245/51/60/61/62 avait le même problème à confirmer)

Code : Tout sélectionner

 8000 CLS :CLEAR :DIM L(7) 
 8005 GCURSOR 0,0 
 8010 GPRINT "00C0300E113E7F7F7F3F3F3F1C031C20C000"; 
 8015 FOR A=0TO 3:FOR B=0TO 5:CURSOR 0,2 
 8020 CO=POINT (6*A+B) 
 8025 FOR C=0TO 7 
 8030 L(C)=L(C)+(((COAND (INT (2^C+.001)))=INT (2^C+.001))*2)^(7-B) 
 8035 PRINT L(C);:NEXT C 
 8040 NEXT B:FOR C=0TO 7:L(C)=0:NEXT C:PAUSE "FIN      " 
 8050 IF INKEY$ =""THEN 8050 
 8060 NEXT A
INT (2^C+.001) permet de compenser l'erreur !!, il aurait pu résoudre le bug datant du PC 1500 quand même !!

fin pour aujourd'hui

Répondre

Revenir vers « Tous les Pockets »