MODULE UNITEST; SYSTEM; TERMINAL: A1<-; MONITOR: A1->; COMMAND: XC->; /*+M*/ PROBLEM; SPC TERMINAL DATION IN ALPHIC CONTROL(ALL); SPC MONITOR DATION OUT ALPHIC CONTROL(ALL); SPC COMMAND DATION OUT ALPHIC CONTROL(ALL); SPC WRIBM ENTRY (FIXED(31),FIXED(15)) GLOBAL; SPC WRECB ENTRY (FIXED(31),FIXED(15)) GLOBAL; SPC RDIBM ENTRY (FIXED(31)) RETURNS(FIXED(15)) GLOBAL; SPC RDECB ENTRY (FIXED(31)) RETURNS(FIXED(15)) GLOBAL; SPC STATUS ENTRY RETURNS(FIXED(15)) GLOBAL; SPC SELECT ENTRY (FIXED(15)) GLOBAL; SPC SSEL ENTRY (FIXED(15)) GLOBAL; DCL ADRESSE FIXED(31); DCL WERT FIXED(15); DCL ANTWORT CHAR(1); GETADR: PROC; DCL ADR BIT(32); PUT ' Geben Sie Bitte die Adresse ein: ' TO MONITOR BY (2)SKIP,A; GET ADRESSE FROM TERMINAL BY SKIP,F(7); PUT ' Soll der I/O - Bereich angesprochen werden J/N ' TO MONITOR BY SKIP,A; GET ANTWORT FROM TERMINAL BY SKIP,A; IF ANTWORT EQ 'J' THEN ADR := TOBIT(ADRESSE); ADR := ADR OR '80000000'B4; ADRESSE := TOFIXED(ADR); FIN; END; GETWERT: PROC; PUT ' Geben Sie Bitte den Wert ein : ' TO MONITOR BY SKIP,A; GET WERT FROM TERMINAL BY SKIP,F(4); END; SHOWWERT: PROC; PUT ' Der gelesene Wert war : ' TO MONITOR BY SKIP,A; PUT WERT TO MONITOR BY F(3); GET FROM TERMINAL BY SKIP,A; END; UNITEST: TASK; PUT TOCHAR(27),'*' TO MONITOR BY SKIP,(2)A; PUT 'TESTE DAS -- C''T UNIVERSALINTERFACE --' TO MONITOR BY (3)SKIP,(20)X,A; PUT 'Folgende Optionen stehen offen:' TO MONITOR BY (2)SKIP,A; PUT 'Teste IBM - Bus schreiben: (1) ' TO MONITOR BY (3)SKIP,A; PUT 'Teste IBM - Bus lesen : (2) ' TO MONITOR BY SKIP,A; PUT 'Teste ECB - Bus schreiben: (3) ' TO MONITOR BY SKIP,A; PUT 'Teste ECB - Bus lesen : (4) ' TO MONITOR BY SKIP,A; PUT 'Hole STATUS Wort : (5) ' TO MONITOR BY SKIP,A; PUT 'Aktiviere EPROM - Sockel : (6) ' TO MONITOR BY SKIP,A; PUT 'Aktiviere Expander-Slot : (7) ' TO MONITOR BY SKIP,A; PUT 'TEST beenden : (8) ' TO MONITOR BY (2)SKIP,A; PUT ' Auswahl : ' TO MONITOR BY (2)SKIP,A; GET WERT FROM TERMINAL BY SKIP,F(1); CASE WERT ALT /* WRIBM */ CALL GETADR; /* HOLE ZUGRIFFSADRESSE */ CALL GETWERT; /* HOLE SPEICHERWERT */ CALL WRIBM(ADRESSE,WERT); ALT /* RDIBM */ CALL GETADR; /* HOLE ZUGRIFFSADRESSE */ WERT := RDIBM(ADRESSE); CALL SHOWWERT; /* GEBE SPEICHERWERT AUS */ ALT /* WRECB */ CALL GETADR; /* HOLE ZUGRIFFSADRESSE */ CALL GETWERT; /* HOLE SPEICHERWERT */ CALL WRECB(ADRESSE,WERT); ALT /* RDECB */ CALL GETADR; /* HOLE ZUGRIFFSADRESSE */ WERT := RDECB(ADRESSE); CALL SHOWWERT; /* GEBE SPEICHERWERT AUS */ ALT /* STATUS */ WERT := STATUS; /* HOLE STATUS VOM INTERFACE */ CALL SHOWWERT; ALT /* SELECT */ PUT ' Geben Sie bitte den zu aktivierenden Steckplatz ein :' TO MONITOR BY (2)SKIP,A; GET WERT FROM TERMINAL BY SKIP,F(2); CALL SELECT(WERT); ALT /* SSEL */ PUT ' Geben Sie bitte den zu aktivierenden Slot ein :' TO MONITOR BY (2)SKIP,A; GET WERT FROM TERMINAL BY SKIP,F(2); CALL SSEL(WERT); ALT /* ENDE */ TERMINATE; FIN; PUT 'UNITEST' TO COMMAND BY SKIP,A; END; MODEND;