Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » Kramer-MC im JKCEMU » Themenansicht

Autor Thread - Seiten: -1-
000
03.10.2026, 09:14 Uhr
HeikoS



Der Selbstbaucomputer, beschrieben in „Praktische Mikrocomputertechnik“ von Manfred Kramer, hat viele Software-Werkzeuge (Editor, Assembler und Basic) schon im ROM, so dass man direkt loslegen kann mit der Programmierung.

Im JKCEMU bleibt der Assembler aber immer stehen oder bediene ich ihn falsch? Der Editor funktioniert im Prinzip, aber die Befehle „Control D,Z,X,S“ gehen bei mir nicht. Kann man mit „Enter“ und „E“ aber trotzdem bedienen.



Hat den Assembler schon mal jemand erfolgreich am JKCEMU (0.9.8.7) bedienen können? Oder hat evtl. jemand einen echten „Kramer-MC“ als Referenz?

Viele Grüße, Heiko

Dieser Beitrag wurde am 03.10.2026 um 09:14 Uhr von HeikoS editiert.
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
03.10.2026, 09:23 Uhr
ralle



Vielleicht auf eine andere Plattform portieren oder reassemplieren.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
03.10.2026, 12:07 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Hallo Heiko,
Ich habe bislang kein Original des Assemblers bekommen, die Version im JKCEmu ist die von mir abgetippte.
Ich suche jemand, der sie mit dem Buch vergleicht/kontrollliest
--
VolkerP

https://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
03.10.2026, 15:44 Uhr
HeikoS



Hallo Volker,

ich habe erst jetzt Deinen, in fetter, roter Schrift gehaltenen Hinweis gelesen:

"der Assembler funktioniert nicht. Falls jemand eine funktionierende Version hat oder im Vergleich mit dem Abdruck im Buch einen Fehler gefunden hat, möge mir bitte die Version zukommen lassen"

Dann mache ich ja nichts falsch. P.S. hat mir gestern das Original-Buch "Praktische Mikrocomputertechnik" überlassen, vielen Dank noch einmal dafür! Das war auch der Grund, warum ich gleich mal alles ausprobiert habe am JKCEMU.

Über einige Umwege hatte ich auch schon mal die Original-Leiterplatten-Negative bekommen, die damals für Herrn Kramer angefertigt wurden. Vielleicht könnte man den Kramer-MC auch mal wieder neu aufbauen? Die Leiterplatten erfordern aber immer noch einige Handverdrahtung auf der Bestückungsseite.

Viele Grüße, Heiko


EDIT: Der Text wird vom "Editor" übrigens rückwärts von 7FFFH beginnend in den RAM geschrieben. Hoffentlich weiß das der Assembler ... ? ;-)

Dieser Beitrag wurde am 03.10.2026 um 16:40 Uhr von HeikoS editiert.
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
03.10.2026, 21:05 Uhr
ralle



Beim KC85/5 sind maximal 48Kb möglich, für 4Kb Programm. Da muss du aber Mario fragen. Jedenfalls könntest du versuchen, das ganze zu reassemblieren.

Allerdings bräuchtes du auch den Quelltext für das OS. Genauer der nutzbaren Unterprogramme und eventuell vorhandenen Sprungverteiler. Sonst ist ein Rückübersetzen ein blindes gestochere. Und eventuell einige Funkamateur-Ausgaben. Wegen eventuellen Korrekturen.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
04.10.2026, 09:27 Uhr
HeikoS



@Ralle:

Reassemblieren wäre ja immer eine Lösung. Da bin ich nicht so der Experte, die Sprungverteiler sind alle bekannt. Der "Monitor" und der "Editor" liegen als Quelltext im Buch vor. Assembler und Basic haben wohl nicht mehr als Quelltext reingepasst.

@Volker:

Das HEX-Listing hat ein Format, von dem ich keine Beschreibung gefunden habe (übersehen im Buch ?). Dort könnte eine Prüfsumme bei sein. Dann müsste man nur die Prüfsummen vergleichen, wenn man weiß, wie sie gebildet wurde. Aber das hättest Du doch bestimmt auch gemacht?




Quellcode:

    Adr      Maschinen-Code                                   Prüfbyte ?
------------------------------------------------------------------------
:10 C400 00  C3 B0 C4 C3 45 22 00 40 00 0F 06 00 0B DD 46 1B  2D



Gibt es Informationen dazu?

Grüße, Heiko

Dieser Beitrag wurde am 04.10.2026 um 09:27 Uhr von HeikoS editiert.
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
04.10.2026, 10:10 Uhr
jmueller




Zitat:
HeikoS schrieb

Quellcode:

    Adr      Maschinen-Code                                   Prüfbyte ?
------------------------------------------------------------------------
:10 C400 00  C3 B0 C4 C3 45 22 00 40 00 0F 06 00 0B DD 46 1B  2D



Gibt es Informationen dazu?

Grüße, Heiko



Das ist das Intel-HEX-Format, von JKCEMU unterstützt und dort in der Hilfe
auch beschrieben.

Jens
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
04.10.2026, 10:41 Uhr
HeikoS



Ah, kam mir auch bekannt vor, ich hatte aber vergessen, was es genau ist. Vielen Dank !

Dann wurden die ROM-Files ja bestimmt schon mal überprüft bzgl. der Prüfsumme.

Viele Grüße, Heiko
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
04.10.2026, 10:41 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Das Format wird auch im Buch beschrieben, irgendwo zwischendurch.
Ich habe natürlich die Prüfsummen getestet.
Es können aber trotzdem Fehler in einer Zeile sein, deren Summe dennoch stimmt. Und auch das Prüfsummenbyte kann falsch sein.

Der Assembler stammt möglicherweise vom Udos-Syps-Assembler ab, ebenso wie der vom Z9001. Aber da ich das Original nicht kenne, bleibt es bei Vermutungen. Ansonsten könnte man hier einen Binärvergleich des reinen Assemblers machen.
--
VolkerP

https://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
04.10.2026, 11:09 Uhr
ralle



Das Basic müsste auch von einem CPM-Basic abgeleitet sein.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
05.10.2026, 20:11 Uhr
HeikoS




Zitat:
volkerp schrieb
Das Format wird auch im Buch beschrieben, irgendwo zwischendurch.
Ich habe natürlich die Prüfsummen getestet.
Es können aber trotzdem Fehler in einer Zeile sein, deren Summe dennoch stimmt. Und auch das Prüfsummenbyte kann falsch sein.

Der Assembler stammt möglicherweise vom Udos-Syps-Assembler ab, ebenso wie der vom Z9001. Aber da ich das Original nicht kenne, bleibt es bei Vermutungen. Ansonsten könnte man hier einen Binärvergleich des reinen Assemblers machen.



Habe den Assembler aus beiden Versionen des Buches (Auflage 1 u. 2) mit OCR und ein wenig Scripting + KI in ein BIN-File konvertiert und mit dem ROM aus dem JKCEMU verglichen. Die wenigen, fehlerhaften Zeilen im Vergleich zum ROM, habe ich manuell mit dem PDF verglichen. Sie waren alle korrekt im ROM.

Damit ist es nun extrem unwahrscheinlich, dass noch Tipp-Fehler drin sind. Die Auflage 2 hat noch zwei zusätzliche Zeilen im Listing am Ende. Diese hattest Du ja schon mit im ROM abgelegt. Aber an dieser Stelle könnte ja evtl. noch etwas fehlen, da es sehr "dazu gefummelt" aussieht, im Listing. Ich denke jetzt bliebe nur noch debuggen und evtl. teilweise disassemblieren.

Grüße, Heiko
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
Heute, 10:05 Uhr
FL



Ich glaube das Byte auf Adresse 0DE1Fh muß von 30h auf 39h geändert werden.

In der Beschreibung vom Assembler steht:
"Ist kein externes Gerät zugewiesen (IT), kann das Programm nur mit Hilfe des Editors in den RAM gelangt sein, und der Assembler erwartet es auf den damit festgelegten Textpuffer-Adressen."

Das paßt nicht. Der Editor speichert die Endadresse des Textpuffers auf 0D39H. Der Assembler möchte sie aber von 0D30H lesen:

Quellcode:
; Ende des Textpuffers nach HL'
        EXX                     ;DE1D  D9
        LD      HL,(00D30H)     ;DE1E  2A 30 0D
        LD      C,00EH          ;DE21  0E 0E
        EXX                     ;DE23  D9
        RET                     ;DE24  C9


Im Emulator steht an dieser Stelle normalerweise 0000H. Dadurch durchsucht der Assembler den kompletten Speicher textzeilenweise nach dem Anfang des Quellcodes.

In dem Beispiel in #000 erkennt er die Zeichenfolge "PN" nicht als Befehl, weil (durch den Basic-Interpreter ab 8000H) weitere Zeichen davor stehen.
Und damit findet er auch nicht den Anfang des Quellcodes.
Durch die 3 NOP's hier hängt er dann in einer Endlosschleife:

Quellcode:
;bei Eingabekanal=IT: hole das Byte an (HL') und setze HL' auf die naechste Position
        EXX                     ;DE09  D9
        LD      A,L             ;DE0A  7D
        OR      H               ;DE0B  B4
        JR      NZ,M1           ;DE0C  20 03
        NOP                     ;DE0E  00
        NOP                     ;DE0F  00
        NOP                     ;DE10  00
M1:     LD      A,(HL)          ;DE11  7E
        DEC     HL              ;DE12  2B




Zitat:
HeikoS schrieb
Die Auflage 2 hat noch zwei zusätzliche Zeilen im Listing am Ende. Diese hattest Du ja schon mit im ROM abgelegt. Aber an dieser Stelle könnte ja evtl. noch etwas fehlen, da es sehr "dazu gefummelt" aussieht, im Listing.


Ich denke nicht, daß da was fehlt. Beim Start des Assemblers wird er in 2 Blöcken von C400H bis DE2FH nach 1000h bis 2E2Fh kopiert und dort ausgeführt.
Die zwei zusätzlichen Zeilen im Listing enthalten nur den Sprungverteiler zum Kramer-OS:

Quellcode:
xDFE0:  JP   x00E0         ;DFE0  JMP CI ;CONSOLE INPUT
xDFE3:  JP   x00E3         ;DFE3  JMP RI ;READER INPUT
xDFE6:  JP   x00E6         ;DFE6  JMP CO ;CONSOLE OUTPUT
xDFE9:  JP   x00E9         ;DFE9  JMP WO ;WRITE OUTPUT
xDFEC:  JP   x00EC         ;DFEC  JMP LO ;LISTER OUTPUT
xDFEF:  JP   x00F2         ;DFEF  JMP IOCHK



Gruß
Frank.

Dieser Beitrag wurde am 06.10.2026 um 10:07 Uhr von FL editiert.
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
Heute, 12:33 Uhr
Hobi

Avatar von Hobi

Ich habe mir den Source code angeschaut. Die Optionen beim Assember Pass sind Q,1,O und P.


Quellcode:
2269  21 c3 22                         ld      hl,#str_asm
226c  cd f7 2d                         call    puts
226f  cd 44 21                         call    m_2144
2272  cd e0 df                         call    kb_inch
2275  fe 51                            cp      a,#'Q'
2277  c8                               ret     z
2278  4f                               ld      c,a
2279  cd e6 df                         call    putc
227c  79                               ld      a,c
227d  21 7b 10                         ld      hl,#0x107b                              
2280  fe 31                            cp      a,#'1'
2282  36 01                            ld      (hl),#0x01                              
2284  ca 26 19                         jp      z,m_1926
2287  fe 4f                            cp      a,#'O'
2289  36 00                            ld      (hl),#0x00                              
228b  ca 36 19                         jp      z,m_1936
228e  fe 50                            cp      a,#'P'
2290  36 02                            ld      (hl),#0x02                              
2292  ca cb 18                         jp      z,m_18cb
2295  18 d2                            jr      m_2269


--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 06.10.2026 um 12:34 Uhr von Hobi editiert.
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
Heute, 15:11 Uhr
HeikoS



@FL:

Super, das war der Fehler !!! Ich hatte auch schon gesehen, dass er den Text nicht aus dem Buffer der Editors liest.



Das ist im Listing in Auflage 1 und 2 dann falsch. Die "0" ist klar zu erkennen. Naja, Fehler gab es oft in Veröffentlichungen, z.B. bei Schaltbildern, aber so ein HEX-Listing sollte eigentlich richtig sein. Gab es evtl. noch eine 3. Auflage oder Berichtigungen dazu? Ob das damals jemand auch zum Laufen gebracht hat ... ?

@Hobi:

Danke für die Hinweise! Das steht z.T. auch so im Buch und hatte ich auch schon gefunden.

Vielen Dank, dass ihr das sofort untersucht habt. Dann kann Jens das ja auch im JKCEMU mal anpassen.

Viele Grüße, Heiko

Dieser Beitrag wurde am 06.10.2026 um 15:35 Uhr von HeikoS editiert.
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
Heute, 17:49 Uhr
Hobi

Avatar von Hobi

Es sind leider noch mehr Fehler im Quelltext. Ein LDIR überschreibt das ADC Mnemonic.
--
-------------------------------------------
Corontäne
-------------------------------------------
 
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek