ucsd-pascal benötigt aber 0x0a,0x0a am Zeilenende !
Das sollte man nochmal fettgedruckt irgendwohin schreiben ...
ucsd-pascal benötigt aber 0x0a,0x0a am Zeilenende !
Das sollte man nochmal fettgedruckt irgendwohin schreiben ...
0x0a,0x0a ist falsch, es sollte heißen 0x0a (so wie bei Linux)
Wird eine Datei mit 0x0d,0x0a am Zeilenende (DOS Format) mit
ucsdpsys_disk in ein UCSD-P Filesystem kopiert, und diese Datei
dann mit dem UCSD-P Texteditor geöffnet, sieht man jeweils
zwischen zwei Zeilen eine Leerzeile.
Wird die Datei mit dos2unix vor dem Kopieren konvertiert, ist
alles ok.
Vielleicht hilft der Blick auf
https://www.chessprogramming.org/Chess_0.5
Dort finden sich weitere Links, auch auf Quelldateien... bspw. http://www.moorecad.com/standardpascal/Chess05.pas
http://www.moorecad.com/standardpascal/Chess05.pas
Diese Version habe ich schon von toshi bekommen.
Ist aber leider nicht UCSD-P kompatibel !
Nur die Version auf Deinem Server ist kompatibel, aber leider kaputt !
http://www.z80.eu/downloads/CHESS.ZIP
Woher hast Du diese Datei ?
Aus einem nicht öffentlichen Archiv (war für Terak Maschinen, die auch UCSD p-System nutzen). Ich habe die Datei aber nicht weiter bearbeitet, sondern diese war schon so auf den Diskettenimages.
Eure Änderung für die FOR - Schleife war aber plausibel und richtig, da ist scheinbar nur ein 1 Bit umgekippt gewesen, ähnlich wie bei den CP/M-Wordstar-Dateien das für den Anfangsbuchsten eines Worts ist.
Wenn erst zur Ausführungszeit ein Fehler kommt, hat das was mit den Volume-Namen/Geräte-Namen eventuell was zu tun, die bei der Terak Maschine genutzt wurden.
Danke für die Info
Bspw. diese Zeile:
REWRITE(PRNTR,'PRINTER:'); (* OPEN PRINTER OUTPUT DEVICE *)
Ggfls. hast Du entweder das Gerät "PRINTER" nicht oder es ist nicht ansprechbar.
So, jetzt scheint es zu funktionieren.
Das Problem entstand hier:
(* MOVES SYNTAX TABLE *)
RESET(INIFL1,'CHESS:INIFL1.TEXT');
FOR INTI := SYNCF TO SYNML DO
BEGIN
REPEAT
READ(INIFL1,PC)
UNTIL PC = '.';
FOR IMTI := AA TO ZA DO
BEGIN
READ(INIFL1,PC);
PD[IMTI] := PC;
END;
INISYN(PD);
READ(INIFL1,PC);
END;
CLOSE(INIFL1,LOCK);
Das Programm versucht Initialisierungsparameter aus einer
nicht vorhandenen Datei mit dem Namen INIFL1.TEXT zu lesen !
Ich habe diese Parameter jetzt fest in das Programm eingebaut
(so wie es bei Chess05.pas gemacht wird).
Damit startet es jetzt ohne Fehlermeldung:
Running...
HELLO. WELCOME TO CHESS 0.5
DEBUG/TRACE VERSION
INITIALIZING VARIABLES AND ARRAYS.
OPENING PRINTER DEBUG/TRACE FILE.
INITIALIZING BOARD.
ENTER MOVE OR TYPE GO.
Die Ein/Ausgabe ist aber etwas gewöhnungsbedürftig.
(siehe chess-log.txt)
Das schreit ja regelrecht danach, dass Du die EIn- und Ausgabe jetzt auch noch verbesserst
Die zweite diskette von UCSD Pascal für den Commodore 8096 ist leer.
Ich hatte diese vorher auch.
Aber glücklich hab ich die korrekte Version gefunden.
Viel spaß damit!
Die zweite diskette von UCSD Pascal für den Commodore 8096 ist leer.
Ich hatte diese vorher auch.
Aber glücklich hab ich die korrekte Version gefunden.
Viel spaß damit!
Das ist toll, danke!
Schön, dass ihr jetzt die zweite Diskette habt. Ich habe sie selbst erst vor einigen Tagen aus meinem Bestand übertragen und es klappt damit auch mit Vice. Zur Anpassung der Tastatur für UCSD in Vice habe ich vor einiger Zeit mal einen Beitrag geschickt, ich muss das selbst bei mir noch mal machen...
Wer Interesse an Comal80 hat: Das gibt es ja für den 8032 mit sehr wenig freien Speicher und für den 8096 mit dann "üppigen" 38 kB freien Speicher. Ich finde immer noch, dass es sozusagen die ideale Synthese zwischen Basic und Pascal ist. Ich hab damit vor 35 Jahren einige Dinge programmiert. Ein Disk-Image kann ich einstellen, falls Interesse vorhanden ist.
Ich glaube dass Comal läuft auch im EF3 wenn ich mich recht erinnere