Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
z9001:software:chip_8 [2021/02/22 08:38] – volkerp | z9001:software:chip_8 [2022/08/02 10:15] (aktuell) – [Interna] volkerp | ||
---|---|---|---|
Zeile 19: | Zeile 19: | ||
* {{ : | * {{ : | ||
* {{ : | * {{ : | ||
+ | * {{sonstiges: | ||
Hinweis: Die Timer für Sound und Delay arbeiten offenbar nicht korrekt. | Hinweis: Die Timer für Sound und Delay arbeiten offenbar nicht korrekt. | ||
Zeile 77: | Zeile 78: | ||
===== Interna ===== | ===== Interna ===== | ||
- | Der eigentliche CHIP-8-Maschinencode-Interpreter basiert auf dem Programm Chip83 v0.1 by Joe Wingbermuehle; | + | Der eigentliche CHIP-8-Maschinencode-Interpreter basiert auf dem Programm Chip83 v0.1 by Joe Wingbermuehle; |
- | Load/Save setzt die BDOS-Erweiterung von USB-OS bzw. Disk-OS (USBX bzw. DOSX) voraus. Ohne diese Erweiterung | + | Load/Save setzt die BDOS-Erweiterung von USB-OS bzw. Disk-OS (USBX bzw. DOSX) voraus. Ohne diese Erweiterung |
===== Links ===== | ===== Links ===== | ||
Zeile 84: | Zeile 85: | ||
z.B. auf http:// | z.B. auf http:// | ||
- | * COSMAC_VIP_Instruction_Manual_1978.pdf | + | |
- VIP Kaleidoscope | - VIP Kaleidoscope | ||
- VIP Video Display Drawing Game | - VIP Video Display Drawing Game | ||
Zeile 105: | Zeile 106: | ||
- VIP Strike-9 | - VIP Strike-9 | ||
- VIP Card Game (like the well-known acey-ducey) | - VIP Card Game (like the well-known acey-ducey) | ||
- | * VP-710_RCA_COSMAC_VIP_Game_Manual_Dec78.pdf | + | |
- VIP Pinball (Andrew Modla) | - VIP Pinball (Andrew Modla) | ||
- VIP Message Center (Andrew Modla) | - VIP Message Center (Andrew Modla) | ||
Zeile 125: | Zeile 126: | ||
===== CHIP-8 ===== | ===== CHIP-8 ===== | ||
- | Details zur Programmiersprache s. [[homecomputer: | + | Details zur Programmiersprache s. [[homecomputer: |
| virtueller Prozessor | 16 Register V0..VF\\ Index-/ | | virtueller Prozessor | 16 Register V0..VF\\ Index-/ | ||
Zeile 260: | Zeile 261: | ||
| 0mmm | MLS@mmm | | 0mmm | MLS@mmm | ||
- | Die Assemblerbezeichnungen entsprechen http:// | + | Die Assemblerbezeichnungen entsprechen http:// |
Zeile 269: | Zeile 270: | ||
Programm | Programm | ||
< | < | ||
- | 200: A2 10 61 00 62 00 D1 25 | + | 200: A2 10 61 00 62 00 D1 25 |
208: D1 25 71 01 72 01 12 06 | 208: D1 25 71 01 72 01 12 06 | ||
- | 210: F0 90 F0 90 F0 00 00 00 | + | 210: F0 90 F0 90 F0 |
</ | </ | ||
- | Assembler-Code | + | Assembler-Code |
- | + | < | |
- | < | + | 200: |
- | L200: LD | + | 202: LD V1, #00 ; 6100 |
- | LD V1, #00 ; 6100 | + | 204: LD V2, #00 ; 6200 |
- | LD V2, #00 ; 6200 | + | 206: L206 |
- | L206: DRW V1, V2, #5 | + | 208: DRW V1, V2, #5 ; D125 und wieder |
- | DRW V1, V2, #5 | + | 20A: ADD V1, #01 ; 7101 |
- | ADD V1, #01 ; 7101 | + | 20C: ADD V2, #01 ; 7201 und unten verändern |
- | ADD V2, #01 ; 7201 und unten verändern | + | 20E: JP |
- | JP | + | |
- | ; | + | 210: L210 DB |
- | L210: db #F0, #90, #F0, #90, #F0 ; Sprite " | + | 211: |
+ | 212: | ||
+ | 213: | ||
+ | 214: | ||
</ | </ | ||
- | |||
==== Beispiel: Zähler ==== | ==== Beispiel: Zähler ==== | ||
Zeile 294: | Zeile 297: | ||
Beispiel 3 aus "RCA COSMAC VIP Instruction Manual" | Beispiel 3 aus "RCA COSMAC VIP Instruction Manual" | ||
- | Der FX29-Befehl setzt I auf ein Fünf-Byte-Muster im internen Speicher, das die niederwertige hexadezimale Ziffer von VX darstellt. Wenn VX = 07 ist, dann zeigt I auf die Adresse eines " | + | Der **FX29**-Befehl setzt I auf ein Fünf-Byte-Muster im internen Speicher, das die niederwertige hexadezimale Ziffer von VX darstellt. Wenn VX = 07 ist, dann zeigt I auf die Adresse eines " |
Das folgende Programm veranschaulicht die Verwendung der Anweisungen für FX29 und FX33. | Das folgende Programm veranschaulicht die Verwendung der Anweisungen für FX29 und FX33. |