Directory of image this file is from
This file as a plain text file
;ITT MIKROPROZESSOR-EXPERIMENT-KIT
RAMPAG = #12
STAKAD = #1300
CHKEND = #0
RLAMPE = #0C
LLAMPE = #0D
ASHALT = #14
BSHALT = #15
CSHALT = #16
;HAUPTPROGRAMM
. = #1000
START: MVI #9B ;TO BE REMOVED
OUT #13
MVI #80
OUT #0B
LXI SP,STAKAD
JMP HAUPT2
;SUBROUTINE SRCKSK
;*****************
;ANRUF: CALL SRCKSK
; MASKE
; VERGLEICHSZAHL
; XXX ;BEFEHLE:WERDEN AUSGEFUEHRT FALLS
; XXX ;(B) AND MASKE = VERGLEICHSZAHL
; XXX ;
SRCKSK: XTHL
PUSH PSW
MOV A,M
INX H
ANA B
JMP CKSK2
;SUBROUTINE SRCKJP
;*****************
;ANRUF: CALL SRCKJP
; MASKE
; VERGLEICHSZAHL
; SPRUNGADR L ;SPRUNG ZU DIESER ADRESSE FALLS
; SPRUNGADR H ;(B) AND MASKE = VERGLEICHSZAHL
SRCKJP: XTHL
PUSH PSW
MOV A,M
INX H
ANA B
JMP CKJP2
;SUBROUTINE SRCKCN
;*****************
;ANRUF: CALL SRCKCN
; MASKE
; VERGLEICHSZAHL1 ;1.ELEMENT DER KETTE
; SPRUNGADR L ;SPRUNGADRESS: SPRUNG BEI UEBEREINSTIMMUNG
; SPRUNGADR H ;2. ELEMENT DER KETTE
; VERGLEICHSZAHL2
; XXX
; XXX
; XXX
; XXX
; XXX
; ..........
; 0 ;MASKE 0= ENDBEDINGUNG
SRCKCN: XTHL
PUSH PSW
CHCNLP: MOV A,M
INX H
JMP CKCN2
;SUBROUTINE CALL SFLANK
;*****************
;PRUEFUNG AUF FLANKE: MOMENTANER BEFEHL IN B
; LETZTER BEFEHL IN D
;ANRUF: CALL SFLANK
; MASKE
; ADRESSE WENN KEINE POS. CALL SFLANK IN B UND D
; HIGH ADRESSE
SFLANK: XTHL
PUSH PSW
MOV A,D
CMA
ANA B
ANA M
INX H
JZ CNFUND ;CALL SFLANK NICHT GEFUNDEN
JMP CKJPND ;CALL SFLANK GEFUNDEN
CKSK2: CMP M
INX H
JZ CKSEND
INX H
CKJPND: INX H
INX H
CKSEND: POP PSW
XTHL
RET
CKJP2: CMP M
INX H
JZ CNFUND
JMP CKJPND
CKCN2: CPI 0
JZ CNEND
ANA B
CMP M
INX H
JZ CNFUND
INX H
INX H
JMP CHCNLP
CNFUND: MOV A,M
INX H
MOV H,M
MOV L,A
CNEND: POP PSW
XTHL
RET
HAUPT2: IN CSHALT ;LESE BEFEHL:VERZW. ENTSP. BITS 7-5
MOV D,B ;FUER SUB. CALL SFLANK
MOV B,A ;BEFEHL IN B
CALL SRCKCN
DB #E0 ;SCHALTERSTELLUNG 1
DB #C0
DW CODALU
DB #E0 ; " 2
DB #A0
DW AKKUM
DB #E0 ; " 3
DB #80
DW AKKSPI
DB #E0 ; " 4
DB #60
DW BASIC
DB #E0 ; " 5
DB #40
DW HYPOTH
DB #E0 ; " 6
DB #20
DW SY8080
DB #E0 ; " 7
DB #0
DW ERWEIT
DB CHKEND
;SYSTEM 0 MUSS UNMITTELBAR HIER NACHFOLGEN
;SCHALTERSTELLUNG 0 NICHT EXPLIZIT GEPRUEFT
;SYSTEM 0****************************************
;ADDIERER - SUBTRAHIERER
;VERKNUEPFT ASHALT UND BSHALT NACH BEFEHL IN B BITS 4-0
ADDSUB: IN ASHALT
CHKSKP ;ASHALT OFF
DB #10
DB #0
XRA A
NOP
NOP
CHKSKP ;ASHALT KOMPLEMTIERT
DB #4
DB #4
CMA
NOP
NOP
MOV C,A
IN BSHALT
CHKSKP ;BSHALT OFF
DB #8
DB #0
XRA A
NOP
NOP
CHKSKP ;BSHALT KOMPLEMTIERT
DB #2
DB #2
CMA
NOP
NOP
STC
CHKSKP ;INCREMENT ERGEBNIS
DB #1
DB #0
CMC ;CARRY 0 WENN KEIN INCREMENT
NOP ;ERFORDERLICH
NOP
ADC C
DISPLY: STA 377 ;OUT RLAMPE
RAL
ANI 1
STA 376 ;OUT LLAMPE
RAR
JMP START
;SUBROUTINE OPCODE. VERKNUEPFT A UND C NACH BEFEHL IN B: BITS 3-0
OPCODE: CHKSKP ;A=0
DB #17
DB #0
XRA A
NOP
NOP
CHKSKP ;A=1
DB #17
DB #1
XRA A
INR A
NOP
CHKSKP ;A=A NICHT
DB #17
DB #2
CMA
NOP
NOP
CHKSKP ;A=C
DB #17
DB #3
MOV A,C
NOP
NOP
CHKSKP ;A=C NICHT
DB #17
DB #4
MOV A,C
CMA
NOP
CHKSKP ;A=A+1
DB #17
DB #5
ADI 1 ;NICHT INR A WEGEN CARRY
NOP
CHKSKP ;A=A-1
DB #17
DB #6
SUI 1 ;NICHT DCR A WEGEN CARRY
NOP
CHKSKP ;A=A+C
DB #17
DB #7
ADD C
NOP
NOP
CHKSKP ;A=A-C
DB #17
DB #10
SUB C
NOP ;EVENTU. CMC
NOP
CHKSKP ;A=A AND B
DB #17
DB #11
ANA C
NOP
NOP
CHKSKP ;A=A OR,B
DB #17
DB #12
ORA C
NOP
NOP
CHKSKP ;A=A XOR B
17
13
XRA C
NOP
NOP
CHKSKP ;A= -1
17
14
XRA A
CMA
NOP
CHKSKP ;INPUT A=BSHALT
17
15
MVI A 253 ;IN BSHALT
NOP
RET
*420 ;TEMPORARY
;SYSTEM 1*************************************************
;ALU MIT CODIERUNG
CODALU: MVI A 123 ;IN BSHALT
MOV C,A
MVI A 240 ;IN ASHALT
STC
CMC
CALL OPCODE
JMP DISPLY
;SYSTEM 2***************************************
;AKKUMULATOR
AKKUM: MOV A,E ;AKKU IN REG E:(ACC) WIRD ANGEZEIGT
CALL SFLANK
20
DW DISPLY ;WARTE AUF TAKT
MVI A 123 ;IN BSHALT
MOV C,A
MOV A,E
CALL OPCODE
MOV E,A
JMP DISPLY
;SYSTEM 3**********************************************
;AKKUMULATOR MIT SPEICHER
AKKSPI: MOV A,E ;ACC IN REG E
PUSH PSW
MVI A 123 ;IN ASHALT: LADE OPCODE BITS 7-4
;UND ADRESSE BITS 3-0
PUSH PSW
ANI 17 ;SPALTE ADRESS AB
MOV L,A
POP PSW ;BEFEHL KOMMT ZURUECK
RAR
RAR
RAR
RAR
ANI 17 ;SPALTE OP-CODE AB
MOV H,A ;ZWISCHENSPEICHER FUER OP-CODE
POP PSW
CALL SRCKJP
4
4
DW DEPOST
CALL SRCKJP
2
2
DW EXAMIN
CALL SFLANK
20
DW DISPLY ;WARTE AUF TAKT
PUSH B
MOV B,H ;OP-CODE INS B-REG
MVI H RAMPAG ;H:L ENTHAELT JETZT ADRESS
MOV C,M
CALL OPCODE ;HOLE OPERANDEN
MOV E,A ;SYSTEM-AKKU ZURUECK
CALL SRCKJP ;OP-CODE NOCH IN B: STORE?
17
16
DW STORE
POP B
JMP DISPLY
DEPOST: MVI A 240 ;IN BSHALT
STORND: MVI H RAMPAG
MOV M,A
JMP DISPLY
EXAMIN: MVI H RAMPAG
MOV A,M
JMP DISPLY
STORE: POP B
JMP STORND
;SYSTEM 4******************************************
;BASIC COMPUTER
;REGISTER ZUORDNUNG
;FLAGS
;DST;ARBEITSREGISTER A
;BEFEHLSREGISTER B
;SRC C
;LETZTER BEFEHL D
;AKKU E
;PC-HIGH H
;PC-LOW L
BASIC: PUSH PSW ;RETTE CARRY
MOV A,L ;MASK UEBERFLUESSIGE BITS IM PC WEG. RUN-LAMPE
ANI 17
MOV L,A
POP PSW
PUSH H ;SPEICHERE PC
MOV A,E
MVI H RAMPAG
PUSH PSW ;CARRY WIRD GESPEICHERT
MVI A,3 ;IN ASHALT: HOLE MEMORY ADDRESS
ANI 17
CHKSKP ;LOAD ADDRESS?
1
1
MOV L,A ;JA
NOP
NOP
CALL SRCKJP ;EXAMINE?
2
2
DW EXAM2 ;JA
CALL SFLANK ;DEPOSIT
4
DW BASIC2
JMP DPOST2 ;DEPOSIT NUR WENN CALL SFLANK IN BIT 2 GEFUNDEN
BASIC2: MOV A,E
CALL SRCKJP ;00:10
10
0
DW DSPLY2 ;WARTE AUF START
CALL SRCKJP ;01
30
10
DW NORMAL ;RECHNER LAUEFT NORMAL
CALL SFLANK ;RECHNER LAUEFT IN SINGLE STEP MODE
10
DW DSPLY2 ;WARTE AUF TAKT BIT 3
NORMAL: MOV A,M ;FETCH
ANI 360
CPI 360 ;HALT BEFEHL
MOV A,E
JZ DSPLY2
MOV A,M ;FETCH
PUSH PSW
ANI 17 ;ISOLIERE ADRESSTEIL DER INSTRUKTION
MOV L,A
POP PSW ;GANZE INSTRUKTION ZURUECK
RAR ;ISOLIERE OPCODE
RAR
RAR
RAR
ANI 17
MOV H,A ;ZWISCHENSPEICHER FUER OP-CODE
POP PSW ;CARRY KOMMT ZURUECK
PUSH B ;WEGEN OP-CODE
MOV B,H ;OP-CODE INS BEFEHLSREGISTER
MVI H RAMPAG
MOV C,M ;OPERANDEN WERDEN GEHOLT
CALL OPCODE
MOV E,A ;NEUER WERT DES AKKU
CHKSKP ;STORE
17
16
MVI H RAMPAG ;JA
MOV M,A ;ADRESSTEIL DER INSTRUKTION NOCH IN L
POP B
POP H ;BRINGE PC ZURUECK
PUSH PSW
MOV A,L ;INCREMENT PC
INR A
ANI 17
ORI 100 ;SETZE RUN LAMPE
MOV L,A
MOV A,E
JMP DSPLY2
EXAM2: DCR L
MOV A,M
INR L
DSPLY2: STA 377 ;OUT RLAMPE
MOV A,L
RAL
RAL
RAL
MOV H,A
POP PSW
MOV A,H
RAL
STA 376 ;OUT LLAMPE
RAR
CALL SFLANK
6
DW START
INR L ;INC P.C
JMP START
DPOST2: MVI A 345 ;IN BSHALT
MOV M,A
JMP DSPLY2