121
02.05.2016, 17:40 Uhr
holm
|
...try to "misuse" the cpu for your needs to verify the actions on the bus, for example connect /WAIT on the bus with the /IORQ line and start the computer. The CPU should halt at Address 02h with all zeros on th data bus and /IORQ and /WR active:
Quellcode: | org 0 ; START: nop ; 0000 00 Wert 00h wird immer in (HL) geladen (s. weiter unten) ; ; *************************************** ; Routine l<E4>dt den Inhalt von $00 = 00h von Adresse ; $0000 an $0800 mal (2 kByte) aufsteigend, d.h. der hinter dem ROM liegende ; RAM und ein zus<E4>tzliches kByte RAM wird mit $00 beschrieben ; *************************************** BEGIN: ld bc,RAMEND ; 0001 01 00 08 2kByte ld d,c ; 0004 51 ld e,c ; 0005 59 DE = 0000h ld h,c ; 0006 61 ld l,c ; 0007 69 HL = 0000h LADEN: ldi ; 0008 ed a0 (DE):=(HL), dann DE=DE+1: BC=BC-1: HL=HL+1 dec hl ; 000a 2b um immer auf 0000h zu verweisen, HL immer = 0 jp pe,LADEN ; 000b ea 08 00 noch keine 2k beschrieben -> R<FC>cksprung ; PV=1 bei BC=$0000, Hintergrund-RAM hinter ; dem Lade-PROM wird auch mit 00h gef<81>llt ; Befehl 'dec hl' veraendert keine Flags ; ; ***************************************** ; ; ; ***************************************** ; Initialisierung der CPU-internen Vektoren ; und der BS-PIO ; ***************************************** xor a ; 000e af A=0, Carry=0, Parity=1 out (2),a ; 000f d3 02 Ruecksetzen Speicherschutz-Flip Flop ; ld sp,SPSTART ; 0011 31 e0 07 Stack bei 07e0h im 2 ; 0014 ed 5e Interrupt-Mode 2 ld a,0 ; 0016 3e 00 A=0 ld i,a ; 0018 ed 47 CPU-Interruptvektor 00h High-Teil ; ; ************************** ; Initialisierung der BS-PIO ; ************************** ; ld a,7fh ; 001a 3e 7f out (9),a ; 001c d3 09 Einstellung Arbeitsmodus Kanal A BS-PIO ; ; 0111 1111 = 7fh ; || ; ---> Modus 1 - Eingabe ; out (0bh),a ; 001e d3 0b Modus 1 - Eingabe auch fuer Kanal B ld a,0ffh ; 0020 3e ff out (8),a ; 0022 d3 08 PIO Daten, Kanal A X0024: out (0ah),a ; 0024 d3 0a PIO Daten, Kanal B ld a,0b8h ; 0026 3e b8 Interruptvektor Kanal A (00b8h) out (9),a ; 0028 d3 09 ld a,0ffh ; 002a 3e ff Modus 3 - Einzelbitsteuerung out (9),a ; 002c d3 09 ld a,7fh ; 002e 3e 7f A0...A6 Eingang, A7 Ausgang out (9),a ; 0030 d3 09 ; ; ************************ ; Ende PIO-Initialisierung ; ************************ ; ld ix,RAMEND ; 0032 dd 21 00 08 Adresse des 3. kBytes RAM in IX ld (X0462),ix ; 0036 dd 22 62 04 RAM-Ende merken ld hl,X044e ; 003a 21 4e 04 ld de,X0400 ; 003d 11 00 04 ld b,3eh ; 0040 06 3e 62 dezimal (64k RAM - 2k BS-RAM) RAMTEST:ld c,(ix+0) ; 0042 dd 4e 00 Adresse, n<E4>chster zu erwartender RAM ; Inhalt in "C" sichern ld a,0d7h ; 0045 3e d7 Interruptsteuerwort, Kanal A ; 1101 0111 = 0d7h out (9),a ; 0047 d3 09 Ausgabe Steuerwort Kanal A ld a,9fh ; 0049 3e 9f Interruptmaske fuer Kanal A ; 1001 1111 = 09fh ; Bit 6 - RDY ; Bit 5 - WR --- nur diese beiden loesen ; wenn beide zusammen low sind, Interrupt aus ; (s. auch S. 28 ff. Betriebsdokumentation ; Zentrale Recheneinheit K2526/27) out (9),a ; 004b d3 09 Ausgabe Interruptmaske Kanal A ei ; 004d fb Interrupt erlauben ld (ix+0),0ffh ; 004e dd 36 00 ff erstes Byte des 3. kBytes RAM (0800) mit 0ffh beschreiben
|
Test with a TTL Gatter connected to various Address and Data Lines in comjunction with MREQ and M1...
I'll send you the disassembled source from the bootloader per Mail..
There is another thing you should check: The DIP switch settings on the RAM Board!
There are three Switch Rows, if the connectors are directed against you, the switches are on the left side. The one nearest the connectors is A5, the middle A7 and the one farest away is A10.
A5 from the left to the right: off,off,on,on,off,off,off,off. A7 from the left to the right: on,off,on,off,on,off,off,off A10 from the left to the right: off,on,off,on,off,off,off,off
Please check if they actually conduct...
Regards,
Holm -- float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v; {s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+ (r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&& (A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;} Dieser Beitrag wurde am 02.05.2016 um 18:36 Uhr von holm editiert. |