Page 1 sur 5

[Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 18:51
par Daniel
Nouveau sujet créé pour poursuivre cette discussion : http://forum.system-cfg.com/viewtopic.p ... &start=174
silversword31 a écrit :merci pour la réponse :D Je commençais justement à regarder comment passer des K7 vers les disquettes.
Je ne suis malheureusement pas un très grand connaisseur du monde Thomson mais je pense que je vais m'y mettre.
Pour ce qui est du boot.sd, j'ai bien tout qui fonctionne. c'est seulement la rareté des images sd qui m'a interpellé :mrgreen:
J'ai donc une toute première question (après je vais sans doute créer un post spécifique): J'ai compris pour les soft basic en 1 seul morceau, on peut les charger en memoire et deprotèger le programme avec l'emulateur. Il reste donc à sauvegarder le programme basic sur une image fd a l'aide d'un save (en utilisant un basic128 dans l'emul). c'est bon ? par contre quelle est la commande du save pour sauver sur disquette et non sur K7?
Pour créer une disquette TO7/70 dans dcmoto, commencer par sélectionner le contrôleur CD90-351 dans les options. Il vaut mieux ne pas partir d'une disquette vierge, mais de la disquette DOS 3"1/2 pour TO. Avec cette disquette bootable on peut se passer du Basic 128, elle sera donc utilisable sur les machines qui en sont dépourvues. Quand on lance le Basic 1.0 avec cette disquette dans le lecteur, le DOS est chargé en mémoire et on obtient cet écran :

Image

Pour charger un programme TOTO.BAS sur cassette et l'enregistrer sur disquette, il faut utiliser les commandes suivantes :

Code : Tout sélectionner

LOAD"CASS:TOTO
SAVE"TOTO
Le "TOTO" du load peut être omis si c'est le premier programme de la cassette.
Si le programme est protégé il faut le déprotéger après chargement avant de le sauver sur disquette (Outils / Mise au point... décocher la case de protection).

Ensuite, pour charger le programme à partir de la disquette, c'est LOAD"TOTO". Avec les disquettes le nom du programme est obligatoire.

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 19:53
par Daniel
STRATAC converti en disquette et carte SD pour TO7/70
http://dcmoto.free.fr/programmes/stratac/index.html

Image Image

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 20:35
par Daniel
petitjd a écrit :@Daniel: méfie toi des lignes tronquées à plus de 256 caractères, j'en ai compté 4 dans STRAT2.BAS: la 3, la 30, la 37 et la 58.
Je n'ai pas encore regardé STRAT4.BAS.

[EDIT] Dans STRAT4.BAS il y a les lignes 2 et 86 qui font plus de 256 caractères.
Oui, le record est 596 caractères à la ligne 37 de STRAT2.BAS :roll:
Et il y a un autre système de protection, que je n'avais encore jamais vu, avec le fichier STRAT3.DAT 8)

Code : Tout sélectionner

    0 Z$="STRATAC-PROG 1-06/10/1983-VERSION DEFINITIVE":A$="H.DIGUET"
    1 GOSUB27:CLEAR10,M!-1:DEFINTA-Z:GOTO30
    2 IFL=1THENC(C)=65:Q=C
    3 I=1:GOSUB29:GOSUB4:FORI=-8TO7:LINE(X,Y+16)-(X+I,Y+7),K:NEXT:BOXF(X-8,Y+4)-(X+7,Y+7),K:BOXF(X-8,Y+11)-(X+7,Y+16),J:LINE(X-6,Y+5)-(X-3,Y+5),-5:LINE(X+3,Y+5)-(X+5,Y+5),-5:LINE(X-2,Y+9)-(X+2,Y+9),-5:LINE(X,Y+6)-(X,Y+8),-5:IFC(C)>0THENPLAY"A0T5L3O4MIDOMI":RETURN:ELSERETURN
    4 GOSUB18:FORI=-8TO7:LINE(X,Y)-(X+I,Y+3),J:NEXT:RETURN
    5 LINE(X-3,Y+11)-(X+3,Y+16),R:LINE(X-3,Y+16)-(X+3,Y+11),R:RETURN
    6 GOSUB7:LINE(X+3,Y+12)-(X+3,Y+16),R:RETURN
    7 GOSUB8:LINE(X-3,Y+12)-(X-3,Y+16),R:RETURN
    8 LINE(X-7,Y+14)-(X+6,Y+14),R:RETURN
    9 GOSUB8:LINE(X+4,Y+12)-(X+6,Y+14),R:LINE-(X+4,Y+16),R:RETURN
   10 GOSUB9:BOXF(X+1,Y+12)-(X+4,Y+16),R:RETURN
   11 LINE(X-7,Y+15)-(X+1,Y+15),R:LINE-(X-4,Y+12),R:LINE-(X+5,Y+12),R:RETURN
   12 LINE(X-7,Y+15)-(X-3,Y+13),R:LINE-(X,Y+13),R:BOXF(X+1,Y+14)-(X+6,Y+12),R:RETURN
   13 BOXF(X-5,Y+15)-(X+4,Y+14),R:BOXF(X-5,Y+13)-(X-4,Y+12),R:BOXF(X-1,Y+13)-(X,Y+12),R:BOXF(X+3,Y+13)-(X+4,Y+12),R:RETURN
   14 IFW<128OR(WAND64)>0THENONLGOTO5,6,7,9,10,11,12,13:ELSERETURN
   15 GOSUB26:INPENX,Y:IFY<0ORY>189ORX<0ORY<0ORX>239THENC=-1:RETURN:ELSEX=X-XMOD24:Y=Y-YMOD19:C=10*Y@19+X@24:X=X+16:Y=Y+2:GOTO19
   16 FORI=0TO30:BEEP:NEXT:RETURN
   17 GOSUB18:IFW=0THENRETURN:ELSEBOXF(X-8,Y)-(X+7,Y+16),-5:PLAY"T5A30O3L24MIMI":I=-1:GOSUB29:C(C)=0:RETURN
   18 IFC>99THENRETURN:ELSEY=19*(C@10)+2:X=24*(CMOD10)+16
   19 W=C(C):IFW>0THENL=WAND15
   20 RETURN
   21 LINE(72,198)-(74,198),0:LINE(8,198)-(13,196):LINE(9,198)-(13,197):BOXF(13,197)-(71,196):LINE(18,198)-(71,198):LINE(18,195)-(67,195):LINE(18,194)-(63,194):LINE(18,193)-(59,193):I=31
   22 LOCATE12,24:PRINTSPC27);:LOCATEI+2,24:PRINTCHR$(94);:I=8*I:LINE(I,199)-(I+19,199):RETURN
   23 FORL=1TO7:GOSUB24:NEXT
   24 R=1:W=88:Y=182:X=W+16*L:GOSUB14:R=-2:RETURN
   25 C=100:X=256:Y=24*L-18:GOTO4
   26 IFNOTPTRIGTHENX=RND(A):IFP=40THENC=Q:R=-3:GOSUB18:GOSUB5:PLAY"T1O5L2DO":R=-2:GOSUB5:PLAY"DO":GOTO26:ELSE26:ELSERETURN
   27 FORM!=65535TO0STEP-8192:I=PEEK(M!)XOR255:POKEM!,I:IFI<>PEEK(M!)THENNEXT:ELSEM!=M!-103:RETURN
   28 PLAY"O3L12SIL6SOSOL12FA#SOSIL6SOSOL12FA#SOSISOSISOSISOMISOSISISIO4REL48SO":RETURN
   29 GOSUB19:IFW=0THENRETURN:ELSEIFW>128THENE(L)=E(L)+I:RETURN:ELSEA(L)=A(L)+I:RETURN
   30 DIMF(8),N(8),A(8),E(8),M(6),C(102):N(1)=1:N(2)=2:N(3)=4:N(4)=6:N(5)=8:N(6)=9:N(7)=6:N(8)=4:F(2)=8:F(3)=6:F(4)=1:F(5)=4:F(6)=2:R=-2:M(0)=-1:M(1)=1:M(2)=8:M(3)=10:M(4)=12:M(5)=19:M(6)=21:CONSOLE0,24,,0:CLS:ATTRB1,1:I=134:J=-1:C=3:SCREEN3,4,4:LOCATE23,7:PRINT"4":LOCATE23,16:PRINT"1":LOCATE26,12,1:PRINT"?";:A$=INKEY$
   31 A$=INKEY$:IFA$<>""THENIFASC(A$)=13ORA$>"0"ANDA$<"5"THENM=VAL(A$):GOTO35
   32 LINE(217-I,I)-(167,I),C:I=I+J:IFC<>-5THENC=4-C
   33 IFI=49THENJ=1:C=-5:ELSEIFI=134THENJ=-1:C=3
   34 IFK=0ANDNOTPTRIGTHEN31
   35 IFM=5ORM=0THENM=1
   36 LOCATE28,12,0:PRINTM:IFPTRIGTHENK=K+1:IFK<9THEN32:ELSEM=M+1:K=1:GOTO32
   37 PLAY"T10P":CLS:SCREEN7,4,0:BOXF(0,0)-(3,200),0:FORI=28TO244STEP24:LINE(I,0)-(I,190),0:NEXT:FORI=19TO190STEP19:LINE(4,I)-(244,I),0:NEXT:J=3:K=5:FORC=0TO39:GOSUB18:GOSUB3:NEXT:C=1:ATTRB0,0:FORI=0TO7:LINE(287-I,I)-(286,I),C:C=4-C:NEXT:LOCATE36,0:PRINT"=";:PRINTUSING"#";M:C=100:X=56:GOSUB61:X=152:GOSUB61:X=256:J=2:FORY=6TO174STEP24:L=L+1:GOSUB3:GOSUB14:I=3*L-1:LOCATE33,I:COLOR0,4:PRINTUSING"#     #";N(L),N(L):GOSUB62:LOCATE39,I-1:COLOR3,4:PRINTUSING"#";N(L):ATTRB0,1:COLOR1,4:LOCATE35,I:IFL=4THENPRINT"1-";:ATTRB,0:PRINT"8":LOCATE37,I-1:PRINT"6":LOCATE38,I:ATTRB,1:ELSEPRINTUSING" #";F(L);
   38 ATTRB0,0:NEXT:PEN0;(244,6)-(267,29),1;(244,30)-(267,53),2;(244,54)-(267,77),3;(244,78)-(267,101),4;(244,102)-(267,125),5;(244,126)-(267,149),6;(244,150)-(267,173),7;(244,174)-(267,195):COLOR7,4:GOSUB21:GOSUB23
   39 IFNOTPTRIGTHENLOCATE31,24:PRINTSPC3):PLAY"T2O1L6DO":LOCATE33,24:PRINTCHR$(94);:LINE(248,199)-(267,199):PLAY"PDO":GOTO39
   40 GOSUB26:ONPENGOTO46,47,48,49,50,51,52,53
   41 GOSUB15:IFC<0THEN40:ELSEIFC<60THENGOSUB16:GOTO40:ELSEIFW=0THEN44:ELSEIFP=40ANDL=1THEN56:ELSEGOSUB17:GOSUB62:P=P-1:IFP=39THENI=31:GOSUB22
   42 GOSUB24
   43 IFPTRIGTHEN43:ELSE40
   44 IFA(A)<>N(A)THENL=A:C(C)=L:GOSUB2:GOSUB14:GOSUB62:P=P+1:IFA(A)=N(A)THENJ=2:GOSUB25:LOCATE10+2*A,24:PRINT"  ";:A=0:N=0:IFP=40THENI=17:GOSUB22:L=1:GOTO42
   45 GOTO40
   46 I=1:GOTO54
   47 I=2:GOTO54
   48 I=3:GOTO54
   49 I=4:GOTO54
   50 I=5:GOTO54
   51 I=6:GOTO54
   52 I=7:GOTO54
   53 I=8
   54 IFA(I)<>N(I)THENN=A:A=I:L=A:J=0:GOSUB25:J=2:IFN>0ANDN<>ATHENL=N:GOSUB25
   55 GOTO43
   56 LOCATE12,24:PRINTSPC27);:C(100)=Q:C=9*RND:Q=C:C(101)=Q:C(102)=Q:K=1:GOSUB64:A=7:B=1:R=2:C=Q+9:IFC>9THENGOSUB63:C(101)=C:C=Q-1:IFC=0THENGOSUB66
   57 C=Q+11:IFC<20THENGOSUB63:C(102)=C:C=Q+1:IFC=9THENGOSUB66
   58 FORI=0TO6:C=M(I)+Q:GOSUB65:NEXT:A=2:B=4:R=3:E(5)=N(5):FORC=30TO39:GOSUB66:NEXT:E(5)=0:FORJ=0TO2:FORI=Q-3TOQ+3:C=10*J+I:GOSUB65:NEXT:NEXT:B=6:FORC=0TO29:GOSUB66:NEXT:C=16:C(42)=C:C(43)=C:C(52)=C:C(53)=C:C(46)=C:C(47)=C:C(56)=C:C(57)=C:I=(M-1)*10:M=0:IFI=0THEN60:ELSEI=I-2*I@10
   59 C=60+39*RND:IFC(C)>6THEN59:ELSEC(C)=C(C)OR64:M=M+1:IFM<ITHEN59
   60 GOSUB27:FORC=0TO102:POKEM!+C,C(C):NEXT:LOAD"STRAT4",R
   61 BOXF(X,91)-(X+39,94),3:BOXF(X,96)-(X+39,99),2:RETURN
   62 LOCATE33,3*L-2:COLOR2,4:PRINTUSING"#";A(L):COLOR7,4:RETURN
   63 K=RND:K=K+K+2
   64 C(C)=K+128:E(K)=E(K)+1:BEEP:RETURN
   65 IFABS((C+10)MOD10-Q)>RTHENRETURN
   66 IFC(C)>0THENRETURN:ELSEK=A+B*RND:IFE(K)=N(K)THEN66:ELSE64

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 20:40
par petitjd
Merci Daniel pour cette conversion :D
Tu devines mes questions:
-comment fait-on pour afficher les caractères au delà du 256ème? Et puisqu'on y est, comment fait-on pour créer une ligne de plus de 256 caractères?
-quel est ce nouveau système de protection inédit? (qui n'a pas résisté bien longtemps)

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 20:43
par Daniel
C'est très simple :
Je n'utilise pas l'éditeur Basic de Microsoft. J'ai écrit le mien, qui affiche les lignes du programme quelle que soit leur longueur.

Pour créer une ligne Basic de plus de 255 caractères il faut écrire soi-même le programme qui transforme un fichier texte en fichier Basic. Ce n'est pas trop compliqué dès lors qu'on a extrait de la rom la table des tokens Basic et qu'on connait la structure d'une ligne.

Le système de protection ne résiste pas très longtemps : l'auteur lit un fichier de données qui contient son nom. Si le fichier n'existe pas ou contient autre chose le programme se plante. Il faut supposer qu'un débutant ne sait pas copier un fichier .DAT, ce qui est probablement vrai.

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 20:58
par __sam__
Oui, je trouvais bizarre qu'un programme basic soit dans un fichier DAT au lieu de BAS.

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 22:01
par petitjd
J'ai un comportement curieux de Stratac sur ma plateforme de test:
TO8D, boot en basic 512 avec B puis selection avec sdsel de stratac.sd, lancement avec run"auto.bat".
Jusqu'ici tout va bien, l'intro se lance, puis on peut choisir le niveau de difficulté avec le crayon optique. Là le plateau de jeu se met en place, on pointe avec le crayon optique la fleche qui clignote, on peut alors selectionner le type de soldat que l'on veut poser sur le plateau mais impossible de déposer le soldat sur aucune des cases réservée à notre camp.
Est-ce une incompatibilité avec le TO8D ou est-ce plus subtile?

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 22:05
par silversword31
Daniel a écrit :Nouveau sujet créé pour poursuivre cette discussion : http://forum.system-cfg.com/viewtopic.p ... &start=174
silversword31 a écrit :merci pour la réponse :D Je commençais justement à regarder comment passer des K7 vers les disquettes.
Je ne suis malheureusement pas un très grand connaisseur du monde Thomson mais je pense que je vais m'y mettre.
Pour ce qui est du boot.sd, j'ai bien tout qui fonctionne. c'est seulement la rareté des images sd qui m'a interpellé :mrgreen:
J'ai donc une toute première question (après je vais sans doute créer un post spécifique): J'ai compris pour les soft basic en 1 seul morceau, on peut les charger en memoire et deprotèger le programme avec l'emulateur. Il reste donc à sauvegarder le programme basic sur une image fd a l'aide d'un save (en utilisant un basic128 dans l'emul). c'est bon ? par contre quelle est la commande du save pour sauver sur disquette et non sur K7?
Pour créer une disquette TO7/70 dans dcmoto, commencer par sélectionner le contrôleur CD90-351 dans les options. Il vaut mieux ne pas partir d'une disquette vierge, mais de la disquette DOS 3"1/2 pour TO. Avec cette disquette bootable on peut se passer du Basic 128, elle sera donc utilisable sur les machines qui en sont dépourvues. Quand on lance le Basic 1.0 avec cette disquette dans le lecteur, le DOS est chargé en mémoire et on obtient cet écran :

Image

Pour charger un programme TOTO.BAS sur cassette et l'enregistrer sur disquette, il faut utiliser les commandes suivantes :

Code : Tout sélectionner

LOAD"CASS:TOTO
SAVE"TOTO
Le "TOTO" du load peut être omis si c'est le premier programme de la cassette.
Si le programme est protégé il faut le déprotéger après chargement avant de le sauver sur disquette (Outils / Mise au point... décocher la case de protection).

Ensuite, pour charger le programme à partir de la disquette, c'est LOAD"TOTO". Avec les disquettes le nom du programme est obligatoire.
Merci Daniel :D j'avais effectivement imaginé un truc comme ça :mrgreen:
Ce soir, je commence avec "Auto-initiation Basic TO7-70"

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 22:16
par silversword31
J'ai un soucis pour booter sur la disquette 3,5 TO. Au lancement, j'ai "?NE error in 0"
ça vient de quoi ?

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 22:19
par Daniel
petitjd a écrit :J'ai un comportement curieux de Stratac sur ma plateforme de test
Attention, c'est un programme pour TO7 en Basic 1.0, il est probable qu'il ne fonctionne pas en Basic 512. Essaye en Basic 1.0 avec l'option C, et si ça ne marche pas je le testerai demain sur un TO8.

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 22:23
par petitjd
Sur dcmoto ca fonctionne en Basic 512.

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 22:27
par Daniel
silversword31 a écrit :J'ai un soucis pour booter sur la disquette 3,5 TO. Au lancement, j'ai "?NE error in 0"
ça vient de quoi ?
Si on clique sur la disquette (option 2) il charge le Disk Basic et cherche le fichier AUTO.BAT. S'il ne le trouve pas il affiche l'erreur ?NE.
Si on clique sur Basic Microsoft 1.0 (option 1) il charge le Disk Basic et le lance.

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 22:37
par Daniel
petitjd a écrit :Sur dcmoto ca fonctionne en Basic 512.
Sur le moniteur Thomson, as-tu réglé la luminosité et le contraste à fond ?
Le crayon optique est peut-être assez sensible pour le vert ou le rouge, mais le bleu est plus difficile à détecter.

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 22:58
par silversword31
Pour "Auto-initiation Basic TO7-70" , ça fonctionne pas car je pense qu'on est au max au niveau mémoire... Le DOS doit morfler...
C'est sans doute pas le plus simple pour débuter les conversions...

Re: [Thomson TO7/70] Conversion .k7 en .fd et .sd

Publié : 06 févr. 2016 23:52
par petitjd
Verdict, ca marche, mais il y a quelque chose que je ne m'explique pas.
Mon moniteur couleur Atari ayant rendu l'âme il y a peu, j'ai utilisé pour ce test un moniteur Exelvision monochrome vert et noir.
Dans le jeu, au moment de choisir le niveau, si on pointe avec le crayon optique dans la zone hors de l'animation, le pointage est pris en compte malgré tout, ce qui est le comprtement normal du jeu.
Une fois que le plateau est chargé avec les soldats de l'ordinateur, lorsque la flèche blanche clignote et qu'on doit pointer le plateau (qui a la même couleur que la zone hors de l'animation de sélection du niveau) avec le crayon optique, ca fonctionne aussi. Et pourtant, c'est bien cette même zone - le plateau - qu'on pointe lorsqu'on veut déposer un soldat et qui là ne fonctionne pas.
Ce test a été fait avec un TO8D en Basic 512.

J'ai fait ensuite le test en basic 1.0 et reformatant la sd et en mettant le bon fichier boot_to.sd renommé en boot.sd puis le fichier stratac.sd. Même comportement observé qu'en Basic 512.

J'ai ensuite sorti un écran couleur et là ca fonctionne (test fait uniquement en Basic 1.0 sur TO8D).


J'ai ressorti le manuel du crayon optique, c'est écrit noir sur blanc:
"Un mauvais réglage de la luminosité du téléviseur peut entrainer une saisie difficile des informations. D'autre part, celles-ci ne sont pas prises en compte lorsque la zone pointée est noire ou rouge."

Avec le moniteur monochrome, la zone n'est pas noire et en plus elle fonctionne lorsque la flèche blanche clignote. C'est vraiment curieux!