000
12.08.2026, 09:34 Uhr
DL
Default Group and Edit
|
In einem anderen Beitrag ( https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=23931 ) hatte ich ja schon mal erfolglos versucht einen Austausch zur Verwendung von One Rom in einer ROM-Bank anzuregen. Es gab/gibt ja immer mal Bemühungen um den ROM im Kombimodul, da bietet sich der One ROM Fire 32 eigentlich auch dafür an. Man kann darin drei ROMs a 512K als 27C040 unterbringen, also theoretisch 1,5Mb. Bisher funktionierte das allerdings etwas umständlich nur über die Jumper und einen anschließenden Neustart des One Rom. Seit der Firmware V0.7.1 läuft nun das ROM Bus Control Protocol (RBCP) auch publik mit dem Fire 32 und über den neuen One Rom Builder auf der One ROM Web Oberfläche kann man sich seine ROM-Slots nun einfach selbst zusammen stellen. Die drei Slots lassen sich nun über Software live "umschalten" ohne den Chip rücksetzen zu müssen. Entweder integriert man ein Programm dafür mit in die Banksuche oder hinterlegt es in der Systembank, die ja auf jedem ROM vorhanden sein muss. Falls doch mal Interesse aufkommen sollte kann ich ein kleines Programm dafür zur Verfügung stellen oder die KC87 Spezialisten tun das.

Der überarbeitete Quellcode (109 bytes):
| Quellcode: | .z80 ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; OneRom Fire32 Slot - Switch über RBCP für Kombimodul im KC87 / Z9001 ; Aufruf SLOT Leerzeichen Slotnummer (0 - 2) ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - RAMad equ 300h ;Programmadresse im RAM bank equ 0c000h ;ROM Bank Adresse org RAMad - 32 header: db 0fah, 0fah ; + 0 Kennbytes db 0 ; + 2 0 - MC, 1 - BASIC (s. includes.asm) db "SLOT " ; + 3 genau 8 Zeichen dw slot ; + 11 Anfangsadresse im RAM dw endslot ; + 13 Endadresse im RAM dw slot ; + 15 Startadresse im RAM (oder FFFFh - nichtstartend) dw endslot - slot ; + 17 (Datei - )Länge des nachfolgenden Programms db 0 ; + 19 Standard 0 (s. includes.asm) db "Slot switch " ; + 20 12 Zeichen, bel., z.B. Autor o.ä. ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - org RAMad ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - slot: inkey: ; letze Eingabe holen, die slotnummer ld hl, 0081h ; H = 00h, L = 81h ld a, (hl) ; Holt den Wert aus 81h in Akkumulator A add a, l ; Addiert 81h (aus Register L) zum Wert dazu ld l, a ; Setzt die neue berechnete Zieladresse in L ein ld a, (hl) ; Lädt den endgültigen Wert aus der Adresse (HL) cp 30h ret c ;zu klein cp 33h ret nc ;zu groß and 3 ;uns interessiert nur 0 - 3 ld h, hi(bank) ;obere Bankadresse laden ld l, a ;slot hinzu xor a ;Bank 0 out (75h), a ;setzen di ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - reset: ;rbcp reset sequenz ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ld b, 14 ;Kurzversion vom Reset res1: ld a, (bank + 0aah) djnz res1 call pause ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - knock: ;die rbcp Knock sequenz ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ld a, (bank + '!') ld a, (bank + 'R') ld a, (bank + 'B') ld a, (bank + 'C') ld a, (bank + 'P') ld a, (bank + '!') call pause ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - selslot: ;Auswahl des aktiven flash slot nr in hl ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ld a, (bank + 02h) ;Gruppe 2 ld a, (bank + 02h) ;load slot aus rom in ram ld a, (bank + 00h) ;ramslot ld a, (hl) ;romslot aus eingabe call pause fin:ei ret ;... ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - pause: ;Päuschen, muß auch sein ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ld bc, 0520h ; ca 20 ms evtl. opimieren? pa4: dec c jr nz, pa4 djnz pa4 ret ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - endslot: .end
|
Dieser Beitrag wurde am 13.08.2026 um 13:06 Uhr von DL editiert. |