Intel 8049 (8048, 8748, 8749, 8035, 8039) / MCS-48 Hardware-Debugger & Monitor
Jmp1 bis Jmp5 haben folgende Funktion :
Jumper | Gesetzt | Nicht gesetzt |
---|---|---|
Jmp1 | Schreibzugriff auf Bank-Register via PROG möglich 128kB Speicher adressierbar Nutzung der 8243 port-expander nicht möglich |
Schreibzugriff auf Bank-Register via PROG nicht möglich 4kB Programm- & 4kB Daten-Speicher adressierbar Nutzung der 8243 port-expander möglich |
Jmp2 | Memory-mapped I/O aktiviert | Memory-mapped I/O nicht aktiviert |
Jmp3 | I/O in oberen 64k(*), wenn DA16=1 I/O in unteren 64k(*), wenn DA16=0 | I/O nur in oberen 64k(*) (0x1FD00...0x1FDFF) |
Jmp4 | I/O in 4k/8k memory-map möglich | I/O in 4k/8k memory-map nicht möglich |
Jmp5 | Pos. 1-2 : DBL ist Teil der MMU Pos. 2-3 : DBL ist gleich P2.0 ... P2.3 | Zugriff auf DBL nicht möglich (DBL = 0x00) |
(*) Untere 64k = 0x00000...0x0FFFF; Obere 64k = 0x10000...0x1FFFF
Mit "DA16" kann unabhängig vom Zugriffsziel L-Pegel auf A16 erzwungen werden, daher gilt :
DA16 | System-Architektur |
---|---|
1 | Harvard-Architektur (128kB Speicher adressierbar; getrennte Speicherbereiche für Programm und Daten) |
0 | Von-Neumann-Architektur (64kB Speicher adressierbar; Programm und Daten teilen sich denselben Speicherbereich) |
Indem Jmp1 bis Jmp4 gesetzt oder nicht gesetzt sind, werden folgende Modes konfiguriert :
Mode | Jmp1 | Jmp2 | Jmp3 | Jmp4 | DA16 | Memory Map |
---|---|---|---|---|---|---|
1 | Nicht gesetzt | Nicht gesetzt | Wirkungslos | Wirkungslos | N/A(*) | 1 |
2 | Nicht gesetzt | Gesetzt | Wirkungslos | Gesetzt | N/A(*) | 2 |
3 | Gesetzt | Nicht gesetzt | Wirkungslos | Wirkungslos | 1 | 3 |
3 | Gesetzt | Nicht gesetzt | Wirkungslos | Wirkungslos | 0 | 4 |
4 | Gesetzt | Gesetzt | Nicht gesetzt | Nicht gesetzt | 1 | 5 |
4 | Gesetzt | Gesetzt | Nicht gesetzt | Nicht gesetzt | 0 | 4 |
5 | Gesetzt | Gesetzt | Gesetzt | Nicht gesetzt | 1 | 5 |
5 | Gesetzt | Gesetzt | Gesetzt | Nicht gesetzt | 0 | 6 |
(*) Auf DA16 kann nicht zugegriffen werden, wenn Jmp1 nicht gesetzt ist. DA16 bleibt im Initialisierungszustand '1'.
Die durch Jumper konfigurierten Hardware-Modes in Verbindung mit dem unter Programmkontrolle stehenden DA16-Signal ergeben beispielsweise folgende Speicheraufteilungen (memory maps) :
Memory Map | Beschreibung |
---|---|
1 | 4kByte Programm- + 4kByte Daten-Speicher |
2 | 4kByte Programm- + 3.75kByte Daten-Speicher, 256x memory-mapped I/O |
3 | 64kByte Programm- + 63.5kByte Daten-Speicher |
4 | 64kByte gemeinsamer Programm-/Daten-Speicher (*) |
5 | 64kByte Programm- + 63.25kByte Daten-Speicher, 256x memory-mapped I/O |
6 | 63.75kByte gemeins. Programm-/Daten-Speicher (*), 256x memory-mapped I/O |
(*) ermöglicht gewöhnlich unmögliche Schreib-/Lese-Operationen im Programmspeicher, bspw. um Programme mit Hilfe einer auf dem MCS-48 µC selbst laufenden Software zu laden.
Start(hex) | Ende(hex) | Typ | Größe(dez) |
---|---|---|---|
00000 | 00FFF | Programm | 4096 |
10000 | 10FFF | Daten | 4096 |
1FE00 | 1FFFF | Reserviert | 512 |
Start(hex) | Ende(hex) | Typ | Größe(dez) |
---|---|---|---|
00000 | 00FFF | Programm | 4096 |
10000 | 10CFF | Daten | 3328 |
10D00 | 10DFF | I/O | 256 |
10E00 | 10FFF | Daten | 512 |
1FE00 | 1FFFF | Reserviert | 512 |
Start(hex) | Ende(hex) | Typ | Größe(dez) |
---|---|---|---|
00000 | 0FFFF | Programm | 65536 |
10000 | 1FDFF | Daten | 65024 |
1FE00 | 1FFFF | Reserviert | 512 |
Start(hex) | Ende(hex) | Typ | Größe(dez) |
---|---|---|---|
00000 | 0FFFF | Programm+Daten | 65536 |
1FE00 | 1FFFF | Reserviert | 512 |
Start(hex) | Ende(hex) | Typ | Größe(dez) |
---|---|---|---|
00000 | 0FFFF | Programm | 65536 |
10000 | 1FCFF | Daten | 64768 |
1FD00 | 1FDFF | I/O (*) | 256 |
1FE00 | 1FFFF | Reserviert | 512 |
Start(hex) | Ende(hex) | Typ | Größe(dez) |
---|---|---|---|
00000 | 0FCFF | Programm+Daten | 64768 |
0FD00 | 0FDFF | I/O (*) | 256 |
0FE00 | 0FFFF | Programm+Daten | 512 |
1FE00 | 1FFFF | Reserviert | 512 |