NKC Forum
Registrieren | FAQ | Suche | Wer ist online? | Mitgliederliste | Heutige Beiträge | Einloggen



Autor Thema: Kein JMP 'absolute short' auf NKC ?
smed
Kennt sich schon aus
**
ID # 114


  Erstellt am 21. Januar 2018 05:53 (#1)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,
In meinem 68k Simulator wird ein JMP so assembliert:

0000A0000 org $a000
start:
0000A0000 4E F8 A000 jmp start

also mit Addressierungsart 'absolute short' (opcode: 4EF8)

Der NKC assembliert JMP mit Addressierungsart 'absolute long' (opcode: 4EF9)

00A000 org $a000
start:
00A000 4E F9 0000A000 jmp start

soweit so gut, beide Addressierungsarten sollten funktionieren. Der NKC (68008) verabeitet jedoch die kurze Addressierungsart anders als der Simulator:

Im Simulator ist nach

4EF8 A000 der PC auf $0000A000

Im NKC wird mit dem selben Opcode $FFFFA000 in den PC geladen und es crashed.

Warum?

Gruss
smed

-----------------------
NKC'ler und RDK Fan seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,FLO2,PROMER,CENT,SER,SOUND,CAS,4xBUS2,3xPOW5V,2xTAST..und neuerdings einen Arduino mit auf dem BUS. Und eine selbstgebastelte MEM960k. UHR, IDE und COL256 noch nicht gebastelt.

NKC - OpenSource since 1983

Beiträge: 124 | Mitglied seit: Januar 2011 | IP-Adresse: gespeichert
DerInder
Voll in Gange
Seitenadmins
***
ID # 2


  Erstellt am 21. Januar 2018 14:17 (#2)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Moin Moin,

es ist ganz einfach: Dein Simulator baut Mist ;)

Folgendes, der jmp Befehl braucht logischer Weise eine 32 Bit Adresse.
Bei deinem Simulator wird aus $A000 $0000A000, das entspricht aber nicht dem was der 68000er macht.
Der 68000er ergänzt die Adressen immer "sign extendet"!!! Daher wird aus $A000 $FFFFA000, denn $A000 ist ja ein negativer Wortwert.

Wenn du dein Programm beim NKC auf z.B. Adresse $2000 übersetzt, klappt dein obiges Vorgehen.

Ach ja, der Shortjump hat folgenden Syntax:
jmp start.w

-----------------------
Gruß
-=jens=-

Beiträge: 774 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert
smed
Kennt sich schon aus
**
ID # 114


  Erstellt am 21. Januar 2018 15:11 (#3)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo
Super! Danke! :)

Gleich mal ausprobiert, und...stimmt!


org $2000
start1:

org $a000
start2:
jmp start1.w * PC = 0000A000

start3:
jmp start3.w * PC = FFFFA004



Mann-o-mann...

Gruss
smed

-----------------------
NKC'ler und RDK Fan seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,FLO2,PROMER,CENT,SER,SOUND,CAS,4xBUS2,3xPOW5V,2xTAST..und neuerdings einen Arduino mit auf dem BUS. Und eine selbstgebastelte MEM960k. UHR, IDE und COL256 noch nicht gebastelt.

NKC - OpenSource since 1983

Beiträge: 124 | Mitglied seit: Januar 2011 | IP-Adresse: gespeichert
DerInder
Voll in Gange
Seitenadmins
***
ID # 2


  Erstellt am 21. Januar 2018 15:22 (#4)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Immer gerne :)

Allerdings zeigt dein Beispiel, das 68k Programme (und mit Sicherheit auch andere) nicht unbedingt korrekt auf nem Simulator laufen :eek:

-----------------------
Gruß
-=jens=-

Beiträge: 774 | Mitglied seit: Juni 2004 | IP-Adresse: gespeichert
smed
Kennt sich schon aus
**
ID # 114


  Erstellt am 23. Januar 2018 06:57 (#5)  |  Zitat Zitat   PN PN   E-Mail E-Mail
Hallo,
das stimmt, am Ende hat die Hardware immer recht.

Und hier der Link zum 68K Simulator: http://home.kpn.nl/pj.fondse/ide68k/

den gibts auch noch: http://www.easy68k.com/

Beide sind zum Lernen sehr gut geeignet. Und nachdem man damit ein bischen rumgespielt hat, kommt natürlich schnell der Wunsch auf die hex Files bequem zum NKC zu übertragen und dort laufen zu lassen, nachdem man im Simulator schon mal vorgetestet hat. Ich habe sowas halb am Laufen. Ich schreibe einen gesonderten Beitrag wenn es wirklich und ohne manuelle Schritte klappt. Für mich ist das eine kleine Revolution, bequem am PC für den NKC in Assembler zu programmieren, und das besondere Schmankerl: IDE68k (der erste Link) unterstützt auch C...

Gruss
smed

-----------------------
NKC'ler und RDK Fan seit 1984 (Pause zw. 1988-2017)
CPU68k,CPU68000,4xROA64,6xIOE,6xGDP,GDPHS,8xSBC2/3,HEXIO,6xKEY,FLO2,PROMER,CENT,SER,SOUND,CAS,4xBUS2,3xPOW5V,2xTAST..und neuerdings einen Arduino mit auf dem BUS. Und eine selbstgebastelte MEM960k. UHR, IDE und COL256 noch nicht gebastelt.

NKC - OpenSource since 1983

Beiträge: 124 | Mitglied seit: Januar 2011 | IP-Adresse: gespeichert



| NDR Computer | Boardregeln


Tritanium Bulletin Board 1.6
© 2010–2016 Tritanium Scripts


Seite in 4,127291 Sekunden erstellt
18 Dateien verarbeitet
gzip Komprimierung ausgeschaltet
897,85 KiB Speichernutzung