Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » KC85/4 Fehler im Basicinterpreter? » Themenansicht

Autor Thread - Seiten: -1-
000
13.06.2017, 18:14 Uhr
Thyratron



Hallo!
Ich habe ein Problem beim Laden von Datenfeldern im BASIC auf dem KC85/5
festgestellt. Hier mal ein kleines Programm, welches den Fehler auftreten lässt:

10 CLS: DIM A$(10)
20 PRINT " Daten speichern! "
30 CSAVE* "DATEN"; A$
40 PAUSE 30
50 PRINT " Daten laden! "
60 CLOAD* "DATEN"; A$
70 END

Dieses Programm speichert die Daten problemlos, aber nach dem 'CLOAD*' werden die Blöcke zwar alle (06) eingeladen, aber bei USB kehrt er nicht mehr
aus der Schleife zurück und schreibt:
CF-ERROR
?07
CF-ERROR
?08
CF-ERROR
?09
CF-ERROR
?0A
usw.

Ich habe Mario gefragt und schrieb mir, das es bei Ihm auch so wäre CAOS4.7,
ebenso mit CAOS 4.2, D004 und BASEX, und schließlich auch mit CAOS4.2 auf
Kassette. Überall tritt nach dem Laden eine Fehlermeldung auf.
Es sieht also so aus, als wäre es ein Fehler schon im originalen BASIC - ROM.

Ist das schon jemand anderem aufgefallen?
Funktioniert das beim KC85/3?
Oder mache ich da was falsch?

vG
Thomas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
13.06.2017, 19:24 Uhr
maleuma



Kann es sein, dass der Fehler nur auftritt wenn das Variablenfeld leer ist?
Ich habe gerade unter CAOS 4.7 folgendes getestet und keinen Fehler bekommen:

Quellcode:
HC-BASIC

MEMORY END ? :
47854 BYTES FREE

OK
>DIM A$(2)
OK
>A$(0)="0"
OK
>A$(1)="1"
OK
>A$(2)="2"
OK
>CSAVE*"A3";A$
OK
>CLOAD*"A3";A$
OK
>


--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
13.06.2017, 22:07 Uhr
Thyratron



Hallo Mario,
genau das ist die Lösung. Dabei ist es völlig egal, an welcher Stelle (Variable), wieviele Zeichen stehen. Ein Zeichen reicht.
Ein völlig leeres Variablenfeld lässt sich jedoch nicht wieder einlesen, nur abspeichern geht problemlos!!

Das muss man also dringend im Programm verhindern.

vielen Dank
Thomas
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
14.06.2017, 09:27 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

beim Z9001/KC87 ist es genauso.
Je nach BASIC (alt oder neu) wird ggf. ein (sinnloser) Vorblock und ein 01-Datenblock geschrieben.

Ich habe 3 Tests gemacht
1: nur DIM
2: A$(3)=""
3:A$(3)="TST"

Nur bei echten Daten klappt das Zurücklesen mit CLOAD*.
Ein Datenfeld muss daher immer gefüllt werden!

Die erzeugte Datei ist aber korrekt; der Total Commander kann das richtig anzeigen (Bild 2). Der Fehler liegt im BASIC-Interpreter.




--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 14.06.2017 um 09:29 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek