• Altes Turbo-Pascal Programm unter Linux compilieren

    From Bernhard Thoben@2:240/9190 to All on Mon Mar 18 10:31:24 2024
    Moin All!

    Ich versuche gerade, ein (ur-) altes Turbo-Pascal Programm (LList) unter Linux zu compilieren und dann auch zum Laufen zu bekommen.

    Dazu kommen sp„ter bestimmt noch einige Fragen...

    ...aber zun„chst geht es um Grunds„tzliches.

    Diese Unit:

    === Anfang des Imports der Datei <MKDOS.PAS> ===
    Unit MKDos;
    {$I MKB.Def}

    Interface


    Function GetDosDate: LongInt;
    Function GetDOW: Word;
    Function GetResultCode: Integer;

    Implementation


    Uses
    {$IFDEF WINDOWS}
    WinDos;
    {$ELSE}
    Dos;
    {$ENDIF}

    {$IFDEF OS2}
    Function GetResultCode: Integer;
    Begin
    GetResultCode := DosExitCode
    End;
    {$ELSE}
    Function GetResultCode: Integer;
    Var
    Result: Byte;
    {$IFNDEF BASMINT}
    {$IFDEF WINDOWS}
    Regs: TRegisters;
    {$ELSE}
    Regs: Registers;
    {$ENDIF}
    {$ENDIF}

    Begin
    {$IFDEF BASMINT}
    Asm
    Mov ah, $4d;
    Int $21;
    Cmp ah, $00;
    je @JRes;
    Neg ah;
    Mov Result, ah;
    jmp @JRes2;
    @JRes:
    Mov Result, al;
    @JRes2:
    End;
    {$ELSE}
    Regs.ah := $4d;
    MsDos(Regs);
    If Regs.ah <> 0 Then
    Result := - Regs.ah
    Else
    Result := Regs.al;
    {$ENDIF}
    GetResultCode := Result;
    End;
    {$ENDIF}

    Function GetDosDate: LongInt;
    Var
    {$IFDEF WINDOWS}
    DT: TDateTime;
    {$ELSE}
    DT: DateTime;
    {$ENDIF}
    DosDate: LongInt;
    {$IFDEF VIRTUALPASCAL}
    DOW: longint;
    {$ELSE}
    DOW: Word;
    {$ENDIF}
    Begin
    GetDate(DT.Year, DT.Month, DT.Day, DOW);
    GetTime(DT.Hour, DT.Min, DT.Sec, DOW);
    PackTime(DT, DosDate);
    GetDosDate := DosDate;
    End;


    Function GetDOW: Word;
    Var
    {$IFDEF WINDOWS}
    DT: TDateTime;
    {$ELSE}
    DT: DateTime;
    {$ENDIF}
    {$IFDEF VIRTUALPASCAL}
    DOW: longint;
    {$ELSE}
    DOW: Word;
    {$ENDIF}
    Begin
    GetDate(DT.Year, DT.Month, DT.Day, DOW);
    GetDOW := DOW;
    End;


    End.
    === Ende des Imports der Datei <MKDOS.PAS> ===

    ..."stirbt" unter freepascal mit diesen Fehlern:

    ==========snip==========
    Free Pascal Compiler version 3.2.2+dfsg-9ubuntu1 [2022/04/11] for x86_64 Copyright (c) 1993-2021 by Florian Klaempfl and others
    Target OS: Linux for x86-64
    Compiling MKDOS.PAS
    MKB.DEF(7,2) Warning: Unsupported switch "$L"
    MKB.DEF(14,5) Note: Ignored compiler switch "$F"
    MKDOS.PAS(34,11) Error: Identifier not found "Registers"
    MKDOS.PAS(34,20) Error: Error in type definition
    MKDOS.PAS(53,8) Error: Illegal qualifier
    MKDOS.PAS(54,3) Error: Identifier not found "MsDos"
    MKDOS.PAS(55,11) Error: Illegal qualifier
    MKDOS.PAS(56,22) Error: Illegal qualifier
    MKDOS.PAS(58,20) Error: Illegal qualifier
    MKDOS.PAS(104) Fatal: There were 7 errors compiling module, stopping
    Fatal: Compilation aborted
    Error: /usr/bin/ppcx64 returned an error exitcode
    ==========snap==========

    Das Alles sagt mir leider gar nichts, da ich von Pascal keine Ahnung habe...


    Und weg... Bernhard

    ... MAILBOX: Uptime is 164d 00h 41m 59s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: REALITY.SYS corrupted! Reboot universe? (Y/n) (2:240/9190)
  • From Kai Richter@2:240/77 to Bernhard Thoben on Mon Mar 18 16:49:54 2024
    Hallo Bernhard!

    Am 18 Mar 24, Bernhard Thoben schrieb an All:

    Dazu kommen später bestimmt noch einige Fragen...

    Da ich ahne wohin der Kurs Dich führt schon mal eine Antwort im voraus.
    Wenn es später um die Frage linken geht, achte darauf alles statisch zu linken. Die executables sind dann zwar größer und brauchen vielleicht mehr RAM, aber es entfällt das Problem später die passenden "DLLs" zu beschaffen.

    ...aber zunächst geht es um Grundsätzliches.

    Von Pascal habe ich auch keinen Plan, wie von so vielem. Ich sehe aber das dort auch Assembler Code drin ist und eine Fehlermeldung geht in Richtung fehlendes Register. Das Wort Register kommt im Zusammenhang in einer IFDEF OS Variable vor.

    Ich würde im ersten Schritt schauen, ob die OS Variable richtig gesetzt ist und somit überhaupt die Definition von Register durchgeführt wird.

    In den make configs der husky suite findet sich zum Beispiel sowas:

    # type of operating system (UNIX,MSDOS,OS2,WINNT)
    OSTYPE=UNIX

    womit es manuell gesetzt werden muss. Es könnte aber auch sein, dass der Befehl uname ausgewertet wird.

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Let's head home (2:240/77)
  • From Bernhard Thoben@2:240/9190 to Kai Richter on Tue Mar 19 10:44:34 2024
    Moin Kai!

    Am 18.03.2024 um 16:49 schrieb Kai Richter an Bernhard Thoben Folgendes:

    Dazu kommen sp„ter bestimmt noch einige Fragen...

    Da ich ahne wohin der Kurs Dich fhrt

    =:-)

    Ja, ich versuche, meine lieb gewonnenen Tools von meiner OS/2-Mailbox zu konvertieren; bis jetzt allerdings ohne jeglichen Erfolg. LList ist der erste "Brocken".

    Wenn es sp„ter um die Frage linken geht, achte darauf alles statisch
    zu linken. Die executables sind dann zwar grӇer und brauchen
    vielleicht mehr RAM, aber es entf„llt das Problem sp„ter die passenden "DLLs" zu beschaffen.

    Danke fr den Tipp!

    Von Pascal habe ich auch keinen Plan, wie von so vielem.

    Ich habe mir vor dem "Jahr 2000 Bug" autodidaktisch C beigebracht und mein Mailbox-Programm LoraBBS damit Jahr-2000-fest gemacht. Aber da war ich 25 Jahre jnger und das Lernen ging leichter. Jetzt noch mal Pascal lernen? Schttel!

    Ich sehe aber das dort auch Assembler Code drin ist

    Dafr habe ich eine L”sung gefunden:
    {$asmMode intel}
    an den Anfang jeder Unit, die Assembler-Code enth„lt. L„uft!

    und eine Fehlermeldung geht in Richtung fehlendes Register. Das Wort Register kommt im Zusammenhang in einer IFDEF OS Variable vor.

    Ich weiá. Das habe ich auch noch nicht durchschaut. Das alles kommt von Turbo Pascal 7, da gibt es "Register" und "TRegister" und in freepascal gibt es einen TP7-Kompatibilit„tsmodus, der aber in meinem Fall genau gar nichts ntzt! :-(

    Ich wrde im ersten Schritt schauen, ob die OS Variable richtig
    gesetzt ist und somit berhaupt die Definition von Register
    durchgefhrt wird.

    Diese OS Variablen werden nirgends gesetzt, sondern scheinbar w„hrend der Laufzeit ausgewertet. Auch die IFDEF's in meinem Fall kommen erst w„hrend der Laufzeit zum Tragen.

    Ergo muá ich zun„chst mal schauen, ob ich diese "Register" *berhaupt* unter Linux brauche. Da muá ich aber passen, da ich nicht weiá, ob ich sie nicht doch brauche. Ich durchschaue, wie ich schrieb, den Code (noch) nicht.

    Aber ich habe TP7 auf meinem OS/2-(VM)-Rechner installiert und dort gibt es eine inline Hilfe. Leider ist die sehr knapp gehalten...


    Und weg... Bernhard

    ... MAILBOX: Uptime is 165d 00h 32m 30s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: Nur weil die Klugen immer nachgeben, regieren die Dumme (2:240/9190)
  • From Bernhard Thoben@2:240/9190 to All on Tue Mar 19 12:00:48 2024
    Moin All!

    Am 18.03.2024 um 10:31 schrieb Bernhard Thoben an All Folgendes:

    ======= Original-Nachricht: (evtl. gekrzt) =======
    Ich versuche gerade, ein (ur-) altes Turbo-Pascal Programm (LList)
    unter Linux zu compilieren und dann auch zum Laufen zu bekommen.
    ============== Nun kommt mein Senf: ===============

    _FYI:_ Ich habe dieses Projekt aufgegeben! Da sind dermaáen viele in freepascal nicht (mehr) gebr„uchliche Deklarationen drin (z.B. das hier):
    ==========snip==========
    var Ident: type absolute Seg:Ofs;
    ==========snap==========
    (es geht nicht um das "absolute", sondern um "Seg:Ofs"), die ich nicht verstehe, da ich nicht weiá, was der ursprngliche Programmierer damit mal beabsichtigt hatte.


    Und weg... Bernhard

    ... MAILBOX: Uptime is 165d 02h 05m 10s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: Wer Fehler findet, darf sie gerne behalten... (2:240/9190)
  • From Gerhard Strangar@2:240/2188.575 to Bernhard Thoben on Mon Mar 18 19:08:07 2024
    Am 18 Mar 24 10:31:24 schrob Bernhard Thoben an All zum Thema
    <Altes Turbo-Pascal Programm unter Linux compilieren>

    Mov ah, $4d;
    Int $21;

    INT 21h ruft eine DOS-Funktion auf, das geht so natuerlich nicht unter Linux.




    Tschoe mit Oe
    Gerhard
    ---
    * Origin: (2:240/2188.575)
  • From Kai Richter@2:240/77 to Bernhard Thoben on Tue Mar 19 20:44:40 2024
    Servus Bernhard!

    Am 19 Mar 24, Bernhard Thoben schrieb an Kai Richter:

    Dafür habe ich eine Lösung gefunden:
    {$asmMode intel}
    an den Anfang jeder Unit, die Assembler-Code enthält. Läuft!

    Awesome!

    und eine Fehlermeldung geht in Richtung fehlendes Register. Das
    Wort Register kommt im Zusammenhang in einer IFDEF OS Variable
    vor.

    Diese OS Variablen werden nirgends gesetzt, sondern scheinbar während
    der Laufzeit ausgewertet. Auch die IFDEF's in meinem Fall kommen erst während der Laufzeit zum Tragen.

    Dann ist das imho die erste Baustelle. Das könnte Dir sonst an jeder Stelle auf die Füsse fallen. Wenn ich das richtig sehe führt das letzte ELSE jeweils auf Code für DOS. Sollte der inkompatibel mit Linux sein, brauchst Du dafür funktionierenden IF Linux Code.

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Boerse, den letzten beissen die Hunde (2:240/77)
  • From Bernhard Thoben@2:240/9190 to Gerhard Strangar on Wed Mar 20 10:07:50 2024
    Moin Gerhard!

    Am 18.03.2024 um 19:08 schrieb Gerhard Strangar an Bernhard Thoben Folgendes:

    Mov ah, $4d;
    Int $21;

    INT 21h ruft eine DOS-Funktion auf, das geht so natuerlich nicht unter Linux.

    Davon habe ich leider keine Ahnung. :-/


    Und weg... Bernhard

    ... MAILBOX: Uptime is 166d 00h 17m 09s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: And now something completely different: (2:240/9190)
  • From Bernhard Thoben@2:240/9190 to Kai Richter on Wed Mar 20 10:08:24 2024
    Moin Kai!

    Am 19.03.2024 um 20:44 schrieb Kai Richter an Bernhard Thoben Folgendes:

    Dann ist das imho die erste Baustelle. Das k”nnte Dir sonst an jeder Stelle auf die Fsse fallen. Wenn ich das richtig sehe fhrt das
    letzte ELSE jeweils auf Code fr DOS. Sollte der inkompatibel mit
    Linux sein, brauchst Du dafr funktionierenden IF Linux Code.

    Wie ich schrieb, ich habe das Projekt (u.a. wegen solcher "Baustellen") begraben! ;-)


    Und weg... Bernhard

    ... MAILBOX: Uptime is 166d 00h 17m 09s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: Well, I have no problems with Windows.@+'#1)(#+7& CARRI (2:240/9190)
  • From Tobias Ernst@2:240/5853.10 to Bernhard Thoben on Wed Mar 20 10:17:00 2024
    Mov ah, $4d;
    Int $21;

    INT 21h ruft eine DOS-Funktion auf, das geht so natuerlich nicht unter GS>> Linux.

    Davon habe ich leider keine Ahnung. :-/


    Die Soft-Interrupts, die mit INT aufgerufen werden, sind quasi die
    DOS-API.

    Obiger Code fragt bei DOS an, warum das zuletzt gestartete Programm
    beendet wurde. Nach dem Aufruf steht im Register AL der Returncode des Programms und im Register AH ein Wert, der angibt ob normales Ende (0), Abbrucht mit Ctrl+C (1), schwerer Fehler (2) oder ob es quasi gekillt
    wurde (3).

    Zeug, das man mit 14 gelernt hat und nie mehr vergisst ;)

    Wobei ich zugegebenermaáen auch erst googeln musste, was 4d nun genau
    macht.

    Gruá
    Tobias

    --- OpenXP 5.0.58
    * Origin: I'm back, and in greater numbers! (2:240/5853.10)
  • From Tobias Ernst@2:240/5853.10 to Tobias Ernst on Wed Mar 20 10:19:00 2024
    Mov ah, $4d;
    Int $21;

    INT 21h ruft eine DOS-Funktion auf, das geht so natuerlich nicht unter GS>>> Linux.

    Davon habe ich leider keine Ahnung. :-/


    Die Soft-Interrupts, die mit INT aufgerufen werden, sind quasi die
    DOS-API.

    Obiger Code fragt bei DOS an, warum das zuletzt gestartete Programm
    beendet wurde. Nach dem Aufruf steht im Register AL der Returncode des Programms und im Register AH ein Wert, der angibt ob normales Ende (0), Abbrucht mit Ctrl+C (1), schwerer Fehler (2) oder ob es quasi gekillt
    wurde (3).


    Korrektur, (3) ist, dass das Programm sich resident gemacht und die
    Kontrolle zurckgegeben hat.

    Quelle brigens: https://frediks.de/8086asm/int21katalog.php

    Gruá
    Tobias

    --- OpenXP 5.0.58
    * Origin: I'm back, and in greater numbers! (2:240/5853.10)
  • From Bernhard Thoben@2:240/9190 to Tobias Ernst on Wed Mar 20 13:35:38 2024
    Moin Tobias!

    Am 20.03.2024 um 10:17 schrieb Tobias Ernst an Bernhard Thoben Folgendes:

    Zeug, das man mit 14 gelernt hat und nie mehr vergisst ;)

    Ich habe das leider nie gelernt. Und ich habe, ehrlich gesagt, auch keine Lust, mir das jetzt noch anzueignen...


    Und weg... Bernhard

    ... MAILBOX: Uptime is 166d 03h 45m 39s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: Der Dativ ist dem Genitiv sein Tod. (2:240/9190)
  • From Torsten Bamberg@2:240/5832 to Bernhard Thoben on Tue Apr 9 00:15:53 2024
    Hallo Bernhard!

    18.03.2024 10:31, Bernhard Thoben schrieb an All:

    ..."stirbt" unter freepascal mit diesen Fehlern:
    Klar.

    ==========snip==========
    Free Pascal Compiler version 3.2.2+dfsg-9ubuntu1 [2022/04/11] for
    x86_64 Copyright (c) 1993-2021 by Florian Klaempfl and others Target
    Downgraden ist das Zauberwort.
    Du ben”tigst die entsprechende Lora-BBS MSDos-Pas in der Dos-Box im x86 ohne -64

    OS: Linux for x86-64 Compiling MKDOS.PAS MKB.DEF(7,2)
    Ist ganz klar aus der Fehlermeldung ersichtlich. Viel Spass beim suchen und bauen der Umgebung. Das ganze ist nicht so trivial. Freepascal kann sowohl in einer windowed, als auch Dos-Box kompatibel kompiliert werden.

    Ich habe hier gut 9 Monate gebraucht, um Errflags als non Gui Exec unter OS/2 sowohl als windowed als auch FullScreen zum werkeln zu bewegen.


    Und weg... Bernhard
    Bye/2 Torsten

    ... MAILBOX01: up 8d 12h 47m load: 39 proc, 189 threads (tbup1.1)
    --- GoldED+/OS2 1.1.5-23
    * Origin: DatenBahn BBS Hamburg (2:240/5832)
  • From Bernhard Thoben@2:240/9190 to Torsten Bamberg on Tue Apr 9 10:57:54 2024
    Moin Torsten!

    Am 09.04.2024 um 00:15 schrieb Torsten Bamberg an Bernhard Thoben Folgendes:

    Free Pascal Compiler version 3.2.2+dfsg-9ubuntu1 [2022/04/11] for
    x86_64 Copyright (c) 1993-2021 by Florian Klaempfl and others
    Target
    Downgraden ist das Zauberwort.
    Du ben”tigst die entsprechende Lora-BBS MSDos-Pas in der Dos-Box im
    x86 ohne -64

    Das ist ja genau das, was ich *nicht* wollte! All' das l„uft aktuell in einer eCS VM auf einem Server mit VMWare.

    Ich wollte das alles aber nativ unter Linux zum Laufen bekommen; habe es aber mittlerweile wegen fr mich unberbrckbaren Problemen aufgegeben.

    _Kurz:_ Ich habe keinen Bock und zu wenig Ahnung, mir das noch anzutun!


    Und weg... Bernhard

    ... MAILBOX: Uptime is 186d 00h 05m 20s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: This world is totally fugazi! (Marillion) (2:240/9190)
  • From Gerhard Strangar@2:240/2188.575 to Bernhard Thoben on Tue Apr 9 17:05:30 2024
    Am 09 Apr 24 10:57:54 schrob Bernhard Thoben an Torsten Bamberg zum Thema <Altes Turbo-Pascal Programm unter Linux compilieren>

    Das ist ja genau das, was ich *nicht* wollte! All' das laeuft aktuell in einer eCS VM auf einem Server mit VMWare.
    Ich wollte das alles aber nativ unter Linux zum Laufen bekommen;

    Du koenntest es mit DOSBox laufen lassen, wenn es nicht viel CPU-Leistung braucht.



    Tschoe mit Oe
    Gerhard
    ---
    * Origin: (2:240/2188.575)
  • From Bernhard Thoben@2:240/9190 to Gerhard Strangar on Wed Apr 10 10:49:00 2024
    Moin Gerhard!

    Am 09.04.2024 um 17:05 schrieb Gerhard Strangar an Bernhard Thoben Folgendes:

    Das ist ja genau das, was ich *nicht* wollte! All' das laeuft
    aktuell in einer eCS VM auf einem Server mit VMWare. Ich wollte
    das alles aber nativ unter Linux zum Laufen bekommen;

    Du koenntest es mit DOSBox laufen lassen, wenn es nicht viel
    CPU-Leistung braucht.

    Aber das will ich doch gar nicht! Ich wollte ein uraltes Pascal-Programm (darber wurde ausgiebig diskutiert) *nativ* unter Linux laufen lassen.

    Keine Box, keine VM, kein sonstiger "Wrapper". Nativ.


    Und weg... Bernhard

    ... MAILBOX: Uptime is 186d 23h 59m 13s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: ZX-9R: Ich bin fr 100 km/h. In drei Sekunden!! (2:240/9190)
  • From Kai Richter@2:240/77 to Gerhard Strangar on Tue Apr 9 16:58:44 2024
    Tach auch Gerhard!

    Am 18 Mar 24, Gerhard Strangar schrieb an Bernhard Thoben:

    Mov ah, $4d;
    Int $21;

    INT 21h ruft eine DOS-Funktion auf, das geht so natuerlich nicht unter Linux.

    Und jetzt mal eine blöde Frage eines ahnungslosen:

    Solche INT aufrufe werden ja wohl in mehr als einem DOS Programmen vorkommen, gibt es da noch keine Migrationslösung, eine API oder einen Wrapper, der solchen Code entsprechend ersetzen kann?

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Let's head home (2:240/77)
  • From Kai Richter@2:240/77 to Bernhard Thoben on Wed Apr 10 16:17:46 2024
    Servus Bernhard!

    Am 10 Apr 24, Bernhard Thoben schrieb an Gerhard Strangar:

    Aber das will ich doch gar nicht! Ich wollte ein uraltes
    Pascal-Programm (darüber wurde ausgiebig diskutiert) *nativ* unter
    Linux laufen lassen.

    Es geht also eher darum eine Software funktionsfähig zu archivieren, als eine funktionelle Aufgabe zu erfüllen?

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: sehr genau schauen, was Sache ist, bevor man anfaengt. (2:240/77)
  • From Gerhard Strangar@2:240/2188.575 to Kai Richter on Wed Apr 10 19:27:52 2024
    Am 09 Apr 24 16:58:44 schrob Kai Richter an Gerhard Strangar zum Thema
    <Altes Turbo-Pascal Programm unter Linux compilieren>

    Solche INT aufrufe werden ja wohl in mehr als einem DOS Programmen vorkommen, gibt es da noch keine Migrationsloesung, eine API oder einen Wrapper, der solchen Code entsprechend ersetzen kann?

    DOSBox emuliert einfach einen alten PC mit Grafik- und Soundkarte Deiner Wahl, mit UMB, EMS, XMS, aber ohne Drucker.



    Tschoe mit Oe
    Gerhard
    ---
    * Origin: (2:240/2188.575)
  • From Bernhard Thoben@2:240/9190 to Kai Richter on Thu Apr 11 10:02:12 2024
    Moin Kai!

    Am 10.04.2024 um 16:17 schrieb Kai Richter an Bernhard Thoben Folgendes:

    Aber das will ich doch gar nicht! Ich wollte ein uraltes
    Pascal-Programm (darber wurde ausgiebig diskutiert) *nativ*
    unter Linux laufen lassen.

    Es geht also eher darum eine Software funktionsf„hig zu archivieren,
    als eine funktionelle Aufgabe zu erfllen?

    Seufz! Ich weiá nicht, wie ich es ausdrcken soll.

    Es geht *nicht* um archivieren, es geht *nicht* um Erfllung einer Aufgabe um der Aufgabe willen.

    ES GEHT UM NATIVE LINUX-UNTERSTšTZUNG!

    Warum soll ich eine OS/2-VM gegen eine DOS-Box tauschen?

    Ich wollte *) alle hier laufenden Programme NATIV unter Linux zum Laufen bekommen.

    Und, nein, hpt und Co. sind fr mich keine Option, da ich auch eine LoraBBS Mailbox betreibe und umsetzen wollte *).

    Wieso versteht mich niemand?

    *) Ich schreibe bewuát _wollte_, weil ich das Projekt inzwischen begraben habe, was ich aber bereits mehrfach geschrieben habe.

    Seufz!


    Und weg... Bernhard

    ... MAILBOX: Uptime is 187d 23h 06m 53s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: Who is 'general failure' and why is he reading my disc? (2:240/9190)
  • From Gerhard Strangar@2:240/2188.575 to Bernhard Thoben on Thu Apr 11 18:29:28 2024
    Am 11 Apr 24 10:02:12 schrob Bernhard Thoben an Kai Richter zum Thema
    <Altes Turbo-Pascal Programm unter Linux compilieren>

    Warum soll ich eine OS/2-VM gegen eine DOS-Box tauschen?

    Um unnoetigen Ballast loszuwerden. Statt ein ganzes OS staendig mitlaufen zu lassen, fuehrst Du nur das DOS-Programm kurz aus mit
    dosbox -c tolle.exe -c exit




    Tschoe mit Oe
    Gerhard
    ---
    * Origin: (2:240/2188.575)
  • From Bernhard Thoben@2:240/9190 to Gerhard Strangar on Fri Apr 12 12:19:32 2024
    Moin Gerhard!

    Am 11.04.2024 um 18:29 schrieb Gerhard Strangar an Bernhard Thoben Folgendes:

    Warum soll ich eine OS/2-VM gegen eine DOS-Box tauschen?

    Um unnoetigen Ballast loszuwerden. Statt ein ganzes OS staendig
    mitlaufen zu lassen, fuehrst Du nur das DOS-Programm kurz aus
    mit dosbox -c tolle.exe -c exit

    Ah! Jetzt erst verstehe ich den Ansatz. Allerdings scheitert das dann an der BBS...


    Und weg... Bernhard

    ... MAILBOX: Uptime is 189d 01h 29m 43s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: Wer sp„ter bremst, ist l„nger schnell! (2:240/9190)
  • From Bernhard Thoben@2:240/9190 to Gerhard Strangar on Fri Apr 12 12:24:12 2024
    Moin Gerhard!

    Am 11.04.2024 um 18:29 schrieb Gerhard Strangar an Bernhard Thoben Folgendes:

    Warum soll ich eine OS/2-VM gegen eine DOS-Box tauschen?

    Um unnoetigen Ballast loszuwerden. Statt ein ganzes OS staendig
    mitlaufen zu lassen,

    Erst nach dem Absenden meiner ersten Antwort ist mir ein zweiter Gedankenfehler eingefallen: Ich tausche dann OS/2 in einer VM gegen Linux in einer VM...

    =:-)


    Und weg... Bernhard

    ... MAILBOX: Uptime is 189d 01h 34m 11s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: Streicht den Sofortvollzug beim Gravitationsgesetz! (2:240/9190)
  • From Kai Richter@2:240/77 to Bernhard Thoben on Fri Apr 12 03:08:14 2024
    Grüß Dich, Bernhard!

    Am 11 Apr 24, Bernhard Thoben schrieb an Kai Richter:

    Es geht also eher darum eine Software funktionsfähig zu
    archivieren, als eine funktionelle Aufgabe zu erfüllen?

    Es geht *nicht* um archivieren, es geht *nicht* um Erfüllung einer
    Aufgabe um der Aufgabe willen.

    Dann ist die Aufgabe die LList übernommen hat also nicht wichtig? Dann lass es doch einfach weg und mach mit dem Rest weiter. ;-)

    ES GEHT UM NATIVE LINUX-UNTERSTÜTZUNG!

    Die Idee, dass man ein beliebiges Other OS Programm nativ unter Linux laufen lassen könnte, stammt woher? :-)

    Warum soll ich eine OS/2-VM gegen eine DOS-Box tauschen?

    Weil die Emulation einer DOS-Box VM einfacher ist als eine OS/2 VM?

    Nein, ich weiss, dass sowas kein Grund ist, wenn man bereits eine esxi VM einsetzt, es sei denn, man will vom esxi weg.

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Woran Du glaubst, dafuer sollst Du leben und sterben. (2:240/77)
  • From Kai Richter@2:240/77 to Bernhard Thoben on Fri Apr 12 15:16:40 2024
    Tach Bernhard!

    Am 12 Apr 24, Bernhard Thoben schrieb an Gerhard Strangar:

    Erst nach dem Absenden meiner ersten Antwort ist mir ein zweiter Gedankenfehler eingefallen: Ich tausche dann OS/2 in einer VM gegen
    Linux in einer VM...

    Nö, Du wolltest doch NATIV LINUX, also nix VM Server, Linux direkt aufs Blech und dann alles was geht mit Linux, sowie die Ausnahmen dann mit Emulator oder VM abdecken.

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Hotshot, climb to FL3000... (2:240/77)
  • From Bernhard Thoben@2:240/9190 to Kai Richter on Sat Apr 13 14:11:44 2024
    Moin Kai!

    Am 12.04.2024 um 15:16 schrieb Kai Richter an Bernhard Thoben Folgendes:

    Erst nach dem Absenden meiner ersten Antwort ist mir ein zweiter
    Gedankenfehler eingefallen: Ich tausche dann OS/2 in einer VM
    gegen Linux in einer VM...

    N”, Du wolltest doch NATIV LINUX, also nix VM Server, Linux direkt
    aufs Blech und dann alles was geht mit Linux, sowie die Ausnahmen dann
    mit Emulator oder VM abdecken.

    Dann habe ich mich falsch ausgedrckt. Es bleibt bei esxi, weil ich eh einen Server laufen lassen "muá". Das "warum" spielt dabei keine Rolle...

    Daher bleibt es bei einer VM-L”sung.

    Meine Idee war, daá OS/2 "irgendwann" nicht mehr laufen k”nnte und ich auf ein aktuelles OS (Linux) umsteigen wollen wrde. Das meinte ich mit "nativ". Und da m”chte ich, wenn m”glich, alles umziehen.

    Wie ich aber schon ein paar Mal schrieb, das Projekt ist eh gestorben. RIP


    Und weg... Bernhard

    ... MAILBOX: Uptime is 190d 03h 17m 31s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: REALITY.SYS corrupted! Reboot universe? (Y/n) (2:240/9190)
  • From Kai Richter@2:240/77 to Bernhard Thoben on Sun Apr 14 15:00:46 2024
    Tag Bernhard!

    Am 13 Apr 24, Bernhard Thoben schrieb an Kai Richter:

    Meine Idee war, daß OS/2 "irgendwann" nicht mehr laufen könnte und ich
    auf ein aktuelles OS (Linux) umsteigen wollen würde. Das meinte ich
    mit "nativ". Und da möchte ich, wenn möglich, alles umziehen.

    Wie ich aber schon ein paar Mal schrieb, das Projekt ist eh gestorben.

    Können wir uns vielleicht auf "vorrübergehend pausiert" einigen? ;-)

    Das klingt weniger fatalistisch und wie gesagt, Software erfüllt eine Aufgabe. Daher wäre es vielleicht möglich eine Software zu finden welche die benötigten Aufgaben übernimmt. Und ja, vielleicht auch im Kontext weiteren LoraBBS Betriebes.

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: sehr genau schauen, was Sache ist, bevor man anfängt. (2:240/77)
  • From Bernhard Thoben@2:240/9190 to Kai Richter on Tue Apr 16 10:38:00 2024
    Moin Kai!

    Am 14.04.2024 um 15:00 schrieb Kai Richter an Bernhard Thoben Folgendes:

    Wie ich aber schon ein paar Mal schrieb, das Projekt ist eh
    gestorben.

    K”nnen wir uns vielleicht auf "vorrbergehend pausiert" einigen? ;-)

    Nein, da bin ich viel zu sehr Realist. Ich habe mich auch n„her mit LoraBBS befaát und da sieht es auch sehr dster aus, das auf Linux zu portieren.

    Ganz ehrlich, ich habe nicht mehr die Energie, so etwas umzusetzen... :-/


    Und weg... Bernhard

    ... MAILBOX: Uptime is 192d 23h 41m 30s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: Berni's Box: Ist sie zu stark, bist Du zu schwach! (2:240/9190)
  • From Kai Richter@2:240/77 to Bernhard Thoben on Sun Apr 21 00:11:10 2024
    Servus Bernhard!

    Am 16 Apr 24, Bernhard Thoben schrieb an Kai Richter:

    Ganz ehrlich, ich habe nicht mehr die Energie, so etwas umzusetzen...

    Verstehe ich voll und ganz. Gerade habe ich zum ersten Mal was von Flutter und Dart gehört. Anscheinend wird immer wieder bestehendes über den Haufen geworfen und was neues erfunden.

    Tschuess

    Kai

    --- GoldED+/LNX 1.1.4.7
    * Origin: Bastelschlumpf (2:240/77)
  • From Dietmar Schmidt@2:240/2188.186 to Bernhard Thoben on Thu Jun 13 07:46:30 2024
    Hallo Berhand,

    hast Du es hinbekommen, oder soll ich es mir mal anschauen?

    lg

    Dietmar

    Moin All!

    Ich versuche gerade, ein (ur-) altes Turbo-Pascal Programm (LList) unter Linux zu compilieren und dann auch zum Laufen zu bekommen.

    Dazu kommen spaeter bestimmt noch einige Fragen...

    ...aber zunaechst geht es um Grundsaetzliches.

    Diese Unit:

    === Anfang des Imports der Datei <MKDOS.PAS> ===
    Unit MKDos;
    {$I MKB.Def}

    Interface


    Function GetDosDate: LongInt;
    Function GetDOW: Word;
    Function GetResultCode: Integer;

    Implementation


    Uses
    {$IFDEF WINDOWS}
    WinDos;
    {$ELSE}
    Dos;
    {$ENDIF}

    {$IFDEF OS2}
    Function GetResultCode: Integer;
    Begin
    GetResultCode := DosExitCode
    End;
    {$ELSE}
    Function GetResultCode: Integer;
    Var
    Result: Byte;
    {$IFNDEF BASMINT}
    {$IFDEF WINDOWS}
    Regs: TRegisters;
    {$ELSE}
    Regs: Registers;
    {$ENDIF}
    {$ENDIF}

    Begin
    {$IFDEF BASMINT}
    Asm
    Mov ah, $4d;
    Int $21;
    Cmp ah, $00;
    je @JRes;
    Neg ah;
    Mov Result, ah;
    jmp @JRes2;
    @JRes:
    Mov Result, al;
    @JRes2:
    End;
    {$ELSE}
    Regs.ah := $4d;
    MsDos(Regs);
    If Regs.ah <> 0 Then
    Result := - Regs.ah
    Else
    Result := Regs.al;
    {$ENDIF}
    GetResultCode := Result;
    End;
    {$ENDIF}

    Function GetDosDate: LongInt;
    Var
    {$IFDEF WINDOWS}
    DT: TDateTime;
    {$ELSE}
    DT: DateTime;
    {$ENDIF}
    DosDate: LongInt;
    {$IFDEF VIRTUALPASCAL}
    DOW: longint;
    {$ELSE}
    DOW: Word;
    {$ENDIF}
    Begin
    GetDate(DT.Year, DT.Month, DT.Day, DOW);
    GetTime(DT.Hour, DT.Min, DT.Sec, DOW);
    PackTime(DT, DosDate);
    GetDosDate := DosDate;
    End;


    Function GetDOW: Word;
    Var
    {$IFDEF WINDOWS}
    DT: TDateTime;
    {$ELSE}
    DT: DateTime;
    {$ENDIF}
    {$IFDEF VIRTUALPASCAL}
    DOW: longint;
    {$ELSE}
    DOW: Word;
    {$ENDIF}
    Begin
    GetDate(DT.Year, DT.Month, DT.Day, DOW);
    GetDOW := DOW;
    End;


    End.
    === Ende des Imports der Datei <MKDOS.PAS> ===

    ..."stirbt" unter freepascal mit diesen Fehlern:

    ==========snip==========
    Free Pascal Compiler version 3.2.2+dfsg-9ubuntu1 [2022/04/11] for x86_64 Copyright (c) 1993-2021 by Florian Klaempfl and others Target OS: Linux for x86-64
    Compiling MKDOS.PAS
    MKB.DEF(7,2) Warning: Unsupported switch "$L" MKB.DEF(14,5) Note: Ignored compiler switch "$F" MKDOS.PAS(34,11) Error: Identifier not found "Registers" MKDOS.PAS(34,20) Error: Error in type definition MKDOS.PAS(53,8) Error: Illegal qualifier MKDOS.PAS(54,3) Error:
    Identifier not found "MsDos" MKDOS.PAS(55,11) Error: Illegal qualifier MKDOS.PAS(56,22) Error: Illegal qualifier MKDOS.PAS(58,20) Error: Illegal qualifier MKDOS.PAS(104) Fatal: There were 7 errors compiling module, stopping Fatal: Compilation aborted
    Error: /usr/bin/ppcx64 returned an error exitcode
    ==========snap==========

    Das Alles sagt mir leider gar nichts, da ich von Pascal keine Ahnung habe...


    Und weg... Bernhard

    ... MAILBOX: Uptime is 164d 00h 41m 59s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: REALITY.SYS corrupted! Reboot universe? (Y/n) (2:240/9190)
    --- WinPoint 411.0
    * Origin: Original *WinPoint* Origin (2:240/2188.186)
  • From Bernhard Thoben@2:240/9190 to Dietmar Schmidt on Thu Jun 13 11:30:48 2024
    Moin Dietmar!

    Am 13.06.2024 um 07:46 schrieb Dietmar Schmidt an Bernhard Thoben Folgendes:

    hast Du es hinbekommen, oder soll ich es mir mal anschauen?

    Wie in der vorhergegangenen Konversation ersichtlich, geht das nicht ohne Weiteres, da Befehle verwendet werden, die es unter Linux schlicht nicht gibt.

    Siehe u.a. hier:

    ==========snip==========
    Am 18 Mar 24 10:31:24 schrob Bernhard Thoben an All zum Thema
    <Altes Turbo-Pascal Programm unter Linux compilieren>

    Mov ah, $4d;
    Int $21;

    INT 21h ruft eine DOS-Funktion auf, das geht so natuerlich nicht unter Linux. ==========snap==========

    Daher habe ich das Projekt begraben!

    Trotzdem vielen Dank fr das Angebot.


    Und weg... Bernhard

    ... MAILBOX: Uptime is 49d 00h 28m 53s (BT-Uptime/OS2, V1.5)
    --- GoldED+/OS2 1.1.52220220504
    * Origin: Auch aus quadratischen Radios kann man Rundfunk hoeren. (2:240/9190)