Hallo zusammen Ich versuche mich derzeit gerade an den Basics... Einem Intel 4004 System. Genauer gesagt einem MCS-4 Das System seht ihr im Bild im Anhang. Wie zu sehen ist, sind die IOs einerseits im RAM vorhanden, andererseits auch im ROM. Nun würde ich gerne ganz simpel ein paar IOs setzen und dies evtl. noch in Abhängigkeit eines Inputs. Dazu habe ich diesen Emulator gefunden: http://e4004.szyc.org/emu/ Das Instruction set gibts hier: http://e4004.szyc.org/iset.html Und hier noch das Manual für das MCS-4 http://bitsavers.trailing-edge.com/components/intel/MCS4/MCS-4_Assembly_Language_Programming_Manual_Dec73.pdf Wie es aussieht, muss ich wohl den Befehl WMP verwenden. Leider sind meine Assemblerskills relativ schlecht geworden. Offenbar ist das höherwertige nibble der Portzustand (1110). Aber ich vermute, durch alleiniges ausführen von 1110|0001 werde ich noch keinen Output port beschreiben. Würde mich sehr über Hilfe freuen :) Danke und Gruss Holger
Gast
#6810781
ich verstehe das so: 1. select rom (oder ram) 2. Wert in Akku 3. WRR (oder WMP)
Helge schrieb: > ich verstehe das so: > 1. select rom (oder ram) > 2. Wert in Akku > 3. WRR (oder WMP) Danke für die Antwort. Da steht ja noch "selected by the last SRC command". Also zuerst SRC, dann LDM und dann WMP ? SRC sieht so aus: 0010 RRR1 Also 0010 | 0001 für Chip 0 ? Dann LOADM 1101 DDDD Also 1101 | 0001 um das Q0 auf High zu setzen? und dann WMP 1110 0001
Hat teilweise funktioniert :) Hier der code:
1 | |
2 | |
3 | |
4 | |
Das assembly:
1 | |
2 | |
http://e4004.szyc.org/asm.html Leider schreibt das Programm in den Output des RAMs und nicht des ROMs. Da muss ich wohl WMP durch WRR ersetzen...
Hat jemand eine Idee, warum hier der Jump nicht funktioniert?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
Die Sprungadresse ist immer $0F2 Problem gelöst. Es muss der Object Code und nicht der HEX-Code geladen werden. Beim HEX-Code gibt es zusätzliche NOPs.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.

