Folien zum Vortrag auf dem VCFE 2015. Es wird ein Emulator von klassischen HP-Taschenrechnern der 1970er-Jahre auf Homecomputern der 1980er-Jahre beschrieben.
3. Hewlett-Packard-Qualität
Klassische HP-Taschenrechner
Hardware und Maschinensprache
Taschenrechnersoftware
Emulation auf alten Homecomputern
Demo
HP-Taschenrechner emulieren
4. HP stand für Spitzenqualität bei
Taschenrechnern
Vorreiter bei wissenschaftlichen und
Finanztaschenrechnern
Sehr gute Verarbeitung
Hochwertige Rechenroutinen
Ausgezeichnete Dokumentation
Hochpreisig
15. Die CPU stellt einen passenden
Befehlssatz bereit
Arithmetische Operationen (+, -, inc, dec)
Transfer Speicher/Register Register
Laden von Konstanten in Register
ROM-Bänke selektieren
Sprünge und Unterprogrammaufrufe
Tastenabfrage, Display ein/aus
Sonstige
16. Feldselektoren für arithmetische
Operationen auf „Registerteile“
• M Mantissa
• MS Mantissa and Sign
• X Exponent
• XS Exponent Sign
• S (Mantissa) Sign
• P Nibble Nummer “P“
• W Word (ganzes Register)
• WP Nibbles 1 bis P
17. Beispiele für Befehle
C + 1 C [XS]
A + C C [M]
A EXCHANGE C [W]
LOAD CONSTANT 8
IF S1 # 1
GO TO LNC9
JSB NORMALIZE
RETURN
22. Emulieren auf 8-Bit-Rechnern
ist ganz gut machbar
Einfache Maschinensprache
Keine zeitkritische Grafik
Kleine Programm-ROMs
Kleines RAM
Open-Source-Emulatoren in C als Vorlage
(z.B. Nonpareil)
23. Register, Programm-ROM und
Interpreterschleife
Hauptspeicherbereiche für
Register und Speicher
Programm-ROM
Interpreter:
loop:
op_code = rom[PC++]
function_addr = address_table[op_code]
jsr (function_addr)
jmp loop