Nach jahrelangen Versuchen und diversen Basic-Code Konstruktionen, ist es nun fast geschafft. Die Commandes PRINT#4,TAB(x) , PRINT#4,SPC(x), sowie CMD4, funktionieren.
Ich hatte seit gestern mit dem Testen begonne, und bin heute zu einem vorläufigen Ende angelangt. Es gab keinerlei Probleme, wie zum Beispiel leere Zeilen oder Printbefehle, bei denen
das Print# fehlte. Auch traten keine, in einer Zeile erstellten Doppelkommandes auf, Siehe *. Naja, ich habe mindestens 30 Bugs beseitigt und zudem diverse Array-Routinen zum Scannen erstellt.
Auch hatte ich wegen des PRINT#4,TAB(x) Problem, J=0 eingeführt. Wenn J nicht auf null zurückgesetzt wird, wird keine neue Zeilennummer erstellt, sondern in der vorherigen Zeile weitergemacht.
Wer es mal versuchen möchte, kann ein kurzes Basic-Programm erstellen. Enthalten sein müssen: PRINTTAB(xx), PRINTSPC(xx) und PRINT#4,TAB(xx), PRINT#4,SPC(xx).
Danach wird das Basic-Programm kompiliert. Nach dem Kompiliert, Bitte den P-Code mit einem x-belibigen Decompiler wieder decompilieren. Aus dem PRINTTAB(xx), PRINTSPC(xx)
und PRINT#4,TAB(xx), PRINT#4,SPC(xx) sind nun, entweder nur PRINT#4,TAB(xx), PRINT#4,SPC(xx) oder CMDxx PRINTTAB(xx), PRINTSPC(xx geworden. Das kann bei
Druckprogrammen richtige Probleme bereiten. Übrigens, der Decompi ist der einzig mir bekannte Decompiler, der das richtig macht. So wie es der ursprüngliche Coder erstellt hatte,
wird der P-Code wieder in ein BASIC-Code zurückerstellt.
Ich werde in Kürze, c.a. eine bis zwei Wochen, den Decompi v2.4 releasen. Eingebaut werden eine Condenser- und Renumber-Routine, sowie auch eine Möglichkeit,
die Variablen- und Arrayliste anzuspeichern. Mal sehen, was mir da sonst noch einfällt.
*
10 PRINT#4,A$,B$ ; --- das B$ gehort in Zeile 20
20 PRINT
- -----------------------------------------------------------
- der CMD-Befehl ist richtig, es werden keine Rauten erstellt
- -----------------------------------------------------------
- 9999 cmd4
- 10001 n=int(((z-1)/cu)+ .9)
- 10016 printtab(tb-8);
- 10021 printz$(0)
- 10089 print
- 10090 print
- 10091 print#4
- --------------------------------------------------------------
- hier wird hinter Print#4 richtigerweise ein TAB(x) angehangen.
- --------------------------------------------------------------
- 12230 print#4,tab(p);
- 12235 print#4,"QQQQ";h$;"QQQQ"
- 12250 print#4,""
- 12272 print#4,tab(12);
- 12276 print#4,a;tab(t1);na$(a);
- 12293 print#4,tab(8);
- 12297 print#4,a1;tab(t2);na$(a1);
- ----------------------------------------------
- noch ein CMD-Befehl der richtig erstellt wurde
- ----------------------------------------------
- 13576 open4,4
- 13580 cmd4
- 13582 print"side 1-don't forget to reset printhead----for each side"
- 13640 printspc(4);
- 13642 print"!";
- 13645 forx=1to68
- 13652 print"-";
- 13655 next
- 13656 print"!"
- 13659 printspc(4);
- 13661 print"!";
- 13664 printspc(5);
- 13666 print"!";
- 13669 forx=1to56
- 13676 print"*";
- 13679 next
- 13985 print#4,chr$(27);chr$(12)
- ------------------------------------------
- noch ein Print#4,TAB(5) programmausschnitt
- ------------------------------------------
- 10943 open4,4,7
- 10948 print#4,sp$;"-";lg$
- 10957 fori=1to2
- 10963 print#4
- 10965 next
- 10966 fori=1tovz
- 10972 print#4,tab(5);
- 10976 print#4,i;
- 10982 print#4,chr$(46);aa$(i)
- 10992 next
- 10993 print#4
- -----
- 20212 print#3,tab(4-len(str$(d0%(r))));
Alles anzeigen