Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » Problem BWS auf Zusatzkarte für Z1013 » Themenansicht

Autor Thread - Seiten: -1-
000
01.01.2023, 20:58 Uhr
KC_Freund



Hallo an die Hobbykollegen

Allen ein frohes und gesundes neues Jahr.

Ich habe ein Problem mit der Umschaltung der Bildschirmmodi der BWS auf der
Zusatzkarte für den Z1013.

Die BWS ist bei Neustart oder Reset auf 32x32 eingestellt. Die IO-Adresse ist 10H.Per Software sollte es doch gehen, das die Modi umschaltbar sind.

In meinem Programm habe ich dazu

-- BWS 32x32 einschalten--
LD a,2
LD c,11H
OUT (c),a

--BWS 32x64 einschalten
LD a,0
LD c,11H
OUT (c),a

Die BWS schaltet immer nach Neustart oder Reset und Ausführung eines der beiden Codeschnipsel
in den 32x64 Mode.

Wenn ich das ganze mal in Basic mache funktioniert das ganze.

OUT 17,0 schaltet in 32x64 Mode
OUT 17,2 schaltet in 32x32 Mode

Bin irgendwie etwas ratlos, vielleicht fällt ja einem von Euch mein Fehler auf.

Viele Grüße

Tino
--
Fremdwörter sind mein Tresor, da kann mir keiner imprägnieren - ich habe immerhin 3 Sylvester an der Humbug-Nervosität storniert! Von meinem Wissen können noch Generatoren profilieren!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
01.01.2023, 21:22 Uhr
PIC18F2550

Avatar von PIC18F2550

LD a,0
OUT a, 11h

Wenn ich mich richtig erinnere landet C auf den oberen Adressen.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
01.01.2023, 22:07 Uhr
Bert




Zitat:
KC_Freund schrieb
-- BWS 32x32 einschalten--
LD a,2
LD c,11H
OUT (c),a

--BWS 32x64 einschalten
LD a,0
LD c,11H
OUT (c),a


Auf den ersten Blick sehen die Programme richtig aus.
Wie und wo werden denn die Assemblerprogramme ausgeführt?
Bewirken die anderen Bits auf IO-Adresse 11h noch was?

Vielleicht ist es besser gezielt nur das Bit D1 zu verändern:

Quellcode:

UP_SWITCH:
  IN a,(11h)
  XOR 02h
  OUT 11h
  RET





Zitat:
PIC18F2550 schrieb
Wenn ich mich richtig erinnere landet C auf den oberen Adressen.


Richtig. Das sollte hier aber keine Rolle spielen.

Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
02.01.2023, 14:58 Uhr
KC_Freund



Hallo

Vielen Dank für eure Überlegungen dazu.
Ich möchte meinen 2. Z1013_128 mit Zusatzkarte endlich mal in Gange bringen. Ich habe auch noch eine 2. K1520 BWS dran , ein E/A Modul von Robotron + FDC von U.Z.
Die BWS auf der Zusatzkarte hat IOAdr 10H und E800H im Adressraum der CPU. Die 2. BWS hat
die IOAdr D0H und F800 im Adressraum der CPU. Auf Adresse F000 befindet sich ein Bootloader
im ROM (2KB). Beim Einschalten oder Reset wird von Diskette mein von mir hier schon mal vorgestelltes CP/A gestartet.
Von CP/A aus kann ich dann Monitore laden mit 80x24 oder 64x32 auf F800H oder 64x32 auf E800H
oder 32x32 auf EC00.
Und dafür benötige ich die Umschaltungen.

BCLS: ld c,bwsio+2
ld a,01h ;Farb-RAM ein
out (c),a
ld b,02h ;Farbe gruen auf schwarz
call BCL1
ld a,00h ;Farb-RAM aus
out (c),a
ld b,20h ;Leerzeichen
call BCL1
ld (CUPOS),hl
ret
;
BCL1: ld hl,BWS
ld de,BWSL
BCL2: ld (hl),b
inc hl
dec de
ld a,d
or e
jr nz,BCL2
ret

Wie man hier sehen kann werden für das ein- und ausschalten des Farbrams der BWS die
selben Befehle verwendet und da funktioniert das Ganze. So wie ich das in der Doku zur Karte
gelesen habe wird das Register der Karte über x2H (12H) ausgelesen und nur die Umschaltung
des Farbrams mit Adresse x2H(12H) geschrieben. Alle anderen Umschaltungen auf Adresse x1H(11H)

Ich werde mal Eure Vorschläge ausprobieren.

VG

Tino
--
Fremdwörter sind mein Tresor, da kann mir keiner imprägnieren - ich habe immerhin 3 Sylvester an der Humbug-Nervosität storniert! Von meinem Wissen können noch Generatoren profilieren!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
02.01.2023, 17:06 Uhr
Klaus



Hallo,
zum Z1013 kann ich leider nicht direkt was schreiben, aber für mein NANOS bzw. des K1520 „Gerippe“ habe ich dieses CP/M (EPOS, CPA, SCP) Miniprogramm zum Umschalten 80x24 auf 64x32 bzw. beim zweiten Aufruf schaltete es wieder zurück.

Die IO-Adresse der BWS ist F1h bzw. F2h.

Quellcode:

           org 100

           in a,(0f2h)
           bit 1,a
           jr z, weiter
           res 1,a
           out (0f1h),a
           ret
  weiter:  set 1,a
           out (0f1h),a
           ret



Viele Grüße,
Klaus

Dieser Beitrag wurde am 02.01.2023 um 17:08 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
02.01.2023, 18:19 Uhr
Lötspitze



Hallo Tino,

das ist mein Programm zum Initialisieren der BWS-Karte im Z1013-128:


Quellcode:

BEGIN    EQU    0E7D0H  ;Beginn CLS Routine
BWSA    EQU    0E800H    ;ANFANG BWS
BWSE    EQU    0F000H    ;ENDE BWS + 1
ADR1    EQU       12H    ;I/O-AdRESSE BWS 1Xh 2=Schreiben BIT 0
ADR2    EQU       11H    ;I/O-AdRESSE BWS 1Xh 1=Schreiben BIT 1-3
STSCP    EQU    0DE00H    ;SCP Startadresse
;
    ASEG
    .PHASE BEGIN
;
    JP    CLS
CLS:    LD    C,ADR1
    LD    A,1
    OUT    (C),A    ;COLOR-RAM ON
    LD    B,2    ;GRUEN/SCHWARZ
;
    call    fill
;
    LD    A,0
    OUT    (C),A    ;TEXT-RAM ON
    LD    B,20H    ;LEERZEICHEN
;
    call     fill
;
    LD    C,ADR2
    LD    A,0    ;Bit 1-3 = Low
    OUT    (C),A    ;Bit 1=0 entspricht 64x32
;
    CALL    STSCP    ;STARTE SCP
    RET
    ;
    ; BWS mit Inhalt von B fuellen
    ; evtl. HL und DE vorher retten
    ;
fill:    ld    hl,bwsa        ;Beginn BWS
    ld    de,bwse-bwsa    ;Laenge BWS
fil1:    ld    (hl),b
    inc hl
    dec de
    ld a,d
    or e
    jr nz,fil1
    ret
    ;
    END    ;
    ;



Der Code für die Umschaltung ist identisch wie bei Dir und funktioniert. Ich starte den Rechner im 32x32-Modus und lade dann mit J FF70 diese Routine und das SCP, wie das in der Beschreibung zum 128er steht.
Dein Rechner hat jetzt zwar eine andere Konfiguration, trotzdem sollte Dein Programmschnipsel funktionieren. Meine Vermutung wäre nun, daß Du zwar die Umschaltungen machst, aber dann wieder so in das CP/A reinspringst, daß die ursprüngliche Konfiguration des BWS erneut geladen wird. Anders kann ich es mir nicht erklären.

VG Matthias
--
___________________
...geboren, um zu löten.

Wer rennen soll, muß auch mal stolpern dürfen.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
02.01.2023, 19:25 Uhr
KC_Freund



Hallo

Danke für Eure Antworten

@Matthias
Diese Codeschnipsel hatte ich auch in der Doku zur BWS und zum SCP von HP gefunden. Das schalten von 32x32 Mode nach 32x64 Mode funktioniert ja auch aber nicht mehr zurück.

Die Basicbefehle

OUT 17,0 schaltet in 32x64 Mode
OUT 17,2 schaltet in 32x32 Mode

funktionieren.

Ich werde mal Klaus seine Variante testen, melde mich wieder.

VG

Tino
--
Fremdwörter sind mein Tresor, da kann mir keiner imprägnieren - ich habe immerhin 3 Sylvester an der Humbug-Nervosität storniert! Von meinem Wissen können noch Generatoren profilieren!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
02.01.2023, 20:00 Uhr
KC_Freund



Hallo

@Klaus

Dein Programmschnipsel als kleines Programm unter CP/A funktioniert, werde es jetzt mal in
mein Monitorladeprogramm einbauen und testen.

VG

Tino
--
Fremdwörter sind mein Tresor, da kann mir keiner imprägnieren - ich habe immerhin 3 Sylvester an der Humbug-Nervosität storniert! Von meinem Wissen können noch Generatoren profilieren!
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
02.01.2023, 20:11 Uhr
Klaus



Hallo Tino,

schön dass es funktioniert.

Ich habe mich da an Heikos Doku gehalten und auch nur das gewünschte Bit verändert.

Zitat:
Zugriff auf das I/O-Register:
Lesen aller 4 Bits des Register über Adresse 0X2h
Schreiben der Bits 3,2,1, über die Adresse 0X1h (Steuerung des BWS)
Schreiben des Bits 0 über die Adresse 0X2h (Umschaltung Zeichen-RAM / Farb-RAM

Zitat Ende

Bit 1 macht die Umschaltung des Zeichen-Modus.
Bei mir ist L= 64 Zeichen und H=80 Zeichen.
Beim der Z1013 kann ich nicht sagen, welcher Modus dann L und H ist.

Viele Grüße,
Klaus

Dieser Beitrag wurde am 02.01.2023 um 20:15 Uhr von Klaus editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
02.01.2023, 21:40 Uhr
KC_Freund



Hallo

Ich habe meinen Fehler gefunden. In der Bildschirmlöschroutine habe ich das ganze
noch mal aufgerufen und immer mit 0 im Bit 1. So stellte sich natürlich immer der
32x64 Mode ein.

Danke für eure Bemühungen und Hilfestellung.

VG
Tino
--
Fremdwörter sind mein Tresor, da kann mir keiner imprägnieren - ich habe immerhin 3 Sylvester an der Humbug-Nervosität storniert! Von meinem Wissen können noch Generatoren profilieren!
Seitenanfang Seitenende
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