Programmierung ...ein Bedauer

Hallo,

Wie, bitte schön, geht diese Prozedur denn heute vonstatten ?

Wenn der PC hochgefahren ist und man einen Debugger
(zu Not den alten DEBUG von DOS)aufruft, gibt extra einige
fehlerhafte Befehle ein und startet den Müll

ZACK…nichts geht mehr.

Huch? ich mach das anders.
Ich schreibe mein Programm (oder meistens erst nur einen Teil davon), mache einen Testlauf, und wenn es scheinbar tut was soll, füttere ich es mit Testdaten.
Wenn es sich mal aufhängt, dann drücke ich Ctrl+C, und suche den Fehler (manchmal auch mit Debugger, ja).

Wenn das Programm nicht mehr auf Ctrl+C reagiert, gehe ich auf eine andere Konsole und tippe
killall $Programmname
oder, wenn das nicht hilft
killall -9 $Programmname
Dann suche ich den Fehler :wink:

Wenn man bei jedem Fehler im Programm dann den Rechner immer
wieder neu starten muss, wirft man wegens SPASSVERLUST am
Programmieren das Handtuch spätestens beim 5. Absturz oder
Hängenbleiben.

Benutzt du ein Betriebssystem? Oder entwickelst du eins? Wenn ich am Kernel rumbasteln würde, würde ich erstmal ein Modul schreiben, dass ich dann immernoch entladen kann. Oder notfalls in einer Virtual Machine testen.

Gibt es denn keine Methode, den Rechner quasi Ruckzuck wieder
zu resetten, damit man schön flüssig programmieren kann ?

Rechner Resetten? wieso denn?

Damit wir uns nicht falsch verstehen :

Es geht nicht um einen Absturz als solchen, sondern drum, aus
diesem möglichst schnell wieder flüchten und ohne Code,- sowie
Zeitverlust wieder zum Programm zurückzukehren.

Codeverlust? Vor dem kompilieren/durch-den-Interpreter-schicken speichert man doch sein Programm.

Bei dieser ‚Programmierungs-Philosophie‘ geht doch der
EXPERIMENTIER-GEIST vollständig verloren.
Aus Angst, der Rechner stürzt ab und nimmt den Code mit.

Das würde er ja nur passieren, wenn das Programm direkt auf die Festplatte schreibt und dabei das Betriebssystem umgeht. Nee du, ist mir noch nie passiert.

Grüße,
Moritz

Hallo Chris,

Hallo Reinhard,-

ok, wir sind gegensätzlicher Auffassung (wobei mir
Programmieren durchaus Spass macht, aber das ist
nebensächlich): ich denke, heute ist die Herstellung von
Software ein industrieller Prozess wie andere auch, und
unterliegt daher auch den einschlägigen Anforderungen an
Qualitätssicherungen usw.

Dieses habe ich doch auch keineswegs bestritten.
Und es ist auch gut, dass es so ist.

Solange du keinen Arbeitsplatz bei
mir haben möchtest, stört mich deine Auffassung von
Spassprogrammierung auch nicht, sonst würde sich aber die
Frage stellen, ob du an einem solchen Projekt zur Produktion
von z.B. einer Office-Software mitarbeiten kannst oder ob du
eine Gefahr für das Projekt darstellen würdest.

Mit Spassprogrammierung meine ich nicht unbedingt, Müll zu produzieren.
Sondern tatsächlich mit Spass an der Arbeit.
Der Müll, der während der Entwickliungsphasen eines Projektes entsteht, wird eh verworfen.
(Oder als ANSATZ eines ganz neuen Projektes genommen…das meine ich mit Inspiration.)

Ich denke, Du siehst das ganze ein wenig zu verbissen.
Bei der Spielprogrammierung (was ja heutzutage kommerziell ist, wie es kommerzieller kaum mehr geht), steht EFFEKT-HASCHEREI
im Vordergrund.
Und wird vielfach mit jeder Spass zelebriert.
Und ist trotzdem bisweilen ein Mathe-Bombardement höchster Güte.

Ich glaube (per Selbsteinschätzung :wink: )nicht, dass ich ein Projekt gefährden würde.
An Registern herumzufummeln wäre in diesem Falle mein Hobby in der Freizeit.

Desweiteren war und bin ich selbst involviert an Softwareentwicklungen.
Und würde es mir im Traum nicht einfallen lassen, meine Befehlscodes oder Dokumentationen so zu verfassen, dass sie ein anderer, allerdings EBENFALLS INVOLVIERTER(!) nicht mehr lesen kann.

Nach meiner
Erfahrung neigen Spassprogrammierer u.A. dazu, Code mit
Absicht (und auch aus Überheblichkeit) so zu formulieren, dass
ihn niemand sonst versteht - dass steht im krassen Gegensatz
zur Anforderung der Wartbarkeit.

Das ist richtig, wenn es die Wartbarkeit betrifft.

Nur überleg Dir doch dann bitte auch, warum sich Microsoft seit Jahren sträubt, den Quellcode seines Zugpferdes herauszugeben.

ES SOLL NICHT GEWARTET WERDEN.
NUR BENUTZT.
Und regelmässig gepatcht.

Da lob’ ich mir aber dann doch die Philosophie von Linux.
Obwohl mir Bill Gates als Mensch manchmal irgendwie symphatisch erscheint.
Vor allem, wenn man hört, er habe in einer Garage angefangen.

Solche Lösungen sind nicht
„elegant“, sondern einfach nur schlecht. Was immer ein
Mitarbeiter A erstellt hat, muss von B fortgeführt werden
können, ein Grundsatz industrieller Produktion.

Stimmt. Allerdings nur dann, wenn B Projektmässig INVOLVIERT ist.
(Von eleganter Programmierung war keine Rede).

Sollte jemand auf die Idee kommen, in ein von mir
verantwortetes Programm undokumentierte Befehle einzubauen,
wäre das ein Grund zur Abmahnung/fristlosen Entlassung - so
etwas ist für professionelle Software absolut tabu und gehört
ins Hacker-Miljöh. Ich sehe mich da auch völlig einig mit
allen ernstzunehmenden Herstellern von Software.

Stimmt.
Als Chef verstehe ich Dich voll und ganz.

Stellt sich manchmal nur die Frage, warum manch’ eine professionelle Software von einem Hacker-Tool oder hobbymässig entwickelter Software Funktionsmässig getoppt wird.

Dabei meine ich nicht die illegalen Gebiete sondern wirklich Funktionen, die in professioneller Software TROTZ DES HÖHEREN PREISES EINFACH NICHT IMPLEMENTIERT WURDEN UND/ODER UNZUVERLÄSSIG LAUFEN.

Ehrlich gesagt sehe ich auch keinerlei Verdienst darin,
undokumentierte Befehle zu entdecken - man braucht ja bloss
eine Tabelle der möglichen Codierungen zu erstellen und die
entsprechenden Befehle einzutragen, dann bleiben einige leer -
das war schon immer so, seitdem es Prozessoren gibt.

Nicht unbedingt undokumentierte Befehle…das wären ja
dann ILLEGALE OPCODES, die nicht von jeder CPU der gleichen ART verstanden werden würden.

Es geht beispielsweise darum, ein Register in einer Graphikkarte zu ENTDECKEN, dass, wenn bestimmte WERTE nur schnell genug hintereinander in dieses eine Register geschrieben werden, dafür sorgen, dass die Karte das Bild z.B. spiegelverkehrt darstellt.

Weil dann in der Karte ein elektronischer Zustand entsteht, der nirgends dokumentiert sein kann.
(Das ist PIONEERS-GEIST).

Wenn dieser Trick dann bekannt(gemacht) wird und auf jeder Karte läuft, kann sogar professionell entwickelte Software dieses Register benutzen, um Sonder-Funktionen zu realisieren.

Wie gesagt:
Dass dieses nicht in der Arbeitszeit Deiner Firma geschehen kann und könnte, ist verständlich.
(Jedenfalls verständlich, wenn die Firma Geld verdienen soll…)

Ist
eigentlich viel zu trivial für eine ernsthafte Beschäftigung,
ausser eine Fachzeitschrift hat mal wieder nichts zu schreiben
und braucht eine Schlagzeile wie „Intels grosses Geheimnis:
wir haben sensationelle neue Befehle entdeckt“. Vielleicht ein
netter Spass, aber professioneller Müll.

Gruss Reinhard

Manchmal lässt sich mit einem netten Spass die Welt aus den Angeln heben.
Und sobald Geld fliesst…

Die Profis behaupten dann, es war ihr Verdienst.

Umgekehrt manchmal auch.
Weil Profis in der Tat auch eine Ecke in ihrem Gehirn haben, die spielen will…

Sooo unterschiedlich sind Programmierer nie.

Gruss,

Have a nice Day

Chris

Hallo Reinhard

Hallo Semjon, Hallo Reinhard

für die meisten ist es überhaupt keine Frage des Spasses, ein
Programm zu schreiben, sondern Arbeit, und an die sollte man
verantwortungsbewusst herangehen …

Das ist, wenn es denn stimmt, mit Sicherheit
ein Grund für die „Krise der Softwareindustrie“ :wink:

Chris :
JUPP.Und ein grosser.Nicht der einzige.Aber ein grosser.

Ich plane meine Software möglichst so, dass sie beim Codieren
keine Fehler mehr enthält - dann muss ich auch keine Debuggen.
Ein Programm, das sich aufhängt, ist schon Folge eines
Planungsfehlers, wahrscheinlich habe ich irgendwelche
Unterlagen nicht richtig gelesen oder interpretiert.

Das trifft sicher auf bestimmte Arten von
Programierarbeiten zu (Software-Architektur), diese
ist aber (imho) an ganz andere Voraussetzungen gebunden.

Chris :
Nun, klein und gross ist wirklich relativ.
Denn 1KB BASIC-Code ist schnell erreicht.
Aber 1KB pur Assembler dauert doch schon e bissje länger.
Bei gleichzeitiger Potenzialsteigerung des Programm, of course.

Trotzdem - einen Aufhänger oder fatalen Programmabbruch
betrachte ich als persönliche Niederlage.

Chris :
Wie ich schon sagte:
Ich als Inspiration.

Das Problem kommt dann, wenn Du (‚als ewig Lernender‘)
den ausgetretenen Pfad erstmals verlässt und Dich in
Komplexitäten hineinwagst, welche Du nicht voll überschaust,
während Du sie angehst. Dort gibt es nur den ‚iterativen
Weg‘ der Programmierung, welcher sogar ein modernes
Programmierparadigma darstellt.

Chris :
Und da diese moderne Philosophie schon alt ist, könnte ich wagen
zu behaupten, dass es die beste ist…
Sicherlich nicht in jedem Bereich.
Aber für alles gibt es eine Lücke.

Also hör auf, der Vergangenheit hinterherzujammern und
beschäftige dich mit heutiger Programmiertechnik - oder setz
dich an deinen Nierentisch, schalte die Tütenlampe ein und
höre eine Schellackplatte mit Caruso, während du deinen C64
startest.

Chris :
Als wär eine Schallplatte schlecht…

Ich habe mal überlegt, warum ich, so ich eine
Softwarebude hätte, instinktiv zögern würde, Leute
über 35 oder gar über 40 als Programmierer einzustellen -
aber das hängt vielleicht mit solchen Dingen bzw. ein-
stellungen zusammen. Software-Architektur ist ein
wichtiger (grundlegender) Aspekt, aber man muss auch
bereit und in der Lage sein, seine Segel wieder zu
setzen und sich auf unerforschte Meere vorzuwagen :wink:

Chris :
OHA.
Lieber Semjon, da hätte ich ja grade noch ne Chance…
Bin nämlich 33 .
Ob das jetzt unbedingt am Alter liegen MUSS…
Schade ist es allemal, dass man im höheren und zweifellos weiseren
Alter den Pfad des Experimentierens verlässt…ob gezwungen oder
nicht…

PS du kennst ja noch nicht einmal die Vergangenheit richtig:
einen Lochkartenstapel mit ALGOL im Rechenzentrum abzugeben,
um dann 2 Tage später zu erfahren, dass du dich im Feld 38 der
135. Lochkarte vertippt hast - das macht keinen Spass.

Chris:
Verständlich.

Es geht, wenn ich es richtig verstanden habe, einfach um
einen effektiven Lernprozess, um ein tiefes „sich vertraut“
machen durch das Experiment, welches Spass macht.

Chris :
SO IST ES.
UND EIN SCHÖNES GEFÜHL IST AUCH DABEI.

DER WEG, UM WISSEN ZU ERLANGEN, IST VIELFACH SCHÖNER ALS DAS
WISSEN SELBST.

Grüße

CMБ

Grüsse,

Have a nice Day

Chris

Hallo,

Ich stelle diese nun folgende, mehrzeilige Frage an alle, die
auf dem PC in Assembler oder in C programmieren.

gehen ‚ehemalige‘ Assemblerprogrammierer auch? :smile:

Ehemalig ?
Wie schade.

Ich frage mich allen Ernstes, wie es auf dem PC Spass machen
kann, ein Programm zu schreiben.

Was macht am Schachspielen Spaß? Erst denken, dann handeln und
sich danach über den Erfolg freuen.

Irgendwann hatte man dann den Fehler gefunden UND sogar noch
einen Grafik-EFFEKT entdeckt, der durch den ursprünglichen
Fehler im Programm AUSGELÖST wurde !

Ja,? Da habe ich auch schon erst im kommentierten Romlisting
gelesen, und dann gezielt den Grafikspeicher beschrieben. Die
Grafik-effekte waren nicht zufällig sondern ich habe bewußt
Teile des BS für meine Zwecke verwendet um Platz für Code zu
sparen. Hätte ich mich dabei auf den Zufall verlassen, wären
die Programme heute noch nicht fertig.

Nein-Nein-Nein.
Nicht BS.
Es geht nicht um die Chips.
Es geht um die CHIPS.
Das BS benutzt z.B. die Grapikkarte laut deren Spezifikation.
Also laut Hersteller.

So eine Karte kann jedoch in ihrer Funktion enorm erweitert werden.
Und zwar mit z.B. mit einer Art ihre Register zu beschreiben, die der Hersteller so nicht vorgesehen hat.

Wenn z.B. Hersteller sagt, Register $0001 ist für Video-Ram und darf nur 1mal pro Frame (alo pro Bild) beschrieben werden, so anlysiert man als Entdecker (lol!) was nun passiert, wenn man dieses Register 10000mal (!) pro Frame mit anderen Werten als Herstellerseitig angegeben, beschreibt.

Und während man dann so experimentiert, weiss man plötzlich, wie die Karte 2 Bilder gleichzeitig darstellen kann,OBWOHL ES EINE ALTE KARTE IST, DIE DIESES REGISTERMÄSSIG GAR NICHT KANN !

Und genauso gehen Demo-Programmierer vor, die z.B. auf dem Gameboy-Color einen Grafikmodus entdecken, den der Gameboy-Color laut Hersteller gar nicht hat !

Und dies ist natürlich bei heutigen Karten genauso möglich als früher auf den Homecomputern.

Es geht nicht um einen Absturz als solchen, sondern drum, aus
diesem möglichst schnell wieder flüchten und ohne Code,- sowie
Zeitverlust wieder zum Programm zurückzukehren.

Kein Windows verwenden, das brauchst Du für solchen Code
nicht. Dann stört auch das Multitasking nicht so und Du darfst
wieder die Hardware beschreiben.

Bei dieser ‚Programmierungs-Philosophie‘ geht doch der
EXPERIMENTIER-GEIST vollständig verloren.

Ja, geht er. Wenn Du weißt, was Du tust, mußt Du nicht
‚probieren‘.

Siehe oben.

Die Sache mit dem " Was passiert denn, wenn ich DIESES
Register mit einem illegalen Wert beschreibe…’ macht doch
erst den Geist spannender Programmierung aus.

Nö. Das Ziel, den einzigen undokumentierten Befehl zu finden,
habe ich noch nie verstanden. Ich habe immer lieber in der
Zeit ein Spiel geschrieben und wenn ich dabei auf ein Problem
gestoßen bin, bei der Lösung etwas dazu gelernt.

Siehe oben.

Gruß, Rainer

have a nice Day.

Chris

Hi Christoph,

Ehemalig ?
Wie schade.

so einfach wie auf dem plus4 ist es eben nicht mehr. :smile: Damals bin ich mit einem Buch und Übung zurecht gekommen. Versuche ich das jetzt, fürt das zu keinem lauffähigen Programm.

Nein-Nein-Nein.
Nicht BS.
Es geht nicht um die Chips.
Es geht um die CHIPS.
Das BS benutzt z.B. die Grapikkarte laut deren Spezifikation.
Also laut Hersteller.

So eine Karte kann jedoch in ihrer Funktion enorm erweitert
werden.
Und zwar mit z.B. mit einer Art ihre Register zu beschreiben,
die der Hersteller so nicht vorgesehen hat.

Wenn z.B. Hersteller sagt, Register $0001 ist für Video-Ram
und darf nur 1mal pro Frame (alo pro Bild) beschrieben werden,
so anlysiert man als Entdecker (lol!) was nun passiert, wenn
man dieses Register 10000mal (!) pro Frame mit anderen Werten
als Herstellerseitig angegeben, beschreibt.

Und während man dann so experimentiert, weiss man plötzlich,
wie die Karte 2 Bilder gleichzeitig darstellen kann,OBWOHL ES
EINE ALTE KARTE IST, DIE DIESES REGISTERMÄSSIG GAR NICHT KANN
!

Und genauso gehen Demo-Programmierer vor, die z.B. auf dem
Gameboy-Color einen Grafikmodus entdecken, den der
Gameboy-Color laut Hersteller gar nicht hat !

Und dies ist natürlich bei heutigen Karten genauso möglich als
früher auf den Homecomputern.

OK, nun habe ich Dich verstanden. :smile:

Gruß, Rainer

Paul Graham spricht:

Paul Graham ist ein netter, fähiger Mann, aber nicht unbedingt berühmt für seine Low-Level-Hackerei.

„I tended to just spew out code that was hopelessly broken,
and gradually beat it into shape.“

Das widerlegt nicht unbedingt was ich gesagt habe. Es besteht immernoch ein riesiger Unterschied zwischen „hopelessly broken code“ und „illegalen Werten in irgendwelchen Registern“.

Das eine passiert, wenn man ungefähr weiß, was man tun will und sich dann im Code verläuft. Das andere passiert, wenn man einem Kind ein Maschinengewehr in die Hand drückt. Es kann etwas gutes dabei herauskommen, aber die Chance ist einfach nur sehr verdammt klein. Aus irgendeinem Grund ist es auch keine Kunst, wenn ein Kleinkind auf Leinwand kotzt, auch wenn das Resultat diverser anerkannter Künstler oft verdammt danach aussieht.

Ein echter Künstler kennt sein Medium und seine Werkzeuge. Überträgt man das auf die Low-Level-Programmierung, dann bedeutet das, dass sich der Programmierer eben ein Register anschaut und im Vorfeld eine mögliche Nebenwirkung erkennt. Die probiert er dann aus. Ob er dabei erstmal zehntausend Flüchtigkeitsfehler macht ist egal, das wichtige ist, dass er im Endeffekt weiss was er tut. Genauso sind viele großartige Gemälde nicht im ersten Anlauf entstanden, sondern sind das Resultat einer langen Evolution. Der Künstler hat sich vorher Skizzen gemacht, hat die Komposition des Bildes festgelegt, hat sich überlegt, an welchen Stellen er eine Grundfarbe braucht um zB Hauttöne realistischer zu machen, und viele andere Kleinigkeiten.

Hi,

Deine Registertricks in allen Ehren, aber für kommerzielle Software taugen die nichts. Alles, was nur auf einer bestimmten Grafikkarte funktioniert, hat auf dem Markt keine Chance. Und da schon zwischen den einzelnen Karten eines Marktsegmentes bei einem Hersteller Hardwareunterschiede bestehen, ist für solche Tricks schon gar kein Platz mehr. Sicher, es ist ganz spassig einen netten Effekt zu finden. Aber vermarkten lässt sich das eben nicht mehr. Der PC ist nun mal keine Konsole mit fest vorgegebener Hardware.

Zu Deiner Reset-Orgie: Wenn Du Dich ein wenig mit Deiner Entwicklungsumgebung (und damit meine ich Betriebssystem, Remote-Debugger, Crosscompiler etc) beschäftigst, dann wirst Du sicher nicht allzu oft die Resettaste bedienen.

Wenn es Dir allerdings nur um den Spass an irgendwelchen Effekten geht, die Du in Assembler coden willst, dann beschäftige Dich mit Shadern, da kannst Du Dich austoben ohne die Kiste resetten zu müssen.

Gruss,

Herb

Hallo Herb,

Hi,

Deine Registertricks in allen Ehren, aber für kommerzielle
Software taugen die nichts.

Da hast Du leider recht.

Alles, was nur auf einer
bestimmten Grafikkarte funktioniert, hat auf dem Markt keine
Chance.

Da hast Du leider noch mehr recht.

Und da schon zwischen den einzelnen Karten eines
Marktsegmentes bei einem Hersteller Hardwareunterschiede
bestehen, ist für solche Tricks schon gar kein Platz mehr.

Und damit schiesst Du den Vogel ab und hast leider am rechtesten.

Sicher, es ist ganz spassig einen netten Effekt zu finden.
Aber vermarkten lässt sich das eben nicht mehr. Der PC ist nun
mal keine Konsole mit fest vorgegebener Hardware.

Unglaublich.
Wie oft soll ich Dir noch recht geben ?
Man könnte glatt denken, Du kämst aus der Tüftler-Ecke ?!

(Mal sehen, ob sich die Entwickler der PC-Board’s in den nächsten, (bestimmt langen, langen) Jahren wieder auf die intelligente Ebene der Plattformen zurückbesinnen…mal abwarten…)

Konsolen…tja…

Da hab’ ich mir auch schon Gedanken gemacht und in der Tat :

Ich würde höllisch gern auf Playstation oder GBA oder X-Box programmieren.
Da ist der Direkt-Zugriff auf die Hardware-Register noch nicht blockiert…grins

Da müsste ich aber dann wirklich viel mehr wissen über die notwendige Entwicklungsumgebung.
Wie bekommt man denn ein Developper-Kit ?

Hatte vor einigen Jahre 'nen Bekannten der kommerziell für Nintendo Graphiken entwarf mit nem Special- Gameboy und anderer Interface-Hard und Software.
Weiss leider nicht mehr, wo er wohnt .

Gibts ein paar Seiten, die mich in der Richtung weiterbringen KÖNNTEN ?

Zu Deiner Reset-Orgie: Wenn Du Dich ein wenig mit Deiner
Entwicklungsumgebung (und damit meine ich Betriebssystem,
Remote-Debugger, Crosscompiler etc) beschäftigst, dann wirst
Du sicher nicht allzu oft die Resettaste bedienen.

Mich würde auch der Windows-Quellcode reizen…

Davon mal abgesehn:

Da Windows ja sehr wahrscheinlich relokatibel programmiert wurde, tät ich mal gern wissen, wie man herausbekommt, an welche Adresse beim Start Windows geladen wird…da sich diese ja (natürlich!) abhängig von der Speichersituation immer wieder ändert…

Ansonsten zum RESET wie schon gesagt:

Ich bin nicht der Reset-Fanatiker…

Ich hab’ auch die Antworten der anderen sehr wohl verstanden.
Es ist wohl eine totale Neu-Strukturierung der Entwicklungsarten.

Allerdings ist es doch wunderbar, dass einem das Betriebssystem manchmal die Arbeit abnimmt, den Rechner abstürzen zu lassen, OHNE dass man einen Fehler machte…lach.

Wenn es Dir allerdings nur um den Spass an irgendwelchen
Effekten geht, die Du in Assembler coden willst, dann
beschäftige Dich mit Shadern, da kannst Du Dich austoben ohne
die Kiste resetten zu müssen.

Nicht nur, aber auch.

Mich interressiert vor allem die TREIBER-Programmierung einer Karte.
Und zwar, wie Du richtig erkanntest, nicht aus kommerziellen Gründen, sondern aus INTERRESSE.
Dazu müsste man mal die Harware-Registerbelegung eine Karte in Händen halten.

Früher war übrigens bei einem Gerät ein Schaltplan dabei…

Heute bekommt man eine Karte, ein bissjen Treiberdiskette und ansonsten überhaupt KEINE INFOS ÜBER DIE KARTE SELBST .

Gibts da im Net irgendwelche Seiten, die ein Hardware-Herz befriedigen ?

danke und

have a nive Day

Chris

Hi ho,

Man könnte glatt denken, Du kämst aus der Tüftler-Ecke ?!

das war mal…

Wie bekommt man denn ein Developper-Kit ?

Ganz einfach: Vom Hersteller. Die Dinger kosten aber Unsummen. Man kann bei der XBox auch noch auf andere Weise rumspielen, allerdings hat man dann nicht die Entwicklerdoku, und die ist schon sehr hilfreich.

Gibts ein paar Seiten, die mich in der Richtung weiterbringen
KÖNNTEN ?

Für die XBox: http://sourceforge.net/projects/openxdk/

Mich würde auch der Windows-Quellcode reizen…

Dann begib Dich direkt zu Microsoft, gehe nicht über Los, ziehe keine $200 ein… :wink:

Da Windows ja sehr wahrscheinlich relokatibel programmiert
wurde, tät ich mal gern wissen, wie man herausbekommt, an
welche Adresse beim Start Windows geladen wird…da sich diese
ja (natürlich!) abhängig von der Speichersituation immer
wieder ändert…

Das hab ich mal irgendwo im Platform SDK zu Windows gelesen und wieder vergessen. Die MSDN bei Microsoft hat dazu alle Informationen, genau wie die nötigen Schritte um einen Remotedebugger anzuschliessen, mit dem Du den Bootvorgang debuggen kannst.

Mich interressiert vor allem die TREIBER-Programmierung einer
Karte.
Und zwar, wie Du richtig erkanntest, nicht aus kommerziellen
Gründen, sondern aus INTERRESSE.
Dazu müsste man mal die Harware-Registerbelegung eine Karte in
Händen halten.

Für NVidia: Schon mal da http://developer.nvidia.com/page/documentation.html geguckt?
Allerdings wird Dir keiner der beiden grossen Grafikkartenhersteller bei der Treiberprogrammierung behilflich sein, das ist deren Heiliger Gral, da steckt für die zu viel Geld drin, als dass sie darüber Informationen rauslassen.
Du könntest allerdings bei denen anheuern, dann stehen Dir sicher aller Informationen zur Verfügung :wink:

Früher war übrigens bei einem Gerät ein Schaltplan dabei…

Der Schaltplan des Board einer Grafikkarte bringt Dir genau gar nix, wenn Du einen Treiber schreiben willst. Und den Bauplan eines Grafikchips willst Du nicht wirklich analysieren *sehr breit grins*

Gibts da im Net irgendwelche Seiten, die ein Hardware-Herz
befriedigen ?

Hm, über die Architektur von Grafikkarten gibts ein sehr gutes Forum, das ist bei http://www.beyond3d.com zu finden.
Was man sonst noch so mit GPUs machen kan (General-Purpose computation on GPUs): http://www.gpgpu.org/developer/

Gruss,

Herb

1 Like

Hallo Peter

Software wird heute ganz anders entwickelt. Sonst wäre es
überhaupt nicht möglich wirklich große Programme zu schreiben.

Hast Du hier nicht etwas in die falsche Kehle
bekommen? Christoph fragt, wie man heute den
„Bastelansatz“ realisiert - und Du hebst den
gehobenen Zeigefinger und beschimpfst ihn
wegen „Bastelansatz“? Hehe!

Danke Semjon.
Jupp.
Korrekt.

Selbst zum kleinsten Programm gehört eine Spezifikation,
die die Anforderungen enthält. Daraus erstellt man ein
Analysemodell, das die fachlichen Abläufe richtig be-
schreibt. Daraus entsteht dann das Designmodell, das
die technische Realisierung darstellt.

LOL. Jetzt ist mir beinahe die Kaffeetase runterge-
plumpst :wink:

Ein Analyse-Modell um z.B. ein paar Schalter abzufragen oder eine LED blinken zu lassen ?

GO:
… Lda Port…(lade 8 Bit-Port)
… Eor $01…(1. Bit rumdrehen)
… Sta Port…(Wert zurückschreiben)
… Jsr $Delay…(Verzögerung…irgendwo im Ram…)
Jmp GO

War nur’n Beispiel…
Wirklich sehr viele Probleme und Programme sind verschwindend klein.
Wenn alles aus 3D und 30 Programmierern bestehen würde…OH GOTT !

Und jetzt musst du stark sein:
Die Programmierung macht der Computer. Oder der Inder oder
Chinese oder Russe. Jedenfalls der, der am wenigsten dafür
verlangt.

Nein, C. frug nach einer ganz anderen Art
von „Programmierung“, nämlich der, bei der der
am schnellsten aus seinen Fehlern lernt, der pro
Zeiteinheit am meisten Fehler machen kann.

Ja.
ICH will (schnelle) Fehler machen.
Und (schneller) daraus lernen.
Der Inder, Russe oder Berliner vielleicht auch.

Es gibt Laufzeitumgebungen, in denen du auch Assembler und C
und was weiss ich noch alles in einer Sandbox ablaufen lassen
kannst. Da raucht nix ab.

Manchmal raucht so ein System ja ab, ohne was zu machen.

Während man eine schöne Tasse Kaffee trinkt.

Und tut sich dann die halbe Nacht fragen, warum Microsoft nicht wenigstens eine genaue Erklärung des regelmässigen AUSNAHME-Fehlers
liefern kann…
Wenigstens ist der Screen schön Blau…C 64 like eben…lol :wink:

Dachte übrigens, im Sandkasten spielt man…

Du hättest in ja mal zu so einer (vernünftigen)
„Sandbox“ hinführen können :wink:

Jo.

Und für Funktionalitäten nutzt man
Bibliotheken und nicht Zufallsfunde
in der Compileroptimierung.

Es ist und KANN aber nicht alles richtig und gut sein, was in Librarys
steht, die andere erstellt haben.

Das man dieses tun muss um kompatibel zu bleiben ist natürlich genauso richtig wichtig, wie es ein Trauerfall ist.

Wie hast Du denn angefangen, damals? Hast Du ein
Analysemodell, das die fachlichen Abläufe
richtig beschreibt‘ erstellt?

Hat das Spass gemacht ? :wink:

Grüße & nix für ungut

CMБ

Also mir macht das Basteln mit Gattern, sowie das Coden auf alten Rechnern auch heute noch Spass…
Da wusste man noch, was man hatte, smile.

Have a nice day

Chris