Forum: PC-Programmierung HP 9816 Rechner


von Tintenfisch9 (Gast)


Lesenswert?

Hallo,

ich habe ein großes Problem. Zwecks meiner Diplomarbeit muss ich mich in 
eine wohl aus der Steinzeit kommende Bedienungsanleitung eines 
technischen Gerätes quälen. Ich bin hier kurz vor der Aufgabe und 
überlege das Thema zu wechseln.

Um die Situation vielleicht doch noch in den Griff bekommen zu können 
benötige ich wissen zu einer Programmierspache die hier zu jeder Theorie 
als praktisches Beispiel abgedruckt ist. Sie ist auf einem HP 9816 
Rechner geschrieben, beinhaltet also wahrscheinlich Code in einer alten 
Basic Variante. Für mich scheint sie aus einer Mischung aus C und 
Assembler zu bestehen.
Im Internet bekamm ich in Sachen alte Basic Versionen nicht viel mehr 
als die Information das man Rechner früher nur zum Programmieren kaufte 
und somit immer eine Basic version beilag, diese Version varrierte 
stark...so das es heute extrem viele Basicversionen gibt.

Kennt sich hier wer gut mit dem HP 9816 aus und kann mir eine gute 
Informationsquelle nennen um den Code hier endlich ordentlich verstehen 
zu können?

Liebe Grüße

von Karl H. (kbuchegg)


Lesenswert?

Übertreib nicht.
Es stimmt schon, dass die Bandbreite dessen was sich BASIC nannte 
ziemlich weit gesteckt war.
Die grundlegenden Dinge waren aber immer gleich. Lediglich wenn es um 
irgendwelche gerätespezifischen Eigenheiten ging, wie zb Ansprechen 
einer Floppy oder Drucker oder direkter Zugriff ins Video-Memory, 
unterschieden sich die Dinger.
Aber abgesehen davon galt die Devise: Kannst du 1 BASIC kannst du (mit 
Ausnahme dieser Besonderheiten) alle anderen BASIC's zumindest lesen.

von Helmut S. (helmuts)


Lesenswert?

Hier geht es bestimmt um das Rocky Mountain Basic (RMB) von HP.
Wir hatten damals (1982+) hauptsächlich HP9836 Rechner zum Ansteuern von 
Messgeräten. Dises RMB ist um Welten besser als das schrottige Basic das 
es damals (1982-1992) von MS gab. Besonders gelungen ist bei dieser 
Sprache die Integration der Messgeräteansteuerung über HPIB(IEEE488, 
IEC-Bus, GPIB). Die Rechner hatten 680xx Prozessoren falls dir das etwas 
sagt. Alte Erinnerungen werden wach ...

Lass dich wegen dem BASIC nicht entmutigen. Glaub mir das ist nicht 
schwerer zu verstehen als wenn du heute den C-Code lesen müsstest den 
vor 20 Jahren ein E-Techniker verbrochen hat. Einziger Wermutstropfen: 
RMB ist wohl  heutzutage mausetot. Musst du denn die ganze Arbeit in RMB 
machen oder darfst du das auf eine andere Sprache/Hardware(PC) 
übertragen.

http://en.wikipedia.org/wiki/Rocky_Mountain_BASIC

Diese Firma versucht einen Migrationspfad auf PCs zu schaffen. Hab keine 
Ahnung wie gut das klappt.
http://www.htbasic.com/index.asp

von yalu (Gast)


Lesenswert?

Ich habe hier

  http://retrocalculator.com/software/#YATZ9816

ein Beispielprogramm (YATZ 9816) gefunden, das für einen HP 9816
geschrieben wurde und heruntergeladen werden kann. Ist das die
Programmiersprache, um die es geht? Laut Autor ist es Rocky Mountain
BASIC 2.0, also genau das, was auch Helmut S. vermutete.

Das ist in einen Augen aber keine Mischung aus C und Assembler, sondern
eher eine aus 80er-Jahre-BASIC und Fortran 77. Aber sehr schwierig ist
die Sprache wirklich nicht, da hat Karl Heinz völlig recht. Die meisten
Konstrukte sollten doch auch für den Nicht-BASIC-Kundigen selbsterklä-
rend sein:

FOR i=1 TO n … NEXT i                  Zählschleife
IF a>0 THEN … ELSE … END IF            Bedingte Ausführung
WHILE a>0 … END WHILE                  Schleife mit Prüfung am Anfang
REPEAT … UNTIL a>0                     Schleife mit Prüfung am Ende
SELECT x CASE 1 … CASE 2 … END SELECT  Switch-Case in C
GOTO label                             Sprung zu Sprungmarke
label:                                 Sprungmarke
GOSUB label                            Unterprogrammaufruf (old-style)
RETURN                                 Rückkehr aus Unterprogramm
uprog(10)                              Unterprogrammaufruf mit Argument
SUB uprog(INTEGER x) … SUBEND          Unterprogrammdef. mit Argumenten
INTEGER x                              Variablendeklaration
DIM a[10]                              Arraydimensionierung
a(3)                                   Array-Zugriff
var$                                   Stringvariable
! Kommentar                            Kommentar
…; …; …                                Mehrere Anweisungen pro Zeile
str1 & str2                            Konkatenation von Strings

Die eingebauten Befehle und Funktionen erklären sich meist durch ihren
Namen. Die, bei denen dies nicht der Fall ist, sind oft auch nicht so
wichtig ;-)

Eine Besonderheit dieses BASIC-Dialekts sind die COM-Konstrukte, mit
denen globale Variablen deklariert werden. Sie entsprechen funktionell
und syntaktisch (bis auf den Namen) den COMMON-Blöcken in Fortran 77.
Beispiel:

  COM name var1, var2, var3

Der (optionale) Name zwischen den beiden Schrägstrichen ist so eine Art
Namespace, über den dieser Block globaler Variablen aus anderen Pro-
grammteilen referenziert werden kann.

Eine ausführlichere Erklärung der COMMON-Blöcke findet sich bspw. hier:

  http://www.obliquity.com/computer/fortran/common.html

So, damit ist jeder, der diesen Beitrag gelesen hat (einschließlich mir
selbst, der die Sprache vorher auch nicht kannte) und noch etwas eigenen
gesunden Menschenverstand mit einbringt, ein mindestens durchschnitt-
licher RMP-Prgrammierer und kann künftig auch in Bewerbungen damit prah-
len ;-)

Viel Spaß beim Reverse-Engineering alter HP-9816-Programme :)

von Helmut S. (helmuts)


Lesenswert?

Zum HP98xx Diskettenformat
Es gibt das Programm LIFUTIL um die Disketten vom HP98xx auf einem PC zu 
lesen.

http://www.home.agilent.com/agilent/editorial.jspx?cc=US&lc=eng&ckey=1000000786:epsg:sud&nid=-11143.0.00&id=1000000786:epsg:sud

von Tintenfisch9 (Gast)


Lesenswert?

Danke für eure Hilfe. Zum Glück muss ich garnichts in dieser alten Basic 
Sprache Programmieren. Controller (GPIB-->RS232) wird in C beschrieben 
und PC-Steuerung über Labview.

Es handelt sich tatsächlich um die Ansteuerung eines GPIB Buses. Ihr 
habt auch recht das sich die meisten Befehle gut erklären lassen, den 
Grundcode hatte ich auch verstanden. Aber vorallem am Anfang hat man 
selbst sehr hohe Erwartungen an sich selbst. (will alles verstehen) ;-)

Mit freundlichen Grüßen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.