Hallo, guten Tag.
Ich kann jetzt mit HI-TECH-C die REU bei mir auslesen und beschreiben.
Wozu eine REU nicht ausnutzen , wenn die von ZPM-REU nicht voll ausgenutzt wird.
Ich habe meine zum Test in VICE auf 16MB erweitert.
REU-Befehle:
$DF01 Kommandoregister
$DF02/03 Computeradresse (Lo/Hi)
$DF04/05 REU-Adresse (Lo/Hi)
$DF06 REU-Bank (siehe unten)
$DF07/08 Anzahl Bytes die wir übertragen wollen (Lo/Hi)
Meine ASM die ich in die LC128-LIB umgewandelt habe:
- global _computerreu, _reucomputer, _computeradr, _reuadr, _reubank, _reuanzahlbyte
- psect text
- _computerreu:
- ld bc,0df01h
- lda,252
- out (c),a
- ret
- _reucomputer:
- ld bc,0df01h
- lda,253
- out (c),a
- ret
- _computeradr:
- pop hl ;return address
- pop de ;data
- push de
- push hl
- ld a,e
- ld bc,0df02h
- out (c),a
- ld a,d
- inc bc
- out (c),a
- ret
- _reuadr:
- pop hl ;return address
- pop de ;data
- push de
- push hl
- ld a,e
- ld bc,0df04h
- out (c),a
- ld a,d
- inc bc
- out (c),a
- ret
- _reubank:
- pop hl ;return address
- pop de ;data
- push de
- push hl
- ld a,e
- ld bc,0df06h
- out (c),a
- ret
- _reuanzahlbyte:
- pop hl ;return address
- pop de ;data
- push de
- push hl
- ld a,e
- ld bc,0df07h
- out (c),a
- ld a,d
- inc bc
- out (c),a
- ret
dazu eine VDC.H:
extern void computerreu();
extern void reucomputer();
extern void computeradr(ushort Num);
extern void reuadr(ushort Num);
extern void reubank(ushort Num);
extern void reuanzahlbyte(ushort Num);
Hier mein Testprogramm.
Habe zum Test Reubank 0 genommen ab Addresse 0 und kann Daten vom Programm ZPM-REU dort auslesen.
- #include <stdio.h>
- #include <stdlib.h>
- #include <ctype.h>
- #include <conio.h>
- #include <sys.h>
- #include <hitech.h>
- #include <vdc.h>
- uchar *zeiger;
- uchar viele[128];
- uchar i;
- uchar zahl;
- void main(void)
- {
- zeiger = &viele;
- computeradr(zeiger);
- reubank(0);
- reuadr(0);
- reuanzahlbyte(128);
- reucomputer();
- for(i= 0; i <= 128; i += 1)
- {
- zahl= viele[i];
- printf("reu: %d\n", zahl);
- }
- }
Darum war da einmal meine "blöde Fragerei" für Turbo Pascal mit einer Zeigeraddresse.
Bin aber da auch noch auf Suche für ein Lösung.
Gruss