Turbo C 2.01 auf XT kompatiblen Computer

  • Hallo,


    ich möchte eine PPP C Quelle auf, bzw für eine DEC Rainbow compilieren. Dazu habe ich mir den Turbo C Compiler in der Version 2.01 von Borland heruntergeladen.


    Bevor ich den versuche auf die Rainbow zu installieren würde ich gerne hier drei Fragen in die Runde schmeißen:

    1. Hat hier jemand einen C compiler auf einer Rainbow im Einsatz? Turbo C?

    2. Was müsste ich beachten?

    3. Wenn ich ein Programm auf einem DOS 3.x XT compiliere, wie groß ist die Wahrscheinlichkeit, dass das Executable auf DOS 2.11 läuft? Schon einmal jemand versucht?


    Bevor ich den Compiler auf die Rainbow würge, möchte ich bekannte Fallstricke nicht noch einmal antesten.


    Gruss,

    Peter

  • Ohne Rainbow habe ich auch schon oft Turbo C 2.01 genutzt. Solange Du keine Funktionen aufrufst, die einen direkten Speicherzugriff benötigen (auf Bildschirmspeicher, I/O die PC/XT-spezifisch ist), sollte das erzeugte Executable auch auf MS-DOS auf einen nicht PC/XT-kompatiblen Rechner laufen. Allerdings könnten andere C-Compiler "kompatibler" sein, insbesondere der Microsoft C-Compiler 3.0 von 1985 (der 4.0 ist schon zu neu denke ich), der Lattice-C Compiler in einer älteren Version, oder auch Desmet-C, Pacific-C, Mark Williams C usw. Generell würde ich erwarten, je älter der C-Compiler, desto weniger Anforderungen stellt der an den Rechner.

    Finden tust Du die sicherlich mit Hilfe von Google und ein paar Stichwörtern zusätzlich (also "vetusware" oder "old-dos.ru" bspw.).


    Vielleicht ist auch Small-C eine Option - da ist ja sogar Source-Code vorhanden ;-)

    "Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind."


    ... und schaut auch mal bei meinem Blog vorbei ...

  • Ich habe, vermutlich von dem schwedischen Universitätsserver, der die ganzen Rainbow-Sachen hat(te?), ein Small-C unter meinem Rainbow-Zeug abgespeichert, das angeblich funktionieren soll ...

    Dateien

    • smallc22.zip

      (129,48 kB, 1 Mal heruntergeladen, zuletzt: )

    NCR DMV/Olivetti M20/ITT 3030/DEC Rainbow 100/Siemens PC-D/OlyPeople/MFA 8085/TA Alphatronic

  • Ich hab mal bei einem der Entwickler des MAME-Rainbow Treibers nachgefragt:


    NCR DMV/Olivetti M20/ITT 3030/DEC Rainbow 100/Siemens PC-D/OlyPeople/MFA 8085/TA Alphatronic

  • Hi,


    da meine Rainbows alle defekt sind, hab' ich unter MAME/MESS Tests mit Turbo-C 2.0 und 2.01 angestellt.


    Für Turbo-C 2.00 gibt es offizielle und inoffizielle Patches im Netz (TC2PAT, TC2PAT2, TC2PATRB). Letztlich hatte ich mit der gepatchten Version 2.0 aber zu häufig unerklärliche Probleme, vor allem beim Linken (trotz FILES=25).


    Zum Test lud ich den im Quellcode verfügbaren JZIP2.0 - Interpreter von Jeff (siehe Anhang).


    Native Rainbow-Programme dürfen keine BGI-Funktionen / TurboVision - Funktionen einbinden. Schirmzugriffe müssen auf VT102- Escapesequenzen umgestrickt werden. Achtung: der Textmodus des Rainbow ist eine verlinkte Liste, die vom BIOS verwaltet wird.


    Ein Kommentiertes BIOS-Listing des Rainbow liegt hier

    https://github.com/shattered/r…ee/master/dec-rainbow100b

    Interessant sind die 8086-Disassemblies, beginnend mit dem Boot ROM.



    Statt uralter Patches nutzte ich schließlich zum Compilieren ein TSR (terminate-stay-resident program) namens RABIT. Das biegt den von Borland annektierten Interrupt 18h automatisch um.


    Somit werden die unbenutzbaren Kommandos TCC.EXE und CPP.EXE verfügbar.

    Ohne Rabit im Hintergrund laufen sowohl TCC.EXE als auch CPP.EXE auf einen Watchdog-Interrupt 16 (d.h.Programmabsturz -> Reboot).


    Ausschließlich im kommerziellen PC-Emulator CodeBlue laufen

    - Borland-IDE (-> TC.EXE) sowie

    - der Installer (-> TCINST.EXE).

    Das liegt an direkten Bildschirmzugriffen (Umgehung mit CodeBlue -> Parameter /v /l).


    In TCINST müssten bei amtlicher Vorgehensweise eigentlich 3 Pfade geändert werden. Beim Verlassen wird die Konfiguration direkt in TC.EXE geschrieben.


    Ohne CodeBlue muß der Programmpfad aus vorhandenen Konfigurationsdateien (*.CFG) gelesen werden. Hauptordner bitte entsprechend umbenennen.


    >SUBST C: E:\

    lenkt eventuelle Zugriffe auf C: auf die primäre Rainbow-Platte um (-> bei Turbo C 2.0 erforderlich).


    ----

    P.S.: bei Turbo-Pascal ist die Lage ähnlich. Die frühen Versionen sind relativ fehlerbehaftet / unsauber (TP 4 und 5.5 liefen relativ vernünftig mit CodeBlue).


    P.P.S. Embarcadero bietet übrigens Turbo-C 2.01 und Turbo-Pacal 5.5 (für PC) gratis an.


    Alle Tests liefen unter DOS 3.10 und MESS mit inoffiziellen Patches, sodaß ich leider nicht 100 % sagen kann, wie sich eine reale Maschine mit DOS 2.01 verhalten wird. Es gab jedoch interne Änderungen, etwa bzgl. FCBS (file control blocks), hier unterscheiden sich Emulation und Softwareumgebungen erheblich (DosBox baut sie z.B. nach, andere bieten FCBS gar nicht oder nur für Lesezugriffe an, aus dem Gedächtnis DOS unter Windows ME).