mc 1/1988: Linien in C mit Hercules

Diskussion zum Thema Programmierung unter DOS (Intel x86)
Antworten
Benutzeravatar
RobertK
MemMaker-Benutzer
Beiträge: 69
Registriert: Do 17. Nov 2016, 11:14
Wohnort: Wien

mc 1/1988: Linien in C mit Hercules

Beitrag von RobertK »

Hier etwas für die Fans der Hercules-Grafikkarte (ich hoffe, es gibt außer mir noch ein paar): in der Zeitschrift mc 01/1988 war ein Artikel zum Thema Hercules-Grafik in C enthalten. Das Listing habe ich neulich eingetippt und damit auch gleich eine kleine Grafik-Demo erstellt. Ich bin doch erstaunt darüber, wie flott das auf meinem Euro PC läuft.
(Die gefüllten Rechtecke sind natürlich langsam, da ich die aus einzelnen Linien erzeuge - das könnte man vermutlich irgendwie performanter lösen.)

Vielleicht möchte noch jemand von euch damit experimentieren? Würde mich freuen, eure Ergebnisse zu sehen. Als C-Compiler habe ich Borland Turbo C 1.0 von 1987 verwendet.

Hinweis: nach dem Beenden der Demo (mit der Escape-Taste) muss ich am Euro-PC immer blind "cls" eingeben, dann sehe ich wieder ein Bild. In DosBox ist das nicht notwendig, da sieht man gleich wieder den Dos-Prompt.

Downloadlink für den Artikel und den Source samt Demo (vorerst über einen File-Hoster, Zip-Anhänge sind ja nicht zulässig):
https://www.NoFile.io/f/lvLxFNC4NBm (mc_1988-01_LinienInCmitHercules_S82-83.zip, 860 KB)

[EDIT 17.1.2017: Zip-Datei in Dropbox aktualisiert. Grund: saubere Trennung zwischen GRAPH.H und der Grafik-Demo, ansonsten keine inhaltliche Änderung]
[EDIT 17.3.2017: Download-Link aktualisiert]
Zuletzt geändert von RobertK am Fr 17. Mär 2017, 10:44, insgesamt 3-mal geändert.
drzeissler
DOS-Gott
Beiträge: 3336
Registriert: Mo 8. Feb 2010, 16:59

Re: mc 1/1988: Linien in C mit Hercules

Beitrag von drzeissler »

na aber, sehr geil, teste ich am WE. Hercules ist cooler als CGA. DANKE!
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
drzeissler
DOS-Gott
Beiträge: 3336
Registriert: Mo 8. Feb 2010, 16:59

Re: mc 1/1988: Linien in C mit Hercules

Beitrag von drzeissler »

kennst du vermutlich: http://forum.classic-computing.de/index ... post102843
habe das aber nicht weiter verfolgt, da mangels Basiswissen nicht kar ist, ob da überhaupt ein Ergebnis zu erwarten ist.
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
drzeissler
DOS-Gott
Beiträge: 3336
Registriert: Mo 8. Feb 2010, 16:59

Re: mc 1/1988: Linien in C mit Hercules

Beitrag von drzeissler »

Der Starfield-Code für CGA, der am EuroPC nur mit HGCIBM läuft müsste sich doch sicher auf natives Hercules umbiegen lassen, oder was meinst Du?
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
Benutzeravatar
RobertK
MemMaker-Benutzer
Beiträge: 69
Registriert: Do 17. Nov 2016, 11:14
Wohnort: Wien

Re: mc 1/1988: Linien in C mit Hercules

Beitrag von RobertK »

Wo liegt denn der Source für die Starfield-Demo? Im VzEkC-Forumseintrag (kannte ich übrigens noch nicht) habe ich nichts gefunden. Ich hoffe, der Code ist nicht in ASM (ist nicht so meins)...

Ich beschäftige mich erst seit kurzem mit Hercules, aber ist nicht eines der Probleme dieser Karte, dass es meines Wissens nur eine Bildseite ("Page") gibt? Bei CGA sind vier Seiten möglich.

Von daher wird es etwas schwierig, eine flüssige bildfüllende Grafik wie einen Sternenflug zu machen. Vielleicht eher im Textmodus, so wie bei der "Three Shades of Gray"-Demo.

Ich bin gerade am Überlegen, ob man mit der von mir geposteten Grafikbibliothek irgendein kleines Spiel machen könnte. Das müsste aber aufgrund der erwähnten Probleme irgendeine Art "Ausfüll"- oder "Ausmal"-Spiel sein. :-)
drzeissler
DOS-Gott
Beiträge: 3336
Registriert: Mo 8. Feb 2010, 16:59

Re: mc 1/1988: Linien in C mit Hercules

Beitrag von drzeissler »

Sorry, ich kann aus Platzgründen den EuroPC derzeit nicht in Betrieb nehmen, das hole ich aber schnellstmöglich nach.
Ich bin relativ sicher, dass es Assembler ist. Stimmt den Code hatte nicht im Thread, das sollte erst Teil2 des Projektes sein.
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
Benutzeravatar
RobertK
MemMaker-Benutzer
Beiträge: 69
Registriert: Do 17. Nov 2016, 11:14
Wohnort: Wien

Re: mc 1/1988: Linien in C mit Hercules

Beitrag von RobertK »

Ich darf dieses Thema nun mit den letzten Erkenntnissen abschließen.

Vorneweg: ich benötige die Grafik-Library GRAPH.H aus mc 1/1988 nicht mehr. Dennoch war das für mich ein guter Einstieg in die Grafik-Welt von Turbo C.

Beim Schreiben meines Spiels H-Tron bin ich auf folgende Problem gestoßen:

1. Turbo C 1.0 besitzt keine Delay()-Funktion, um das Spiel auf allen PCs mit der gleichen Geschwindigkeit laufen zu lassen. Meine Versuche mit einer selbstgeschriebenen Warte-Funktion waren erfolglos, das Timing war leider viel zu ungenau.

2. Die Grafik-Library GRAPH.H hat offenbar irgendein Problem beim Zurückschalten in den Textmodus, die Zeichen werden danach nur teilweise oder gar nicht angezeigt.

3. Es fehlt die Möglichkeit, Text im Grafikmodus auszugeben.

Vor allem wegen Punkt 1 bin ich dann auf Turbo C 2.01 umgestiegen, und dabei habe ich festgestellt, dass dort schon ab Werk eine Grafik-Library (GRAPHICS.H) enthalten war. Jedenfalls waren dann alle meine Probleme gelöst.

Ich habe meine Grafik-Demo testweise auf TC 2.01 mit GRAPHICS.H umgebaut:
https://www.NoFile.io/f/I5CK9fESd8q (GRAPHTC2.ZIP, 25 KB)
Und das Ergebnis ist das gleiche (und das Problem nach dem Beenden ist behoben). Die Geschwindigkeit habe ich noch nicht verglichen, aber sie dürfte in beiden Varianten recht ähnlich sein. *Interessanterweise* läuft jedoch das Auffüllen des Bildschirms mit Punkten mit der alten Library GRAPH.H deutlich schneller.

Fazit: wer mit C Hercules-Grafik erzeugen möchte, sollte besser gleich Turbo C 2.01 verwenden.

[EDIT 17.3.2017: Download-Link aktualisiert]
Zuletzt geändert von RobertK am Fr 17. Mär 2017, 10:45, insgesamt 1-mal geändert.
drzeissler
DOS-Gott
Beiträge: 3336
Registriert: Mo 8. Feb 2010, 16:59

Re: mc 1/1988: Linien in C mit Hercules

Beitrag von drzeissler »

https://archive.org/details/msdos_borland_turbo_c_2.01

11MB ? Hossa.

Mein TurboASM hat 56KB. Ich bekomme aber (noch) nix damit hin.
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
Benutzeravatar
RobertK
MemMaker-Benutzer
Beiträge: 69
Registriert: Do 17. Nov 2016, 11:14
Wohnort: Wien

Re: mc 1/1988: Linien in C mit Hercules

Beitrag von RobertK »

Also wenn ich mir im Reference Manual ansehe, was das alles kann, dann frage ich mich, wie man das alles in 11 MB unterbringen konnte...
Turbo C 1.0 hat aber ungepackt noch auf vier 360K-Disketten gepasst. :cheesygrin:
Antworten