PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kann einer 8085-Assembler?


Nasenbaer
2002-10-07, 21:24:30
Hi,
ich habe ein Problem mit einem kleinen Program, dass in 8085er Assembler-Code für den MFA geschrieben wurde:

IN 0x01 <-- Addresse der Eingabebaugruppe
RLC <--- 0x02
OUT 0x02 <-- Adresse der Ausgabebaugruppe
CPI 80
JZ 0x0D
RRC <--- 0x0D
OUT 0x02
CPI 01
JZ 0x02
JMP 0x0D


Das Programm hab ich mittels eines Emulators unter Linux geschrieben (KS8085). Deswegen fehlen dinge wie die Startadresse etc.
Egentlich soll der Akku-Inhalt immer hin und hergeschoben werden damit die Ausgabe per LEDs aussieht wie beim NightRider. =)
Kann mir jemand helfen?

Mfg Nasenbaer

barracuda
2002-10-08, 02:29:29
Ich habe mal mit dem 8080 und dem Z80 gearbeitet, aber nie mit dem 8085. Ich habe mich mal ein bisschen im Web umgeschaut, das Registermodell entspricht dem des Z80 und der Befehlssatz weitgehend diesem. Seh ich das richtig?

Ansonsten fehlt da noch eine Verzögerungsroutine, man soll die LED's ja wandern sehen.

Xmas
2002-10-08, 12:03:57
Originally posted by Nasenbaer
Hi,
ich habe ein Problem mit einem kleinen Program, dass in 8085er Assembler-Code für den MFA geschrieben wurde:

IN 0x01 <-- Addresse der Eingabebaugruppe
RLC <--- 0x02
OUT 0x02 <-- Adresse der Ausgabebaugruppe
CPI 80
JZ 0x0D
RRC <--- 0x0D
OUT 0x02
CPI 01
JZ 0x02
JMP 0x0D


Das Programm hab ich mittels eines Emulators unter Linux geschrieben (KS8085). Deswegen fehlen dinge wie die Startadresse etc.
Egentlich soll der Akku-Inhalt immer hin und hergeschoben werden damit die Ausgabe per LEDs aussieht wie beim NightRider. =)
Kann mir jemand helfen?

Mfg Nasenbaer
Irgendwie versteh ich das Programm nicht. Soll da immer nur ein Bit hin und her wandern? Wenn ja, wieso nimmst du den Initialwert von einem Port und setzt ihn nicht direkt auf 1? Wenn nein, wieso vergleichst du mit festen Werten (80? hex?) und machst dann ein JZ? Wenn der Initialwert beliebig sein soll musst du die Zahl der Schritte zählen.


MVI A, 1
a OUT 0x02
RLC
CPI 0x80
JNZ a
b OUT 0x02
RRC
CPI 0x01
JNZ b
JMP a

Nasenbaer
2002-10-08, 19:43:07
@Baracuda
Das mit der Verzögerungsroutine ist richtig. Da das Programm aber auf mittels eines Emulators, der zwischen jedem Befehl min. 1ms wartet, geschrieben wurde ist mir das nicht aufgefallen.

@Xmas

Ja ein Bit soll immer nur hin und herwandern. Mittels Ausgabe per LEDs ensteht ein "NightRider"-Effekt. =)
Du hast recht es ist besser einfach den Akku mit 1 zu laden.
Geschrieben habe ich das Programm für einen MFA. Ohne die darin befindlichen Ausgabebaugruppen wäre dieses Programm sinnlos das ist richtig. *g*
Bei den Jumps Labels zu benutzen hatte ich nur nicht gemacht, weil ich mich damit noch nicht auskannte aber mittlerweile ist das auch kein Prob mehr.
Aber die dahintersteckende Theorie scheint ja richtig zu sein.
Thx...

Mfg Nasenbaer