Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » KC-Pascal verstehen und anpassen » Themenansicht

Autor Thread - Seiten: -1-
000
05.02.2025, 18:17 Uhr
u-held



Hobi hat ja recht, wenn er meint, dass KC-spezifische Themen aus seiner HiSoft-Pascal-Diskussion rausgehalten werden sollten. Da hab ich nicht nachgedacht.

Zum Thema:

KC-Pascal verwendet den Bereich 0x80 bis 0xff für den IO-Puffer. Im Handbuch zu CAOS 4.8 steht, dass in diesem Bereich (0xae bis 0xe0) ein Interrupt-Handler des M052 liegt. Ich nehme also an, dass sich KC-Pascal einen anderen Bereich für den IO-Puffer suchen muss, wenn die USB-Tastatur oder USB-Speicher verwendet wird. Stimmt das?
--
Kompetenz simulieren

Dieser Beitrag wurde am 05.02.2025 um 18:19 Uhr von u-held editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
05.02.2025, 19:11 Uhr
Bert



Spricht was dagegen, den Kassettenpuffer (B700h bis B77Fh) zu verwenden?
Evtl. beißt sich das, weil der inzwischen (CAOS 4.8) auch von DIR u.ä. Sachen verwendet wird.

Viele Grüße,
Bert
--
Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
05.02.2025, 19:23 Uhr
u-held



Meine Idee ist, KC-Pascal ein bisschen zu verschieben und den IO-Puffer auf 0x200 beginnen zu lassen. Mit dem Disassemblieren bin ich so weit, dass Pascal auch läuft, wenn es z.B. auf 0x300 gebaut wird.
--
Kompetenz simulieren
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
05.02.2025, 19:34 Uhr
maleuma




Zitat:
u-held schrieb
KC-Pascal verwendet den Bereich 0x80 bis 0xff für den IO-Puffer. Im Handbuch zu CAOS 4.8 steht, dass in diesem Bereich (0xae bis 0xe0) ein Interrupt-Handler des M052 liegt. Ich nehme also an, dass sich KC-Pascal einen anderen Bereich für den IO-Puffer suchen muss, wenn die USB-Tastatur oder USB-Speicher verwendet wird. Stimmt das?


Das ist korrekt. Dein Vorschlag, den Datenbereich ab 200H zu legen, finde ich gut. Das ist meiner Meinung nach die sauberste Lösung.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
23.02.2025, 16:11 Uhr
u-held



Die Anpassungen von KC-Pascal 5.1 an die Devices von CAOS 4.6 bis 4.8 sind fertig, aber noch nicht gut getestet. Vielleicht kann jemand mal die angepasste Version 5.1b ausprobieren. Hinweise stehen im GitHub.

Wer testen möchte, aber mit GitHub nicht so vertraut ist: Unter https://github.com/duhlig/KC85_software/tree/main kann man sich über die grüne Schaltfläche "Code" das ganze Sammelsurium als Zip-Datei herunterladen. Bis auf pas51x.kcc und vielleicht fepen.pas kann alles gelöscht werden. (Es war wohl doch nicht so schlau, alle angefangenen Ideen in einem GitHub-Projekt zusammenzufassen.)

Übrigens muss die Version 5.1b von KC-Pascal auch noch mit CAOS 4.2 funktionieren, also mit allen 4er-Versionen von CAOS.

VG, Dietmar
--
Kompetenz simulieren
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
23.02.2025, 20:40 Uhr
maleuma



Das Laden und Speichern auf USB funktioniert erst einmal. Nach dem Laden scheint aber noch ein Zeilenvorschub zu fehlen. Da bleibt der Cursor rechts neben der letzten Blocknummer stehen.

Quellcode:

+G,,EVA.PAS
EVAPAS
02> 03> 04> 05> +L
   10 PROGRAM KOERPEROBERFLAECHE;
   20 CONST KON1=3207E-7;KON2=0.7285;KON
      3=0.0188;
   30 VAR KOF,MASSE,LAENGE,FAK:REAL;
   40 FUNCTION YHOCHX(Y,X:REAL):REAL;
   50  BEGIN
   60   YHOCHX:=EXP(X*LN(Y));
   70  END;
   80 BEGIN(*HAUPTPROGRAMM*)
   90  WRITE('Masse in kg=');READ(MASSE)
      ;
  100  WRITE('Laenge in m=');READ(LAENGE
      );
  110  FAK:=MASSE*1000;
  120  KOF:=KON1*YHOCHX(FAK,KON2-KON3*(L
      N(FAK)/LN(10)))*YHOCHX(LAENGE*100,
      0.3);
  130  WRITE('Koerperob.fl.=',KOF:5:2,'
      m^2');
  140  WRITELN
  150 END.
+P10,150,EVA2.PAS
02 03 04 05
+


Mehr habe ich erst einmal noch nicht getestet, muss mich in die Bedienung erst wieder reinlesen.
Der Inhalt der abgespeicherten Datei passt auch. Im Vorblock steht noch "Müll" drin an den unbenutzten Stellen. Das stört zwar nicht wirklich, kann aber für Verwirrung sorgen, wenn man das mit einem HEX-Editor betrachtet. Also vielleicht den Kassettenpuffer vor dem Eintragen der Daten löschen?
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
23.02.2025, 21:23 Uhr
u-held



Danke für's Testen, Mario. Die Kritikpunkte schaue ich mir nächste Woche an und werde sie beheben.

VG, Dietmar
--
Kompetenz simulieren
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
23.02.2025, 21:56 Uhr
maleuma



Das sollte keine Kritik sein, eher eine Anregung. Möglicherweise war das ja auch vorher schon so mit dem Müll im Kassettenpuffer.
Die CAOS-Routinen CSRI und CSRO machen seit CAOS 4.6 kein CRLF mehr. Das könnte der Grund für den Prompt hinter den Blocknummern sein.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
25.02.2025, 22:20 Uhr
u-held



Konstruktive Kritik ist mir immer willkommen! :-)

Im GitHub steht die Version 5.1c zur Verfügung.

Erweiterungen

- Das Kommando T (Translate) erkennt jetzt den 4 Parameter. Beginnt der 4. Parameter mit "1", dann wird die KCC-Datei selbststartend. In allen anderen Fällen bleibt es dabei, dass man das generierte Programm nach dem Laden manuell starten muss.

Korrekturen

- Der Vorblock wird mit 00H aufgefüllt.

- Nach dem Laden des Quellcodes wird ein Zeilenumbruch ausgegeben.

- Das Testprogramm fepen.pas wurde ergänzt. Das malt die Kurve für die gedämpfte Schwingung eines Federpendels.

VG, Dietmar
--
Kompetenz simulieren
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
01.03.2025, 20:39 Uhr
u-held



Unter CAOS 4.x steht IX standardmäßig auf 01F0h. Theoretisch ist es denkbar, aber gibt es auch einen praktischen Fall, wo IX eine Adresse im IRM enthält? Irgend ein Treiber oder eine sonstige CAOS-Erweiterung? Ich frage mich das, weil im KC-Pascal vor jedem Zugriff auf das CAOS-IX brav der IRM eingeschaltet und nachher ausgeschaltet wird.
--
Kompetenz simulieren
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
01.03.2025, 21:56 Uhr
u-held



Version 5.1d beseitigt hoffentlich die Fehler, die ich in 5.1c eingebaut habe. Danke an Mario für die Unterstützung im Hintergrund.
--
Kompetenz simulieren
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