x ; MICROPROCESSOR-KIT TESTER PROGRAMM ; ********************************** ; ; ;DEFINITIONEN ; START EQU 0H ; ASHLT EQU 2H BSHLT EQU 1H CSHLT EQU 4H LLAMP EQU 2H RLAMP EQU 1H ; ; SHLTA EQU 2H SHLTB EQU 1H SHLTC EQU 4H LAMPL EQU 2H LAMPR EQU 1H NEWIO EQU 8H ; ; RSBIT EQUH ;FUER NEWIO RUNLM EQU 2H ;" " GO EQU 4H ;" " NOGO EQU 8H ;" " ; ; LOADR EQU 1H ;FUER C-SCHALTER EXAM EQU 2H ;" " DEPOS EQU 4 RUN EQU 8H ;" " BREAK EQU 10H ;" " SSTEP EQU 10H ;" " TAKT EQU 10H ;" " ; ; EXPT0 EQU 0E0H EXPT1 EQU 0C0H EXPT2 EQU 0A0H EXPT3 EQU 80H EXPT4 EQU 60H EXPT5 EQU 40H EXPT6 EQU 20H ; ; RAMBT EQU 400H TERMT EQU 13FFH RAMTP EQU 4FFH ; TRMBT EQU 400H+START TRMTP EQU 4FFH+START CBILD EQU TRMTP ; FRED EQU 93H ; ; ORG START ; LXI SP,TRMTP-1 CALL LOADC DB0 ; ;RAMTE ; ;RAM-PRUEFPROGRAMM. DIESER TEIL LAEUFT IM ;TESTER. ERLAEDT RAMPR IN DEN PRUEFLING, ;LAESST ES LAUFEN UND WARTET. DIE ANTWORT GLEICH ;FRED +3MAL (0100H-RAMND) KOMMT IN DEN LLAMPE ;ZURUECK. FREDIST BELIEBIG Z.B 93H ; ; ; RAMTE: CALL BOOTS ;LADE RAMPR DW RAMPR DW RAMND DW RAMBT CALL SETC DB RUN ; CALL WARTE DB 40H ;EINSTELLEN! ; IN LAMPL CPI FRED+3*(RAMPR+100-RAMND) JNZ ERROR ; ;ROMTE ; ;ROM-PRUEFPROGRAMM. DIESER TEIL LAUFT IM ;TESTER. ER GIBT DEM PRUEFLING EINE ;ADRESSE UND ERWARTET DEN ROM-INHALT. ;KEIN HANDSHAKE: DER PRUEFLING MUSS ;INNERHALB EINER GEWISSEN ZEIT ANTWOREN ;PRUEFUNG VON OBEN NACH UNTEN ; ; ; ROMTE: CALL BOOTS ;LE PROGR. ROMPR DW ROMPR DW ROMND DW RAMBT CALL SETC DB RUN CALL WARTE DB 5H ;EINSTELLEN LXI D,3FFH ;HOCHSTE ROM-ADR LXIH,TERMT ;LETZTE ROM-ADR. IN MASTER-ROM ROMLP: MOV A,D OUT SHLTA ;HIGH ADR MOV A,E OUT SHLTB ;LOW ADR MVI B,0BH ;KLEINE WARTESCHLEIFE RMDEL: DCR B JNZ RMDEL IN LAMPR CMP M JNZ ERROR DCX H DCX D ; MOV A,D ANA E ;ENDE WENN BEIDE GLEICH FF JP ROMLP ; ; ; ;IOTE ; ;I/O PRUEFOGRAMM. DIESER TEIL LAUFT IM TESTER ;VERSCHIEDENE BITMUSTER WERDEN BENUTZT DAFUER ;WERDEN C,D,UND E ALS ZAEHLER BETRIEBEN. C NACH ;UNTEN,EACH OBEN UND D NACH OBEN IN SCHRITTEN ;VON 3. IM PRUEFLING LAEFT DAS PROGRAMM IOPR ; ; ; IOTE: CALL BOOTS ;LADE PROG. IOPR W IOPR DW IOEND DW RAMBT ; CALL SETC DB RUN CALL WARTE DB 5H ; XRA A ;LOESCHE C,D,E MOV C,A MOV D,A MOV E,A IOLOP: CALL IOSUB DCR C CALL IOSUB INR D INR D INR D CALL IOSUB INR E JNZ IOLOP ; ; ; ; ;SYST 0 ; ;EXPERIMENT 0 PRUEFT ADD UND SUB ; ; SYST0: CALL LOADC DB EXPT0 CALL RESET MVI A,0C3H OUT SHLTA MVI A,017H OUT SHLTB CALL SETC DB 18H ;A+B=C3+17=0DA CALL CHKRL DB 0DAH ; CALL SETC DB 7H ;A-B-1=-DB=25 CALL CHKRL DB 25H ; CALLCHKLL DB 1H ;CARRY=1 ; ; ; ;SYST1 ; ;EXPERIMENT 1 PRUEFT A,A+1,A XOR B ; ; SYST1: CALL LOADC DB EXPT1 CALL RESET MVI A,0FH OUT SHLTA MVI A,0AAH OUT SHLTB CALL CHKRL DB 0FH ;FUNKTION A ; CALL SETC DB 5H CALL CHKRL DB 10H ;FUNKTIONA+1 ; CALL SETC DB 0BH CALL CHKRL DB 5AH ;FUNKTIONA X0R B ; ; ; ;SYST2 ; ;EXPERIMENT 2 PRUEFT SP1 UND ADD ; ; ; SYST2: CALL LOADC DB EXPT2 CALL RESET MVI A,2FH OUT SHLTB CALL SETC DB 1H CALL TAKTC DB TAKT CALL CHKRL DB 1H ;SP1 ; CALL SETC DB 7H CALL TAKTC DB TAKT CALL CHKRL DB 30H ;ADD:2F+1=30 ; ; ; ;SYST3 ; ;EXPERIMENT 3 LAEDT 47 IN ADR 4 INPUT 32 ;IN ACC ADDIERT BEIDE ZUSAMMEN ; ; ; SYST3: CALL LOADC DB EXPT3 CALL RESET MVI A,H OUT SHLTA MVI A,47H OUT SHLTB CALL TAKTC DB DEPOS ;LADE 47 IN ADR 4 ; MVI A,32 OUT SHLTB MVI A,0D0H CALL TAKTC DB TAKT ;INPUT 32 IN ACC ; MVI A,74H ;OP-CODE 7,ADR4 OUT SHLTA CALL TAKTC DB TAKT ;ADD <4>=47 ; CALL CHKRL DB 79H ; ; ; ;SYST4 ; ;EXPERIMENT 4 LAEDT LDA 5, CMA,HLT IN ADR ;5,6,7.LDA 5 LAEDT SICH SELBST =35IN DEN ;ACC. ERGEBNIS = 0CA ALLES IN SINGLE STEP ; ; ; SYST4: CALL LOADC DB EXPT4 CALL RESET MVI A,5H ;ANFANGSADRESSE 5 OUT SHLTA CALL TAKTC DB LOADR ;LOAD ADR 5 ; MVI A,35H OUT SHLTB CALL TAKTC DB DEPOS ;LADE 35 IN ADR 5 ; MVI A,20H OUT SHLTB CALL TAKTC DB DEPOS ;LADE 20 IN ADR 6 ; MVI A,0F0H OUT SHLTB CALL TAKTC DB DEPOS ;LADE F0 IN ADR 7 ; CALL SETC DB SSTEP ;SINGLE STEP CALL TAKTC DB LOADR ;ADR 5 ZIRUECK CALL TAKTC DB RUN CALL CHKRL DB 35H ;LDA 5 CALL CHKLL DB 62H ;PC = 6,RUN = 1, CARRY=0 ; CALL TAKTC DB RUN CALL CHKRL DB 0CAH ;CMA CALL CHKLL DB 72H ;PC =7,RUN=1,CARRY=0 ; CALL TAKTC DB RUN CALL CHKRL DB 0CAH ;HLT CALL CHKLL DB 70H ;PC=7(NOCH),RUN=0,CARRY=0 ; ; ; ;SYST5 ; ;EXPERIMENT 5 LIEST ETWAS VOM A-SCHALTER ;UND SPRINGT ZURUECK. TESTER BIETET PRUEFLING 52H AN ;UND ERWARTET 52H IN R-LAMPEN IN <52H> =E0H IN ;L-LAMPEN; ; ; SYST5: CALL LOADC DB EXPT5 CALL RESET MVI A,50H ;ANFANGS.ADR. DES PROGS. OUT SHLTA CALL TAKTC DB LOADR ;LOAD ADR 50H ; MVI A,87H OUT SHLTA CALL TAKTC DB DEPOS ;LADE 87=LOAD A3 MVI A,0FFH ;MEMORY MAPPED IO ADDR. OUT SHLTA ;FUER A-SCHALTER CALL TAKTC DB DEPOS ;LADE FF = INPUT ; MVI A,0E0H OUT SHLTA CALL TAKTC DB DEPOS ;LADE E0=JUMP ; MVI A,50H OUT SHLTA CALL TAKTC DB DEPOS ;LADE 50=SCHLEIFEN ADR. ; CALL SETC DB RUN MVI A,3BH ;DISPLAY <> UND OUT SHLTB ; MVI A,52H ;INPUT DATEN OUT SHLTA ; CALL WARTE DB 4H ;ZUSAETZLICHE VERZOEG. ; CALL CHKRL DB 52H ;INPUT-DATEN ZURUECK CALL CHKLL DB 0E0H ;<> - INPUT ADR 52 ; ; ; ; ;ALLOK UND ERROR ; ;ENDE DES HAUPTPROGRAMMES. ENTWEDER LEUCHTET ;DIE GO ODER DIE NOGO-LAMPE. DER TESTER HAELT UND W ;WARTET AUF RESET. RUN LAMPE GELOESCHT ; ; ; ALLOK: CALL LOADC DB GO HLT ; ERROR: CALL LOADC DB NOGO HLT ; ; ; ;