9800463 03_ICE 85B_In Circuit_Emulator_Operating_Instructions_for_ISIS II_Users_Aug81 03 ICE 85B In Circuit Emulator Operating Instructions For ISIS II Users Aug81
9800463-03_ICE-85B_In-Circuit_Emulator_Operating_Instructions_for_ISIS-II_Users_Aug81 instructions pdf -FilePursuit
9800463-03_ICE-85B_In-Circuit_Emulator_Operating_Instructions_for_ISIS-II_Users_Aug81 9800463-03_ICE-85B_In-Circuit_Emulator_Operating_Instructions_for_ISIS-II_Users_Aug81
User Manual: 9800463-03_ICE-85B_In-Circuit_Emulator_Operating_Instructions_for_ISIS-II_Users_Aug81
Open the PDF directly: View PDF .
Page Count: 233
Download | |
Open PDF In Browser | View PDF |
ICETM-85b IN-CIRCUIT EMULATOR OPERATING INSTRUCTIONS FOR ISIS-II USERS Order Number: 9800463-03 1 ' - -_ _ _ _----J Copyright © 1977,1978,1979, 1981 Intel Corporation Intel Corporation, 3065 Bowers Avenue, Santa Clara California 95051 IL....-_ _ _ _- - J Additional copies of this manual or other Intel literature may be obtained from: Literature Department Intel Corporation 3065 Bowers Avenue Santa Clara. CA 9505 I The information in this document is subject to change without notice. IntelCorpor= 2) AND (MAIN$TIME >= MAIN$CYCLE$LENGTH) AND (CARS$WAITING = 1) AND (MAINTIME >= 2 * MAIN$CYCLE$LENGTH) THEN DO; CALL CYCLE; CARS $WAITING 0; MAIN$TIME = 0; END; END; END CARS; Figure 3-2. CARS! Listing (Continued) 3-10 ICE-85B LOC 0000 0001 0003 0004 0005 0008 OOOB OOOE 0011 0012 0015 0016 0019 0002 A Sample ICE-85 Session OBJ 79 06FF 48 OD 221AOO 221AOO 221A90 221AOO 00 C20400 3D C20300 C9 SOURCE STATEMENT SEQ C C C C C C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ; TIME DELAY SUBROUTINE -- 0.01 SEC TIMES ARGUMENT DELAY: LAB1 : LAB2: TEMP: CSEG PUBLIC MOV MVI MOV DCR SHLD SHLD SHLD SHLD NOP JNZ OCR JNZ RET DS END DELAY A,C B,255 C,B C TEMP TEMP TEMP TEMP ARGUMENT PASSED IN C REGISTER DELAY PARAMETER WASTE 14 CYCLES DITTO DITTO DITTO WASTE 4 CYCLES LAB 2 A LAB1 2 DUMMY DATA STORAGE Figure 3-3. DELAY Subroutine Listing 3-11 ICE-85B A Sample ICE-85 Session A Debugging Session Using ICETM-85 We will now step through an emulation using ICE-85 as a software debugging tool. This exercise is divided into two parts. The first part isolates, identifies, and corrects program errors contained in the CARS I program. The second part is a short exercise of CARS2 to verify the correction of the program errors found in CARS I. Ia. Display initial LIMIT and change to protect user program: *LlM This displays initial LIMIT setting. *LlM = lEOO This changes LIMIT to allow user area to be mapped without warning message and protects work area from being overwritten by the ICE workspace. I b. Request a display of the memory map by entering the command: MAP This causes the display of the initial state of each of the thirty-two 2K memory blocks. The "G" denotes that the associated block is GUARDED. i.e., access to any memory address in that block is an error condition. All blocks are initially guarded. 2. Request a display of the 10 MAP by entering the command: MAPlO This causes the display of the initial state of each of the thirty-two 8-port segments. The "G" denotes that the associated segment is GUARDED, i.e., access to any port in that segment is an error condition. All segments are initially guarded. 3. Enter the following "MAP =" commands: a. MAP MEMORY 0 = lNTELLEC 0 This provides access to ISIS-II reserved locations in block 0000 where ISIS-II variables used by the CARSl program are stored. The warning message notifies you that you are mapping into the system area. b. MAP MEMORY 3000 LENGTH 4K = INTELLEC 7000 This provides 4K address locations for the CARS 1 program code. c. MAP F800 = INTELLEC F800 This provides CARSl access to the routine in MONITOR. Note that the term "MEMORY" is not mandatory in this command. "MEMORY" is the default specification and can be omitted. The warning message notifies you that you are mapping over the system monitor area. 4. Review the effects of the above map commands by entering: MAP This causes the display of the updated map. "I" means Intellec. Note the displacement of block 3000 into Intellec memory block 7000, and the displacement of the succeeding block, 3800, into Intellec memory block 7800. 3-12 ICE-8SB A Sample ICE-85 Session la. *; DISPLAY INITIAL LIMIT * *LIM 7000 * *; *; *; *; *; CHANGE LIMIT TO PROTECT USER AREA FROM ICE WORKSPACE OVERWRITING ANY USER CODE * *LIM = 7EOO * * lb. *; DISPLAY INITIAL MEMORY MAP * *MAP SHARED OOOO=G 2OOO=G 4oo0=G 6000=G 80oo=G AOOO=G COOO=G EOOO=G 0800=G 28oo=G 48oo=G 6800=G 88oo=G A800=G C8oo=G E800=G lOOO=G 3000=G 5000=G 7000=G 9000=G BOOO=G DOOO=O FOOO=G 1800=0 3800=0 5800=G 7800=G 9800=G B800=G D8oo=0 F800=G IO=G 30=G 50=G 70=G 9O=G BO=G DO=O FO=O 18=0 38=G 58=G 78=G 98=G B8=G D8=0 F8=G * 2 * *; DISPLAY INITIAL I/O MAP * *MAPIO OO=G 20=G 40=G 60=G 80=G AO=G CO=G EO=G 08=G 28=G 48=G 68=G 88=G A8=0 C8=G E8=G * 3 * *; MAP MEMORY BLOCK 0 FOR ACCESS TO ISIS·II VARIABLES * *MAP MEMORY 0 = INTELLEC 0 WARN CI :MAPPING OVER SYSTEM **; MAP SPACE FOR PROGRAM CODE * *MAP MEMORY 3000 LENGTH 4K = INTELLEC 7000 * *; MAP BLOCK F800 FOR ACCESS TO MONITOR ROUTINE *; NOTE THAT 'MEMORY' IS THE DEFAULT, AND CAN BE OMITTED * 4 * MAP F800 = INTELLEC F800 WARNING CI:MAPPING OVER SYSTEM *; WARNING TO TELL USER MONITOR AREA BEING OVERLAYED *; REVIEW EFFECTS OF MEMORY MAP COMMANDS * *MAP SHARED 0000=1 0000 2000=G 4OOO=G 6000=G 8000=G AOOO=G COOO=G EOOO=G 0800=0 28oo=G 48oo=G 6800=G 88oo=G A800=0 C800=G E800=G 1000=0 3000=1 7000 5000=0 7000=G 9000=G BOOO=G DOoo=O FOOO=G 1800=0 3800=1 7800 5800=G 7800=G 98oo=G B800=G D8oo=0 F800=1 F800 3-13 A Sample ICE-85 Session ICE-85B 5. Map 10 ports into Intellec by entering the command: MAP 10 FO TO FF = INTELLEC Note that no displacement is permitted. Review the updated 10 MAP by entering: MAPIO 6. Load CARS! from the di~kette in drive 0 (:FO:) into Intellec memory: LOAD:FO:CARS1 7. Define two user symbols: DEFINE.START = PC The current contents of the program counter (PC) contains the starting address for CARS!. This sets START equal to the starting address. DEFINE.14 = .SIDE$STREET$CAR This defines 14 as a synonym for SIDE$STREET$CAR. Therefore SIDE$STREET$CAR can be called using 14 in the call in place of the longer SIDE$STREET$CAR. 8. Display the symbol table: SYMBOL Note that START is set to the starting address (36C3H) and that 14 and SIDE$STREET$CAR are set to the same address (3727H). 3-14 ICE-85B A Sample ICE-85 Session 5 6 *., MAP HIGHEST TID SEGMENTS OF I/O PORTS * *MAP 10 FO TO FF = INTELLEC * *., REVIEW I/O MAP * *MAP 10 OO=G 08=G 10=G 20=G 28=G 30=G 40=G 48=G 50=G 60=G 68=G 70=G 80=G 88=G 90=G AO=G A8=G BO=G CO=G C8=G DO=G EO=G E8=G FO=I * 18=G 38=G 58=G 78=G 98=G B8=G D8=G F8=I * *; LOAD EMULATION PROGRAM, CARS1, CONTAINING ERRORS *; TO BE IDENTIFIED AND CORRECTED * *LOAD :FO : CARS 1 * 7 * *; DEFINE TWO USER SYMBOLS FOR USE IN EMULATION * *DEFlNE .START = PC *DEFINE .14 = SIDE$STREET$CAR * 8 * *; LOOK AT SYMBOL TABLE * * SYMBOL .START=36C3H .I4=3727H MODULE •• CARS .MEMORY=3889H .MAINTlME=3883H • S IDETlME=3884H .MAINCYCLELENGTH=3680H .SIDECYCLELENGTH=3681H .CARSWAITING=3885H .LIGHTSTATUS=3886H .MAINGREENMESSAGE=3682H .SIDEGREENMESSAGE=3696H .TIMEMESSAGE=36AAH .SIDESTREETCAR=3727H .DISPLAY=3735H .CYCLETIME=3887H .I=3888H .CYCLE=37E9H MODULE •• MODULE .DELAY=3816H .LAB1=3819H .LAB2=381AH .TEMP=3830H * * 3-15 A Sample ICE-85 Session 9. Initiate emulation by entering the command GO. lD. Halt emulation after a few cycles by depressing the ESC key. Enter the command: CALL .14 This simulates an interrupt to enter a car on the side street. This call enters the first car on the side street. Emulation continues automatically after the call has been executed. 11. Let emulation continue until 18 seconds have elapsed. Then halt emulation via the ESC key. Main cycle time (2*MAIN$CYCLE$TIME) has been exceeded without a light change. This is a program error. 12. Enter the second car on the side street: CALL .14 Depress ESC key after 22 seconds of emulation. 13. Still no light change. 14. Display the contents of CARS$WAITING: BYTE .CARS$WAITING The command BYTE operator causes the display of the contents of the byte location specified by the parameter 'operator', in this case, CARS$WAITING. Note that the address of CARS$WAITING is 3885H (see symbol table). Therefore the display shows that CARS$WAITING = 0 (should be equal to 2). 15. Visually inspect statement 11 of the CARS$WAITING .LST listing. It contains the wrong variable, SIDE$TIME. It should be CARS$WAITING. 16. Check the address of SIDE$TIME by entering the command: SIDE$TIME The display contains the address of SIDE$TIME, 3884H. 3-16 ICE-85B ICE-85B A Sample ICE-85 Session 9 *; PROGRAM IS NOW READY TO EMULATE, USING THE CURRENT PC *; CONTENTS AS THE START ADDRESS, AND 'FOREVER' AS THE *; DEFAULT HALTING CONDITION. * *GO EMULA TION BEGUN ( 10 ... ) EMULATION TERMINATED, PC=3824H PROCESSING ABORTED * *; HALTED MANUALLY (ESC KEY) TO ENTER FIRST CAR. * *CALL .I4 EMULATION BEGUN ( 11 ... ) EMULATION TERMINATED, PC=3821H PROCESSING ABORTED * *; STILL MAIN GREEN AFTER 18 SECONDS ELAPSED. SHOULD HAVE *; CYCLED TO SIDE GREEN AT 16 SECONDS WITH ONE CAR WAITING. *; ENTER SECOND CAR AND TEST. 12 * *CALL. 14 EMULATION BEGUN ( ... ) EMULATION TERMINATED, PC=381EH PROCESSING ABORTED 13 * *; STILL MAIN GREEN AFTER 22 SECONDS WITH TWO CARS WAITING. *; CHECK CARS$WAITINGi IT SHOULD BE EQUAL TO 2. * 14 *BYTE.CARS$WAITING 3885H=OOH 15 *; CARS$WAITING IS NOT BEING INCREMENTED. CHECK STATEMENT #11 *; OF THE PROGRAM LISTING (FIGURE 3-2). THIS IS WHERE CARS$WAITING *; SHOULD BE INCREMENTED. * * *; THE INTERRUPT ROUTINE IS INCREMENTING THE WRONG VARIABLE -*; SIDE$TIME INSTEAD OF CARS$WAITING. 16 * *; CHECK THE ADDRESS OF SIDE$TIME. * *.SIDE$TIME 3884H * * 3-17 A Sample ICE-8S Session ICE-SSB 17. Display the memory contents of statement 11 to statement 12 of CARS 1 to determine which bytes contain the address: BYTE .. CARS'11 TO ( .. CARS'12-1) The command BYTE partition causes all of the bytes of object code generated by statement 11 to be displayed. The second and third bytes (84H 38H) displayed contain the address. The second byte contains the two low- order digits of the address (84H) and the third byte contains the two high- order digits (38H). Therefore the address is 3884H. This is the address of SIDE$TIME (see the symbol table). The entry .. CARS tells ICE-85 which module to search for the statement number. 18. The above bytes CARS$W AITING. a. should Therefore, enter the CARS$WAITING: be changed following to command contain to get the address of the address of .CARS$WAITING The display response (3885H) is the address of CARS$WAITING. b. Next, enter the following command to change the address in statement 11 to the address of CARS$W AlTING: WORD ( .. CARS'11 + 1) = .CARS$WAITING WORD ( .. CARS#II + 1) in the above command references a 16-bit word consisting of the second byte ( .. CARS#ll + 1) and the third byte ( .. CARS#l1 + 2) of statement 11. c. Verify that the address has been changed correctly by entering the following command: BYTE .. CARS'11 TO ('12 -1) The display response shows that the address in statement 11 is now correct. 19. Enter the following command to restart CARS 1: GO FROM .START FOREVER This command restores the initial start and halt condition. 20. After 3 seconds manually halt emulation via the ESC key and reenter the first car with the following command: CALL .14 21. Manually halt emulation via the ESC key after 17 seconds have elapsed. Enter the following command to examine the contents of CARS$WAITING: BYTE .CARS$WAITING 3-18 ICE-8SB A Sample ICE-85 Session 17 *; DISPLAY MEMORY CONTENTS FROM STATEMENT #11 UP TO *; STATEMENT #12 TO FIND THE BYTES WHERE THIS ADDRESS *; IS STORED. * *BYTE •. CARS#11 TO ( •• CARS#12 - 1) 372BH=21H 84H 38H 34H * *; THE MIDDLE TWO BYTES (84H 38H) ARE THE ADDRESS OF SIDE$TIME. 18 * *; REPLACE WITH THE ADDRESS OF CARS$WAITING. * *; FIRST, CHECK THE ADDRESS OF CARS$WAITING. * *.CARS$WAITING 3885H * *; CHANGE SIDE$TIME TO CARS$WAITING IN INTERRUPT ROUTINE. * *WORD ( •• CARS#11 + 1) = .CARS$WAITING * *; VERIFY THAT THE CHANGE WAS MADE CORRECTLY. * *BYTE •• CARS#11 TO ( •• CARS#12 - 1) 372BH=21H 85H 38H 34H * *; CHANGE WAS MADE CORRECTLY. 19 RESTART FROM • START • * *GO FROM .START FOREVER EMULATION BEGUN ( ... ) EMULATION TERMINATED, PC=3821H PROCESSING ABORTED * 20 * *; MAIN GREEN, 3 SECONDS ELAPSED. ENTER FIRST CAR AGAIN. * *CALL .I4 EMULATION BEGUN (. 21 .. ) EMULATION TERMINATED, PC=3824H PROCESSING ABORTED * *; MAIN STILL GREEN AFTER 17 SECONDS. SHOULD HAVE CYCLED *; AT 16 SECONDS WITH ONE CAR WAITING. * *; DOUBLE-CHECK CARS$WAITING * *BYTE • CARS$WAITING 3885H=01H * 3-19 A Sample ICE-85 Session 22. CARS$WAITING incremented correctly, enter second car: CALL .14 23. Halt emulation manually after 21 seconds. Still no light change, check contents of CARS$WAITINGagain: BYTE .CARS$WAITING CARS$WAITING equal to 2, incrementing properly. 24. Since CARS$WAITING is incrementing correctly, enter the following command to determine if CYCLE is ever executed: GO TILL .CYCLE EXECUTED Emulation should not halt. 25. Manually halt emulation after 25 seconds. 26. Change to Single Step mode using automatic display. a. Enter the following command to enable automatic display of call instructions: ENABLE DUMP CALL b. Do single step beginning at statement 52, the beginning of the DO loop in the Main program: STEP FRQM1LS2 In the display,-p--';;'-pC-;- the starting address of the called routine; the remainder of the display output can be ignored at this time. 27. Manually halt emulation with the ESC key. Note P =: 3816H in the last line of display above. 3816H is the start of the DELAY subroutine. Single stepping through DELAY will take too much time. 28. Bypass DELAY. Start single stepping from statement 55. Statement 55 increments MAIN$TIME. STEP FROM .. CARS#55 3-20 ICE-85B ICE-85B A Sample ICE-85 Session 22 *; THAT IS CORRECT. ENTER A SECOND CAR. * *CALL • I4 EMULATION BEGUN ( 23 ... ) ERULATION TERMINATED, PC=381AH PROCESSING ABORTED * *; ST+LL MAIN GREEN AFTER 21 SECONDS WITH TWO CARS WAITING. *; SHOULD HAVE CYCLED. CHECK CARS$WAITING AGAIN. * *BYTE .CARS$WAITING 3885H=02H 24 * *; CARS$WAITING IS INCREMENTING WITH EACH CAR. *; IS CYCLE EVER EXECUTED? * *GO TILL .CYCLE EXECUTED EMULATION BEGUN ... ( 25 ) EMULATION TERMINATED, PC=3824H PROCESSING ABORTED * *; MAIN STILL GREEN AT 25 SECONDS. 26 CYCLE IS NOT EXECUTING. * *; TRY SINGLE-STEPPING FROM THE BEGINNING OF THE DO-LOOP *; IN MAIN PROGRAM, AND DISPLAY ALL 'CALL' INSTRUCTIONS EXECUTED. * *ENABLE DUMP CALL *STEP FROM .. CARS#52 EMULATION BEGUN 36D7-E-CD 36D8-R-35 3609-R-37 3880-W-36 387F-W-DA P=3735H S=387FH A=59H F=B4H B=FFH C=19H D=OOH E=30H H=43H L=19H I=08H 377E-E-CD 377F-R-09 3780-R-F8 387E-W-37 387D-W-81 P=F809H S=387DH A-13H F=10H B=36H C=4DH O=OOH E=30H H=36H L=82H I=08H 377E-E-CD 377F-R-09 3780-R-F8 387E-W-37 387D-W-81 P=F809H S=387DH A=13H F=14H B=36H C=41H O=OOH E=30H H=36H L=83H I=08H ( 27 ... ) P=F809H S=387DH A=ODH F=10H B=36H C=OAH D=OOH E=30H H=38H L=88H I=08H 36DC-E-CD 36DD-R-16 36DE-R-38 3880-W-36 387F-W-DF P=3816H S=387FH A=OAH F=10H B=36H C=64H D=OOH E=30H H=38H L=88H I=08H EMULATION TERMINATED, PC=381EH PROCESSING ABORTEO * *; CAN'T USE STEP. DELAY ROUTINE TAKES TOO LONG. 28 * *; TRY STEPPING FROM THE NEXT STATEMENT AFTER THE RETURN FROM DELAY. * *STEP FROM •• CARS#55 EMULATION BEGUN 3709-E-CO 370A-R-65 370B-R-38 387C-W-37 387B-WOC P=3865H S=387BH A=1AH F=54H B=FFH C=FFH D=OOH E=30H H=OOH L=10H I=08H 36D7-E-CD 36D8-R-35 36D9-R-37 387E-W-36 387D-W-DA P=3735H S=3870H A=OOH F=54H B=OOH C=1AH D=OOH E=1AH H=43H L=1AH I=08H 377E-E-CD 377F-R-09 3780-R-F8 387C-W-37 387B-W-81 P=F809H S=387BH A=13H F=10H B=36H C=40H D=OOH E=1AH H=36H L=82H I=08H PROCESSING ABORTED * 3-21 A Sample ICE-85 Session 29. Manually halt single step after four automatic single step displays. Note P "" 3735H in the fourth line of display above. 3735H is the address of DISPLAY (see symbol table). Therefore CYCLE is not being executed. The IF statement (statement 56) is not branching correctly. 30. Restart emulation: GO FROM .START TILL .. CARS#56 EXECUTED This command sets PC "" START and specifies a halt on statement 56 (IF statement). 3}. After the halt on #56, set one of the test conditions of the IF statement: BYTE .CARS$WAITING = 1 BYTE .MAIN$TIME = 2* (BYTE .MAIN$CYCLE$LENGTH) 32. Set up emulation to continue from statement 56 and to halt when statement 58 or 62 is executed: GO TILL .. CARS#58 E OR .. CARS#62 E Note the use of E, an abbreviation for EXECUTED. When emulation halts, look at the contents of the Previous Program Counter (PPC): PPC The display response is 3722H. 33. Display the address of the first byte location of object code for statement 62: .. CARS#62 The address of statement 62 is 3722H, the address contained in the PPC in step 32. Therefore CYCLE was not executed. The IF statement took the "false" branch although you set the condition to the "true" state in step 3} above. 34. Repeat steps 30-32 with the second IF condition: GO FROM .STARTTILL .. CARS#56 EXECUTED 35. When emulation halts, set up the second IF condition: BYTE .CARS$WAITING = 2 BYTE .MAIN$TIME = BYTE .MAIN$CYCLE$TIME 36. Repeat test: GO TILL .. CARS#58 E or .. CARS# 62 E Display PPC: PPC Display contains 3722H. Display the address of statement 62: .. CARS#62 Address of statement 62 is 3722H, the same as the contents of the ppc. Therefore emulation bypassed CYCLE again. The IF statement failed to branch correctly under either branch condition. 37. Visually examine the IF statement in detail. Notice the second line of the IF statement is: AND (CARS$WAITING = 1) AND(MAIN$TIME>= 2*MAIN$CYCLE$LENGTH) The line is incorrect, the first "AND" should be "OR". As stated, the IF conditions contained in the first and second lines must both be true at the same time for the IF statement to branch to CYCLE. This is impossible. The test will always fail as stated. It must be one condition or the other. Therefore the AND must be changed to OR. To make this correction, the source code in CARS} must be changed and CARS} recompiled. CARS2 is a recompilation of CARSl with the necessary corrections. 3-22 ICE-85B ICE-85B A Sample ICE-85 Session ADD~SS 29 *; 30 *; TRY EMULATING FROM .START, HALTING RIGHT BEFORE THE DECISION POINT. *; TEST THE 'IF' STATEMENT BY SETTING THE VALUES MANUALLY. (P=3735H) IS THE BEGINNING OF DISPLAY. CYCLE NEVER EXECUTED. * * *GO FROM • START TILL •• CARS # 56 EXECUTED EMULATION BEGUN EMULATION TERMINATED, PC=36E6H * 31 *BYTE .CARS$WAITING = *BYTE .MAIN$TlME = 2*(BYTE .MAIN$CYCLE$LENGTH) 32 *; NOW TO EMULATE UNTIL CYCLE IS CALLED (STATEMENT #58) OR UNTIL THE *; END OF THE DO-LOOP IN THE MAIN PROGRAM IS EXECUTED (STATEMENT #62), *; HALTING EMULATION ON EITHER CONDITION. * * *GO TILL •• CARS#58 E OR •• CARS#62 E EMULA TION BEGUN EMULATION TERMINATED, PC=36D3H * *; LOOK AT PREVIOUS PROGRAM COUNTER (PPC). * *PPC 3722H 33 * *; COMPARE WITH STATEMENT #62 * *#62 3722H * 34 *; WE BRANCHED AROUND THE CALL TO CYCLE. THE' IF' COND ITION WAS NOT *; SATISFIED. TRY THE ALTERNATE CONDITION. *GO FROM .START TILL •• CARS #56 EXECUTED EMULATION BEGUN EMULATION TERMINATED, PC=36E6H * 35 *BYTE .CARS$WAITING = 2 *BYTE .MAIN$TIME = BYTE .MAIN$CYCLE$LENGTH 36 *GO TILL •• CARS#58 E OR _.CARS#62 E EMULATION BEGUN EMULATION TERMINATED, PC=36D3H * * *PPC 3722H * *#62 3722H * 37 *.I SAME RESULT AS FOR ONE CAR. THE 'IF' TEST IS FAILING. * * *.I EXAMINE THE 'IF' TEST. * *.I NOTE THAT THE 'IF' STATEMENT HAS 'AND' INSTEAD OF 'OR' *.I MUST EXIT ICE-85,. EDIT AND RECOMPILE PROGRAM. *.I FIXED PROGRAM IS CARS2. * *EXIT 3-23 A Sample ICE-85 Session ICE-8SB /* TRAFFIC LIGHT CONTROLLER PROGRAM */ 2 3 4 5 1 1 1 6 1 7 8 9 1 1 CARS: DO; DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE DECLARE (MAIN$TIME j SIDE$TIME) BYTE; MA1N$CYCLE$LENGTH BYTE DATA (8) , SIDE$CYCLE$LENGTH BYTE DATA CARS$WAITING BYTE; LIGHT$STATUS BYTE; FOREVER LITERALLY 'WHILE 1'; MA1N$GREEN$MESSAGE(*) BYTE DATA('~IN GREEN, $1DE RED'); SIDE$GREEN$MESSAGE(*) BYTE DATA('SIDE GREEN, MAIN RED'); TIME$MESSAGE(*) BYTE DATA(' SECS SINCE LIGHT CHANGE'); /* FOLLOWING PROCEDURE COUNTS CARS WAITING */ 10 11 12 2 2 SIDE$STREET$CAR: PROCEDURE; CARS$WAITING ~ CARS$WAITING + 1; END SIDE$STREET$CAR; /* FOLLOWING PROCEDURE CODED IN ASSEMBLY LANGUAGE ANDLINKEO IN */ 13 14 15 2 2 DELAY: PROCEDURE (TIME$HUNDREDTHS) EXTERNAL; DECLARE TIME$HUNDREDTHS BYTE; END DELAYi /* FOLLOWING PROCEDURE BORROWED FROM THE MONITOR 16 1 17 2 18 2 */ CO: PROCEDURE(CHAR) EXTERNAL; DECLARE CHAR BYTE; END CO; /* FOLLOWING PROCEDURE DISPLAYS LIGHT STATUS AND ELAPSED TIME */ 19 20 1 2 2 2 21 22 23 24 3 25 3 2 26 2 27 3 28 3 29 '}. 30 '}. 31 '}. 32 33 34 2 2 3 3 35 36 37 38 '}. '}. '}. DISPLAY: PROCEDURE(CYCLE$TlME); DECLARE CYCLE$TIME BYTE; DECLARE I BYTE; IF LIGHT$STATUS = 0 THEN DO I = 0 TO LAST(SIDE$GREEN$MESSAGE); CALL CO(SIDE$GREEN$MESSAGE(I»; END; ELSE DO I = 0 TO LAST(MAIN$GREEN$MESSAGE), CALL CO(MAIN$GREEN$MESSAGE(I»; END; CALL CO (ODH) ; /* CALL CO (OAH) ; /* CALL Cot (CYCLE$TIME / 10) OR 30H); /* CALL cot (CYCLE$TIME MOD 10) OR 30H );/* DO I = 0 TO LAST(TlME$MESSAGE); CALL CO(TlME$MESSAGE(I»; CARRIAGE RETURN LINE FEED TEN'S DIGIT UNIT'S DIGIT */ */ */ */ END; CALL CO (ODH) ; CALL CO (OAH); END DISPLAY; Figure 34. CARSl Program Listing /* CARRIAGE RETURN */ /* LINE FEED */ ICE-85B A Sample ICE-85 Session /* FOLLOWING PROCEDURE PERFORMS THE LIGHT CHANGE CYCLE */ 39 40 41 42 43 44 45 46 47 48 2 2 2 3 3 3 3 2 2 CYCLE: PROCEDURE; LIGHT$STATUS = 0; /* SIDE GREEN, MAIN RED */ SIDE$TIME =0; DO WHILE SIDE$TlME <= SIDE$CYCLE$LENGTH; CALL DISPLAY(SIDE$TlME); CALL DELAY(100); SIDE$TlME + 1; SIDE$TIME END; /* MAIN GREEN, SIDE RED */ LIGHT$STATUS 1; END CYCLE; /* MAIN PROGRAM 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 1 2 2 2 2 2 3 3 3 3 2 EXECUTION BEGINS HERE */ LIGHT$STATUS 1; /* START WITH MAIN GREEN */ CARS$WAITING 0; MAIN$TIME = 0; DO FOREVER; CALL DISPLAY(MAIN$TIME); CALL DELAY(100); MAIN$TIME = MAIN$TIME + 1; IF (CARS$WAITING >= 2) AND (MAIN$TIME >= MAIN$CYCLE$LENGTH) OR (CARS$WAITING = 1) AND (MAIN$TIME >= 2 * MAIN$CYCLE$LENGTH) THEN 00; CALL CYCLE; CARS$WAITING 0; MAIN$TIME = 0; END; END; END CARS; Figure 3-4. CARS2 Program Listing (Continued) 3-25 A Sample ICE-85 Session The following steps are a brief emulation of CARS2 to verify that the program changes made to CARS 1 enable CARS2 to run properly. 3-26 1. Enter the same mapping commands as in CARS I. 2. Define 14 and START. 3. Load the corrected program. 4. Check the symbol table. 5. Start emulation from START and let CARS2 cycle for at least 20 cycles. Halt CARS2 manually with the ESC key. Note that there was no signal light change as no cars were entered on the side street. 6. Call 14 to enter one car on the side street. Allow emulation to continue for at least 30 cycles. Notice that the side street signal turns green for 5 cycles and then the main street turns green again. ICE-85B ICE-85B A Sample ICE-85 Session *L1M 7000H *L1M = 7EOOH *MAP 0 = INT 0 WARN Cl:MAPPING OVER SYSTEM * MAP 3000 LEN 4K = INT 7000 * MAP F800 = INT F800 WARN :Cl:MAPPING OVER SYSTEM *MAP 10 FO TO FF = INT * 2 *LOAD :FO:CARS2 3 *DEFINE .14 = .SIDE$STREET$CAR *DEFINE .START = PC 4 *SYMBOL .I4=3727H .START=36C3H MODULE .. CARS .MEMORY=3889H .MAINTIME=3883H .SIDETIME=3884H .MAINCYCLELENGTH=3680H .SIDECYCLELENGTH=3681H .CARSW AITING=3885H .L1GHTSTATUS=3886H .MAINGREENMESSAGE=3682H .SIDEGREENMESSAGE=3696H .TIMEMESSAGE=36AAH .SIDESTREETCAR=3727H .DISPLA Y=3735H .CYCLETIME=3887H .I=3888H .CYCLE=37E9H MODULE .. MODULE .DELAY=3816H .LABl=3819H .LAB2=381AH .TEMP=3830H * * * * 5 *GO EMULATION BEGUN EMULATION TERMINATED, PC=3824H PROCESSING ABORTED 6 *CALL .14 EMULATION BEGUN EMULATION TERMINATED, PC=3828H PROCESSING ABORTED * * * 3-27 A Sample ICE-85 Session 7. Halt emulation and call 14 to enter one car on the side street. Repeat for the second car. Let emulation continue for at least 30 cycles and then halt manually. Observe that the signal lights change in the proper sequence. In other. words, CARS2 is sequencing correctly. 8. Display the address of DELAY. 9. Start emulation from DELAY and halt when MAIN$TIME is updatep. Trace data is being collected in the trace buffer during this interval. 10. Set the trace buffer pointer to the top of the buffer. The following steps print the contents of the trace buffer in each of the print modes: instruction, frame, and cycle. 11. Print the first twenty-five instructions contained in the buffer. Since no print mode has been specified, the output is in the default mode, instruction format. Since emulation started from DELAY, the trace buffer has been filled and refilled a number of times by the DELAY subroutine. Therefore the first address in the listing is not meaningful at this time. 3-28 ICE-8SB ICE-85B A Sample ICE-8S Session 7 *CALL .14 EMULATION BEGUN EMULATION TERMINATED, PC=3824H PROCESSING ABORTED * * *CALL .14 EMULATION BEGUN EMULATION TERMINATED, PC=381AH PROCESSING ABORTED * 8 * * • DELAY 3816H * 9 * *GO FROM .DELAY TILL .MAINTIME WRITTEN EMULATION BEGUN EMULATION TERMINATED, PC=36E3H * * 10 *OWEST 11 *PRINT 25 ADDR 0001: 381A 0003: 381B 0013: 381E 0023: 3821 0033: 3824 0043: 3827 0045: 3828 0051 : 381A 0053: 381B 0063 : 381E 0073: 3821 0083: 3824 0093: 3827 0095: 3828 0101 : 381A 0103: 381B 0113 : 381E 0123: 3821 0133: 3824 0143; 3827 0145: 3828 0151: 381A 0153: 381B 0163: 381E 0173: 3821 * * * INSTRUCTION DCR C SHLD 3830 SHLD 3830 SHLD 3830 SHLD 3830 NOP JNZ 381A DCR C SHLD 3830 SHLD 3830 SHLD 3830 SHLD 3830 NOP JNZ 381A DCR C SHLD 3830 SHLD 3830 SHW 3830 SHLD 3830 NOP JNZ 381A DCRC SHLD 3830 SHLD 3830 SHLD 3830 ADDR-S-DA ADDR-S-DA ADDR-S-DA ADDR-S-DA 3830-W-88 3830-W-88 3830-W-88 3830-W-88 3831-W-38 3831-W-38 3831-W-38 3831-W-38 3830-W-88 3830-W-88 3830-W-88 3830-W-88 3831-W-38 3831-W-38 3831-W-38 3831-W-38 3830-W-88 3830-W-88 3830-W-88 3830-W-88 3831-W-38 3831-W-38 3831-W-38 3831-W-38 3830-W-88 3831-W-38 3830-W-88 3831-w-38 3830-W-88 3831-W-38 ASarnple ICE-85 Session 12. Move the buffer pointer to the end of the trace buffer. 13. Print the last twenty-five instructions stored in the buffer. Notice that each instruction listed consists of a number of frames. For example the first instruction listed extends from frame address 0853 to 0862, ten frames. The total span of frames covered by these twenty-five instructions are: 1020 - 0853 = 169 frames. 3-30 ICE-85B A Sample ICE-85 Session LCE-8SB 12 *NEWEST 13 *PRINT -25 ADDR 0853: 381B 0863: 381E 0873: 3821 0883: 3824 0893: 3827 0895: 3828 0901: 381A 0903: 381B 0913: 381E 0923: 3821 0933: 3824 0943: 3827 0945: 3828 0951: 381A 0953: 381B 0963: 381E 0973: 3821 0983: 3824 0993: 3827 0995: 3828 0999: 382B 1001 : 382C 1005: 382F 1011 : 36DF 1017: 36E2 * INSTRUCTION SHLD 3830 SHLD 3830 SHLD 3830 SHLD 3830 NOP JNZ 381A DCR C SHLD 3830 SHLD 3830 SHLD 3830 SHLD 3830 NOP JNZ 381A DCR C SHLD 3830 SHLD 3830 SHLD 3830 SHLD 3830 NOP JNZ DCR A JNZ RET LXI H, 3883 INR M ADDR-S-DA 3830-W-88 3830-W-88 3830-W-88 3830-W-88 ADDR-S-DA ADDR-S-DA ADDR-S-DA 3831-W-38 3831-W-38 3831-W-38 3831-W-38 3830-W-88 3830-W-88 3830-W-88 3830-W-88 3831-W-38 3831-W-38 3831-W-38 3831-W-38 3830-W-88 3830-W-88 3830-W-88 3830-W-88 3831-W-38 3831-W-38 3831-W-38 3831-W-38 3881-R-DF 3882-R-36 3883-R-03 3883-W-04 * * 3-31 A Sample ICE~8S Session 14. Change the print mode to CYCLES. 15. Print the last twenty-five cycles contained in the trace buffer. Notice that these twenty-five cycles cover fifty frames of trace data. 3-32 ICE-8SB A Sample ICE-aS Session ICE-85B 14 15 *TRACE = CYCLES * *PRINT -25 ADDR-S-DA 0973: 3821-E-22 0975: 3822-R-30 0977: 3823-R-38 0979: 3830-W-88 0981 : 3831-W-38 0983: 3824-E-22 0985: 3825-R-.J0 0987: 3826-R-38 0989: 3830-W-88 0991: 3831-W-38 0993: 3827-E-00 0995: 3828-E-C2 0997:- 3829-R-1A 0999: 382B-E-3D 1001: 382C-E-C2 1003: 382D-R-19 1005: 382F-E-C9 1007: 3881-R-DF 1009: 3882-R-36 1011: 36DF-E-21 1013: 36EO-R-83 1015: 36E1-R-38 1017: 36E2-E-34 1019: 3883-R-03 1021 : 3883-W-04 * SD 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 RW 10 10 10 01 01 10 10 10 01 01 10 10 10 10 10 10 10 10 10 10 10 10 10 10 01 M 1 1 1 1 1 1 1 * * 3-33 A Sample ICE-85 Session 16. Change print mode to FRAMES. 17. Print the last twenty-five frames of trace data contained in the trace buffer. 18. Terminate program operation. 3-34 ICE-85B A Sample ICE-85 Session ICE-858 16 17 18 *TRACE = FRAMES * *PRINT -25 AID S D SD 0997: 381A R 1 00 0998: 382B E o 00 0999: 383D E 1 00 1000: 382C E 0 00 1001: 38C2 E 1 00 1002: 382D R 0 00 1003: 3819 R 1 00 1004: 382F E 0 00 1005: 38C9 E 1 00 1006: 3881 R 0 00 1007: 38DF R 1 00 1008: 3882 R 0 00 1009: 3836 R 1 00 1010: 36DF E 0 00 1011 : 3621 E 1 00 1012: 36EO R 0 00 1013: 3683 R 1 00 1014: 36E1 R 0 00 1015: 3638 R 1 00 1016: 36E2 E 0 00 1017: 3634 E 1 00 1018: 3883 R 0 00 1019: 3803 R 00 1020: 3883 W 0 00 1021: 3804 W 1 00 * * * *EXIT RW 10 00 10 00 10 00 10 00 10 00 10 00 10 00 10 00 10 00 10 00 10 00 10 00 01 M 1 1 1 1 1 3-35 CHAPTER 4 ICETM-85 METALANGUAGE Introduction The ICE-85 software provides you with an easy-to-use English language command set for controlling ICE-85 execution in a variety of functional modes. The ICE-85 commands enable you to: • Initialize the ICE-85 system, map your program to memory in your system or in the Intellec Microcomputer Development System, and load your program from a diskette file. • • • • • • • Specify starting and stopping conditions for emulation. Execute real-time emulation of your software (and hardware). Execute single-step emulation. Specify conditions for trace data collection. Collect and display trace data on hardware conditions occurring during emulation. Display and alter 8085 registers, memory locations, and 1/0 ports. Copy the (modified) program from Intellec or user memory to a diskette file, and exit the ICE-85 system. An example of one complete ICE-85 command, in this case one of the forms of the GO command, is shown in Figure 4-1. This command causes emulation to start and specifies the conditions that will halt emulation. The command is made up of nine separate mnemonic codes (character strings): GO, FROM, 0l23H, TILL, LOCATION, 0400, EXECUTED, OR, and SYO. Each of these mnemonics provides a particular element of information necessary to inform ICE-85 of the specific command fUnctions to be executed. Table 4-1 defines the function of each of these mnemonics as well as the match condition and the FROM and TILL clauses. This string of mnemonics requests ICE-85 to "start emulation at memory location 0123H and to continue emulation until either memory location 0400 is executed or until external signal Sync 0 goes high". Every ICE-85 command is composed of one or more such mnemonics. GO FROM 0123H TILL LOCATION 0400 EXECUTED OR SYO token1 token2 token3 token4 token5 token6 token7 tOkenS token9 ... ., match condition FROM clause .. y TILL clause (als,? GO· register) ... v GO command Figure 4-1. Example of a GO Command 4-1 Metalanguage ICE-85B Table 4-1. Definition of GO Command Functions Token Number Name Function 1 2 GO FROM 3 2,3 0123H FROM clause 4 TILL 5 LOCATION 6 9 0400 EXECUTED matchcondition OR SYO 4-9 TILL clause Go command specifier; requests and initiates emulation. Indicates that the next token or expression is the starting address for emulation. Starting address in hexadecimal radix. FROM 0123H causes the program counter (PC) to be loaded with 0123H, the starting address for the emulation. Indicates that breakpoint (halting) parameters are to follow. Indicates that the address lines are to contain the memory address given by the token or numerical expression that follows. The address of the specified memory LOCATION. Match pattern for an instruction fetch. Emulation is to halt if an instruction fetch is executed from memory location 0400. Indicates that a second halt parameter is to follow. Halt emulation if the external synchronization line SYO goes low. TILL LOCATION 0400 EXECUTED OR SYO specifies that the emulation is to halt under either of the conditions given. This clause is also called the 'GO-register' in the ICE-85 language. 7 5,6,7 8 Thus, the ICE-85 command language is composed of a unique character set and vocabulary of mnemonics. The character set is used to construct mnemonics and in turn, the mnemonics are used to construct ICE-85 commands. This chapter presents a metalanguage that classifies and identifies both character and mnemonic types. The metalanguage consists of a set of meta-terms. Each metaterm is a class-name for a specific type of character or mnemonic and is always shown in lower-case italics. Any character string not in lower-case italics is a specific mnemonic or character. For example, the meta-term user-name refers to the entire class of user names. The character string SAM is a particular user name. As shown in Figure 4-1, all of the mnemonics are referred to as tokens. All ICE-85 mnemonics are divided into two classes: tokens and special tokens. Tokens encompass constants, keywords, symbols, and user names. Special tokens encompass relational operators, arithmetic operators, and punctuation. The remainder of this chapter is devoted to a presentation of the character and mnemonic classes and the associated meta-terms that denote these classes. The metanotation used in this manual for· command syntax is also presented. This chapter will specify all primary meta-terms but will not present the entire set of meta-terms. Chapter 5 will introduce additional meta-terms that represent special subsets of tokens for use with particular commands. These additional meta-terms will be defined using the primary meta-terms contained in this chapter along with any particular qualifications and restrictions involved in the command usage. 4-2 ICE-SSB Metalanguage Character Set The valid characters in the ICE-85 command language include upper and lower case alphabetic ASCII characters A through Z and the set of digits 0 through 9. The space serves as a delimiter for tokens, and carriage-return/line-feed characters are also valid, delimiting command lines. A question mark, ?, @ sign, and $ sign are also valid in user-defined names entered in the command language. + and - (binary and unary), the asterisk (*), and slash (I), relational operators (=. <. », the ampersand, semicolon, period, parentheses, pound sign (#), and comma constitute the only other valid ASCII characters for ICE-85: all other characters are treated as if a space was typed. The algebraic operators alphabetic characters: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz numeric characters: o 1 2345 6 7 89 (A BCD E F: hexadecimal characters) special characters: +- <=> $'&).(;*1# This character set is used to construct the vocabulary that constitutes the command language. Tokens A token in ICE-85 command language is roughly equivalent to a 'word' in the English language. It consists of a string of alphanumeric characters that may be augmented by a one or two special character prefix that serves as a token identifier. Tokens are divided into the following types: keywords, user-names, and constants. Examples are: REGISTERS, .START, .. MODULE, GROUP, 0400, 123AH. Keywords ICE-85 recognizes a general class of predefined tokens that are fixed in the command language. They provide three functions. Reference keywords are used to specify locations having unique predefined functions. Command keywords specify command type. Function keywords specify subfunctions within a command. The following sections define and describe these keyword classes. Each class and associated keyword set is presented in the following paragraphs. Appendix A contains a listing of ICE-85 keywords and their abbreviations. The reason for discussing the various classes and subsets here is to smooth the later discussions of commands, where the class-names are used to show what elements may appear in which commands. Reference Keywords The command language contains a set of system defined mnemonic tokens that are used to address system objects. Each device such as the accumulator or register B is assigned a specific mnemonic that is to be used to address and access the contents of that device. These identifiers are called reference keywords. Reference keywords are 4-3 ICE-85B ICE-85B Metalanguage used in ICE-85 commands to refer to 8085 processor registers and flags, system defined channel groups, emulation registers, memory locations, and blocks, I/O ports and synchronization lines. The total set of reference keywords is subdivided by types. Each type is referenced by a class name. For example, register-name denotes the set of 8085 8-bit registers. A reference token is assigned to each element within the set and is always shown in upper case. For example, 'RB' denotes the contents of the register B of the 8085 8-bit register set. Registers All of the registers are assigned reference keywords for addressing. The registers are composed of the following classes: 8085 8-bit registers, 8085 register pairs, 8085 I-bit status flags and 8085 interrupt bits. Type 8-bit registers Class Name register-name Keywords RA.RB,RC,RD,RE,RF, RH,RL The meta-term register-name is the name of the class of 8085 8-bit general purpose work registers that provide a variety of functi0ns such as storing 8-bit data values, intermediate results of arithmetic operations, address pointers, and operation code and status data. Type 16-bit registers Class Name register-pair-name Keywords RBC,RDE,RHL,SP,PC The meta-term register-pair-name is the name of the class of 16-bit register pairs that provide such functions as storing 16-bit values, maintaining the stack and program pointers, and saving status information. Type Status flags Class Name flag-name Keywords CY,PY,ACY,Z-,SN The meta-term flag-name is the class name of the set of five I-bit condition flags that carry conditions resulting from arithmetic and logical operations. Type Interrupt bits Class Name i-bit-name Keywords MS,M6,M7,IE,17,SIO,SOD The meta-term i-bit-name is the class name of the set of seven interrupt bits that are used to mask, enable/disable, and sense interrupts and to input/output serial data. 4-4 ICE-85B ICE-85B Metalanguage Type Class Name Keywords ICE status registers status-register OPCODE, CAUSE, PPC, PSW, UPPER, LOWER, LIMIT, BUFFERSIZE, TIMER, HTIMER The meta-term status-register is the class name for the set of ten ICE-85 status registers that are used to display ICE-85 status. System Defined Channel Groups Type Channel group Class Name s-group-name Keywords DMUX,ADDR,ADDRL,ADDRH, DATA,STS,SD, RW,MTH, UO,U1,U2 The meta-term s-group-name is the class name of the set of twelve ICE-85 defined groups of external probe and 8085 processor channels that are used to set breakpoint and qualification registers. Emulation Registers The emulation registers consist of the breakpoint registers, qualification registers and condition registers, Type Class Name Keywords break-reg BRO,BR1,BR Qualification registers qual-reg QRO,QR1,QR Condition registers cond-reg CRO,CR1,CR2,CR3 Breakpoint registers GO register Step register go-reg GR step-reg SR The meta-term break-reg is the class name for the two breakpoint registers that are used to halt emulation. The meta-term qual-reg is the set name for the two qualification registers that control tracing. Each register is 42 bits long, one bit for each of the eighteen probe channels and twenty-four processor channels (except channel 43, MTH), and each bit can take anyone of the three values 0, 1, or "don't care". The initial setting of these registers is 42 "don't care" values. The meta-term cond-reg is the set name for the four condition registers that are used to set the test conditions that control emulation in the step mode. The meta-term go-reg refers to the GO-register, an ICE-85 pseudo-register that controls the breaking of real-time emulation. The meta-term step-reg refers to the STEP-register, an ICE-85 pseudoregister that controls the stopping of single-stepping. Synchronization Lines Type Keywords Sync SYO,SY1 4-5 ICE-85B ICE-85B Metalanguage ICE-85 can be synchronized with other ICE devices by means of two synchronization lines: SYO, which synchronizes real-time emulation and SY 1, which synchronizes the trace. Both can be enabled or disabled for input or output or both. Command Keywords Type Command token Keywords BASE,CALL,DEFINE,DISABLE ENABLE, EVALUATE,EXECUTE,EXIT,GO,GROUP,ICALL LlST,LOAD,MAP,MOVE, NEWEST ,OLDEST, PRINT,REMOVE,RESET, SAVE,STEP, SUFFIX,SYMBOL,TRACE These tokens are used as command verbs in that they specify the major function (action) to be executed as a result of the command. Function Keywords The function keywords are those tokens that are used as command modifiers. These are used as objects of commands, state or mode specifiers, specifiers of operational controls, and connectors. ' Object Keywords Type Keywords Modifier ALL (print) HARDWARE (reset) DU MP (enable) STOPTRACE (enable) These ICE-85 keywords are used as command modifiers. For example, in the command "PRINT ALL", the print command is modified to print all of the current contents of the trace buffer, as opposed to a single line, which is the ?efault. State or Mode Keywords Type Keywords State/Mode Y,Q,T,H,K,ASCII (base and radix) CYCLE,FRAME,INSTRUCTION (trace mode) SHARED,UNSHARED GUARDED,USER,INTELLEC (map mode) NOVERIFY IN ,OUT (sync lines) NOLlNES,NOSYMBOLS,NOCODE (load/save mode) 4-6 ICE-8SB ICE-8SB Metalanguage These keywords specify state or mode requirements. For example "TRACE == CYcLE" states that trace data is to be displayed in the cycle mode. "ENABLE SYO OUT" states that the SYO output mode is to be enabled. Operational Control Keywords Type Keywords Op Control CALL.JUMP,RETURN (dump condition) FROM (GO and STEP start address) FOREVER (GO and STEP duration) COUNT (STEP duration) TILL (GO and STEP halting conditions) ON LOCATION.VALUE EXECUTED,WRITTEN,READ, INPUT,OUTPUT,HALT (Breakpoint state I These keywords that specify operational conditions required. For example, "GO FROM 0400H TILL LOCATION 0600H READ" states that emulation shall start from memory location 0400 and will continue until memory location 0600H is read. Connector Keywords Type connector Keywords AND (condition registers) OR (condition registers, break registers and synchronization lines) These keywords connect multiple halting conditions for emulation or trace. For example, "GO FROM 0400 TILL BRI OR SYO" states that the emulation is to start at 0400 and to continue until a match on breakpoint register 1, occurs, OR SYO goes low. User Names The command language permits the programmer and operator to employ symbolic addressing through the use of user-generated tokens as opposed to system-generated tokens (keywords). The language permits four types of user names: symbols, module names, statement numbers, and group names. Symbols A symbol is a sequence of contiguous alphanumeric characters, prefixed by a period (.), that references a location in a symbol table. The symbol has two uses. The referenced table location always contains a number; it may be an address of an instruction or data value in a program module,or it may be used directly as a numerical value (variable). In the first case, the symbol is an alternative method of 4-7 ICE-85B Metalanguage program addressing (symbolic as opposed to direct numeric addresses). In the second case, it provides a method for storing and retrieving data values symbolically into/from the table itself. Symbols in the user-program symbol table may be entered, deleted, or referenced through the ICE-85 command language. Symbols (names) must conform to translator syntax: a sequence of one or more characters where the first character must be a let ter, an at-sign (@), or a question mark (?), and the characters following may be these or a numeral. However, ICE-85 truncates all symbols to 31 characters. Thus two different symbols must be unique in the first 31 characters. In addition, to refer to a symbol in ICE-85 command language, you must preface it with a period (.); module names require two periods ( .. ) and group names must have none. Interven ing spaces are allowed between a period and the symbol following but are not part of the name. Examples: .VAR123.MSGXIZ .. VOLUME.PRESSR.VAR666.SGNL TO .@MYFLAG .?WHICHPATH .@WHATTIME? The ICE-85 symbol table contains one or more modules; each has a name. When the InteHec system is initialized with ICE-85 system software, a symbol table is established in memory containing one "no-name" module with no symbols. Whenever a user object module is loaded, its modules are loaded subsequent to the modules currently in the symbol table. Each module will contain the programmer-specified procedure names and variable names as symbols. A reference such a '.X. Y' means the first occurrence of the symbol Y that follows the first occurrence of symbol X. One use for this type of construction is to identify one of several instances of the same symbol-name that actually refer to different variables because they were declared local to two different procedures in a block structured program. For example, suppose the program contains two procedures, named START and FINISH, both of which have their own variable COUNT. Note that START and FINISH are not module names. Now, you can reference the two instances of COUNT with the two constructions . .START.COUNT .FINISH.COUNT The keywords BYTE and WORD can precede a reference such as .X.Y, to obtain the contents of the symbolic reference. You can define and add symbols either to the no-name table or to any module symbol table currently in memory. Module Names ICE-85 permits multiple modules to reside in memory simultaneously, including the 'no-name' module. Moreover, the same symbol is permitted to occur in any or all of the modules currently in memory. Therefore it may be necessary to prefix a symbol with a module name to refer to the occurrence of that symbol in one particular named module. If no module name is present, ICE-85 scans all modules, starting with the no-name module and proceeding through the list of modules in the order in which they were entered into memory. The first occurrence of the symbol is selected. When used, the module name is prefixed to the symbol. The module name conforms to the same PL/M syntax as a symbol except that it is prefixed with a double period ( .. ). 4-8 ICE-85B ICE-85B Metalanguage ICE-85B As an example, consider the symbol .BEGIN in module .. MAINLOOP. The entire reference to this occurrence of .BEGIN is: .. MAINLOOP.BEGIN Statement Numbers In the process of compiling a source module, the PL/M compiler generates a set of (source) statement numbers, one for each source statement in the module. Each statement number is linked to the absolute address of the first instruction generated by the PL/M compiler for the associated source statement in the source program. Each compiled program will contain a table of statement numbers and absolute addresses. Items (addresses) in the table are referenced by entering the associated state- ment number. The form of reference is module-name # decimal-lO where: # is the 'number' sign; this designates the reference as a statement number. decimal-lO is the (source) statement number default suffix of decimal-lO is always decimal. (a numeric constant). The For example: .. MAINLOOP#123 #123 is statement number #123 in the source program, .. MAINLOOP. This reference would obtain the address of the first instruction generated by source statement 123 of module .. MAINLOOP. Statement numbers are an alternative to program addressing, as opposed to labels in the program. User Group Names ICE-85 allows the user to define a set of symbolically-named groups to reference subsets of the twenty-four 8085 processor channels and eighteen external probe channels when setting breakpoints and clock qualifiers, and when examining trace data. The 18 external probe channels are numbered 1 to 18, and the 24 processor channels are numbered 19 to 42. For example, if external probes 8, 11, 5, 10, 1,7, 15, and 2 are attached to port A of in your system, you can define a group PORT$A to contain these probes. Then, when setting a breakpoint to match on a particular value on port A, when displaying the trace data from port A, etc., you can use the group-name PORT$A. The same channel may appear in any number of different groups, but a channel may not appear more than once within a single group. All groups are limited to a maximum of 16 channels each. A set of twelve groups are predefined by ICE-85, grouping the external probe and 8085 processor channels. 4-9 ICE-8SB Metalanguage ICE-8SB Constants A constant is a token that represents a fixed numerical value (e.g., 24). ICE-85 recognizes two types of constants: numeric constants and masked constants. Numeric Constants A numeric constant consists of a sequence of numeric characters (digits) and optionally a suffix to specify the constant's radix. A numeric constant has the general form: digit(s) [radix] where: digit(s) : are a string of one or more valid numeric digits' (OI23456789ABCDEF). Legal digits for a given numeric constant depend upon the radix specified. radix : denotes the number base or representation for entering and displaying numeric values. The following are the valid ICE-85 radix indicators: Radix Number Base Y Binary (base 2) Octal (base 8) Decimal (base 10) Hexadecimal (base 16) Decimal multiple of 1024 Q T H K *The letter 0 can be substituted for the letter Q to denote octal. Examples of valid numeric constants: 10010011Y 7370 2049T 1FA9H 2049 (using a radix previously specified) Masked Constants A masked constant is syntactically identical to a numeric constant except it may not contain the "T" or "K" suffixes and must contain one or more "X" characters. Each "X" character represents a 'don't care' digit (l, 3, or 4 bits depending upon whether the radix is binary, octal, or hexadecimal). The radix, either explicit or implicit (i.e., previously specified), must be binary, octal or hexadecimal. The following are examples of masked constants : 10X1X01Y 3X40 6FX1H (binary - 2 don't care bits shown explicitly) (octal - 3 don't care bits implicit because each octal numeral represents 3 bits; equivalent to 011XXX100Y) (hexadecimal - 4 don't care bits, implicit because each hexadecimal numerical represents 4 bits; equivalent to 01101111XXXXOOOl Y) Typical use of a masked constant is to check for a match on specifically relevant bit positions. 4-10 ICE-85B Metalanguage ICE-85B When the masked constant is applied in a match, the zero and ones are checked, but the don't-care bits are ignored. If all the corresponding zeros and ones in the two numbers match, the match is successful. Special Tokens The command language contains two special token sets that provide special functions: operators and punctuation. Operators Type relational plus mult Class Name Operators =. <. >. <=. >=. <> re/-op p/us-op mu/t-op +. -. (binary and unary) *, I, MOD Punctuation Type punctuation Class Name Punctuation Characters punct-op , & . , ; ) ( $ CR LF SP The use of punctuation characters are defined in those sections that define command formats. Numeric Expressions A numeric expression is a construct of primaries and operators that evaluates to a numeric value. ICE-85 also makes use of conditional expressions that evaluate to 'true' or 'false'. However, when the term 'expression' is used with no qualifier in this manual, a numeric expression is intended. ICE-85 evaluates in a left-to-right scan modified by operator precedence for an algebraic sequence in the form: operand [operator operand] .... Operators Operators are used in expressions and in commands. A summary of ICE-85 operators are shown below. The binary (arithmetic) operators are listed in their order of precedence from highest precedence to lowest. Type Precedence Binary (Arithmetic) Operator Interpretation () Controls order of evaluation MOD + MASK Modulo remainder Multiplication Division Addition Subtraction Bitwise AND 4-11 ICE-8SB ICE-8SB Metalanguage Type Operator Interpretation Relational > < <> >= <= + Unary Is equal to Is greater than Is less than Is not equal to Is greater than or equal to Is less than or equal to Single positive quantity Negative quantity Operands Operands are numerical values, or references that are evaluated to numerical values. In an operand, all the bits in the machine (binary) version are set to zero or one, giving a unique value. Masked constants , however, have one or more bits set to 'don't care' (represented by X), and thus represent a multivalued entity. An operand has the general form: [unary-op] (exp) numeric constant statement number [module-name] symbol register name pair-name flag-name i-bit-name port-name mem-desig address where: (exp): an operand whose value is the value of the parenthesized expression e.g. (l +2+3) = 6 (operand value). Expressions An previously stated, every expression is of the form: operand [operator operand] ... where each operand can be any type such as a numeric constant, symbol, register name, etc. The following examples illustrate typical expressions. The operands are indicated by upper case alphabetic characters (A, B, C, ... ) and can be of any valid operand type. These examples also illustrate the ICE-85 evaluation of each expression. The evaluation is accomplished by a left-to-right scan augmented by operator precedence. Each expression enclosed in parenthesis is treated as an (exp) type operand and is evaluated at that point. The examples show the resolution of each expression into a single operand value, R (resultant). 4-12 1. A+B*C - A+D - R 2. (A+B)*C - D*C:"" R ICE-85B ICE-85B Metalanguage 3. A+B*C/D -+ A+E/D -+ A+F -+ R 4. (A+B)*C/D -+ E*C/D -+ F/D -+ R 5. A+B*C/D MOD E -+ A+F/D MOD E -+ A+G MOD E -+A+H-+R 6. (A+B)*C/D MOD E -+ F*C/D MOD E -+ G/D MOD E -+ MOD E -+ R 7. A+B*CI MOD E MASK F -+ A+G/D MOD E MASK F -+ A+l MASK F -+ J MASK F -+R 8. (A+B)*C/D MOD E MASK F -+ G*C/D MOD E MASK F -+ HID MOD E MASK F -+ I MOD E MASK F -+ J MASK F -+R Meta-Notation Used In The Manual This manual employs a set of meta-notational symbols and conventions to describe the structure of commands and other language constructs. Items I and 2 below specify the use of meta-terms and tokens respectively. The features of this metanotation system are as follows: 1. A lower-case italicized entry in the description of a command is the meta-term for a set or class of tokens. To create an actual operable command, you must enter a particular member of this class. For example, the lower-case entry: break -register means that the command will accept any of 3 tokens: BRO, BR I, or BR (which means BRO and BRI) Each class-name given in the syntax description of a command is explained in the discusion of semantics that accompanies the command. 2. An upper-case entry is a token that must be used literally as given. A valid abbreviation of that token may substitute for the full token as given. The token may be a command word, or it may be a particular member of a class of references. For example, the upper-case entry: DEFINE is a command word that must be used as given unless abreviated. The abbreviation DEF may be used in place of DEFINE. As another example, the upper-case entry: BRI means breakpoint register 1 must be named as and where given. 4- 13 ICE-85B ICE-85B Metalanguage 3. A single-required entry is shown without any enclosures, whereas free options or choices among restricted alternatives are specially denoted. For example, in the following command syntax: GROUP [group-name] the token GROUP is required. The significance of the brackets around groupname is explained in (5) below. 4. Where only one entry must be selected from a menu of two or more items, the choices for the required entry are given in a vertical arrangement enclosed by two vertical lines. For example: TRACE = I FRAME CYCLE INSTRUCTION I Indicates that FRAME or CYCLE or INSTRUCTION must be selected; the tokens TRACE and = are required as given. 5. An optional entry is enclosed in brackets [ ]. Where a choice exists for an optional entry, the choices are given in a vertical arrangement enclosed in brackets. For example, in the command: GROUP [group-name] the entry group-name (signifying the class of channel-group names) is optional. Omitting an optional entry usually alters the operation of the command, as explained under each command description. 6. A group of inclusive choices is given in vertical arrangement and enclosed in braces {} ." Inclusive" means that more than one of the items can be entered in the same command, and items can appear in any order; no item can be used twice. The menu of inclusive items represent an optional entry or entries. For example: ENABLE DUMP { partition } CALL JUMP RETURN This notation indicates that none, one, or more that one choice of partition , CALL, JUMP, and/or RETURN may be included in one command; if more that one is used, the entries can be in any order. To complete the example: ENABLE DUMP RETURN CALL JUMP is a valid command. 7. Where two or more choices are mutually exclusive, and as a group they constitute one choice within an arrangement of inclusive entries, the mutually exclusive items are given on one line separated by slashes (I). For example: SAVE pathname 4-14 NOCODE / partition { NOSYMBOLS NOLINES I ICE-85B _ICE-85B Metalanguage This example indicates that the optional entries are the items NOLINES, NOSYMBOLS, and either NOCODE or a memory partition; the entries can appear in any order. NOCODE and partition are mutually exclusive. 8. Where mutually exclusive entries can be shown on one line, the following shorthand notation can be used. SUFFIX = Y IQ/T IH This example is equivalent to SUFFIX = Y Q T H 9. Where an entry can be repeated indefinitely at the user's option, the syntax is notated by enclosing the repeatable entry in brackets [ ] followed by three periods ( ... ). For example, operand [operator operand ] ... indicates that operator operand can be repeated as many times as desired. 10. Some entries can be repeated up to a fixed maximum number of repeats, rather than indefinitely. The repeatable entries are enclosed in brackets [ ] followed by ... &n, where: &: denotes that the entries in the brackets may be repeated. n: a decimal number that specifies the number of times the entries enclosed within the brackets can be repeated. In addition, some repeatable entries require a particular item separator to precede each repeat after the first entry. When an item separator is required, it is also enclosed in the brackets, preceding the repeatable entry. Note that the maximum number of entries is one more than the number of repeats given by the number, n. Example: TILL cond-reg [I ~~D 1 cOnd-reg] ... &3 In this example, up to four members of the class cond-reg can be named; each of the second, third, and fourth registers must be preceded by a token AN D or OR. 4-15 CHAPTER 5 THE ICETM-85 COMMAND LANGUAGE Chapter 5 contains discussions, examples, and syntax summaries for each of the ICE-85 commands. The chapter begins with a summary of information on entering commands at the console. The commands have been classified into eleven sections for discussion; commands in a given section are related in function. The following brief outline of Chapter 5 shows how the ICE-85 commands have been classified for discussion. Utility Commands Involving ISIS-II Discussion ICE85 Command EXIT Command LOAD Command SAVE Command LIST Command Number Bases and Radix Commands Discussion SUFFIX Command BASE Command EV ALUATE Command Memory and I/O Port Mapping Commands Discussion MAP Mode Command MAP MEMORY Command MAP 10 Command Display MAP Status Command RESET MAP Command Hardware Register Commands Discussion Display Processor or Status Register Command Set 8085 Processor Register Command RESET HARDWARE Command ENABLE/DISABLE TIMEOUT Command Memory and Port Content Commands Discussion Display Memory and Port Contents Commands Set Memory Contents Commands Set Input/Output Port Contents Command Symbol Table and Statement-Number Table Commands Discussion Display Symbol Table or Statement-Number Table Commands DEFINE Symbol Command Change Symbol Command REMOVE Symbol Command 5-1 Command Language Channel Group Commands Discussion DEFINE GROUP Command Display GROUP Command Change GROUP Command REMOVE GROUP Command Rea1-Time Emulation Control Commands Discussion GO Command GRCommand Set Breakpoint Register Command RESET Breakpoint Register Command Display Real-time Emulation Controls Commands ENABLE/DISABLE SYO OUT Commands Trace Control Commands Discussion .Set Trace Display Mode Command MOVE, OLDEST, and NEWEST Commands PRINT Command Set Qualifier Register Command RESET Qualifier Register Command Display Trace Controls Commands ENABLE/DISABLE Trace Factors Commands Single-Step Emulation Control Commands Discussion Set Condition-Register Command SRCommand STEP Command Display Single-Step Controls Commands ENABLE/DISABLE DUMP Command External Call Commands Discussion CALL Command ICALL Command EXECUTE Command 5-2 ICE-85B Command Language ICE-85B Table 5-1 lists the commands separately, in alphabetic order by command title. You can use this table to find the section containing any command or command function that you wish to locate. Table 5-1. ICETM-85 Commands: Alphabetical Summary Command Title Operations Included in Command Section where discussed; page of syntax summary. Change GROUP Change channels assigned to previously-defined user group. Channel Group page 5-60. Commands; Change Symbol Change address or variable value corresponding to a previously-defined symbol. Symbol Table and StatementNumber Table Commands; page 5-54. DEFINE GROUP Define a group-name and assign a list of channels to it. Channel Group page 5-59. DEFINE Symbol Define a symbol and assign it a corresponding value (typically an address). Symbol Table and StatementNumber Table Commands; page 5-53. Display Emulation Registers Display the current settings of the GO-register, breakpoint registers, STEP-register, and condition registers. Real-Time Emulation Control Commands; page 5-73. Single-Step Emulation Commands; page 5-99. Display GROUP Display channels assigned to one or more group names. Channel Group page 5-60. Display MAP Status Display memory or 1/0 port mapping. Memory and 1/0 Port Mapping Commands; page 5-30. Display Memory and Port Contents Display contents of one or more memory adresses or an 1/0 port. Memory and Port Contents Commands; page 5-46. Display Processor or Status Register Display contents of SOS5 and ICE-S5 hardware registers. Hardware Register Commands; page 5-36. Display Radix Display current input or output radix. Number Bases and Radix Commands; page 5-15. Display Symbol Table or StatementNumber Table Display address or value from symbol table corresponding to a user-defined symbol. Display address corresponding to source program line number. Symbol Table and StatementNumber Table Commands; page 5-53. Display Trace Controls Display current TRACE mode. Display qualification register setting. Trace Control page 5-SS. Commands; Commands; Commands; 5-3 Command Language ICE-85B Table 5-1. ICETM-85 Commands: Alphabetic Summary (Cont'd.) Command Title 5-4 Operations Included in Command Section where discussed; page of syntax summary. ENABLEI DISABLE Enable or disable SYO OUT, SY1 IN, SY1 OUT, STOPTRACE, or TIMEOUT Hardware Register Commands; page 5-38. Emulation Control Commands; page 5-74. Trace Control Commands; page 5-88. ENABLE I DISABLE DUMP Enable or disable automatic trace display after STEP. Single-Step Emulation Control Commands: page 5-100. EVALUATE Evaluate and display the number entered, in the five bases Y, Q, T, H, and ASCII. Number Base and Radix Commands; page 5-16. EXIT Terminate emulation session, return control to ISIS. Utility Commands Involving ISIS-II: page 5-9. External Call Emulate or execute an external procedure. External Call Commands; page 5-103. GO Begin emulation, accepting default halting and starting conditions, or specifying new ones. Real-Time Emulation Control Commands: page 5-71. GR Set conditions for halting emulation. Real-Time Emulation Control Commands; page 5-72. ICE85 Load ICE-85 software into ISISII, transfer control to ICE-85 program. Utility Commands Involving ISIS-II; page 5-9. LIST Send ICE-85 output to designated external device. Utility Commands Involvi ng ISIS-II: page 5-11 . LOAD Load user program into ICE-85. Utility Commands Involving ISIS-II; page 5-10. MAP Assign memory blocks or 1/0 port segments to user system or to Intellec system. Memory and Port Mapping Commands; page 5-28,5-29. MAP Mode Set MAP mode as SHARED or UN SHARED. Memory and Port Mapping Commands; page 5-27. MOVE, OLDEST NEWEST Move trace buffer pointer to desired position. Trace Controls page 5-85. Commands; PRINT Display trace data. Trace Controls page 5-86. Commands: Command Language ICE-85B Table 5-1. ICETM-85 Commands: Alphabetic Summary (Cont'd.) Command Title Operations Included in Command Section where discussed; page of syntax summary. REMOVE GROUP Delete one or more group names. Channel Group page 5-61. Commands; REMOVE Symbol Delete one or more userdefined symbols from the ICE-85 symbol table. Symbol Table and StatementNumber Table Commands; page 5-54. RESET Restore breakpoint registers, qualification registers, MAP, ICE-85 HARDWARE, or RST 7.5 line to an initial state. Hardware Registers Commands; page 5-37. Memory and Port Mapping Commands; page 5-30. Real-Time Emulation control Commands; page 5-74. Trace Control Commands; page 5-87. SAVE Save user program on external device. Utility Commands Involving ISIS-II; page 5-11. Set Breakpoint Register Set designated breakpoint register to condition for halting real-time emulation. Real-Time Emulation Control Commands; page 5-73. Set Condition Register Set condition register to condition for halting single- step emulation. Single-Step Emulation Control Commands; page 5-96. Set Input/Output Port Contents Set contents of one 1/0 port. Memory and Port Contents Commands; page 5-48. Set Memory Contents Set the contents of one or more memory locations. Memory and Port Contents Commands; page 5-47. Set Processor Register Set content of 8085 register. Hardware Register Commands; page 5-37. Set Qualification Register Set qualification register to condition for enabling trace data collection. Trace Controls page 5-87. Set Radix Set default input or output radix. Number Base and Radix Commands; page 5-15. Set TRACE Mode Set mode for display of trace data. Trace Control page 5-84. SR Set STEP-register with halting conditions for Single-step emulation. Single-Step Emulation Control Commands; page 5-97. STEP Begin Single-step emulation, setting start and halt conditions. Single-Step Emulation Control Commands; page 5-98. Commands; Commands; 5-5 Command Language ICE-85B Entering Commands At The Console ICE-85 displays an asterisk prompt (*) at the left margin when it is ready to accept a command from the console .. Each command is entered as a command line. The command line consists of one or more input lines; the length of an input line is limited to the number of characters that one line of the console display can contain. ICE-85 recognizes the carriage return as the terminator for a command line. If it is necessary to use more than one input line to enter a command, each intermediate input line should end with an ampersand (&). When ICE-85 encounters the ampersand, it suppresses the interpretation of the command that would occur on encountering the carriage return that follows. After the carriage return is executed, ICE-85 displays a double asterisk prompt (**) to acknowledge the continuation of the command line. Tokens in the command are separated by blanks, unless the construct requires another form of separator. For example, tokens in a list are separated by commas; in this case, blanks may be inserted for clarity but are not required. Any input line may include comments. A semicolon (;) precedes the comments. The comments must appear after any portion of the command that is on that input line; in other words, if the first character in an input line is a semicolon (;), the entire input line must consist of comments. Characters in a comment are not interpreted by ICE-85, and are not stored internally. The main use of comments is to document an emulation session while it is in progress. Comments may not be continued from input line to input line. If an ampersand is used to continue a command line that also contains comments, the ampersand must come before the comment. An ampersand that is embedded in a comment is ignored by ICE-85. You can use ISIS-II editing capabilities to correct errors in the current input line. The line-editing characters are as follows. Characters Result RUBOUT Delete last character entered in input line. The deleted character is echoed immediately. The RUBOUT function can be repeated, deleting one character each time it is pressed. CTRLX Delete entire input line. (CRTL Z gives the same result.) CTRLR Display entire input line as entered so far. This is useful after a RUBOUT, to review which characters have been deleted. ESC Cancel entire command being entered. CRTLP Input next character literally. Carriage Return Terminate input line or command line. Line Feed Terminate input line. Once a line terminator (carriage return or line feed) has been entered, that line can no longer be edited. The dollar sign ($) is ignored by ICE-85. You can use it as a separator when you want to combine two words into one token. For example, suppose you wanted to combine the two system groups DATA and STS into one group for your use. Instead of DATAANDSTS, you can use the $ character as a separator: DATA$AND$STS. 5-6 Command Language ICE-85B Utility Commands Involving ISIS-II The Intel Systems Implementation Supervisor (ISIS-II) is the diskette operating system for the Intellec Microcomputer Development System. ICE-85 runs under ISIS-II control, and can call upon ISIS-II for file management functions. The following commands are included in this section: Purpose Command ICE85 EXIT LOAD SAVE LIST Load ICE-85 program from diskette. Return control to ISIS-II. Load user program into memory accessed by ICE-85. Copy user program from memory onto diskette. Copy ICE-85 emulation output to printer or file. Discussion ICE-85 commands can use ISIS-II pathnamesto direct ISIS-II to a desired diskette file or other output device. For diskette files, the format of pathname is as follows. :drive: filename The entry :drive: stands for one of the references to ISIS diskette drives, as follows. :FO: :Fl: :F2: :F3: Diskette drive 0 Diskette drive 1 Diskette drive 2 Diskette drive 3 ~~~J Single-density drives on a double-density system The entry filename must follow the second colon (after drive) without any intervening spaces. A filename has the following components. identifier [. extension 1 The entry identifier is a name assigned by the user, and is made up of one to six alphanumeric characters. The extension is an optional part of the filename, consisting of one to three alphanumeric characters preceded by a single period. The extension must be used if it is present in the directory listing of the file on the diskette. If used, the extension follows the identifier without any spaces. Some extensions (e.g., .BAK, .LNK) are assigned by system processors; others can be assigned at the desire of the user. An extension provides a second level of file identification; it can be used to identify different versions of the same program, or to give supplemental information about the file (e.g., author, data, version). Fully compiled or assembled programs ready to run (emulate) do not have systemassigned extensions, although they may have extensions assigned by the user. For devices other than diskette files, the format of pathname is as follows. :device: 5-7 Command Language ICE-8SB The following devices are commonly accessed in ICE-85 commands. :Device: Output Device :LP: :HP: :TO: :CO: Line printer High-speed tape punch Teletypewriter printer Console display For more information on ISIS-II filenames and device codes, refer to the ISIS-Jl System User's Guide. The ICE85 command, entered after an ISIS-II prompt, directs ISIS-II to load the ICE-85 program from the specified diskette drive, into a reserved area in lntellec memory. ICE-85 begins operation as soon as it is loaded, initializing its hardware and program variables, and signaling readiness to accept ICE-85 commands by displaying an asterisk prompt. The EXIT command ends the emulation session and returns control to ISIS-II. The command halts all emulations and issues a hardware reset before exiting. The LOAD command loads the object code from the named file and drive into the areas of memory specified by the memory map. Modules are loaded in the order of their appearance in the source file. If no qualifiers are included, the command also loads the program symbol table and statement number table (for PL/M-80 programs) along with the program code. The symbols and statement numbers are placed in reserved areas of Intellec Shared memory. Symbols are grouped in the tables by module, in the order that the modules are loaded into memory. The command can include one or more modifiers to control what is to be loaded. If NOCODE is included, the program code is omitted from the load. If NOLINE is included, the program statement number table is not loaded. If NOSYMBOL is included, the program symbol table is not loaded. Any combination of one, two, or three modifiers may be included, although the cUIIunand wiih aU three modifiers represents a "null" command. No modifier may be named twice in the same load command. The SAVE command copies the user program currently loaded from memory onto the specified file and drive. If the diskette installed on the given drive does not have the named file in its directory, ISIS-II creates the file and opens it for write. If no explicit drive number is given, drive 0 is assumed. Th~ command can include one or more modifiers to control what is to be saved. If NOSYMBOL is included, the symbol table is not copied from memory to'diskette. If NOLINE is included, the statement number table (for PL/M-80 programs) is not saved. The modifiers NOCODE and partition are mutually exclusive: if one is used, the other may not be included. If NOCODE is included, the program object code is not copied to diskette. If partition is included, only the code stored in the memory addresses in the partition (range of addresses) are saved. When more than one modifier.is used, separate them with spaces. No modifier may be used twice in the same SAVE command. The SAVE operation does not alter the program code, symbol table, or statement number table in memory. Tl;te LIST command saves a record of the emulation session, including high-volume data such as trace data, on a hard-copy device or on a diskette file. Only one device or file other than the console can be specified (active) at a given time. The initial device is :CO:, output to the console. Other devices that can be specified are a line printer (:LP:), high-speed paper tape punch (:HP:), and teletypewriter printer (:TO:). 5-8 ICE-85B Command Language Instead of a hard-copy device, a diskette file can be specified. If the output is to a diskette file, the file is opened when the LIST command is invoked, and output is stored from the beginning of the file, writing over any existing data. Specifying a new file or device in a later LIST command closes any existing open file and avoids over-writing any more data. When LIST is in effect (with a device or file other than :CO:), all output from ICE-85, including system prompts, commands, and error messages, is sent both to the named device or file and to the console display. To restore output to the console only (no other device), use the command LIST :CO:. pne additional command, the EXECUTE command, uses ISIS-II pathnames in its syntax. This command is discussed under the External Call Commands, page 5-101. ICE™-85 Command :drive:ICE85 Example: :F1 :ICE85 :drive: The number of the diskette drive containing the ICE-85 software diskette. The number is preceded by the letter F, and enclosed in colons. ICE85 The name of the ICE-85 program file under ISIS-II. The filename follows the second colon without any intervening spaces. EXIT Command EXIT Example: EXIT EXIT A command keyword that returns control from ICE-85 to ISIS-II. 5-9 Command Language ICE-8SB LOAD Command LOAD: drive: filename {NOCODE } NOSYMBOL NOLINE Examples: LOAD :FO:TEST.VR1 LOAD :F1:MYPROG NOLINE LOAD :F2:COUNT.ONE NOCODE NOLINE LOAD :F3:NEWCOD NOSYMBOL 5-10 LOAD A command keyword that loads the software on the given file and drive into the combination of prototype and Intellec memory specified by a previous MAP command. : drive: The diskette drive (:FO:, :FI:, :F2:, or :F3:) that contains the target file. If no drive is given, :FO: (drive 0) is the default. filename The name of the desired program as compiled or assembled, linked, and located. The filename follows the second colon with no intervening spaces. NOCODE A modifier specifying that program code is not to be loaded. NOSYMBOL A modifier specifying that the program symbol table is not to be loaded. NOLINE A modifier specifying that the program line number table (for PL/M-80 programs) is not to be loaded. ICE-85B Command Language SAVE Command SAVE: drive: filename {NOCODE I partitiOn} NOSYMBOL NOLINE Examples: SAVE SAVE SAVE SAVE :F1 :TEST :FO:MYPROG 0800 TO OFFF NOLINE :F2:COUNT.TWO NOLINE NOSYMBOL :F3:NEWSYM NOCODE NOLINE SAVE The command keyword that directs ICE-85 to write the designated software elements to the indicated file and drive. : drive: The diskette drive (:FO:, :FI:, :F2:, :F3:) holding the diskette that is to contain the saved software. If no explicit drive number is given, drive 0 is the default. filename The name of the file that is to receive the saved information. The name of the file, including the extension if present, must follow the rules for naming files under ISIS-II. The filename immediately follows the second colon. If the filename does not exist on the designated diskette, ISIS-II creates the file and opens it for write. NOCODE A modifier specifying that program code is not to be saved. partition A construct specifying a range of one or more contiguous locations in memory; the contents of the specified locations are saved, but code in other locations is not copied. Refer to the discussion under the Memory Contents Commands (page 5-39) for the forms used to specify memory partitions. NOSYMBOL A modifier specifying that the symbol table is not to be saved to diskette. NOLINE A modifier specifying that the line number table (for PL/M-80 programs) is not to be saved. LIST Command (a) LIST :device: (b) LIST :drive:filename Examples: LIST :LP: LIST :CO: LIST :F1 :ICEFIL LIST The command keyword directing all ICE-85 output to be sent to the specified device or file, and to the console. : device: An ISIS-II device code, indicating a hard-copy output device to receive the output. : drive: The diskette drive holding the diskette on which output is to be written. If no explicit drive is given, drive 0 is assumed. filename The name of the file on the target diskette. The filename immediately follows the second colon, without intervening spaces. 5-11 Command Language ICE-8SB Number Bases and Radix Commands ICE-85 commands and displays involve several different number bases (radixes). This section describes the various radixes used by ICE-85, and the commands used to control some of them. Most radixes are set by ICE-85 and cannot be changed, but others are under your control. This section gives details on the following commands. Command Purpose SUFFIX Set or display console input radix. BASE EVALUATE Set or display console output radix. Display numeric constant or expression in all five possible output radixes. Discussion The commands given in detail in this section refer to the radixes used for console input and console output. In addition to these two main contexts, this section reviews the radixes used for the display of trace data and for the display of breakpoint and qualifier register settings. Console Input Radixes; SUFFIX Command Any number entered from the console can include an explicit input radix. An explicit input radix consists of one of the following alphabet characters appended directly to the number as entered. Explicit Radix Y Q T H K Example Radix Specified 100lY IIQ 9T 9H 2K Binary (base 2) Octal (base 8) Decimal (base 10) Hexadecimal (base 16) Multiple of 1024 The implicit input radix is the base used by ICE-85 to interpret numbers entered from the console without an explicit radix. The initial implicit radix for most numbers is hexadecimal (H). To display the current implicit input radix, enter the command token SUFFIX followed by a carriage return. The implicit input radix can be Y, Q, T, or H, as defined earlier. You can change the implicit input radix by entering a command with the form SUFFIX = X, where X is any of the characters Y, Q, T, or H. This SUFFIX command can be used where several numbers are to be entered in the same radix. Note that K (multiple of 1024) cannot be specified as an implicit input radix. Numbers with explicit radix K are used mainly to refer to blocks of memory addresses for mapping; see the MAP commands for examples. 5-12 ICE-85B Command Language For some kinds of entries from the console, the implicit input radix is always decimal (T). Entries with implicit decimal radix are: • Numbers entered after MOVE, PRINT, and COUNT keywords. • Channel numbers. • Program statement numbers. An explicit radix always takes precedence over the implicit radix. If the digits in the number entered cannot be interpreted in either the explicit or the implicit radix, an error message is displayed. Console Output Radixes; BASE Command Numeric information such as addresses, memory and register contents, and data, is displayed in the current console output radix. The console output radix can be one of the following. Output Radix Specified Radix Y Q T H ASCII Binary Octal Decimal Hexadecimal ASCII character for each byte The initial output radix is hexadecimal (H). To display the current console output radix, enter the command token BASE followed by carriage return. The display consists of a single character, Y, Q, T, H, or A (for ASCII). You can change the console output radix by entering a command with the form BASE = X, where X is one of the single characters Y, Q, T, or H, or the token ASCII. Once the radix is set with a BASE command, it stays in effect until another BASE command is entered. The EVALUATE Command The EVALUATE command handles the arithmetic computation involved in translating from one radix to another. This command has the form EVALUATE X, where X is any numeric constant or numeric expression. Upon receiving this command, ICE-85 evaluates any expression to a single number, and displays the result in the four bases Y, Q, T, and H, and the corresponding ASCII characters, all on one line. For ASCII, the characters are enclosed in single quotes ('); printing characters are displayed (ASCII codes 20H through 7EH after bit 7 is masked off), while nonprinting characters are suppressed. Here are three examples of the use of the EVALUATE command, with the display produced by each one. Example 1: EVALUATE 123T Display: 1111011Y 1730. 123T 7BH '[' 5-13 ICE-85B Command Language Example 2: EVALUATE 4142H Display: 1000001 01 00001 OY 405020 16706T 4142H 'AB' Example 3: EVALUATE FFH + 256T Display: 111111111Y 7770 511T 1FFH Note that the addition was performed first, then the result was displayed in the four bases. The result contained only non-printing ASCII characters, displayed as empty quotes. Radixes Used in Trace Displays Entries in the trace buffer are displayed in groups. Some groups are system-defined; the radixes used for displaying these groups are also set by the system. If you define any additional groups, they are also displayed as part of trace data, and you can specify the group-radix to be used for each such group. Refer to the Group Commands for more detail on system groups and user-defined groups. System groups are displayed with the following radixes. System Group Trace Display Radix ADDR, ADDRL, H (Hexadecimal) ADDRH,DATA STS One-letter mnemonic (H=HALT, W=WRITTEN, R=READ, E=EXECUTED, O=OUTPUT, I=INPUT) DMUX,SD, RW,MTH Y (Binary) The group-radix to be used for displaying a user-defined group in trace data is specified by the IN-clause that is part of the DEFINE GROUP command. Groupradixes can be one of the following. Y Q T H Binary Octal Decimal Hexadecimal The default when no IN-clause is used is H (hexadecimal). Radixes Used for Displaying Breakpoint and Qualifier Settings When you enter a token representing one of the ICE-85 breakpoint or qualifier registers, the setting of that register is displayed. The display includes any system group or user-defined group having one or more care bits set; the setting of each group is displayed as a binary masked or numeric constant. Refer to the Emulation Commands, and to the Trace Commands for more details on breakpoint and qualifier registers: 5-14 ICE-85B Command Language Set or Display Console Input Radix Commands SUFFIX Iy/o/T/HI SUFFIX Examples: SUFFIX SUFFIX SUFFIX Y A command keyword referring to the implicit console input radix. The token SUFFIX alone displays the current setting (Y, Q, T, or H). The assignment operator, indicating that the new setting is to follow. Binary radix. Y Octal radix. Decimal radix. Hexadecimal radix. Q T H Set or Display Console Output Radix Commands BASE BASE IY / 0 / T / H / ASCII I Examples: BASE BASE BASE o A command keyword referring to the system console output radix. The token BASE alone displays the current setting (Y, Q, T, H, or A). The assignment operator, indicating that the new setting is to follow. Y Binary radix. Q Octal radix. T Decimal radix. H Hexadecimal radix. ASCII Each byte represented by its corresponding ASCII character, without separators. 5-15 Command Language ICE-85B EVALUATE Command EVALUATE numeric Examples: EVALUATE 123T EVALUATE 4142H EVALUATE FFH EV ALUA TE numeric + 256T A command keyword that directs ICE-85 to evaluate the expression and display the result in all four number bases and ASCII. A numeric expression or numeric constant . Memory and I/O Port Mapping Commands The commands in this section control the ICE-85 memory and 110 port maps. ICE-85 uses these maps to determine what memory and 110 are installed on the prototype system, and what memory and 110 resources are being "borrowed" from the Intellec system for testing purposes. This section gives details on the following commands. Command Purpose Map Mode Identify Intellec memory to be borrowed as SHARED or UNSHARED. MAP Memory ASSign up to 32 blocks of 2K locations per block segment to USER, INTELLEC, or GUARDED status. MAP 10 Ports Assign up to 32 segments of eight 1/0 ports per segment to USER, INTELLEC, or GUARDED status. Display MAP Status Display status of one or more memory blocks, or of one or more port segments, and display the current map mode for Intellec memory. RESET MAP Restore Intellec map mode to SHARED, and the status of all memory blocks and port segments to GUARDED. Discussion Synchronization With User Ready The ICE-85 emulator monitors user ready while emulating and will abort emulation and respond with an error message if the user ready is absent for more than one second. For this reason, the ICE-85 hardware is default jumpered to insert a ready from the user system for any memory or 110 segments mapped to the Intellec Microcomputer Development System. However, synchronization of Intellecborrowed resources to emulation with user ready can be accomplished easily by changing the RDYSYNC Jumper located in the chip controller assembly (see Appendix D). Please note that if your system is capable of keeping the 8085 not ready for more than one second, the DISABLE TIMEOUT command will disable the error checking for user ready and allow emulation to continue. Mapping Memory ICE-85 can access program code loaded into user prototype memory, Intellec RAM memory, or a combination of the two. A maximum of 64K addresses are accessible with the addressing scheme used by the 8085 processor. If a combination is used, the address spaces assigned in each memory do not overlap; a given address must be assigned to either the prototype or to the Intellec system. 5-16 ICE-85B Command Language Intellec memory comes in two configurations. The SHARED memory space is standard. An optional UNSHARED memory space can be installed. Either configuration can include a maximum of 64K addresses. ICE-85 can access either the SHARED or the UNSHARED Intellec RAM, but not a combination of the two. - MONIT R 2K ICE-85 VARIABLES 'UsiRPROGRAM - - E!l'1!&'1L - FFFFH,F800H -- XXXXH UPPER I THIS AMOUNT VARIES. AVAILABLE FOR USER PROGRAM CODE MAXIMUM OF 64K LOWER,L IMIT7000H 6FFFH ICE·85 SOFTWARE 16K 3000H 2FFFH ISIS SOFTARE 12K .l!OOm:I... Figure 5-1. Intellec Shared Memory Locations with 64K of RAM 463-17 Intellec SHARED memory always contains the following system software and dedicated locations. Refer to Figure 5-1 for a diagram of Intellec SHARED memory. The Intellec Monitor occupies locations F800H through FFFFH in SHARED memory regardless of memory size as installed. All references to addresses in this range are sent to the Monitor 'shadow' PROM, and thus are available to the memory map as a read-only function. ISIS-II ISIS-II software occupies the lowest 12K in Intellec SHARED Software (I2K) memory (addresses OOOOH through 2FFFH). ICE-85 The ICE-85 program occupies the 16K locations immediately Software (16K) above the ISIS-II software (addresses 3000H through 6FFFH). ICE-85 The workspace for ICE-85 variables and the symbol and Workspace statement number tables occupy an area of SHARED memory and Symbol whose highest address is the highest permissible address in Tables installed memory that is below F800 (Monitor). In a 64K system, (Amount varies) the workspace and symbol tables occupy the contiguous memory addresses just below the Monitor. In systems with less than 64K, these items take up the highest locations in installed memory. The amount of memory taken up by the workspace and tables varies. The ICE-85 command UPPER displays the highest available address below the workspaceltable area. Intellec Monitor (2K) The range of addresses from 7000H through the value of UPPER is available for user program code. 5-17 ICE-85B Command Language UPPER, LIMIT, and LOWER To assist in mapping to Intellec shared memory, ICE-S5 includes three keywords (UPPER, LOWER, LIMIT) that refer to significant locations in the shared memory space. They are summarized in Table 5-2. Table 5-2. ICETM-85 Memory Control Keywords Keyword How Set or Changed Location Referenced UPPER Highest address available for user program. Set and changed Read-only to user. by ICE; LOWER Lowest block name higher than highest location occupied by ICE software. (I.e .. lowest block free for mapping.) Set by ICE and held constant for any software combination; Readonly to user. LIMIT Lowest address available to ICE for expanding workspace. An error occurs if LIMIT is greater than UPPER. Set by ICE initially equal to LOWER; can be reset by the user to protect user space. ICE issues a warning under the following conditions: 1. A MAP command refers to an address higher than UPPER (for example, "MAP FSOOH = INTELLEC FSOOH"); you are mapping into current ICE workspace or over Monitor. 2. A MAP command refers to an address lower than LOWER (for example, "MAP 0 = INT 0"); you are mapping over ICE or over ISIS. 3. A MAP command refers to an address lower than UPPER and higher than LIMIT (for example, "MAP 3000H = INT EOOOH"); you are mapping into the area to be used for expanding the ICE workspace. Initially, any MAP memory command receives a warning. The MAP command is executed in any event. Note that you should not write to any location higher than UPPER or lower than LOWER; results are undefined. Mapping these areas gives you read-only access to ISIS or Monitor routines. You can also reset LIMIT to avoid the warning message and protect your user code from being overwritten by the expanding ICE workspace. The ICE workspace contains symbol and statement number tables and space for processing ICE commands .. It grows dynamically to accommodate larger symbol tables and command structures. As workspace grows, ICE resets UPPER to lower and lower addresses. UPPER always reflects the largest space required for command processing during each test session; it does not "shrink" dynamically to accommodate smaller commands. UPPER is reset to higher locations when you remove any symbols, modules, or lines from the tables. ICE workspace can expand until UPPER equals LIMIT. Whenever an expansion of workspace results in UPPER less than LIMIT, an error occurs, the command is not executed, and control returns to the ICE command level. If LIMIT remains equal to LOWER, as at initialization, the workspace can expand into the area mapped for user code without producing any error or warning message. This expansion may result in user code being overwritten. You can set LIMIT so as to prevent the workspace from overwriting any user code. If LIMIT is reset before the user area is mapped, the warning message does not appear since this area is no longer part of the system area. 5-18 ICE-85B Command Language Intellec UNSHARED memory (see Figure 5-2) consists of up to 64K of RAM, installed in the Intellec chassis (or in an extender chassis) in addition to the UNSHARED memory boards. When UNSHARED memory is to be used, all the RAM boards in both SHARED and UNSHARED memories must be 32K or 64K in capacity. Intellec UNSHARED memory is restricted only by the Monitor locations (F800H through FFFFH; see Figure 5-1). The ICE-85 memory map tells the system where to find the physical location corresponding to an address reference in the program code or in commands. ICE-85 treats most address references as logical addresses. The map translates any logical address into its corresponding physical address, given that the addresses (logical and physical) have been set in correspondence with a previous MAP command. Figure 5-3 diagrams the memory map operation. Some commands or command keywords use physical addresses directly; such addresses always are referred to Intellec SHARED memory. . -" "'--~r~'--- FFFH _ - - - - - - - - , INTELLEC MONITOR AVAILABLE FOR USER PROGRAM CODE MAXIMUM OF 64K OOOOH _ _ _ _....._ _ _... Figure 5-2. Intellec® UNSHARED Memory 463-18 PROTOTYPE MEMORY (USER) LOGICAL ADDRESS (NUMBER) MEMORY MAP PHYSICAL ADDRESS INTELLEC UNSHARED MEMORY INTELLEC SHARED PHYSICAL MEMORY ADDRESS--.... (NUMBER) Figure 5-3. Memory Map Diagram 463-19 5-19 ICE-85B Command Language The address references shown in the diagram are simple numeric references. Symbolic references and numeric expressions used as addresses are resolved into numeric references by ICE-85 before the map is consulted. The MAP Mode command tells ICE-85 to use either SHARED or UNSHARED Intellec memory for any addresses mapped to the Intellec system. The command has the form MAP = X, where X is one of the two tokens SHARED or UNSHARED. The initial mode is SHARED. The MAP Memory command assigns blocks of logical addresses to blocks of physical locations either in the prototype or in the Intellec system. Each memory block (logical and physical) contains 2K (2048 decimal) contiguous locations. Refer to Table 5-3. A 64K system represents 32 blocks that can be mapped. You can map only in terms of entire blocks; partial blocks cannot be mapped. Of course, an ICE-85 command or program statement can reference a single address, or a range of addresses that does not correspond to block boundaries, once the block or blocks containing the referenced address has been mapped. All memory blocks in the prototype and Intellec memories are initially GUARDED (logically nonexistent). Any attempt to access a guarded location produces an error message at the console. Guarded locations are write-protected in Interrogate mode; if you refer to such a location in a command entered from the console, no access occurs. During emulation, however, an attempted write to a guarded location will succeed before the error message is displayed. You can use the MAP Memory Command to reset any block to GUARDED. Table 5-3. Memory Blocks for Mapping Block No. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 5-20 Lowest Address (block-name) K Hex OK 2K 4K 6K 8K 10K 12K 14K 16K 18K 20K 22K 24K 26K 28K 30K 32K 34K 36K 38K 40K 42K 44K 46K 48K SOK 52K 54K 56K SBK 60K 62K OH 0800H 1000H 1800H 2000H 2800H 3000H 3800H 4000H 4800H 5000H 5800H 6000H 6800H 7000H 7BOOH BOOOH B800H 9000H 9800H AOOOH A800H BOOOH B800H OOOOH G800H DOOOH D800H EOOOH EBOOH FOOOH FBOOH High Address Hex 7FFH OFFFH 17FFH 1FFFH 27FFH 2FFFH 37FFH 3FFFH 47FFH 4FFFH 57FFH 5FFFH 67FFH 6FFFH 77FFH 7FFFH 87FFH 8FFFH 97FFH 9FFFH A7FFH AFFFH B7FFH BFFFH G7FFH GFFFH D7FFH DFFFH E7FFH EFFFH F7FFH FFFFH Decimal Range o2048 4096 6144 8192 10240 122B8 14336 16384 18432 20480 22528 24576 26624 2B672 30720 32768 34816 36864 38912 40960 43008 45056 47104 49152 51200 53248 55296 57344 59392 61440 63488 - 2047 4095 6143 8191 10239 122B7 14335 16383 1B431 20479 22527 24575 26623 28671 30719 32767 34815 36863 38911 40959 43007 45055 47103 49151 51199 53247 55295 57343 59391 61439 634B7 65535 Command Language ICE-85B The details on using the MAP Memory command fall into three areas: 1. The ways to refer to blocks (block-name), and the number of contiguous blocks to be mapped in a single MAP command. 2. The use of displacement with Intellec SHARED memory. 3. The NOVERIFY option for mapping to USER or INTELLEC. One or more contiguous blocks can be mapped to the same memory state (GUARDED, USER, or INTELLEC) in a single MAP command. To map a single block, use a command with the form MAP block-name = X, where X is one of the tokens GUARDED, USER or INTELLEC. (For now, we shall omit the required displacement for Intellec SHARED memory, and the NOVERIFY option.) The block-name is the lowest-numbered address in the desired block. Since each block contains 2048 (decimal) addresses, all block-names are numbers that are multiples of 2048 decimal. In hexadecimal radix, block-names are multiples of 0800H, starting with OOOOH. However, the simplest way to refer to a block is to use the explicit input radix K (multiple of 1024); any block-name is a number with the form (n times 2K), or 2nK, where n is the block number given in Table 5-3 (0~n~31). To map more than one contiguous block in one command, use a form of block- partitian instead of a single block-name. The forms of block-partition are as follows. block-name TO block-name- 1 block-name TO high-address block-name LENGTH number-ai-addresses The first two forms use the keyword TO. The block-name to the left of the keyword TO represents the low address of the low block in the partition; the block-name is specified as discussed above. The entry to the right of the keyword TO represents the highest address in the high block in the partition. You can either look up the highaddress in the high block by referring to Table 5-3, or you can use an expression with the form (block-name - I) and let ICE-85 calculate the high address. All the blocks included in the range of addresses given by this form are mapped to the designated memory state. For example, to map the lowest four blocks to USER (prototype) memory, either of the following two commands can be used. MAP OOOOH TO 2000 - 1 = USER MAP OK TO 1 FFFH = USER The third form of block-partition uses the keyword LENGTH. With this form, you supply the low address in the range (the block-name of the lowest block, as before), and (following LENGTH) the number of addresses in the range. The number of ad" dresses includes the starting address, so that no additional calculation is required. Morever, since each block contains exactly 2K addresses, the number given for number-ai-addresses is a multiple of 2K, and is identical in form to block-name. Thus, to map the first four blocks to USER, you can use the following command. MAPOKLENGTH8K=USER A.ny block is valid for mapping, including those dedicated to Monitor, ISIS.II, and ICE-35. If you map into ISIS-II or ICE-85, a warning message is displayed, but the map operation is carried out. You should not map into these areas unless your program uses some specific Monitor or ISIS-II routines. If the range of addresses given in a block-partition contains more than 64K locations, or if the express or implied high address is higher than 64K, an error is displayed, and the MAP command is not executed. 5-21 ICE-85B Command Language When a block or range of blocks is mapped as GUARDED, the block or blocks become unavailable to ICE-85. When the block or blocks are mapped to USER, the physical addresses in the prototype memory are the same as the logical addresses in the program or command. For example, if block OK (locations OOOOH to 07FFH) are mapped to USER, any reference to logical address OIOOH is directed to physical location OIOOH in the prototype memory. When the blocks are mapped to INTELLEC, the prevailing map mode determines whether SHARED or UNSHARED memory is to be used. With UNSHARED memory, physical addresses are the same as logical addresses. With SHARED memory, physical addresses are generally not the same as the logical addresses. The default is SHARED. In SHARED Intellec memory, the lowest available address for user program code is 7000H; this is block 28K. Typically, user program code is located in low areas of memory. Thus, for Intellec SHARED memory, logical addresses are less than physical addresses; the difference is called the 'displacement.' When you are mapping into INTELLEC, you must specify the starting address in Intellec memory that is to correspond to the lowest logical address in the block- partition you wish to map. Subsequent logical address blocks are mapped to contiguous physical blocks higher in Intellec memory; you do not need to specify anything but the size of the partition of logical blocks. For UNSHARED Intellec memory, the starting address (block-name) of the logical blocks can be the same as the physical address in Intellec memory. For example, to map the lowest block to Intellec UNSHARED memory, the following two commands are valid when entered in the order shown. MAP = UNSHARED MAP OK = INTELLEC OK For SHARED Intellec memory, physical blocks start with block 28K, as mentioned earlier. Thus, to map the lowest logical block (OK) into the lowest available physical block in Intellec SHARED memory, Use one of the following commands. MAP OK = INTELLEC 28K MAP OOOOH = INTELLEC 7000H When memory is mapped to USER or to INTELLEC, you may use the NOVERIFY option. NOVERIFY suppresses write verification that normally is performed each time the contents of a memory location are changed with an ICE-85 console command. To display the current map mode, and the state (GUARDED, USER, or INTELLEC) of all 32 blocks, enter the command token MAP followed by a carriage return. To display the status of a range of blocks, enter the token MAP followed by the desired partition. The RESET MAP command restores the map mode to SHARED, and the status of all 32 memory blocks to GUARDED. Figures 5-4, 5-5, and 5-6 illustrate three cases using the MAP command. 5-22 ICE-8SB Command Language FFFFH F800H F7FFH INTELLEC SHARED MEMORY INTELLEC UNSHARED MEMORY USER MEMORY MONITOR2K _ ~E~ARIAB~ __ USER PROGRAM SYMBOL TABLES ------(G (BLANK) LOWER, LIMIVtn~ ICE-85 SOFTWARE 16K 1BOOH t------'---------i 4K ISIS-II SOFTWARE 12K 2K OH K~MULTIPLE ALL PROGRAM CODE MAPPED TO USER MEMORY: NO DISPLACEMENT IS ALLOWED OF 1024_ Figure 5-4. Mapping Into User Memory FFFFH F800H F7FFH USER MEMORY INTELLEC SHARED MEMORY 463-20 INTELLEC UN SHARED MEMORY MONITOR2K ICE-85 VARIABLES 1------- USER PROGRAM SYMBOL TABLES 1------44K MAP 26K-INT 44K MAP MEM 24K-INT 36K LOWER, LIMIT 7000H ~ ICE-85 SOFTWARE 16K - 1------1------1------- -- r- 3000H MAP MEM 10K~USER 10K BK~USER 8K :---+- MAP MEM '-+- MEM BK-BK USER ISIS-II SOFTWARE 12K OH MEMORY MAP ~ K~MULTIPLE OF 1024_ MEM 10K-10K USER MEM24K 36K INT MEM 26K 44K INT Figure 5-5. Mapping Into User and Shared Intellec Memory 463-21 5-23 ICE-8SB Command Language INTELLEC SHARED MEMORY ~~6tHH ..................~M~O~NI~TO~R~2~K-.....- F7FFH ~ ~ !£§.:85 VARIABL§.L ~ UPPER USER PROGRAM SYMBOL TABLES ~ ~ ~ ~ ~ ~ USER MEMORY INTELLEC UNSHAREb MEMORY t t GuARDED ~ I (GUARDEDI MAP 26K LEN 4K MAP MEM 24K r--"""" -------- - - -~ 28K 26K 24K LOWER, LlMIT6W~~ t-----~~--_f -~ ---- --- ~--- INT 44K INT 24K 46K 44K t - • MAP MEM 24K ··INT 24K 24K 1 (GUARDED) 10K 8K ~ (GUARDED) ICE·85 SOFTWARE 16K 1515·11 SOFTWARE 12K ~ MAP 8K LEN 4K ." USER t + 1 (GUARDEDI OH MEMORY MAP K MULTiPLE OF 1024. MEM 8K ~ 8K USER MEM 10K ~ 10K USER MEM 28K ~ 46K INT MEM 26K ~ 44K INT MEM 24K ~ 24K INT PROGRAM CODE MAPPEO TO USER MEMORY, NO DISPLACEMENT ALLOWED. PROGRAM CODE ~APPED TO INTELLEC lJNSHARED MEMORY, DISPLACEMENT ALLOWED. Figure 5"6, Mapping Into User and Unshared Intellec Memory Case I: Mapping into User Memory Only (Figure 5-4). Commands: MAP 2K TO 1800 -1 = USER NOVERIFY MAP 24K = USER User prograrn (logical) address blocks 2K, 4K, and 24K are mapped into USER (prototype) memory, Blocks 2K and 4K have read-after-write verification suppressed. Case II: Mapping into User and Shared Intellec Memory (Figure 5-5). Commands: UPP F600H LOW 7000H LIM 7000H LIM = F600H MAP =SHARED MAP 8K TO 3000H -1 = USER NOVERIFY MAP 24K == INTELLEC 36K NOVERIFY MAP 26K = INTELLEC 44K Logical blocks 8K and 10K are rnapped to prOtotype memory with verification suppressed. Logical block 24K is rnapped to Intellec shared memory, at physical block 36K, verification suppressed. Logical block 26K is mapped to Intellec shared memory at logical block 44K. LIMIT changed to protect the user code. 5-24 463-22 Command Language ICE-85B Case III: Mapping into User and Intellec Unshared Memory (Figure 5-6). Commands: MAP = UNSHARED MAP 8K LENGTH 4K = USER MAP 24K = INTELLEC 24K MAP 26K LENGTH 4K = INTELLEC 44K Logical blocks 8K and 10K are mapped to user memory; no displacement is allowed. Logical block 24K is mapped to physical block 24K in Intellec unshared memory. Logical blocks 26K and 28K are mapped to Intellec unshared memory, at physical blocks 44K and 46K respectively. With Intellec un shared memory, displacement is optional. In summary, the ICE-85 map is used to decode logical addresses into physical address. Logical addresses correspond to the program and data locations in your program as LOCATED; physical addresses correspond to the address space as seen internally by ICE-85 How does lCE-85 decide physical address? ICE-85 address reference. Some "parameters", while other if an address reference in a command is a logical or decides on the basis of the keyword that precedes the keywords take logical addresses as "arguments" or keywords require (assume) physical addresses. For reference, here are the ICE-85 command keywords that use address references. They are classified according to the type of address used. The tokens BYTE, WORD, CALL, FROM, TO, and LOCATION use logical addresses. The address reference that follows anyone of these tokens is translated through the memory map into its corresponding physical address in user or Intellec memory. For example, suppose you map location 2000H from your program code to address 7000H in Intellec SHARED memory. To refer to the content of this address, you use the expression BYTE 2000H. The tokens IBYTE, IWORD, and ICALL use physical addresses in Intellec SHARED memory. The map is not used to translate the address, and the physical location is always Intellec SHARED memory, even when the current MAP mode for memory mapping is UNSHARED. For example, to refer to the content of address 7000H in Intellec SHARED memory, use the expression IBYTE 7000H. Mapping Input/Output Ports ICE-85 can access input/ output ports in the prototype system, in the Intellec system, or in a combination of the two. A maximum of 256 decimal ports can be accessed. The map command for 110 ports has the form: MAP 10 segment-partition'" X where X is one of the tokens GUARDED, USER, or INTELLEC. Input/output ports are mapped in segments of eight ports each. Table 5-4 gives details on the segments of ports for mapping. The segment-name is the number of the lowest port in the desired port segment. Segment names are multiples of 8H or 8T. To map a single port segment, the MAP 10 command has the simpler form: MAP 10 segment-name = X 5-25 Command Language ICE-85B The forms of segment-partition (range of port segments) resemble those given above for block-partition. The three forms are as follows. segment-name TO segment-name -1 segment-name TO high-port segment-name LENGTH number-of-ports Table 5-4. Input-Output Port Segments for Mapping SegmentNumber 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Hex Range (segment-name) Low High Decimal-Range (segment-name) Low High OH 8H 10H 18H 20H 28H 30H 38H 40H 48H 50H 58H 60H 68H 70H 78H 80H 88H 90H 98H AOH A8H BOH B8H COH C8H DOH D8H EOH E8H FOH F8H OT 8T 16T 24T 32T 40T 48T 56T 64T 72T 80T 88T 96T 104T 112T 120T 128T 136T 144T 152T 160T 168T 176T 184T 192T 200T 208T 216T 224T 232T 240T 248T 7H FH 17H 1FH 27H 2FH 37H 3FH 47H 4FH 57H 5FH 67H 7FH 77H 7FH 87H 8FH 97H 9FH A7H AFH B7H BFH C7H CFH D7H DFH E7H EFH F7H FFH 7T 15T 23T 31T 39T 47T 55T 63T 71T 79T 87T 95T 103T 111T 119T 127T 135T 143T 151T 159T 167T 175T 183T 191T 199T 207T 215T 223T 231T 239T 247T 255T The first two forms use the keyword TO. The segment-name to the left of the keyword TO represents the low port number in the low segment in the partition; as discussed above, the segment name is a number with the form (n times 8H), where n is the segment number from Table 5-4. The entry to the right of the keyword TO represents the highest port number in the highest segment in the partition. You can either look up the high-port in the high segment by referring to Table 5-4, or you can use an expression with the form (segment-name - 1), and let ICE-85 calculate the high port number. For example, to map the lowest 4 port segments (32 ports total) to the user system, either of the two following commands may be used. MAP 10 OH TO 20H -1 = USER MAP 10 OH TO 1FH = USER The third form of segment-partition uses the keyword LENGTH. With this form, you specify the low port in the range (the segment-name of the lowest segment, as before), and (following the keyword LENGTH) the number of ports in the range. The number of ports includes the starting port-number, so that no additional calculation is required. Morever, since each segment contains 8 (H or T) ports, the 5-26 Command Language ICE-85B number given for number-oF-ports is always a multiple of 8, and is thus identical in form to segment-name. For example, to map the lowest four port segments to USER, you can use the following command. MAP 10 OH LENGTH 32T = USER Displacement is not allowed with lIO port segments; the logical port number always equals the physical port number, both in USER and INTELLEC systems. The NOVERIFY option is invalid with lIO ports, since data written to lIO ports is never verified. Figure 5-7 diagrams an example of mapping lIO port segments to a combination of USER and INTELLEC. The commands that produce this result might be: MAP 10 18H LENGTH 16T = USER = USER MAP 10 60H = INTELLEC MAP 10 40H To display the current status (GUARDED, USER, or INTELLEC) of all 32 lIO port segments, enter the tokens MAP 10, followed by carriage return. To display the status of a partition of port segments, use MAP 10 segment-partition. The RESET MAP command restores all 32 lIO port segments to their initial GUARDED status. USER 10 INTELLEC 10 60H ~ t--'-"":":~=;';---'~':"--f ~ t--':"--'--T"---'''';';:;';':''--f Figure 5-7. 10 Port Segments Mapped to User and Intellec 463-23 5-27 ICE-8SB Command Language MAP Mode Command MAP rMEMORY] = I SHARED I UNSHARED Examples: MAP MEMORY'" SHARED MAP = UNSHARED MAP A command keyword referring to some operation on the ICE-85 map that relates each address in the user program absolute code to a location either in User memory or in lntellec memory. MEMORY A function keyword referring to the memory blocks used for program code. It may be omitted from this command. = The assignment operator. Refers to shared lntellec memory space. This memory space always contains the system software (Monitor, ISIS-II, and lCE-85), an ICE-85 system workspace, and the user symbol tables, in addition to any code. mapped into it. SHARED is the initial mode SHARED UNSHARED 5-28 A function keyword referring to unshared memory space in the Intellec system. This space requires an additional memory board or boards. When present, it is available for user program code only. ICE-85B Command Language MAP Memory Command MAP MEMORY block-partition = GUARDED USER lNOVERIFYj INTELLEC block-name [NOVERIFYj Examples: MAP MEMORY OOOOH TO OFFFH = GUARDED MAP MEMORY 6K = USER MAP 2000H TO 2FFFH = INTELLEC 4K NOVERIFY MAP MEMORY 5000 LENGTH 4K = USER NOVERIFY The command contains the following semantic elements. MAP A command keyword that relates each address in the user program absolute code to a location either in user memory or in lntellec memory, and each input/output port to the user system or to the lntellec system. MEMORY A function keyword indicating that program code is to be mapped. (MEMORY is the default). block -partition One or more contiguous blocks of memory addresses (2048 addesses per block). The assignment operator. GUARDED The initial state of all memory blocks. Any reference to a guarded address causes an error message. Guarded locations are write-protected in interrogate mode, but not write-protected in either real-time or single·step emulation. USER Refers to locations in user prototype memory. Synchronous with . User Ready. INTELLEC Refers to locations in lntellec memory (shared or unshared, as specified in an earlier Map Mode command). (See note below.) block-name Gives the starting address in lntellec memory for the blocks of contiguous memory identified in partition. The lowest block in partition will be mapped to the block location given by blockname, and succeeding blocks are mapped to contiguous memory blocks above the first block. NOVERIFY A function keyword that suppresses the normal read-after-write verification of data loaded into memory locations in user or lntellec memory. NOTE lntellec memory may not operate synchronously with User Ready depending upon the position of the RDYSYNC Jumper in the Chip Controller Assembly. See Appendix D. 5-29 ICE-85B Command Language MAP I/O Ports Command MAP 10 segment-partition = I GUARDED USER INTELLEC I Examples: MAP 10 OOH TO 17H = INTELLEC MAP 10 32T TO 63T = USER MAP 10 BBH LENGTH 16T = GUARDED MAP A command keyword referring to the memory and I/O port maps. 10 Command keyword designating the I/O port map. segment-partition One or more contiguous segments of I/O ports. Each segment contains eight ports. 5-30 GUARDED The initial state of all I/O port segments. Any reference to a guarded port causes an error message. Guarded ports are writeprotected in interrogate mode, but not write-protected in either real-time or single-step emulation. USER Maps port segments in the partition to the user (prototype) system. Synchronous with User Ready. INTELLEC Maps port segments in the partition to the Intellec system. May not operate synchronously with User Ready depending upon the position of the RDYSYNC Jumper in the Chip Controller Assembly. See Appendix D. Command Language ICE-8SB Display MAP Status Command MAP [MEMORY) MAP 10 [ block-partition) [segment-partition) Examples: MAP MAP MEMORY 0000 MAP MEMORY 0000 TO 07FF MAP MEMORY 0000 LENGTH 2K MAPIO MAP 108 The command contains the following semantic elements. MAP A command keyword calling for a display of the current setting of the map for memory blocks or for input! output port segments. MEMORY A function keyword calling for a display of the memory block in the partition. MEMORY is the default. 10 A function keyword calling for a display of the I/O port segments in the partition. bloek-partition One or more blocks of memory addresses. segment-partition One or more segments of I/O ports. RESET MAP Command RESET MAP Example: RESET MAP RESET A command keyword that restores its object to its initial state, as after an initial ICE-85 invocation. MAP As the object of RESET, the token MAP causes all 32 memory blocks and all 32 I/O port segments to be reset to GUARDED, and the mode for memory mapping to be reset to SHARED. 5-31 Command Language ICE-85B Hardware Register Commands This section presents the keywords used in ICE-85 to refer to the following types of hardware registers and signals. • 8085 Processor Registers • ICE-85 Status Registers • ICE-85 External Signals The following commands that refer to hardware registers are discussed in this section. Command Purpose Display Processor or Status Register Display the current contents of any of the 8085 processor registers or ICE-85 status registers. Set 8085 Processor Register Set (change) the contents of any of the writeable 8085 processor registers. RESET Hardware Reset ICE-85 hardware to initial state; reset bit RST-7.510w. ENABLE/DISABLE TIMEOUT Enable or disable error message on absence of 8085 READY or ClK Signals. Discussion Tables 5-5 through 5-8 show the tokens to use to refer to any 8085 8-bit register, 16-bit register pair, I-bit status flag, or interrupt mask bit. In the command syntaxes, the following meta-terms have been adopted to save writing out the complete list of actual tokens. Meta-term processor-register Class of tokens Any of the 8085 registers, register pairs, status flags, or interrupt bits. register-name Any 8085 8-bit register (Table 5-5). pair-name flag-name Any 8085 16-bit register pair (Table 5··6). i-bit-name Any 8085 interrupt mask bit (Table 5-8). Any 8085 I-bit status flag (Table 5-7). To display the current contents of any of these registers or bits, enter the token for the desired register followed by a carriage return. The current setting is displayed on the next line, in the current output radix. 5-32 ICE-85B Command Language Table 5-5. 8085 8-Bit Registers register-name 8085 Register and Interpretation RA Accumulator RB Register B RC RegisterC RD Register D RE Register E RF Status flag register RH Register H RL Register L Table 5-6. 8085 Register Pairs pair-name 8085 Register Pair and Interpretation RBC Register pair BC RDE Register pair DE RHL Register pair HL SP Stack pOinter PC Program counter Table 5-7. 8085 I-Bit Status Flags flag-name CY Status Flag Carry bit (bit 0 of RF) PY Parity bit (bit 2 of RF) ACY Auxiliary carry bit (bit 4 of RF) Z Zero bit (bit 6 of RF) SN Sign bit (bit 7 of RF) (Bit 3 is always set to one) Table 5-8. 8085 Interrupt Mask Bits i-blt-ntlme Interpretation (Bit Number) M5 RST-S.S mask (bit 0) M6 RST-6.S mask (bit 1) M7 RST-7.S mask (bit 2) IE Interrupt enable (bit 3) 17 Interrupt 7.S pending (read-only) (bit 6) SID Serial input data (read-only) (input bit 7) SOD Serial output data (write-only) (output bit 7) 5-33 . ICE-8SB Command Language The command REGISTER displays eleven different values on one line. The values are identified with single letters; here is an example: (Command:) REGISTER (Display:) P=FFOFH S=FFFEH A=OOH F=OOH B=OOH C=OOH D=OOH E =OOH H=OOH L=OOH I=OOH This display is interpreted as follows. Identifier p S A F B C o E H L I Element displayed PC (program counter) SP (stack pointer) RA RF (status flags) RB RC RD RE RH RL Interrupt mask (byte formed by bits SID, 17, (16), (15), IE, M7, M6, and M5; M5 is bit 0 and SID is bit 7.15 and 16 are invalid (always zero). The result is identical to that returned by the 8085 RIM instruction.) To set (change) the content of one of the processor registers, use a command with the form: processor-register = X where X is a numeric constant or numeric expression giving the desired new contents. Note that interrupt bits 17 and SID are read-only bits, and cannot be set from the console; any attempt to set a read-only register produces an error message. NOTE After SOD is set from the console, the pin does not change until the next emulation begins. Each of the registers that can be changed with this command has a definite size (16, 8, or 1 bits). If the new contents represent fewer bits than the destination register, the bits are right-justified in the register, and the remaining bits in the register are set to zero; in other words, ICE-85 assumes that the quantity represents the lowestorder bits, and sets any unspecified high-order bits to zero. If the new contents represent more bits than the register can hold, the least significant bits of the quantity are loaded into the register, and the rest of the bits in the quantity are ignored. Table 5-9 shows the ICE-85 status registers, and the tokens used to refer to them. To display the current content of anyone of these registers, enter the token for that register followed by carriage return. The content is displayed on the next line, in the current output radix. The meta-term status-register in a command syntax means anyone of the ten tokens for ICE-85 status registers. 5-34 Command Language ICE-85B With the exception of LIMIT, the ICE-85 status registers are all read-only registers, and cannot be set or changed from the console. LIMIT can be set by the user. The RESET HARDWARE command is used to restore the ICE-85 and 8085 hardware to the initial program load condition. One use for this command might be to reset the hardware when reconfiguring (for example, moving the user plug from the stand-alone adapter to the user system. The EXIT command includes the RESET HARDW ARE function. The RESET I7 command causes the external interrupt line RST 7.5 to the 8085 to be reset to zero (low). TIMEOUT calls for ICE-85 to display an error message whenever either the 8085 READY signal or the 8085 CLK (clock) signal is absent. TIMEOUT is initially enabled. Table 5-9. ICPM-85 Status Registers Status-register ICE-8S Status Register and Interpretation OPCODE Opcode fetched in last opcode-fetch cycle in trace data (8 bits, read-only) CAUSE Conditions that were true at the time of the last break in emulation (read-only). The 8 bit values are: Bit 0 on Bit 1 on Bit 2 on Bit 3 on Bit 4 on Bit 5 on Bit 6 on Bit 7 on if breakpoint 0 matched if breakpoint 1 matched if SYO caused break if guarded memory or 1/0 accessed if user aborted processing if timeout on HOLD if timeout on READY if no user Vcc (power supply voltage) PPC Previous program counter; address of last instruction-fetch cycle in trace data (16 bits, read-only). PSW Program status word; accumulator in low byte, status flag register in high byte (16 bits, read-only). UPPER Highest location in Intellec memory available to map user memory into (16 bits, read-only). LOWER Lowest block name higher than highest location occupied by ICE software (i.e., lowest block free for mapping) (16 bits, read-only). LIMIT Lowest address available to ICE for expanding workspace. An error occurs if LIMIT is greater than UPPER (16 bits, can be changed by user). BUFFERSIZE Number of frames of valid trace data; initially zero, always between zero and 1022 (16 bits, read-only). TIMER Low 16 bits of 2-MHz emulation timer. HTIMER High 16 bits of timer. 5-35 Command Language ICE-85B Table 5-10 summarizes the operation of the external synchronization lines SYO and SYI. SYO is used to give hardware control of emulation; commands that enable and disable SYO are discussed under the GO command. SYI is used to control the coIlection of trace data; the commands that enable and disable SY 1 are discussed under Trace commands. The meta-term sync refers to either synchronization line. Refer to Trace Control Factors later in this chapter for details on trace control. Table 5-10. External Synchronization Lines Sync OUT ONLY IN ONLY BOTH IN AND OUT SYO Enabled by ENABLE command. Driven low and held low by ICE when emulation not running. If user pulls SYO low during emulation, emulation continues. Enabled by GO or GR command. When enabled, user must set or hold SYO high for emulation to begin. After emulation begins, user can halt emulation by setting SYO low. When both SYO OUT and SYO IN are enabled, the user starts and stops emulation as described under IN ONLY, but the ICE holds SYO low when emulation is not running. SY1 Enabled by ENABLE command. ICE sets SY1 high when trace is running. Enabled by ENABLE command. Forces trace data collection when high (overrides any halts due to breakpoints). Setting SY1 low does not stop trace; the system is now allowed to monitor breakpoints to halt trace. SY1 OUT and SY1 IN may not be enabled at the same time. SY1 OUT will override SY1 IN if a halt in trace has already occurred. NOTE: Both SYO and SY1 are open-collector circuits. Therefore, they can only be actively driven low; they cannot be actively driven high. When released, pull-up resistors in the ICE circuitry pull the circuits high. Table 5-11 lists several other external signals presented on the ICE-85 Interface cable module. These signals are not controIlable with ICE-85 commands; they cannot be set or dispiayed. Table 5-11. Other External Signals 5-36 Signal Interpretation MATCH 01 Goes low when breakpoint register BRO matches. MATCH 11 Goes low when BR1 matches. EMUL Normally high; goes low when the emulator has control of the user system bus to perform ICE functions. GND Common ground for external signals. ICE-85B Command Language Display Processor and Status Register Commands register-name pair-name flag-name i-bit-name REGISTER status-register Examples: RA RBC CY M5 REGISTER OPCODE register-name Anyone of the tokens RA, RB, RC, RD, RE, RF, RH, or RL representing the 8085 and ICE-85 8-bit registers (see Table 5-5). pair-name Anyone of the tokens RBC, RDE, RHL, SP, or PC representing 8085 and ICE-85 I6-bit register pairs (see Table 5-6). flag-name Anyone of the tokens CY, PY, ACY, Z, or SN representing 8085 I-bit status flags (see Table 5-7). i-bit-name Any of the tokens M5, M6, M7, IE, 17, SID or SOD representing bits in the 8085 interrupt mask (see Table 5-8). REGISTER A command keyword that displays the contents of registers PC, SP, RA, RF, RB, RC, RD, RE, RH, RL, and a byte formed by the interrupt bits given by i-bit-name above. status-register Any of the tokens OPCODE, CAUSE, PPC, PSW, UPPER, LOWER, LIMIT, BUFFERSIZE, TIMER, or HTIMER representing ICE-85 status registers (see Table 5-9). 5-37 Command Language ICE-85B Set Processor Register Command processor-register = contents EXAMPLES: RA=OOH PC= 0800H PC= PC+1 IE=CY RBC = WORD .SAM processor-register The keyword name of any of the writeable 8085 processor registers, as follows: 8-bit registers (see Table 5-5). 16-bit registers (see Table 5-6). Status bits (see Table 5-7). Interrupt bits (see Table 5-8). The assignment operator. contents A numeric-constant or numeric-expression. RESET Hardware Commands RESET I ~ARDWAREI Ilf I Examples: RESET HARDWARE RESET 17 5-38 RESET Command keyword restoring its object to a reset condition. HARDWARE A function keyword restoring ICE-85 hardware to the reset condition that occurs after the initial ICE-85 invocation. 17 A token specifying that the RST 7.5 interrupt line is to be reset to zero (low). ICE-85B Command Language ENABLE/DISABLE TIMEOUT Commands I ENABLE I TIMEOUT DISABLE Examples: ENABLE TIMEOUT DISABLE TIMEOUT ENABLE A command keyword that activates its object as a controlling element in emulation or trace. DISABLE A command keyword that cancels the effect of its object on emulation or trace. TIMEOUT A function keyword that, when enabled, causes ICE-85 to display an error message on the absence of either the 8085 READY signal or the 8085 CLK (clock) signal. 5-39 Command Language ICE-SSB Memory and Port Content Commands The commands in this section give access to the content or current value stored in designated memory locations or input/output ports. The commands discussed in this section are as follows. The purpose of each command is indicated by its title. Command Display Memory and Port Contents Set Memory Contents Set Input/Output Port Contents Discussion Memory Content References A memory content reference has the form: mem-type address The meta-term mem-type means one of the following 'content-of' modifiers for memory locations. BYTE The content of a single memory location. The address following BYTE is treated as a logical address; the physical address whose content is referenced is determined by look-up in the ICE-85 memory map (see Memory and I/O Port Mapping Commands, page 5-16). WORD The content of two adjacent bytes in memory. The most significant byte is located in the high address of the address pair; the least significant byte is stored in the low address of the pair, The address following WORD is treated as a logical address; the ICE-85 memory map is consulted to find the physical address whose content is referenced. IBYTE The content of a single memory location. The address following IBYTE is always treated as a physical address in Intellec SHARED memory; the ICE-85 memory map is not used. IWORD The content of two adjacent bytes in memory. The most significant byte is located in the high address of the address pair; the least significant byte is stored in the low address of the pair. The address following IWORD is always treated as a physical address in Intellec SHARED memory; the ICE-85 memory map is not used. NOTE IBYTE and IWORD allow you to display any location in Intellec SHARED memory, but do not allow you to change the content of any of the reserved locations in Intellec SHARED memory (Monitor, ISIS-II, ICE-85). Non-reserved locations in Intellec SHARED memory can be changed directly by using IBYTE or IWORD. 5-40 ICE-85B Command Language The meta-term address means one of the following types of entries. numeric-constant A single number in any input-radix. ICE-85 treats all numbers modulo 65532 (64K); thus any number represents an address. numeric- expression The forms for numeric expressions are presented in Chapter 4. The result obtained when the expression is evaluated becomes an address modulo 64K. symbolic- reference The ICE-85 symbol table lists all symbols loaded with the test program or defined by the user after program load. Corresponding to each symbol is a number that can be used as an address. statement-numberThe ICE-85 statement number table gives the address of reference the first instruction generated by the statement with the designated number. processor-register The name of one of the 8085 processor registers (refer to Hardware Register commands). The content of the named register becomes the address. status-register The name of one of the ICE-85 status registers (see Hardware Register commands). The content of the named register becomes the address. (mem-type address) A memory content reference with a form such as BYTE (WORD 1000) represents an indirect reference. The content of the address or address-pair inside the parentheses is treated as the address for the mem-typeoutside the parentheses. To display the content of one or more locations in memory, enter the appropriate memory content reference followed by a carriage return. We discuss the ways to refer to a range of addresses later in this section. Here are some examples of display commands that involve single addresses and pairs of addresses, llsing BYTE and WORD. For the following examples, assume these equalities and conditions: .AA = 1000H (Symbolic reference) #56 = 2000H (Statement number reference) Location 1000H contai ns 11 H. Location 1001 H contai ns 22H Location 2000H contains 33H Location 2001 H contains 44H Note that the addresses looOH, loolH, 2000H, and 200lH are logical addresses. We need not consider the physical addresses that actually contain the values shown, since the ICE-85 memory map handles the conversion automatically for BYTE and WORD. The commands are shown as they would be entered. The terminating carriage return is not shown. The content displayed by each command is shown on the next line, as it is displayed by ICE-85. * BYTE 1000H 1000H = 11H ·WORD1000H 1000H = 2211 H 5-41 Command Language 'BYTE .AA 1000H = 11 H *BYTE .AA + 1 1001H = 22H *WORD#56 2000H = 4433H To obtain the content of the bytes or words in a range of addresses, use a reference of the form mem-type partition A partition can be a single address, or one of the following types of constructs. address TO address addressLENGTH number-of-bytes(for BYTE or IBYTE) address LENGTH number-of-words(for WORD or IWORD) The first form of partition uses the keyword TO. The address on the right of the keyword TO must be greater than the one to the left. With BYTE or !BYTE, this form allows you to access the content of each location in the range; the range includes both the first and last address in the partition. With WORD or IWORD, the first address is treated as the low address of the first address pair in the range; subsequent pairs of addresses are accessed until the second address is reached. If the second address is the low address of a pair, the word formed from the content of that address and the next consecutive higher address is accessed; if the second address is not the low address of a pair (that is, if it turns out to be the high address of a pair already accessed in the range), the access halts after the last complete pair has been accessed. Word-length accesses can begin on either an even-numbered or an oddnumbered address. The second and third forms of partition use the keyword LENGTH. The address preceding the keyword LENGTH is the starting address in the range, as with the first form (using TO). The number or expression following the keyword LENGTH gives the number of addresses (when the controlling mem-typeis BYTE or !BYTE), or the number of address pairs (for WORD or IWORD) in the range. Here are two examples, using memory content references to display the contents of a range of addresses and address pairs. The contents shown could represent a section of program code. BYTE 1000H TO 1010H 1000H=67H 43H 3FH 01H 32H OBH 44H 01H 5EH 66H B5H 56H 03H 7BH 67H 39H 1010H=4DH WORD 1000H LENGTH 10H 1000H=4367H 013FH OB32H 0144H 665EH 56B5H 7B03H 3967H 1010H=014DH 5-42 ICE-85B ICE-85B Command Language Setting Memory Contents To assign a new content to a single address or address pair, use a command with the form: mem-type address = new-content The meta-terms mem-type and address represent the types of entries discussed earlier in this section. The meta-term new-content represents one of the following types of entries (for single address or address pairs; setting the content of ranges of address and address pairs will be discussed later on). numeric-constant numeric-expression A single number in any radix. processor-register One of the 8085 processor registers listed in the Hardware Register commands section of this chapter. The content of the named register becomes the new content of the designated address. status-register One of the ICE-85 status registers listed with the Hardware Register commands earlier in this chapter. The content of the named register becomes the new content of the designated address. 'string' A string of alphabetic characters enclosed in single quotes. The ASCII value of each character in the string is treated as a byte value. To include a single quote as a character in the string, enter it as a pair of single quotes (' '). mem-type address This form of new-content allows you to copy a byte or word value from one address or address pair to another. A numeric expression evaluated by ICE-85 to a single number. When a single address (byte) is to be set, ICE-85 treats the new-content as an 8-bit quantity. If new-content has more than eight bits, the least significant eight bits in the quantity are used as the new contents, and the other (higher) bits are lost. If newcontent has fewer than eight bits, the bit values in the quantity are right-justified (placed in the low-order bits in the address), and the remaining (high) bits in the locations are set to zeroes. Here are some examples of setting byte contents. The first line of each example shows the command that sets the new contents; the second line gives a command that produces a display of the contents just set; the third line shows the resulting display. The output radix is assumed to be H (hexadecimal) . • BYTE 1000H = FFH • BYTE 1000H 1000H=FFH • BYTE 1010H = RA + 1 • BYTE 1010H 1010H=F1H 'BYTE 1020H = FF11 H 'BYTE 1020H 1020H=11 H • BYTE 1030H = 1Y 'BYTE 1030H 1030H=01 H 5-43 Command Language ICE-85B "BYTE 1040H "BYTE 1040H 1040H=41H = 'A' "BYTE 1050H = BYTE 1000H "BYTE 1050H 1050H=FFH You can change the radix used to display the contents, using the Set Radix command (see Number Bases and Radix commands earlier in this chapter). When a single address pair (word) is to be set, ICE-85 treats the new-content as a pair of bytes. The least significant byte is loaded into the low address in the pair, and the most significant byte is loaded into the high address in the pair. If new-content has fewer than 16 bits, the bit values present are loaded starting with the low address, and right-justified. The remaining (high) bits in the address pair are set to zeroes. The following examples demonstrate some of the possibilities for setting address pairs. ·WORD1000H ·WORD1000H 1000H=1122H = 1122H ·WORD 1010 = FFH ·WORD1010H 1010H OOFFH = ·WORD 1030H = WORD 1000H "WORD1030H 1030H=1122H The rules given above for numeric and ASCII values also apply when the new- content is of the form memtype. A command of the form BYTE X = BYTE Y copies the content of address Y to the content of address X. A command of the form WORD X = WORD Y copies the content of address Y to location X, and the content of address (Y+l) to location (X+l). A command of the form BYTE X = WORD Y copies the content of address Y to location X; the content of location (X+l) is not changed. A command of the form WORD X = BYTE Y copies the content of address Y to location X; the content of location (X + 1) is set to a byte of zeroes. The commands used to set a range of addresses or address pairs differ in some details. One way to set a range of addresses or address pairs is with a command of the form: mem-type address = list of new-content values With this form, the address on the left of the equals sign gives the starting location (or low address of the starting pair), and the number of,values in the list to the right of the equals sign tells ICE-85 how many consecutive addresses or address pairs to set. Consecutive locations or pairs starting with the one given are changed to the values of the new-contents in the list, in left-to-right order. 5-44 ICE-85B Command Language Here are some examples showing the use of this form of the set memory contents command. 'BYTE1000H=11H, 22H, 33H, 44H, 55H, 66H 'BYTE 1000H LENGTH 6T 1000H=11 H 22H 33H 44H 55H 66H 'WORD2000H = FFFFH, 'AB', WORD1000H 'WORD 2000H LENGTH 4T 2000H=FFFFH 0041 H 0042H 2211 H Note in the last example that ICE-85 treats a string like 'AB' as a series of byte quantities, not as a word made up of the two ASCII values. Each character in the string is a one-byte new-content value. To set a range of addresses or address pairs all to the same new value, use a command Of the form: mem-type partition = new-content The forms of partition are discussed above in this section. All addresses or address pairs in the partition are set to the single new-content. The following examples show some of the possible results with this command form. 'BYTE 1000H TO 1005H = FFH 'BYTE 1000H LENGTH 5H 1000H=FFH FFH FFH FFH FFH 'WORD 2000H LENGTH 6T = AAOOH 'WORD 2000H TO 200AH 2000H=AAOOH AAOOH AAOOH AAOOH AAOOH AAOOH The last form of the set memory contents command sets the contents of each address or address pair in a range (partition) to the corresponding new-content in a list of values. This form is as follows. mem-type partition = list of new-content values This form combines the two forms first discussed above. If the number of addresses or address pairs in the partition is equal to the number of values in the new-content list, the addressed bytes or words are set to the corresponding values in the list, in left-to-right order. If the number of addresses or address pairs in the range is greater than the number of new values in the list, the addresses or address pairs are filled with the values from left-to-right, repeating the values in left-to-right order as necessary to fill all the locations. The maximum number of bytes that can be repeated is 128. With more than 128 bytes, the data is transferred but not repeated, and an error message is displayed. If the number of new values in the list is greater than the number of addresses or address pairs in the partition, the lowest address or address pair in the range receives the first value, and successive addresses or address pairs in the range receive values in left-to-right order until all locations in the range have received values. The excess values are then detected by ICE-85 as an error condition, and an error message is displayed. The excess values are lost. 5-45 Command Language Here are a few examples showing this form of command. * BYTE 1000H TO 1005H = 'ABCDEF' * BYTE 1000H LENGTH 6T 1000H=41 H 42H 43H 44H 45H 46H *WORD 2000H LENGTH 6T = 1122H, 'AB' *WORD 2000H TO 200AH 2000H=1122H 0041 H 0042H 1122H 0041 H 0042H * BYTE 1000H TO 1002H = 11 H, 22H, 33H, FFH (An error message such as EXCESS VALUES is displayed.) * BYTE 1000H LENGTH 4T 1000H=11H 22H 33H 44H In the third example, note that the byte at location lO03H retains the value set in the first example in the group of examples given (44H rather than the FFH given in the command). Port Content References A reference to the content of an input/output port has the form: PORT port-number The keyword PORT is equivalent to the keyword BYTE used for memory contents. The content of a single port is a one-byte value. In ICF-85, port numbers are mapped, but the logical port number is always the same as the physical port number. A port-number is any entry of the types given above for address, except that the range of port numbers is OOH to FFH (OT to 255T). Any reference to a port number outside this range produces an error message. To display the current content of a port, enter the appropriate port content reference, followed by a carriage return. The content is displayed in the prevailing output radix. To set the content of a single port, use a command of the form: PORT port-number = new-content The forms of new-content are as discussed earlier in this section. The value given is treated as a byte quantity. If the value contains fewer than eight bits, it is rightjustified in the low bits of the port and the remaining (high) bits in the port are set to zeroes. If the new-content has more than eight bits, the excess high-order bits in the value are truncated, and the least significant eight bits in the value are used as the content of the port. One and only one port can be set in one command. A range or partition of ports cannot be accessed, either for display or for setting new contents. 5-46 ICE-85B ICE-8SB Command Language Display Memory and Port Contents Commands mem-type partition PORT port-number Examples: BYTE 1000H WORD .AA TO . BB IBYTE 1000H LENGTH 10H IWORD1000H PORT8H mem-type One of the four 'content-of' keywords BYTE, WORD, IBYTE, or IWORD, used with memory addresses. partition PORT port-number One or more contiguous memory locations. The 'content-of' keyword for input/output ports. A numeric constant, numeric expression, or symbolic reference representing a port number (range: DOH - FFH). 5-47 Command Language ICE-85B Set Memory Contents Command mem-type partition = new content [, new-content] Examples: BYTE OBOOH = FFH BYTE 7000H LENGTH 16T = OOH BYTE OBOOH TO OB05H WORD 70FFH = 12H, 34H, 56H, 7BH, 9AH, BCH = PC = PPC + 1 BYTE OBOOH = 'ABCDEF' BYTE OBOOH = IBYTE 4000H WORD 7000H WORD 7000H = WORD 4000H LENGTH 20H BYTE #56 = FAH mem-type One of the four memory 'content-of' modifiers BYTE, WORD, IBYTE, or IWORD. partition One or more contiguous locations in memory. The assignment operator. new-content One of the following types of entries, to be used as the new contents of the BYTE or WORD addresses: numeric-constant numeric-expression processor-register status-register , string mem-type partition PORT port-number 5-48 ICE-85B Command Language Set Input/Output Port Contents Command PORT port-number= new-content Example: PORT8= FFH PORT The 'content-of' modifier for I/O ports. port-number A numeric-constant or numeric-expression in the range OOH to FFH (OT to 255T). new-content One of the following types of entries, to be used as the new contents of the designated port: numeric-constant numeric-expression processor-register status-register , string' PORT port-number mem-type address 5-49 Command Language ICE-858 Symbol Table and Statement-Number Table Commands ICE-85 maintains a symbol table and source program statement number table to allow you to refer to memory addresses and other values by using symbolic references and statement references in the ICE-85 commands. This section gives details on the following commands. Command Display Symbol Table or Statement-number Table DEFINE Symbol Change Symbol REMOVE Symbol Discussion The ICE-85 symbol table receives symbols from two sources; the symbol table associated with the user program can be copied to the ICE-85 symbol table when the program is loaded, and the user can define additional symbols for use during the emulation session. Corresponding to each symbol in the table is a number that you can interpret and use either as an address or as a numeric value (variable or constant). The next few paragraphs discuss the kinds of symbols that can appear in the table, and the interpretation of the corresponding symbol table quantity (address or value). Instruction and statement labels are loaded with the program code. The symbol tah1e gives the address of the instruction corresponding to the label. A program variable is a symbol for a quantity that can have its value changed as a result of an instruction in the program. Program variables are loaded with the program code. The symbol table gives the address where the variable value is stored. A program constant is a symbol for a label set to a constant value (for example, using the assembler directives EQU or SET). Program constants are loaded into the symbol table when the program code is loaded. The symbol table gives the constant value associated with the symbol. A module name is the label of a simple DO block that is not nested in any other block (for PL/M-80), or a label that is the object of a NAME directive (in 8080/8085 assembly language). A module name itself does not have a corresponding address value in the symbol table. However, symbols contained in a module are considered to be 'local' to that module; ICE-85 thus allows you to reference multiple occurrences of the same symbol name in different modules, by using the module name as a modifier in the symbolic reference. The ICE-85 symbol table is organized to preserve any modular structure present in the program. Initially (before any code is loaded), the symbol table consists of one 'no-name' module. Any symbols loaded or defined without a specific module name are stored in the no-name module in the order they were loaded or defined. The noname module is always the first module in the symbol table. Following the no-name module, named modules are stored in the symbol table in the order that the modules were loaded into ICE-85. Symbols local to each named module are stored in the order they appear in the module. 5-50 ICE-85B Command Language In addition to the symbols stored when the program code is loaded, you can use the DEFINE Symbol command to define new symbols for your use during the emulation session. The rules for user-defined symbols are as follows. The name of the new symbol (symbol-name) can be defined with a maximum of 122 characters. However, ICE-85 truncates each symbol-name to the first 31 characters. Thus, to be different, two symbols must be unique in the first 31 characters. The first character in the new symbol-name must be an alphabetic character, or one of the two characters @ or ? The remaining characters after the first can be these characters or numeric digits. You can specify the module that is to contain the new symbol you define. Symbols defined without a module are placed in the no-name module at the head of the table, in the order they were defined. Symbols defined with an existing module name are placed in that module's section of the table; the module named must already exist in the table. The new symbol name cannot duplicate a symbol name already present in the module specified. You can, however, have two or more symbols of the same name in different modules. When you define a new symbol, you also specify the value corresponding to it in the table. You can treat the value you assign as an address or as a numeric value for use other than addressing. The DEFINE Symbol command has the following form. DEFINE symbolic-reference = address/value The forms of symbolic-reference are shown in Table 5-12. The meaning of each form is as follows. Not all forms can be used in a DEFINE Symbol command. A simple symbolic-reference has the form . symbol-name . ICE-85 searches for this form of reference starting with the first symbol in the no-name module. If the symbol is not in the no-name module, ICE-85 searches through the named modules in the order they were loaded, and takes the first occurrence of the symbol in the first (earliest) module that contains it. When you define a symbol without a module, it is placed in the no-name module. The symbolic-reference can include a module-reference. The module reference immediately precedes the symbol name; the module-name is identified by a prefix consisting of a double period ( .. ). When you define a symbol with a module reference, the symbol is added to the symbols under that module. A later reference to a symbol with a modure name restricts the search to that module. A multiple symbolic reference has the form . symbol-name. symbol-name. This form causes ICE-85 to search for the first occurrence of the second symbol-name that follows the first occurrence of the first symbol-name. You cannot define a symbol in terms of this form. This form can be used to identify a symbol that occurs in several procedures that are themselves not modules, since procedure labels are stored as symbols in the table in the order they appear in the program modules. For example, if you have two symbols with the same name, say I1, one declared in procedure ADD and one in procedure SUB, you can guarantee access to the one in ADD by using .ADD.I!. 5-51 Command Language ICE·85B Table 5-12. Symbolic References and Statement References Type of Meta.notatlon Example Pi$play DEFINE Change REMOVE YES YES YES YES YES Reference Symbolic . symbol·name .ABC YES Symbolic .. moclvle.symbol-name .. MAIN.DI;F YES YES, if moavleis already pre. sent in table. Symbolic . symbol-name. symbol-name .XX. YY YES NO YES YES Statement # statement-nvmber #56 YES NO NO NO Statement .. moavle# slmt- nvmber .. MAIN#44 YES NO NO NO The meta-term address/value as used in the DEFINE Symbol command means one of the following types of entries. numeric-constant numeric-expression processor-register status-register mem-type address symbolic-reference A single number in any input-radix. Any of the forms of numeric expressions given in Chapter 4. The name of one of the 8085 processor registers (see Hardware Register commands earlier in this chapter). The content of the named register becomes the address or value corresponding to the symbol. The name of one of the ICE-8$ status registers (see Hardware Register commands)~ The content of the narned n:gister becomes the address or value corresponding to the symbol. A memory content reference using one of the keywords BYTE, WORD, !BYTE, or IWORD. The content of the address following the mem-type becomes the address of value corresponding to the symbol. Any of the three forms of symbolic-reference shown in Table 5-11. The effect of this form is to establish one symbol as a synonym for another symbol; referencing either symbol produces the same corresponding value, Once a symbol has been defined or loaded, any reference to that symbol is equivalent to supplying its corresponding address or value. To display the value from the symbol table corresponding to any symbol, enter the appropriate symbolic reference followed by a carriage return. ICE-85 displays the symbol table value on the next line. To display the entire ICE-85 symbol table. enter the command SYMBOL followed by a carriage return. Symbols are displayed module by module, starting with the no." name module. The address/value corresponding to each symbol is also displayed, You can change the address/value corresponding to an existing symbol by entering a command of the form: symbolic·reference ... address/value 5·52 ICE-8sa Command Langl.lage Any of the three forms of symbolic-reference shown in Table 5-12 can be used to identify the symbol whose value is to be changed. The symbol must already exist as referenced. The forms of address/value are discussed earlier in this section. Any of these forms may be used to change the value of an existing symbol. Where multiple occurrences of the same symbol name exist in the table, the rules for table search given earlier determine which of the several instances of the symbol is to receive the new address/value. To delete one or more symbols from the table, use a command of the form: REMOVE list of symbolic-references The symbolic-references in the list are separated by commas. ICE-85 searches the table for each reference using the search rules given earlier, deleting the first occurrence of each symbol name that fits the type of reference given. Note that deleting a symbol from the ICE-85 symbol table makes that symbol inaccessible to ICE-85, but does not affect the program code. To delete the entire ICE-85 symbol table and the statement number table, enter the command REMOVE SYMBOL. ICE-85 also maintains a statement number table for user programs written in PLlM-80 source code. The statement numbers are assigned by the PLlM-80 compiler. Corresponding to each source statement number in the table is the address of the first instruction generated by that source statement. Table 5-12 shows the forms used to refer to statement numbers in ICE-85. The simplest form is the statement-number prefixed by a number sign (#). A modulereference can precede the statement reference, since the statement number table preserves any modular structure in the program. Thus, two modules compiled separately can have the same statement numbers; the module reference tells ICE-85 which statement number to use. To display the address corresponding to a statement-number, enter the appropriate statement number reference followed by a carriage return. ICE-85 does not allow you to change the address corresponding to any existing statement number, to define any new statement numbers, or to delete (REMOVE) any statement numbers. 5-53 Command Language ICE-85B Display Symbol Table and Statement-Number Table Commands symbolic-reference SYMBOL statement-reference Examples: .ABC .. MAIN.DEF .XX.YY SYMBOL #56 .. MAIN#44 symbolic-reference Any of the forms given in Table 5-12. The address of value corresponding to that symbol is displayed. SYMBOL A command keyword calling for the display of the entire ICE-85 symbol table, module by module. statement-reference Any of the forms shown in Table 5-12. The first instruction generated by the source statement with the number given is displayed. DEFINE Symbol Command DEFINE symbolic-reference = address/value Examples: DEFINE .ABC = 1000H DEFINE .. MAIN.DEF = PC DEFINE .TEMP = .ABC + 2 DEFINE A command keyword that tells ICE-85 to enter the new symbol in the appropriate module table, and assign it the initial value given. symbolic-reference Any of the forms given in Table 5-12. The symbol defined may not duplicate a symbol already in the module given. The assignment operator . address/value One of the following types of entries: numeric-constant numeric-expression processor-register status-register mem-type address sym bolic-reference 5-54 ICE-85B Command Language Change Symbol Command symbolic-reference = address/value Examples: .ABC = 2000H .. MAIN.DEF = AAFFH .TEMP = .ABC + .. MAIN.DEF symbolic-reference Any of the forms shown in Table 5-12. The assignment operator. address/value One of the following types of entries. numeric-constant numeric-expression processor-register status-register mem-type address symbolic-reference REMOVE Symbol Command REMOVE symbolic-reference [, symbolic-reference 1... REMOVE SYMBOL Examples: REMOVE.ABC REMOVE .. MAIN.DEF, .TEMP REMOVE SYM BOL REMOVE A command keyword causing the symbols that follow to be deleted from the ICE-85 symbol table. symbolic-reference Any of the forms shown in Table 5-12. Several symbols can be deleted with one command by entering the symbols to be deleted as a list with the symbolic-references separated by commas. SYMBOL A keyword that (as the object of REMOVE) deletes all symbols and statement numbers for all modules in the symbol table. 5-55 Command Language ICE·85B Channel Group Commands Channel groups are used to control ernulation breakpoints, tra(!e data qualifiers, and trace data display. Some groups are systern~defined; system· defined groups can be displayed and used in commands, but cannot be changed, removed. ordefined. The commands in this section allow you to define groups of your choosing, display system-defined and user-defined groups, and change or delete any user-defined group. in addition, this section defines several meta"lerrns that are also used in commands discussed in other sections. The commands are as follows. Command DEFINE GROUP Display GROUP Change GROUP REMOVE GROUP Discussion ICE-85 channels represent input signals from the 18 user probes and from the address, data, and status lines of the 8085 emulation processor. Table 5·13 shows the interpretation of the lCE·85 channels, and gives the system-defined group names that refer to commonly-used groups of channels. Channel 43 (MTH) is set by ICE-8S, and is displayed as part of trace data. lCE·85 maintains a pseudo-register called the Channel Status Register (CSR), that contains the current value of channels 1 to 42, organized in terms of the system- and user-defined groups. Time slices available to ICE·85 to record the 'current' value of the channels are called frames. Each machine cycle is divided int() two frames: the first frame is that portion of the cycle when lines ADO to AD? represent the low address byte; the second frame is the portion of the cycle when those lines represent a byte Of data. The 'current' values of channels 1 to 42 on each frame are stored for the duration of that frame in the CSR. The 'current' value of MTH (channel 43) is based on a breakpoint match on the previous frame, as discussed below. There are four ICE·85 match-registers, as follows. BRO, BR1: Emulation breakpoint registers. ORO, OR1: Trace qualifier registers. Each of the rnatch~registers contains 43 bits. duplicated as necessary to represent all system· and user"defined groups. Using ICE·85 commands, you can specify a rnatch~value for any channel Or channel group. The match-value of any bit can be 0 (zero), 1 (one), or X (don·t~care). The breakpoint registers are enabled by including them in a GO or OR command; the qualifier registers are always enabled. ICE-85 compares the settings of the bits in the breakpoint and qualifier registers with the state of the CSR, on every frame during real~time emulation. A match on an enabled breakpoint register halts emulation; a match on a qualifier register enables trace data collection. Command Language ICB-85B Table 5-13. User-Probe Channels, 8085 Processor Channels and System-Defined Group Names System ChannelGroup numbers Name UO U1 8085 Pin or Signal Trace Radix Interpretation 1 - 8 User probe channels H 9 - 16 User probe channels H User probe channels H U2 17, 18 DMUX 19 ALE 1 .. ADO to AD7 are data o== ADO to AD7 are low-order address y ADDR 20 - 35 ADO - AD7 A8 - A15 Low-order address lines (DMUX=O) High-order address lines H DATA 20 - 27 ADO - AD7 Data Lines (DMUX=1) H ADDRL 20 - 27 ADO - AD7 Low-order address lines (DMUX==O) H ADDRH 28 - 35 A8 - A15 High-order address lines STS SO S1 Action HALT WRITTEN READ EXECUTED OUTPUT INPUT 36 37 38 101M H 101M S1 0 0 0 0 0 0 1 1 0 so 0 1 0 Mnemonic Mnemonic H W R E 1 0 0 SO 39 40 SOD SID Serial output data line Serial input data line Y RW 41 42 WR RD WRline RDline y MTH 43 MATCHOor MATCH 1 1 = breakpoint register matched in previous frame (trace data only) Y When a breakpoint register (enabled or not) matches the CSR On a given frame, channel MTH of the CSR is set to 1 in the next frame. When trace data is being collected, the CSR is copied to the trace data buffer after each frame except for the first frame of the first instruction. Details on the breakpoint registers is given in the section on Emulation Control commands (page 5-62); qualifier registers are discussed in the section on Trace Control Commands (page 5-75). You can define channel groups in addition to the system-defined groups. A user group can be defined, for example, to obtain a particular ordering of channels and channel groups for display during trace data display or for specifying a matchregister setting. Groups are composed in terms of the channels they contain and the order of the channels from left to right as they are to be displayed or matched. The settings of any channels are not part of the group definition. The DEFINE GROUP command has the following form. DEFINE GROUP group-name= channel·list [IN group-rad;>!] 5-57 ICE-85B Command Language A group-name must begin with an alphabetic character (A to Z), or with a special character (@ or ?), followed by other alphabet characters and/or numerals (0 to 9), up to a total of 31 characters. The group-name in the DEFINE command may not duplicate any names defined earlier, including the system channel group names. Once defined, a channel group-name may not be defined again, unless the groupname has been deleted with a REMOVE GROUP command. Channels in channel-list are specified in two ways. 1. By channel-number. ICE-85 hardware probes are numbered 1 to 18, and 8085 processor channels are numbered 19 through 42. Channel 43 is displayed as part of trace data, but cannot be assigned to a user channel group (Table 5-13). 2. By group-name. The channel-list can include system- or user-defined channel group-names. When a group-name are included in the list (and thus in the group being defined), in the order previously specified for the included group. If a group-name is included in the list, the channels assigned to the included group must not duplicate any other channels in the list. When a group-name is part of the channel-list used to define another group, the channels in the included group-name are assigned to the new group, but the name of the included group is not retained as part of the definition of the new group. Enter the channels and groups in the list in the left-to-right order that you wish them to be displayed. The group-radix given in the (optional) IN-clause tells ICE-85 what number base to use when displaying the group later as part of trace data. The default group-radix is hexadecimal. A group-radix is one of the following characters. Y (binary) Q (octal) T (decimaij H (hexadecimal) In defining (or changing) groups, you should note the following limitations. 1. No group can contain more than 16 channels. If you attempt to assign more than 16 channels to a group, an error message is displayed and no channels are assigned. 2. You can define a maximum of 36 groups, if no group has more than eight channels assigned to it. Groups with more than eight channels count as two groups toward the total of 36. 3. The total of all channels assigned to user-defined groups may not exceed 103. To display the channels assigned to any group-name, enter a command of the following form, followed by a carriage return. GROUP group-name The display obtained by this command gives the group name, an equals sign, the list of channels in left-to-right order as they were assigned, and an IN-clause giving the output-radix specified when the group was last defined or changed. The details of this command are discussed by use of examples. Suppose you have defined a group as follows. DEFINE GROUP PORTA = 10,11,12 5-58 Command Language ICE-8SB Now, to display this group, enter the command: GROUP PORTA (Display:) PORTA=10,11,12 IN H Note that since no group-radix was specified in the DEFINE command, ICE-85 used the default group-radix H (hexadecimal). We can change our group to include a system-defined group. GROUP PORTA = PORTA, DATA IN Y GROUP PORTA (Display:) PORTA=10,11,12,27,26,25,24,23,22,21,20 IN Y Note that the channels in the system-defined group DATA were listed individually in the display, and that the group-radix specified in the Change GROUP command has been applied to our group. To display several groups at once, use a command of the form: GROUP group-list The meta-term group-list means a list of system-defined and user-defined groupnames, separated by commas. To display the channels assigned to all group-names, enter the command GROUP (without a group-list). System-defined groups are displayed first, then user-defined groups in the order they were defined. One more example. Assume group PORTA has channels assigned as in the previous example. DEFINE GROUP LOOKSEE = PORTA,DMUX IN Q GROUP LOOKSEE,PORTA (Display:) LOOKSEE=10,11, 12,27,26,25,24,23,22,21,20,19 IN Q PORTA=10,11,12,27,26,25,24,23,22,21,20 IN Y Note that the group-radix specified for LOOKSEE overrides the group-radix specified for PORTA, without changing the earlier setting defined for PORTA alone. To change the channels assigned to a user-defined group-name, use a command of the form: GROUP group-name = channel-list [IN group-radix] 5-59 Command Language ICE-S5B The meta-terms group-name, channel-list, and group-radix have the meanings described above for the DEFINE GROUP command. To delete any user-defined group, use a command of the form: REMOVE GROUP group-list The entry group-list is a list of one or more group-names separated by commas. All the group-names in the list are removed. The settings of the channels in a deleted group are not affected; particularly, if a group has been used to set a match-register, the register setting is not affected by deleting the group-name. Where the same channel has been assigned to two different group-names, deleting one of the groups does not affect the group that remains. The command REMOVE GROUP (without a channel-list) deletes all user-defined channel group-names. Note that you cannot define, change, Or remove any of the system-defined channel groups. DEFINE GROUP Command DEFINE GROUP group-name == channel-list [IN group-radix] Examples: DEFINE GROUP INPUT$PROBE == 5,3,4,2,18 DEFINE GROUP LOOK$SEE == 17,1,DATA IN Y DEF!f'JE GROUP CHEC~" < >= <= <> Meaning Is Is Is Is Is Is equal to greater than less than greater than or equal to less than or equal to not equal to The relational operator divides the conditional expression into a left side and a right side. The content-reference on the left side of the conditional expression can be anyone of the following. • • • • memory-type address PORT port-name processor-register status-register The term content-reference was chosen to describe the left side of the conditional expression to emphasize that if a symbolic reference is used, it must be preceded by a 'content-of' memory-type (BYTE, WORD, !BYTE, or IWORD). The memory or port address of a content-reference is evaluated only once~ whereas the content of the addressed element is evaluated (examined) each time the condition is tested. The condition is tested after every instruction executed under STEP. A keyword reference such as PC on the left side refers to the contents of the hardware element (the program counter in this case) each time the condition is tested. 5-92 ICE-85B Command Language The right side of the conditional expression can be one of the following. • Content-reference as described above. • Numeric-constant • Numeric-expression The right side can be a reference to any system- or user-defined element, with or without a 'content-of' modifier. If the right side begins with a keyword, the entry must be a content-reference (not an expression). In this case, the condition refers to the current contents of the named element each time the condition is tested. The right side can be a numeric expression. The expression must not begin with a keyword reference. Masked constants cannot be used. The expression is evaluated using the content of any reference as it stands at the time the condition is specified in a Set Condition-Register, SR, or STEP command. The evaluated result is then treated as a constant value; you cannot change the condition by later changing the content of one of the right side references in the original expression. To enable any combination of CRO, CRl, CR2, and/or CR3 as a halt condition, you can use a SR (set STEP-Register) command of the form: SR = halt-step-condition The meta-term haIt-step-condition means anyone of the types of entry shown in Table 5-20. This table gives all the forms of halt conditions as they are to be entered, including the token TILL where applicable. The table contains all valid combinations of the halt factors. Table 5-20. Halt Conditions in the Step Register (SR) Halt Condition FOREVER COUNTn COUNT n TILL CRO COUNT n TILL CRO AND/OR CR1 COUNT n TILL CRO AND/OR CR2 COUNT n TILL CRO AND/OR CR1 AND/OR CR2 COUNT n TILL CRO AND/OR CR3 COUNT n TILL CRO AND/OR CR1 AND/OR CR3 COUNT n TILL CRO AND/OR CR2 AND/OR CR3 COUNT n TILL CRO AND/OR CR1 AND/OR CR2 AND/OR CR3 COUNT n TILL CR1 COUNT n TILL CR1 AND/OR CR2 COUNT n TILL CR1 AND/OR CR3 COUNT n TILL CR1 AND/OR CR2 AND/OR CR3 COUNT n TILL CR2 COUNT n TILL CR2 AND/OR CR3 COUNT n TILL CR3 COUNT n TILL cond-exp COUNT n TILL cond-exp AND/OR cond-exp COUNT n TILL cond-exp AND/OR cond-exp AND/OR cond-exp COUNT n TILL cond-exp AND/OR cond-exp AND/OR cond-exp AND/OR cond-exp Note: STEP-Register COUNT CR3 CR2 CR1 CRO [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ [EJ E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E E' E E E E E E E E E E E = ENABLED; blank = not enabled. [EJ = COUNT n is optional and may be omitted from any of the above halt conditions in the table. In this event COUNT = FOREVER. The SR command can specify one or more conditional expressions to be loaded into the condition registers. The first such expression is loaded into CRO, and the second, third, and fourth expressions (if present) are loaded into CRl, CR2, and CR3, respectively. In a given SR command, you can specify either the CR's to be enabled, or the conditions to be loaded; the two forms cannot be combined in one SR command. Command Language ICE-85B Each condition register holds a single conditional expression. precedence over OR. AND takes The STEP-register includes both the COUNT clause and the TILL clause as halting conditions for single-step emulation. With the SR command, you can change or delete either or both of these clauses. The initial state of the STEP-register is FOREVER. With this setting, the STEP command starts single-stepping, and continues until the user presses the ESC key or performs a hardware reset. The COUNT clause establishes one condition for halting. The number n (following COUNT) is evaluated to a decimal number; single-stepping halts after that number of instructions has been executed, unless some other condition causes an earlier halt. In other words, the COUNT condition is implicitly OR'd with any other conditions given in the command. If STEP is entered with a TILL clause and no COUNT, then COUNT is set to FOREVER. The TILL clause can include up to four condition registers (as previously set) or up to four conditional expressions. Each new TILL clause overrides any previous TILL clauses. If a STEP command is entered without a TILL clause, the conditions previously stored in the STEP-register are used. You cannot mix conditional expressions and condition registers in the same TILL clause. Each of the four condition registers (CRO, CRl, CR2, CR3) can contain a conditional expression. When the state described by the combination of active condition registers becomes true, with AND> OR in precedence, single-step emulation halts after completing any instruction currently being executed. Like the breakpoint registers used to control real-time emulation, each condition register must be both set and enabled to control single-step emulation. The SR and Set Condition-Register commands set the condition registers; the second form of the STEP command (with TILL cond-reg ) enables the condition registers it names; the third form of the STEP cummand (with TILL cond-exp) both sets and enables one or more condition registers. The halt conditions shown in Table 5-20 may also be set through the use of the STEP command. The STEP command causes ICE-85 to emulate your program at a single step or several steps at a time. Additionally, any conditions given in COUNT and TILL clauses are loaded into the STEP register for use by later STEP commands. The operation of the STEP command parallels that of the GO command. The command can specify both a starting address and one or more halting conditions. Under STEP, trace data can be displayed after each instruction; refer to the ENABLE DUMP command for details on this feature of the STEP operation. The STEP command has the general form: STEP [FROM address 1[halt-step-condition 1 When the FROM clause is included, the value of address is loaded into the PC to start the single-step emulation. If the FROM clause is omitted, the current value of PC is used as the starting address. The COUNT clause and any other conditions for halting single-step emulation (FOREVER or TILL clause) constitute the STEP-register. The initial state of the STEP-register is FOREVER. With this setting, the STEP command starts single-stepping, and continues until the user presses the ESC key or performs a hardware reset. 5-94 Command Language ICE-S5B The STEP command can specify up to four condition registers to be enabled. Each condition register holds a single conditional expression, as discussed previously. Another form of the STEP command gives one more more conditional expressions to be loaded into the condition registers. The first such expression is loaded into CRO, and the second, third, and fourth expressions (if present) are loaded into CR I, CR2, and CR3 respectively. Any registers set with this form of the STEP command are also enabled in the SR. For example: STEP FROM .START COUNT 33 TILL .CRT = 55 AND .PRT <.SAM OR WORD.AA > FFFFH AND BYTE. SAVE < E2H In this event, the contents of the condition registers are as follows: CRO: CR1: CR2: CR3: .CRT = 55 . PRT < .SAM WORD.AA > FFFFH BYTE.SAVE < E2H The display STEP-register and display condition-register commands cause the display of the current setting of the STEP register and the designated condition register(s) respectively. The SR and condition register display commands work exactly like the GRand breakpoint register display commands. Suppose you set the STEP-register as follows: SR = COUNT 10 TILL PC=100 OR BYTE 1000 > AB To display what you have done, enter the token SR followed by the carriage return. You get the following display. COUNT 10 TILL CRO OR CR1 To get the full details, you must display CRO and CRI. 'CRO PC=0100H 'CR1 BYTE 1000 > OOABH If you enter the token BR as a display command, both breakpoint register settings are displayed, using the same format as for a single register. By contrast, the condition registers must be displayed singly; the token CR is invalid. You can enable the automatic display of register contents and trace data after each instruction executed under single-step emulation. To enable this facility,. use an ENABLE DUMP command. The form of this command is: partition ENABLE DUMP CALL JUMP RETURN To disable this facility again, enter the command DISABLE DUMP. 5-95 ICE-85B Command Language Under automatic display for single-step emulation, the trace data for the last instruction executed, and the contents of registers RA, RB, RC, RD, RE, RH, RL, RF, PC, and SP are displayed after every single step. ENABLE DUMP turns this facility on; DISABLE DUMP turns it off. The optional entries following ENABLE DUMP are called selectors. As indicated by the braces around them, each of the selectors may be used once in the command, in any order, but none may be used twice. When DUMP is enabled with one or more selectors, the information is displayed only when at least one selector was satisfied by the last instruction (that is, the last instruction was a JUMP, CALL, or RETURN, or the previous PC was between the bounds of partition). Selectors from the previous ENABLE DUMP command are cleared by the next ENABLE DUMP command, and thus are not cumulative from command to command. DISABLE DUMP also clears all selectors. The command tokens ENABLE DUMP or DISABLE DUMP are required. Following ENABLE DUMP, the selectors are optional. Partition is specified in any of three formats, as follows. expression (evaluates to a single address) expression TO expression (range of addresses) expression (the first expression evaluates to the first address in the partitIOn; the second expression gives the number of contiguous address in the partition, including the first address. LENGTH expression Refer to the Memory Contents commands for more details on partition. The CALL selector represents any of the following 8085 instructions. CALL Ccondition PCHL RSTn Call to routine Conditional call Jump Hand L indirect (move Hand L to PC) Restart The JUMP selector represents any of the following 8085 instructions. JMP Jcondition PCHL Jump to address Conditional jump Jump Hand L indirect (move Hand L to PC) The RETURN selector represents any of the following 8085 instructions. RET Rcondition 5-96 Return Conditional return Command Language ICE-85B Set Condition-Register Command condition-register = conditional-expression Examples: CRO = BYTE.CTR > 55 CR1 = PC = 1EDH CR2 = WORD.AA <>FFFFH condition-register One of the four condition registers (CRO, CRl, CR2, or CR3) used to bring about a halt in single-step emulation. The assignment operator. conditionalexpression An expression involving a relational operator , that 'evaluates' to true or false. Single-stepping halts when the conditional expression becomes true. See DISCUSSION for details on forming conditional expressions in this command. 5-97 ICE-85B Command Language SR Command (Set STEP-Register) (1) SR = FOREVER (2) SR = [COUNT expr-10] (3) SR = [COUNT expr-10] Examples: SR= FOREVER SR=COUNT4 SR = COUNT 33 TILL BYTE .CTR > 55 SR = TILL CRO AND CR1 OR CR2 AND CR3 SR = TILL PC=1 EDH OR BYTE.CTR > 55 AND WORD.AA 55 STEP TILL CRO AND CR1 OR CR2 AND CR3 STEP TILL PC = 1EDH OR BYTE.CTR > 55 AND WORD.AA :' \002«.3e. P3 Y CABLE MATCH 1/ MATCH <3/ 4001411 SYNC f SYNC ¢ c J35 J3(, P5 Pb c 400 14 !tJ 8 "' G t; ~ OJ Z Z ~ 0 ~ CJ >~ I P3 =! Pl/P2 USER'S CAblE 4001273 co " ~ • I 110222Q 100t;:'S5 I PI P1Q v PIt T CABLE 40014(04 CABLE 4001410") • P4 TRACE PWA 1~Z24") 10011'11 " -_ _--"'C""',P_ JZ. 16 CDhlTROlLER~S~BLY O-ll\N~~ BuFfER J1 <00 '.., 0"""<00''". '.'OL 15 CHANNEL USER CABU:; 400141D3 10Z~OO 1001;~ m CHANNEL BUFFER ~SS'1 4-0014&00 ®TEiJ~ 400f~4") []IEMEN~ Nmt.~ I. A OUNm1YPERDAStI~a ,?\NA,.,.. = PHASt. INS!. lc-c-c-c-c-o-_O:R:'~:':ONA: l:Uc-c-c c-c-c-c- c -c-c-c- c -c-c-c- ,c-c-c-c- c c-c-c-c-.-c-c-c-c-c-c-~!i~~~I!~:l~~::::~i!~~~~~t;;:;;:;:;~~~l:::::1i~ UNL£SSOTH~ISE$PECIFIEl), I. OlMEHSIOfIS AIIf' IN 1NCHES. 2; BREAllAU. SHAAf>EDGf5. 3,tx1NOT5G'U.ED!lAWl~ __ B 7 6 5 Interconm~ct If, 106 1102105 NEXfMSY 4 Diagram (Sheet 1 of 2) (£~ Ie xxx ± .QIO USEDl:* SUIII'AC£fIN1SHT 1 A 7 5 6 DVI'-L I'-UXILlI'-R ~ COWNEC10R COJTROU_l.R pz. PIt-..! T TRACE. TRACE: P'2. Pil 4 PI}.J 3 1102424 v CI'-eLE CAOLE Ie CI--\AN BUFF J2 TR,t..CE. "'lIZ P\l...l c.c it SEt: \ SHi:ET I P4 D D c c ~~~J£-~~ S( I~EM"'T\C 1JO. G"" SU\~MA.i\C I-JO. 2001'297 162379 5CI-Il,.MA.."\ Ie t-.lO. Ifo"2.389 ME.MR-B/ 3~ GtJO LD MOD 8 ,,3 ", AS r---- g~~.-- ~~~; 3'9 LD 'oJI-OD AD Ao 41 A.~ ______ _ !; §-- DA5 - DAG 1)A7 -- ""I - D",- "" D"" ""'- 49 <;0 8 51G\-.lAl \-.lAME CRO':oSRtFERE.,Kt:.S D~":,0 ...." 4i 1)M -f-.-- --- DA.o DM- DA.7 " ..PJO ,\'1 r-- F,[jARD lEST. HJSTAL_cD. W'-1(t\! /l2L(1/II 2) «dMi'(,- P! 0[, I~r"}Tf.:..LED. ,e 12 I\~ 'AelL" (\4.11"'0, " 74L":>'3bBI PosrllOIJ"_,. ARt .-QIUF, ... B¢"'/c>, -2\t>% ALL C,,",PACriAN(E VALUES AR.c IN MICROFAPADS I ALL R't.?I?"TANC.E VALUES ARc IN OHNI'S; :l:.~yo , \ /4 W. NOIES-· UNLESS m~ERVJ\SE S\>'E.(.\I"I£'i) ALL CAPAC 11OR.s />..(;6 \ 74lS3~B AF\. 3 7432- A::'A 174504 -A~4 A ffiiltB . 002 16('c48 001 74S~4 A?'Jtj 1 P4- A4'" 1 Yl 1K RES.PKG 1K AES.P TYPE SPARE 8 I 7 I 6 I , e- 74S~2 1'l.KRlS.PKG 1iZKAES.f'K6 _. ,.,. 10 E p, L P}tJ #- 15 A("R.[A.O'll' u's£o. Sl-lORTi/ll." Pl.-we. WI Q: (MOil£;' ~OR Tf R4;OV I"';:: If.,IC,TALl "12114" JUMPER FL U (~ 12.\ L4 C.\-itPS r211'3 3 Z " 14 B 5 B , 14 7 7 5 A14,"" 7 A13 14 7 74 3 74S 4 A4475 14 ,. 7 7 74S 2 A48 24 1 7 '" 74 745 ,23384(., 8 " 03 C 25 25 "B B 14 '2 B2ZB A.3 B ,. ,.,. R 14 6224 Ase 5'1 7273 ... ' " 2 B21~ ~33 ~ .'. 15 24 5 5 2 821(0 52-1e A7B, 7~ ,. " B 12 B A " ~~ \1£.. _ GOIOU"() 31 1 34 4 1 3 A)51(, 1121261'<:>1 A 71 I2C ~ti ,,~ £113 4 2125 271w A.7 --___ "t>¢ pO"'!~v p,~ OEV,CE .... f~~~~ - GROUND LOCATOR CHART POWER Rif<:P'~C( D£~":, rOR 92 A54 A47 ,, """'"' ~--'-- ~~ __ ~,--- 3~_ '?J':I ---37 '" - ..n ~ _'_K'- ECG 14·Q4:',,? -- - fTI""20 7 tz:~ ~-l:2 - ----- 9 ~ 22121 A .. ~~ \I r'fj 1ft'" -oY ~ U'III$II.lftS P£SCfIIIP11ON "" D'1 P3 P<1 R2:. , (02.39\ 12 V g,- T~5v t fit, RZ. 24¢ -+- . I _~1 +1>¢%-l$Z I 4 D . (.1':..010 . 5 , 2~V - I 6 RP5 1 RPS RP3 1 R3, RP< RPl REF. DES. GATES 5 1 C3' 1 A7' OTY I.IlIM£NSIONSAREIHIHCHES. 2.8JlEIdI,ouSIIAAI'EOGES. Rl2. 1 DOIIOT5eAL£DAAWlHQ .=~ AHGLESz2· All NOT USED LAST USED DESIGNATOR REF. f ,~, QlJAHTITYPERCIoI.SHM). 1622.4B 1([ 8S/, 51 u.~ U,2248 I(E 8':>1 J(IQ(",.(IHl NEXf',usy 4 IIS£DOfI PARTS LIST DI!N~:~"-d '"' ~ .,. ..n ""'_J>.- , /. Y ~ ilteI· SAHT~ Cl.lJtA 5CHEf/lI\IIC CONiROlleR DI14I'itn~~ 1",2391 2 A Di58OWU!SAI/l. CAUr.'*'!i! TinE ~ sIiRFACEF'NISHl :I ll(SCRIP1l~ ""RT NUMB£R SIGNATURE UNL£SSOTHERWISl$P£CI'IEO· ~~1 I ji1 ~, 1 () . tT1 00 Schematic Controller (Sheet 1 of 9) v. t:l:l 8 11i~·1 I 7 I I 6 + 5 I 4 I 1'101:1 ~ I~ J D 14 BlBl GIDINT80 I/>JT \~ .4.48 ~:Il~~ Voo D'OUJ 17. Afl) '25 fiOlD A' BelElelA "" A4 YIIBMI·n. C~CB 1~ i0PF I!;) 14 C ~ XTr>.L'Z. S S,(NC g -HZ.v 11>1 " n ,n '''' '" "" voo ,,~~ -+ ~lAl 7 RESIN / l2~n..l RfSET , 1ZJ7 , "'" "''' 4", ',-, m ,< ~'SET "" "" W, 3") ~'4 ~. 8 <:>jlA1 1121 74531 ~ illS 5 ADENB¢! Bl!BZ XACK-BUF/ q ,40.0 B 10 MS WEI HLDA.. '2.1 READY 4 '20 K::EADY 05C 01 07 Do 04 05 ~ 5T5i~ ~ 7 DCD - m ~--WI. W'A ~~ '''' ") 17 " ,'11" " '" 2'2 , 7 3 4 5 CD 74510.:1 ,~ ?, +SV CD "-f:: 12~G>J ~_(,,,C 74LS3'" II "'4 RPS 1"2 K 4 0" 7 ~ 7 '" '" HLDA. WR "~'2 '" 4 5 " 3 1 4 '2 14LS3iCl S ~~~ [)(i, ST5T~ ~ A,."1 .0../5 A,q C 31('0, e.-LOB 31 eO,4ZCB ,8Loe 31CB I 4ZC.8,SZOB AICll 32.se, BlOB, 42C5 All 3IDe,BZD8,4LA5 A.11_ ~1.De,4'Z.A8.aZ-DB .c:..l~ 3Z0B ,04ZA8,S'LDEl 0.14 ':HO'el ,,,\ZA6,8Z.05 8 '" D1 Ol ru- II ") D:, If'" 18 D"CD 7 0"7 <4 MEME: 7W MEMW I/DIN A.4 41Be,SIC8,31.c.B,7l.Ce /Io.,=; 4lD5 J BLC8,3Z.C.B,flLB '3 DBS floe ·n~e,8ZCa,3z.c.5,"ll.C8 ~ ~31L'OJ8ZC8 ~ ~IN D1 B'Z'ZB DB~ D~ F\fJJ3 OM D7 ". A? ~~'7 "'.", " ~~ I- A.? 41~~,8Z.CB,3I.c.e,7LCE> P2 ~ 7 D51Z1 EUSHJ A."':J TI~ ~ IM1" D4 OS -§J 4' '" 7 21,,14 ~ D'" ? 'lDY\N QI'lTTL lNiE ?~ 4LS3(ol II "'" "'' ' 6774 ~'"A'Z ~ 1 '4 D P" ,,,,---'" I~ ",CD ~~ "7 34 3? ~T.b.Ll "lA-N.K ~, "\Zl:!le, e.z.es, 3l.CtJ, 7 LC5 1 ~ M~ '" '4~'3 ">7 ~" A.0 4lee, 82eB, 3Z-CB, 7l-CB ., 17 3' '''' 1\4,,) '2 '" "" ~. i450 27 ,~ ?WREBl! 3"ZD5 , 4 ,~ ::r nAB Cv 74lS%7 7 A77 3 2 "., .,'" '"2 ~EVISIOllS DESCRIPTION +'='v --: "CD -~ 1<0'£30) 1 ZONE ""' '15 "1;tA'D ~7J--,o.,,'Z'2:0 ~,~ ~ V5B ""0 3404 '3 '::I. ""lAB I- , ¢Z11L SlA.B A A - ~1000E14 -~ ISSUED 8 1 7 1 6 I 5 f 4 Schematic Controller (Sheet 2 of 9) I 3 I I-~ 1 If! 1b23" ~ ~ I 1 I 1 3 I 2 '" I '"' "" 1-1-1- o - 1-- ", 41A.1 14 +sv '" .z I(J) R:~Io.'\CS/ lel'Zl c ZlDJ 2101 2101 22DI 21..C2 21C'2 21.C'Z 21t7. 21['1. 21Cl. 2lCZ PGMPD A. Ao, .7 AB "'" "" D.O DI 0'1 8 Z'Z.B'2. B 0; D4 2."Z.B(!, SLA2.. - D5 {DO, D7 4i- 002 05'2 fC''''''--+++-<>-----+>-j 11. (D4-Y) ...." DO; DMf'-"---++*--------+>-j I; (D"-Y) 1"0 CHIP CNTLR, «2 --+t_-----~------_r------+_-++t_--------~~+rt_r~~~~+--------~~+--------~~+~,11~44 DI3I~lJ~ t~ ---~~---~~----~-----+---~~---------~~~~~~-*+--------~~--------~~~T44~D10 ~7~ S 000 .....-+-sv----------.....---------~t-L2-7~g~, --~++-------+>------+------+-----*-------------~H+-HH-+~ '''~B '-----',;;0.-1 "'" 0111 r 7i-----++H_r+H1"'Mr.., DB0 OBI " ~ i.!OU (O D7 G"1 ============~ti:::;:;~ ¢I ~ SELTMI\/ ___________________________________~~~l rri~ f) A +5v 6zel ~21 ~ L 5C;K ~ . ==========i§~'~Kl~ I CSTART fOZA1. C5TOP / .0ZTn 2.1"-1 "1A4GoJl 4 8 I 7 " •.<1£11l '(J)I(l)(J) ell.o q A4 9 8 ;. tt' A ¢2 '-'--'-' "''=' ¢0~"" CU::.0 L-- 1A' 74saHZI 6 I 5 4 I Schematic Controller (Sheet 3 of 9) 3 I 2 I 1 ! 8 7 I 6 I 5 4 I 3 I 2 1 D - - c c B B - - A A JA 8 I 7 I 6 I 5 4 Schematic Controller (Sheet 4 of 9) I 3 T 2 I 7 2 3 4 5 6 D D . I, ~~-~~~~~f-~~~~~~~-~~~-~~~~~WD 74532. '~~~\~ ~~ 1 +===~I.~A~4~4JB~+~~~~~~~~~~--~~~~-0f1~~I'lnWE.-'O/ 4 = . z~~ ~ S 7457<1.- ~ elK c 4ZA8 ~ c ~fo"- +sv 'e> lCI4 17. D QP PR. 5,",,~ [ I CLK 14:'14 lep~ ~42)4 3 5 ~ C.Llc. 4 L-~~~-r,,", A'Z.B17 QP-"~-t+~~-' A17 101::', B B I::' '" 74S11lZl 4ZDI INOQ~I -~~--~~~--~~-~~~-----~~~~-~~-~~~~~~~~ I 74500 ! ~"'-'~'-~-' 4"1CI ICDSTe 2/ A ..,.11>1 lDIE.)(STP~ GA CLK 8 A "37490'2 p, 1 Ml 1 C@ 7 6 5 4 Schematic Controller (Sheet 5 of 9) 3 2 4 5 6 7 3 14 LS3iDB AI4 7 QLY( KC '=>IC'Z I "4 D ~ " ~A.D\lSTEP/ 7B ~ 42CI .:jz 01 ~I'- "'/ eOST ~ lE.MR HAil '2 t..44 ~ "' 1 +5V .~ IK P4 ANDCP-Y 74 14504 "74 '" ~e; "II 00 <:" DI D7 07 I Do 04 04 01 DI WI ~ 14 D'=> OCO OS oCt> B IS PI(: 14 D~ 34!l14 ALB OS 05 0(0 0(0 "P3 I 101\.5 ~ ~4i}4 "71 ~D74S14Q " PR II L - - - eLK. I~ A..41 Q ~'" A.II P4 10 TIMDLY OR.':lTPTI(:/ T IC" IK. 1<'7,. +5V '3 5 u," IS Q b '::LR I X ~ C.L\( +5V~J £15 ~~ 4 1. 1450'2 ~ ~40 ~.CD~ 14£il0 \ II? A II D7 iLe>1 4 ' 5 Dr:]J 2Ze,1 "0kd A'ZeJl~ " ~ 'l,,--V-- +5V R4 IK ::. I 2Z: I~ ~.~~ +5V--'VA 2 e,l ~ 4 PR 5 ~ C?4Sr4~ Ci145CbB PZ I:t;A'd 5 2.-=1 ~CLK Q r:., AS7 +~v ~LR l3i~ P4 5 C:> A:'~..o;~04 , c 5TOPCT-B{ 3~ STQPTRj :'.c.,K "" 14512HZI ~e 10>' r:. 74S00 1450'13 1 ~G 4 AID? 14S~~ " I 'Z STope TI SLA.E:. "5~ B ~S0~ II Q fv'T~-BI t?l IL~~ '-'-=- D "2t.i14 "~7 P2 25 ",' I? O~~,,'1'-: 5 0:.') 2151 cr i4SaZ ~Iq; ~~~eQ~r------ eLi<' 74LS74 I 14S.YZ vn , ~D p~4Q~ eLK A.31 II 74L574 ~D'4S14Q~ ~ ~~ 1'1. D PIC Q bll~ ~ 13 INC.M01/ EI-JSIDP '" ~~~14Q.r '~ 07 SIe>1 +SV ~04 Vo4Z "'IZ 51 (l, 2 R3c ,- ~'" 4 "~ 03 D4 ~ ",0 Q~ 03~ Ie D3 D2 Q~ 5.(oK I W tK/ q CcR +5V ~ 10 Al" Q A51 z 1'2 ,r-- r-" Z~~14 "' L, 74508 'Sl.CI AM PR ' I 74L53::.:o7 7 l(,ti "M~C P7 c 145Q(]J '3 II P4 ~ MWl 47 5 ("K 11 14SYZ P2 4 .'" 7 R.34 D MU1-'i/ 47 A14~ +5V P4 P4 £10 S P< ~STD PPROC-yj -A..~c.. B =/ STQPP T 52"" 10 C 5"TOP/ @ IC.LGDF/ ?1.B ISELLM/72 A SZ-Dl 8 w EF/ 7 6 5 4 Schematic Controller (Sheet 6 of 9) 3 2 A 8 I 7 1 6 + 5 1 I 4 I 3 I 0 f'O 3 I lSELLMI 2Z DI ., r~ '> " '" A"-xl AIZ-X A\:"-X AI4-)( I S " 14 l'.:l '" 2E1 10 35 4Y I,? 4e. ~ ., ,. '> 14 A" I? ." 21C.1 {A..q +5V A1S-X IO-X ~" 5. -4 'lIZ€;. ~ ~ ~ '0 (D A.1'7 " I'Z 1'3 6101 A.,DRC I 8101 ~DI(.D/ 8LO'2. A.DeEI B2D'Z I-- C 3Y 4Y cs. 4 A.D~F/ 7 "l ADR~/ 12 DII>J WE c'Oq .Jdo c:z.mPF ., 30 (D~' 7 A4 AI5 -fill V, AS AID 8 PI ~ iJ<1 3 v "" "" 6101 /4\.-53(..8 A,"Co 4 ",,' ., '1!7S +- A..OR.A.! 81D2 , MZ, BID2 A.OR.e:,1 8101 10)' '" o. ADR..I(2)/ AD~II/ AOR..I'Z./ - AO~I3I/ "7 "fO A" CS ~ 3A. A1 :~ Ie, '> "ri- A'" :± * "'" 7Y 15 14 I ~ A'O Ao, '"iT "7 - ,A ~~ A% ~ II{ 14 13 45 ~ DIN IA " '" '" ," l457'35 I, ----4- AI EO OM"" / 97D'5 W"lC.OMA./ 'HDB DOUT DOUT -, 17 ~ ~ -!+ 6UF'o.OVlIO/ Sr B'B A 4113 ~II~~~ ~ AI~-X ,o.,DeElI 4" ~ 2 15 A1G:,-)( 4Y 7 7 8 A.8-X A?J-X A.lO-X ?" 4 97.05 IS 5.C,K DO, 3Y 113 25 A-':J IODMA, -L ~I; 03 04 Rig 2151 2Y 14 " 01 ,y IA 'A " '" 4"7.qS2SEl " 0:0 04 ~ 5 A% ~ 8 ,~. D CS I'r'~ ZA "" HB= tt 10 '" . ",5 " "" f---- C 41" WE DI D1 03 D4 '0 o.:'~ "A 14 "A 2Y 4A 14SIS7 3 15,6.,7 3Y A.I A? P3 A ., '"' I ~ ~ SEE. SHE£ T 1 +'>V DI Del WMAP/ IOlAI I,mi 1 R(VJSIONS DlESCRIPT,OI'< D2 zlBI 4Ze>1 I 2 ,o"OENWI 91.LI t1t ~S~;I~rRAMNG~. SHI'ET7 0, 162391 I 7 I 6 I 5 t 4 Schematic Controller (Sheet 7 of 9) I 3 1 2 I 1 0- Jii I 8 .1 - 7 I 6 I 5 4 I 3 I I 41.A.1 lH~I~ 2.1.01 A.\4 Z2.1!:I1 /It..1~ 21.CI ""10 o 2.'Z.C.1 '2l.CI A~ 2Z:CI 2l.CI At A4 A.D') - c c B B - - A A 8 I 7 I 6 I 5 4 Schematic Controller (Sheet 8 of 9) I 3 I 2 I 1 ,I I 8 C • 5 I 4 OVR.Q. IE~I52.lq 1(" r--- qlA53 AID4 to 74'5m5 7"[DI IODMA 77.."" 77..P-..1 WR.DMto..! .,j,l~ 6 i Rn - '27£1 C74 eT '220Pt= r cC':L\(A. BP'O~ TORe P.@.- XSTR IS "'"':> R.5T~ r \~ 7:~S~,~ '---TI ~ r..~B I 12 r..":i0 ~DOZ 'OCLK mo r-----i- ~ DOO 4 3 I r% ~ "74 I~ 14 l1.£ 1'0 rsne. om ~ 5 S ~ ~ P..59 DOl 0&1 D" 001 DEI'2. D12 DO~ DB':> Dl~ A.1:!J ::Tr I '''' I 4 " PI?J'5'Q "3(" R'" PI +5V 10 I - I<:'ZB '27.121 '''' t ,e, C"z~~ 'Z20P~ ~ 1 11 CL~SH eci:,'2 100 IQ) 45 31 10rlR IOEe. IORR lOwe. MI1:DC BCLK nllT tJIWTC BlJ'.>V DLYADJ BEE ("5T5 ~DD ASI 82\'0 r~m ,,,,,,," Al5 25 IOcr I DAI7-X/ C 71D~ ,01. Be. 02 ("0 DA.l~! f+- DA.TI'/ ~ 12 OA.i'Z ! ~ DAT4/ OATS! DA.T&,/ DA.Tl/ DAT~! .,., I I~ B~EQ.. ~ ~ go 74S37 B OA.TI/ pP OAI2/ ~ ~ DAT~/ P;,I AB DAI4/ OA1'S! UATG./ UAll/ ~ 5RE&I"'l/ BLAB "DEIJ " '" A.DEN'B0/ A!D!D 14 AMY'~ 15 13 ,,-'" ,4L"::;3,ibB c.K 21~B/B2D~ T A { 04 05 DlD ~~St)lir~DRA~NGNO 0, 8 Dt>.lU,-X/ e- ",,("oe. ",.n,,- D"'''T4-X/ ADEt-J'N/ ~2 '2 A,15 ~. ~22 BPEtJ BPRO - DA.T5-X/ ~ 10 ~i e KOY ~ ~~~ 42C.l IOVIW 211>1 ?~ " 21,b..1 MEMI2! ,-rAI' IAEM'I\l/ 2.l.D2 'if< ::d"K ~ ~ClK./ I~ A ~ DAT?:J-X! ~ ~ ,,, -xl 17 2") RI8 B D,to..TI D"T7 - xl ~ OLR !l. ..17 I(l) ~.CDK 17. D PI::: Q II 74574 M~DC./ 2S 0&1 II 000 O!" J0 Ie, 74504 IORe M'NTC. ~ R25 ---. '"~ ,e, ~ ~ g~:; DB'Z tE"'1J~ 1432 lel - -'"' '" SEE SHEET I ~ D&0 010 ~ ~~t' 1'3 ~DI!2! 1'3 ~ DO"'!>De~ ~DI" 100 Daz DB'Z 10 ~;"~ Del ~Dli I~ '!>'DEM B'ZC.EJ / 1-' c" ''55 JeZZeD ~DOI II 74504 IZ II DB'Z ~I 012 14500 8219 lNIT '~.~ " fTI< BPl -\w It.JTA 15 SllJlT/ ~ OIl ~ IOWC~ WI''/IJTC &EQ. 1OWC '20 s'---.....=:- DOl DI":l\ XCy VIR RD DlYto.,DJ 7~ PI 5U5Y/l!lJBlA.1 BeE! ~ x.c~ 7 10M mm. . . I·..; 81P-1 '2~ 1 DESCRIPTIO!< ~ lowel '3 7 -232 ,l.35-42.45-50 /154 -&'1 ,,"'H.':I PI.,., POWE~ GROU"O J!01A t.r:.7'"1C ~ C GROUND LOCATOR CHART R;:'~~o~CE D($'c.. .. dOF>. Ii 2115 2115 ." ,.,.,.'" 14 -, ,4,. 7 14 7 14 ,. ,.,.,. • ,. B B e t B B ~ io 1'0 B B NCTE3: Ii",LESS OTI-1ERV'II:lE SPECIFIED - I ALL 2. 'LL C,c..Pt.(.ITOR VAL UES ARE IN MICROFARADS. ,SWAR'C '::tATEC) \"eBL" A"LREp.,D'< USED I-- PESISTOk VALUES ARE. IN OHMS) 1j4WI 5%. "'i. . . 0 74I A 7 ASZ I 74 A34 A32 A7 7432. .* Z 2 1 " 2 A ~"O4 74 r:!~i'~-' ':'e01 161il!lll-07 7450474504 z• -" 8 I 7 I 6 QUNffiTYPOIWSHND. IINU$S Ql}1ERW1$ESI'EOFlEl), >25 , , .P4 1 C84 1 '"' 2 '0/0 444 1143 ~~PK 11;:;-1' '~r Hf'( ':::' 1 ", 14soe '07 '" ~"'rAI(E " GMt-~S 5 '~n Jll P2 Re5 J1-" I.DIMENSlQNSA/lEIICIJOCtI($. L~~I ~~ JIQf ReF DESIGNATOR f ICE I ICE I IC' ICE \I!o~a ~ ,t.$'",fto ~ ~"-it> ,~ ~ 4 a._ A/tGlU",2" I IC' NEXl"ASSV SI M PAATSUST Mtt 100 NOT SCALEORAWING. :l.IIIfAIIALl.S_EDGES. .20 - -- _ _ AYE. Del" ~ ::3CHEMATIC) BOARD DI14 C¢~Stl1lllG.tI)· 1G:,Z37'} ~""" I A ""''''''' TRA.CE ~ ~.= SI,IIIFACEflMISIiT 3 ~~ PART NUMRJI :1 ~~ I 1 j'A 1 ~IJ :;;c o o .... o ::s o o o (Jl ::r' 8 Schematic, Trace Board (Sheet 1 of 6) a n° '" I 8 7 I I 6 I 4 5 J I /1/ DWGNO_ 1(;.2379 $H2 HZ: REliI$lONS SEE SHEET 1 D D - - c c bl08 C4\A 1b1De L4ZA 01(:13 C?/l A "lee C.~A illC8 C.?0A r..lCB C4I?JA ftJ"1t.6 wZC.5 C.~~A A4 b:t,6"B ---~==============~=t~t===t===========t=========~===========t======~---r----~t-------------------------------~=========A~ ~~N5 A.G> wrA.B - C~4A "lee. C31;)"'- 8 .. bltB C.3CbA 4lCI C.Z'::>A 4-'lCI C.~I2IA 4i.'C t C'?I A. 4lCI C32.b.. 42:CI 4ZC.1 elSA C2G::l.o. 4lCI 41;CI C77A czeA B 3 TSTL/~------~--------, ::!: P'Z J0(Z>l r'~ 3 14 15 I ~D? !\?A'l 06.1 WlJ C79 ~D? '3101P-. D7 "5 I -,-DI CS 01 07. D'3 04 \\IE: 1314 15 t A.~ A.1. AI-A.(J ~ ~ l!o 14 15 I WE A"'Jf>..l AI A.0 WE I~ I~ 15 I A?J 1>..'2 AJ A,0 3 WE 3101A.. ----'.f 311ZliA.. A'05 A~4 01 O"Z 0"3 04 DI 07. 03 ea 0\ 13 14 Il".:> I A.? Al AI A0 02 O~ 04 0 \ 01 O'? 04 3tDB SlOB 3i!CB 3lCB A I • I 7 I 6 I 5 4 I Schematic, Trace Board (Sheet 2 of 6) J I 2 I A 5 6 7 8 4 3 4iuo,5rDB,wlDe>,l'lD5 41 DB, 51. DB I i01 OB,21D5 41 DB, 5105 Zief MH '2.1 RP7 IK C D 4'2D6,51.DB , 01D5,2lDB D II Ill! l1.CI "'~ 2rf>,1 MH I'L MHf>..\ t " -+?v 3 J rei D5,ZlDB A~M 4: 55,5'255,<01[:)5 A"':IM 4t'O'i':>,51.e>~10iE:>'t':l e~ IK ~14:;;141Z) 4 54 1>..16 c " I P2 Ui'-" Di 01 CD I~ O~ O':J ~ -~0404N - 2 07 07 0"< \\II nc.1 ~O4 ~:rl leo t5VR.PCt:.. IK "1 77 WE.-B/ \7 lEIJ'NE/ "7 D 0 AID 0 "'5 0 A4 ~:tCI 10 't..C I Iorel &.-1(1 ~II 14LS.z,2.. """" LD eTl B ') I B ~:774L-;:'~2 3 ~I I 110 ~ 741...~3Z- ~w I JI, r-.. " i~m +'?" I 030 ~p;; <"'LiE7 1"- lK. r~51 5r5~ A0'" 4 AIM 4'1'0£3 ,511:;'0 I h 't!'?''O A'LM 4rBB , S1'OB 1 f,lBB A3M 4'tBB j 5'tBB,b't-e,.e 1AlE.'1/ WEI/ 4rAB +1 BEl iOrA.'O J 01.D~ I 5r~'Cl 8 IK t5V A A 8 7 6 5 4 Schematic, Trace Board (Sheet 3 of 6) 3 2 C'l5C Clft>C I ,':H09 3:l-D~ L"'--Lf-J L"___L4 ...JII 2 3 C11C. tl Be. JI(Zl '25 113 Cl"JC C30C. t31C C31.C. 7 5 lIZ! c:l t.l~C. 7m ctlZl(. Tl OM I OM" ,,~,,~'" 1/1 ZB 0 .s~s 2W PZ 12 ~ ""1 I SEE SHEET 1 ('lie C'Z7.C CBe (1AC. 3t.D~ ~0 14 32. JI0 D f PZ 21432 EI 22" 20 :I I A.91 4'45118 ~G,~ ~ ~~ 0:.1D7 ("nL ewe. DM" OM Z 31:D::' eLK 4 5 6 7 8 II ? , (i, ~ 4 _ A'l~? C'l 07 /1,,1 51 74.l,S'Z':::IB elK LDM 00 _ _ _ _ _f-7,.4"',,;.,.¢""8+.-"'eic'jWS R.l QA. E4 ~ 15 3'111 T I ":J CI '3 7 01 Ae QB 14 Q. C Q. D '2 I ':. CD ~ 1>,'2 B7 C'2 D'2 AI 74l~'l.,:)'O 4 51 A0 '3 CI I ~I~~ DI ~ II R'lO, 3316 ~ Q.A. Cl B QC. Qo \~ _ _ IZ_ _-+I_S+I_4_f-'_'_+"_ _ _ _ _ _ _ _-" '2 I 5 ~ ?!I ~ 4 ~'l c'Z D'2 1>..2 eLK />..1 51 C.I 74L;''Z':lB A5 7 DI I '2 "'7 I ~'l 5 ~ CD C1 D'I 1>,1 74L::)?95 A.~ ~ 4 BI CI 1 DI ,..:;A llK CLle? / 01 DB CLleJ / SlOB I 10 ws ,--"Qr'~_Q:;"7::-_-"Gl'TC'c;-------"GlTO~_ _Q"'Tc',,-------,Q"-"'i"7---,Qo:;C=c,----,ao;D~ IS 14 I) I'Z I':;> 14 L'~'r-,,-'''-Z-~__r------------- C24A. C23A. C2Z,; C21 A O?fJA C.19,e... elSA 0'7 c CSI/ rillP? CS1/ ~ 15 I/; OUJ C:=, n-D'2 (H\~ 3:t D'2 IS 15 10 DUJ CS 15 I DW CS (HZI CH2.Z CHZ.3 0-12.4- 111S 111S 'ZII~ "41 ,,,''ZIIS :> LIIS "(;,1 (H2P; IS I l'tDG:> ZiDc.. HOeD ei D':> el7A no=:. c32A. l't.55 C31A C30A. c29A n~~ el eB 2'1: 55 CLS" Z:t:Be> C.7.7A. Zt 'OB C26;." Z'rB'O c. 25 A. 'l'l"e:.'B CSI / 5tCB!~>KB C':>'Z/ StCB,"lCB IS I DW CS DIIJ CS 16 DIIJ C.s 2:rDCo 2'tDG::> 210(0 C +- 3tC2 3-lC'l. 3'i-CZ B LII'=' A.f.o2J :H-C'2 31: EJ'Z "41 ,,"-" B 3r~7 3:c. ~Z 3'l:5'l 74L~3G.7 5l5\ A.£J2'l-AE:9 0"'tCB ~p,AS1 3 I - A Schematic, Trace Board (Sheet 4 of 6) f- D" rOrel u.c "HI 0" DM' OP tOrC.1 "~CI I01:CI D"" O"S brei D,,4 rn1:c.1 b~C.1 A I 8 RPI IK 31D~ 3t:D~ 3t.D~ o ~HD~ C~\C JIll) ClJ'Zc. I B cmc. Cl0C. C.0~CC.04C 11 10 I 4 I 6 7 CO 1-4 _\Ql " CII( I'? I 3 en.c CI~C 5 C-14C. LISe. CH"C .a, ...110 Ion i ""' I'"'" // DM \ OMLZ'l lD MOD cD MDO 4101 // / DM::, ON\'1 PZ ~ IIT,r~~" 14c"3~7 17,1>..::'4 11 "i, " 1l.'Z IIZl ..~1'J.5 ClK\/ _ _ ._ _ _ _~-t.,_5__ ~ ~'lC1D'lAI "" I 4 e\ 91 1 CI DI Al ~7 c'2 D'Z A.I IS Q.~ QE:! QPo. QD l~ 14 5\ CJ ~i (L,I I \4 ~ <::l 'Z 7 I S QD I~ QA. 15 1'2 Q6 ::. 4 ~ o 7 1<'1L%'1,)5 "'4. :J.C Q.D ~ 14 Cl, 410B,/01DB eL, --:cDL, -rcc"~O'o;-'-;!C'~D'~AC-,-~;;',;-;[-C,-oD-C:I' 51 74L5'195 A.3 QC. ilfl :~ 1'2 3 1>.1 1::>7 C2 D'l 1>..1 DI 74 LS'I'o')B f'-.'1 Ai :),1>.. l 7IS(£'34')7 74LS,"'" eu::: II ~ Q,I>" Q5 I~ 1'2 QC. GtO 14 c c 4 tE>l 41:51 CSI/ C'::l2J 3'!D'I 3lD'l 31.('2 31CZ 3lC1 B I I ~ II 2 C.H. ~ OH 4 CHS CH.11 LH.'O L 117 CH.\S 'ZitS ",,1 ~S7 3"lCl 31. 5Z C\-II'2 3I5'2 31:~'Z 31~'2 - DDUT DOliT DOUT DOUT DDUT DOUi ~Olll A.2A 74;50-4 I'JE,/---------~l - ~ +5" A 8 I 7 I 6 I 5 t 4 I Schematic, Trace Board (Sheet 5 of 6) 3 I 2 j 8 I 7 I 6 !'.i3 220 3i:D3 DM~ 3iD3 DM, DMI DMIZl 3T:D~ 3"l.D3 0 CLK'Z/ 51-07 LO MDO 21:Ce 21.C.5 - C~8A. 2fBB C37A. C.~6A 21ea C=-5A (34/\ 8 4cel AE'2 AEI AE.0 - ~ A.4·'-'3DHJ f-'.'- AB r+k~ ." c. 5 4 " '2 A.""JM "~M 31;C'l MM :3"tB'l "''oM 3"tb1 A,M 31. 57 "'M 3:ZB7 "0M 15 "l A 2'11:;.1 Ar. 7 3 P1 8 Q, QD 15 I, '" Q" QC 14 I" " DI Jl elL 4 C' D' ., CI BI Q.D QA. 13 rZ "" SEE SHEET I ~, ,~" /// QD I, GlC (leo 14 (' 1 REVISIONS 0 7L 01 74lS'Z:;;~ A..1'2 .U 3 - "" : '"A1 "'"lJ ,"" "'c.s IS DUJ c.s nr':h 15 15 I DBJ CS DlN c.<::. ·1~1~ lQ" M7 I I IS IS I " I IS I IS I DI~ c.s DIlJ C5 WE CH':;/ ell::?> CH~~ '-H40 rf-14\ rJ-142 (II --M-;H '211~ 711S 'ZIIS 211S 'ZIIS 7.115 A15 ,,'O~ A~I M5 "'00 2115 A&,7 'ZIIS A&'''J DA."2 3-'t.A.8 ,41/1>..\ ,<;1.A.l Dt>.~ 31,6,.8 I 4'!A\ J 6i-A1 DA.4 3iA.8,41A,·\ ,5lA. \ DA,5 311\~,4~A.\15!Al DltJ cs DHJ CS m~C5 I>,G'O \lJE~ - A";>4 DOUT +5V 7 Dom JOUr 7 7 >-----< DOUT ..- DOUT 7 7 DOLJT 7 DOUT 7 ;--- DOll! 7 DOUT 7 >-------< DOUT DOUi 7 7 ~+5V >------ Pl ~ 0"7 1 \ ," '2 tio--- c;, I 74L.s.3~7 "-P7 IK epeo 14L'5J38 I~ 13 41 OM 40, 0"" '"4S' DA."2. 4. I A?4 +5V.- ' '-'5 Yji'\~ YI j~ C Y7 " 4 ~ 5 "P7 5 IK +5v .- 1 7 7 JRn ~ co i4L %3(,,7 ? A. :3 ~ IK +5V .. 1 7"'1LS3<07 , I~ ~ ~PZ " 1<+5V +- ' 14L~3~7 co 6'Z.A Y3 5 B Co r''51 -<> "-PrO 7 lK +5V +- ,. 14 LS3fP7 '" 0'" - ~ OM' Co ~~ ~7 '----- ;.. \ D., 3i 1>.5 ,4-lA \ ,S~A I ('fI~ 111'0 211S AZ", PZ 25 33¢ 15 I DIU CS I CH'34 1'.46 74Si08 I A.~~ [gil- ENROll. / 01 L,mL V 4'3 5 IK A.4 QC BI 'ljl 7 " 4 74L%'1~5 All I I 4 A33 .5V ,,>;, to 11 I ~I" A1 ~ll C'2 D'l /1..\ J1I 0,,, 7 4 21 e,\ r CH')) " Am '2115 "-PG I A?3 A'?4 2"1:BI 0 2 "I> l'lll 107 (., 5'4 '''' 14 " A.?~ ~ '" ""<; ,,5M 14 L:S3G.7 IS A",3 A~=::' H-C'Z 7 01 If' I t>..E:~ 4'tBI 31('2 OJ 01 ",'0 QB 14 15 'OW I n~~ AEB AE7 "E'" "E5 4't:51 I>,"'W\ " 15 ~II I IlESCllIl'1'lON ZZ AECO A~4 "'7M 4 C'2 D'l A.I 74L$7"'5 I"'''' '"' 15 C":>'2/ 4Z:.eH 4 le,I 3i07 "'j~ 13 ~2 CSI./ "I-ce'j 3i.C7 'I' Kl 10,1 "" C~3A 4r:\!)1 310'2 U 2 C42C 74 77 RI5 21.~B ~ 14 I 3 t C41 T"SV C4¢A C~9A 21(=)8 4r.CZ 4'le::.1 41:131 4'l.-el C I~ II DEC n~c: C40C 10, 10 C41A EBB 2.[;58 4=tC'2 JII I 4 C~ 7 C ~ C42.A Z.t~8 2.i:Be Rll 33<1\ II "ttD'Z " 5 C33C C~CC3'5C' C~[ +C,U ~irL, 7 ~'~I~T"~~ ~m" ~ D 1l>237~ I 6 I 5 t 4 I Schematic, Trace Board (Sheet 6·of 6) 3 I 2 I I 0- r I; () ttl I 00 VI 8 I '.~ll I I 7 I 6 s ~ • I 4 _.I 3 A D'MlM), liD23B") "1 - A REVISIONS ~ ECO·/"· 04// vi ~. ~ ~rr I»'" ,,"1- 'f'!-....'<-.... PI D tOY I 7 3 '3 " Jm P5 +sv~ PI tSV 31 32 34 35 37r-- - ZZUF D t5V ~i}g"e +sv~ I- PI GND POWER AND GROUND lOCATEA CHART ER PINS DE'IICE DE51GNATOR. TYPE GNO t5V +12V AlB I. B ~1"7 7 6255 '14 2" to 11'3jtSJl7jI4 LZl R~FERENCE 22 23 25 21Dr1'2 GND C GND I I 1~ " t--- 7 'i II 13 15 21 23 25 31 33 35 3 17 1., 37 C--' 32. 54 :?Ih 36 411+-_ P4 -. GND I 74S<1'JQl 74LS~0 7 74L~2. 7 7 aq/-- P3 '2.1 i:'3~ zp A53 A33 j 38 j 45 A4. 'Z7 l"'}f-- 21'" '21 2~~ A 3"',41 74L5¢4 44¢ 74\<110 Awl S 7 14L5¢8 422 74LSt¢ A58 142B "5 74LS3¢ A3Co.J5121 74lS32 A34 7435 74574 ["1'"[" ["[34f- A4Z)1D4 "5 GND~ A37,43,44 Jla3 P. GND B 1 A'5 II 74 7 74 74 74S74 ~ aND~ 74LS'32 1 , ,. A 2 2 2 1 Al,~-5 l A1'}-2tS?,.5515bI5~·fIo' A 4 I A% 3 2 74LSO AC? 440 SPARES ~ P51 A54 1155 A4S 447 -140(0 74LS04 T'tPE J30 GND,~ NOTE':); IltJLESS "" R.EF. CHIP '\'4"',~2. 74513" A31 132 4175 5-1\ 1315-]7 AZj 51 74lS3/a7 74LS3foB 14 14 14 14 14 14 14 14 14 14 I. 14 12 8 5 8 8 5 I. I. I. ,. " , B Ib B I~ I n DESIGNATORS CONTROLLER tt Z OTHERWl5E SPECIFIED l/4w. . I- ' ,rr. ~_NO.-! 03 P7 QI TPo 40 001 .. 190?~38 01 cc NO, 2 )6.::251 74lS.3fDB 74L53",7 TYPE 2 I A2 43 REF. 1 1 6 1 s "51 c45 A.4 't PoUlTS UST SIGll.OlUlIE UNlESS01lfERWlSESPEClflEtl 1 OIMENSIOfIS ~IIE IN 1NCH£S 2. BREAK ALI. SIWl1'EDGfS. 1-34- l.OO NOT SCAlE_NG. 12-30. AZ.44 "TOtEJWtC£s· A2.'3-30 "-001461 REF. DESIGNATIONS 4 NElITASSl In: S5" ref SI aSb IJSEDOH -ooJ 1D7-85 S~Da D ~J ADl-f5 ADic,-85 AJJS-h5 o4D4-55 Ar:.-¢-~5 ::;E:B5 I1Dj-RS :,~BB ADZ -R5 AD3-55 52:65 :;2C5 A[13-H5 AD2 - 55 IID1-55 AOC>85 5e', A07U ., A!)IbU P2 48 A()5U C P2 I 74lS3h7 3 2 7 -:-lC8 8 I» ..... I I 74 LS31u7 10 10 9 ~1 9 Al~ 74LS3/.,7 4 5 14 j AG"C , 1 74~53Jc7 7 14 I 13 A15C 74LS%7 '"_'9 ' ""1'5 3 Schematic, 8085 Chip Controller No. UNo. 2 (Sheet 2 of 10) ;'["'I'jU I 11 ~1 ~1 §J 74LS307 12 B PC 13 ABL ,i.D4lJ I " ·15 AD2U P2 44 A01U I P2 ~ 74lS~~1-L1Sf::l1 ?S A b ~I ~D5-t'l5 ADIo-B5. P2 4" 5 AlL ~' r~ 74L53h7 RD\JSTfl/ 1 -4L53i£17 74lS3t..7 lNSD.£IT/ S lAZ 4" 5 2lC8 P2 ." 7 32, [.2-.£1 4':: 3 ~ L~41 1 74l53iD7 ~I AIL ~ l02u3 40-1 3"1 " '0 -'tlD3 AD4-B5 P' I 74L331n7 \Ol-D3 II Z 4 PA¢-':>A.7 I AD¢U A o· '" 7 8 3 4 5 6 ,o,v P7 (Cd / r~4R74';: 74LS~u,7 1\ p.,s~ .J3CD pc., u 7 \ _ _ - -___---''-'-f>--''''----------~~-~ OS o o PC7 e'1"O_ _ _ _ _ _ _ _ _ _~ ,t>.,1-Y vs A-0-Y PCGo 11_ _ _ _ _ _ _ _ _ _ _ _ ,j~? '-------~ '{ 61 r:..6 c c I i r'LL f"1"'----1--------, I --+-- Ii PCI ~IC~'--~--------\__------ ----- ILC'MA.P "J:e.t. .. IlL-X- 1\17 -X A.15-)( p,,1"J- X B B I2D-",/ k:DSl" 1>0. \ / -jloB f'-__ LA5 K'DSTp.,"'L/ i,I"'f" ICL'KI-- / I 'ZA.B VI.lk:M;>"P / ") 7. "''0 ICLI1:£/ / ?> A >',lD3 del 8 RDVp." HAUl ~/ _____________________ 7 6 -i~--------------------L-~~ 5 t 4 ~"ZA.'01 "17.c.~ EMeSl/ -::IA'O '::'1.('1"> Bleb SIMGLf:. / 6] B5 '=>T;':~T EM'SEl"/ 7~'_;:,10 A tI.';:,IJ"'"'----- 3 Schematic, 8085 Chip Controller No. lINo. 2 (Sheet 3 of 10) "oZt...e, 2 ." N tv 3 4 5 6 7 8 2 -~~ o 0 14L'::>15 r P3 p",,,, --~+-H++-I-++---c7C-j~ ~Q I~ 3 20 I~ p", ===~t:I=t+:j::j~="'?-1'3D PA4 .n D? P" , P" 2 PA 1 P" -t+~~;'-tZ D ZQ -_-=--=--=--=--=--=--=--=--=--=--=--=-~~':.-=--=-';i7'-1'D h h 'Q ~; 4D ~ A.D~l-X &; n 74l':l%7f-,? A. t') I ~7ic-+~~~~~~~~~~~ I Go ADR4- X. ; ~D~~--~ ~ ~~ '9 D I 81 ~~ll 14 ~Io 1':f"'3~t-=-==================-=~ ~ _~-~_---=-ITr:;~~Wl~it ~~~~~~~__~~~~EN~~ ~ f-;3~======================::j 7P-'DR..'=>-X 2 -'fQ' B: AI2 ALE 74l'J~{"1f-;';'?'---~~~~~~_________~~~~~~~~__ l'l A,I I r"~~~~~~~~~~~~~~~~~~~~~~-i e. A.OK'.G.-X 'ZQ C oZBl 14 <) " --------oJ c A.D~?-X A,DRI- X. ""-BS} P-..1?-eS M~-BS n 5b A.14-B5 j PI A.lo:,-el3 '" AI~-8~ B FI(OM 5.0BI? l'HIP -'0 14L'3%7 Nl0 17 " P,,1'Z.-t':I~ 3'" NI-.55 [?D- ": I I I AC] - ~S PI'O-B'3> [CJ AV£:IS-X ~ ADR'14-K I" A.DI<13-X. 14 A.Oe.I'Z-X I"') ~D~II-X "W 17 P-..DRI/lJ-X I¢ '" 1,1') I , A.DR.5 -X B TO DMA. ("~7 I. I I -- 3 A7'" 4 ~ AI0-B'? P3 14~1~ 7 77 A14- Eb A,\S-e'? Ct-\P"t>J~E.t.( C 7 ~p.",DR,,)-X. I 7 @ 14 ~ 'I P4 ill 14~~7 II~ ",. '" 15 7 7 ----ill A '" rn 1'.9 -v 1'.8 -v "'f]) -v "" -v-v An '" "')-v-v AI4 -IT! '" 8 7 6 5 4 3 Schematic, 8085 Chip Controller No. UNo. 2 (Sheet 4 of 10) 2 A 7 8 6 5 4 3 A.D7-B 5 21D~ 0 DA.T7-X o @ p" 14L':;'~(D7 A.DCIJ- B5 2LD'? 74L'S"3w7 "'" 0,1:1...1(,,-'1.... 4 S {O 1 P~ AD5- 21D~ DATI5-X ""~ p~ C c "'-04- 5S 22D~ DAT4-X ~ PO "':'-ZD~ AO~- DJI,.1~-X l':'LS~Col "" 14l,.T2- "''' x.. ~ P? 8 8 p."QI-'O 22..D3 DA."TI-X . " 14L"j?v,1 1. ~ '0 74l,?~(,,7 114 r-- I";> P" 'l-L D"':l .l\D.0DPl.TQ5-X 9z.c\
1.'0\ SLA.'5 c ALE I AeKWOR. IOLAe, .-+----------------------------------------------------------------- f:EA.D'1'- U 101 '01 Dr2I-Y 1011>..'0 Ol-Y 101.""'0 REI\DY-U ~jPI 31 AI B I::\1C\ 5·'''JGlE / D'2-Y 101"'5 D~-Y I()l A.B 04-Y 101 bB D~-Y IOZE;>B B lNS~DV ~lE 6lbl 8leL IO'lCI SYUC.I I01~1 '::'\/fljC(l} IE~')TEP J7GJ ~1.CI lQ/M 81AI RuSH\\ / 9lDf '3'/j-v ::, I-V HLDA. 9lUI 91C-1 A @J ~D" --l2DI 511:::11" ~f.'7ETIt\l-55f IOlD1 5'1'N~K/ 52,0.,,1 II\JTf>... 71.BI TRAP- " 7 ;.~K \1 PI RST7.5 "U ,(., ~ P':I J~1j lID 1tJ. ~ S 74lSB(c. PI( ~ D'4lS74Gl. eLK A.t.3 P1 Te..P.P-U 12 Q~ ~ ~D Q" Y'':l J3S 10 II If) P'-< 11 14L,=,5Ct> PR. 14l':>14 ~~ID I 14L-<;'e,(o lGl.1(.D ~~~ CUe S~ A44 J)') PS P'Z -00 RST7.5 - ~ 1,11; l4LS,; "47 ~'''' B - ~lD ~ P2 P5 1JL '20 ..;~s ~~ ,'" IT 10 12 1. :2. A.I 3Z.C I 14lSM '" i---,,"~ p~ ? RST5.5 RSTb.~ '.;,LCI 8 -u .- " A 11 Ie LRCVT I -u ~ I~NO"'EI .ILU,;:CU T/ 7 6 5 - e.~ /3 RsU.·5 - ~ J~':l p~ 1 '''' ~ -@] RSTS.s- ~ ~ P2 IJIJTR- U " ~ I , i IMSTEP. P A P'Z oe 11 eLK T lC'.Lk:J/ '" 14L':l(2!5 ~'O ~D14LSlllQ~ A~4 B 10 ~ 5 B5 4 3 Schematic, 8085 Chip Controller No. lINo. 2 (Sheet 7 of 10) 2 el.AB 14LS~u.~ 14 I~ ?2 R..D-'C.S/ 3 4 5 6 7 8 l 74 ~ ~DVA A'l 1 74l5'?CD7 ' 5 _ , . . 70 ,---------------------------n 2 - TlM5 SEE SHEET I i::.D-V we-v P2 L-__+-~14~~'~~--r-~-------------------------,_~~~-------~P~4------------------------------------~~~'0~ Pl.':! IS J~u. Pet, I 14LS\~ '<7 '--p3 0 n W"-~ 13!l/ 7'" r~~7~~~l?iO~"'~I~~I+_--_+--+_--_+_1~~----------~r~~~----'-~-'-~~------_-_-_-~-~L--~--~~rl~~1~2----------~~------~41A---------------------1~S l p\7 -C 7'4L,":>~(l,7 9Z 51 u'SH~.Nl1D / _ A..41 ~ PCtl .J3fo 1'214l'?07 1 13 L------~~,~1S~~----------~------1-------------------------4__t----------------r---------------~DVA I I DE) L - - + - - - -_ _~S AAB ,-------------t--+-------------+--+--------'------ EMULA/ 5 LA.e.,IOZCt" .-----------t--+--------------+--+------------- eMULP>. 19 7A'O j~~ c ~r---------1_--~-~+---__. +-__-'1 IEll'5TEP ___________________________________________________ EM"'5ET / Ev.ULl:>..ilm.l FF IEMUL x./ ~t--'----------~7,~,~~ T "!:;A."l \ I 3 "I.e. L RD- W~-U/ lL-______~_+~~-+-1-----~~J~~SIJ~~JS~~-------------------------------------_+~r------________~---------------- ~OPRW ~LAB l1i~~~ ;,«, ;'7..~f.::, WR-X/ ---------1--------t---+-t--t---t--------=--:::-::--+---------------------' '~~ 3l!..:Z ~p-''''-----------+--.----~:'''~Iv------------------------1'33 '::> o p~ ""1.r? L~T~ ~"~,{;~I~I=--_+--+_~_t=4==============t===================~=======-------------~~~----~~-----________________~'2f>n 14LS%5 c ~L Slel 14LSe')4 RO-U/ J~c.. Pc.. ~ " ?~S. ... 74L'::.~ PI '=> ~rt-II--;4h>A~",:}'",---CD----+----I------~'24 ':1f<:1LS.~'l ,b.,LE.-U -------------------------------------~~~~ D~514QI~~~~~~0q~~~~6 ----{~~ 4 74LS~17. F4---t~~sy."'~.§"'--I--I--+---------.J &L", CLi.' I B B ~s~ PI ~ ~ESE1a..i-SS/ A A 8 7 6 5 4 3 Schematic, 8085 Chip Controller No. UNo. 2 (Sheet 8 of 10) 2 1 --- 2 3 4 5 6 7 8 - 14L-'?3(o7 40~--------~~~----------------------------------~------_'_j "I PZ D ~\-~ 81. ~ I SEE SHEET \ \'2 P'Z ~0-0~ IBr-------~~t;r~~--------------------------------~------_'_j "I RE ?ETHJ-B'=:I! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' ALE / ~lA\ \ClR~/--------------------------------------------------------------------------------------------~ PI HlDA-55 P'? J~S 74 LS'? ..I?:J-'e~ ~ ':~~io7 ~ A..I \ .. fi;< 0'''' ~~CSI 6~ rz 14 '2:>1j 74L-:,~(j,7 f'1~1+-IH-+t-----~--11 A.\~11ZI7 \~ p.., ICD 'Z ~ L,,--J CI I IS /l..? ~C?~ 1 P-"ll..- TIS llQMP\P IO-V '1V~4~ I:~: DOUTp="'-------1--t---~~~ ~~COr--- -"-."-"-~---------------------------- U~E.RMIQ/ <;, 10 P4 47 ~------------------------------~1~------~~~~----~~~~~~:~ 41[:2 ~1 £eo L---~¥r------------------~~4 I~ ~ 8 c USERM10 MA.P ~P.l ~ A0 ___ L----------------r---------------------------- uSE£M1DI BleB pc., -+___________________________'_jl e! L -________________ SIAB,01CB, 101 iA IOl e>f':l DIU WE ""15 0'5- Po.. 04- F\ D~- po. IOl03 0'2-""'" 1'--" 4 ~ ::===:j:::===========~74L'i?i'L,7 ~ ------H-----------------------~"'~ ~II -------+----------------------~I~~ ZG 75 Ol-A, 00-A, - ~ ~ P5 J",)r:, 1'2 II ====t==========::t=:,-;4~74lS~(j,7 WI~'===~ '9 A A D7-,A,. V\.l~MW/ ~ ::========~DITI}=============~ ~ I1\11.c>.. 8 7 6 5 4 3 Schematic, 8085 Chip Controller No. lINo. 2 (Sheet 9 of 10) 2 a I PO 07-Y I 7 74L"!.3Ci:>7 IS I~ 14 1::1 '5 P7 D5-Y0---- - 10 ~r, I ~lS f P7 <4 L!..0" D3-Y C I P1 D7-Y ... P7 Il0-Y B A.r;,Cb r " 14 '" I~ 1"'-1'>7 11~IA411"[A?" ~ 74l&;'04 31'07 ~.~K IlD-tV e4Z '4, ~_3K 3.~J::: PR ~ D):lLS'J4 z 14L<;el1 ' I 'SV I , "'2lCB,9z.,o..,e:, ~DI-~ 1 Ct:l , 91.a..~ ~Dl-' IC5,'2e.e> We /lDO,91BB ~O~-" -::'ID5 --'.1 DO ,"12to..6 ' - - - 01-" en 1 -- A"'~ ~ "" ~6 ~ ~")'j i e~5 ~."::lK 14~e 4 d ~b '§ 'SY}.le;,K/ Dl f'..:2. '4LS~'" f-- \~ ~ STOPIT/,,--,~CB CIl r '0 1-l rr? ~ ~~ !;:\Il.ULb.1 c·le 1 C 7439 ~~ n t,'",,· (,l~e • BB ~ ~ ~_~K 17 ~ H-2 ~ ~YI\lC\ \I • ' ·1e>e . J3" ~J4'" +sv 7)~1 I+- ~J'7 +,v R% I CH~-rt- 1----1 --- --0 7AL~!Zli2') I-Z M'j SEE SHEET I ,sv 14L~i2' 2 14l S(ZIel I o ~, P£SClllPtlOH 1-1 14L5~~ 1 145Q1fll 1A5~ c, IS 1\4;~ -':ID5,91e:.B ~JS-" 74501Z1 I ~D3-'" I I 2 lC5 ,qZf,B ~D4-" ~ S Q ~lit I'" ,., ~ I 3 DIll-I'\ Ie, ~4 "41 I~ ~ n~ 1,," " ~ "" " 10 ~I? 4 ') I '" 1'"-1'>" \SL~ I I~I P, Ol-Y ,e,v Il,) en 'lz~ SI ... "" ~ I~~ 12,,11 11 I .~ +sv ~[)G,JI.. I~ '~b _" [,4 P7 04-Y 14 r--. ~15 -I " W P'c.. 4 ~D~-" I 17 '" II Dlc-'( 1\ 14Lo;%7 J~u. . 5 Dl-A IS~'Z P7 0 ze 11 I 6 li':'EA.VV-U '''4 (,ZCi 3.~K ~ClKC.llL~ D7-Y ble:.1 - tDtICI D3>-Y 3108/ "zel D'2-Y ~1B~,6Z.CI DI-Y "ICI D.0-Y 3"1.1>.."2 A I~ 3D 4D 'lD blbl DCtl-y !bIer D,)-Y "Z~I D4-Y ~~L 'f~ lU~Ii!/ I ! STQPPP,OC' 'QUI HCJ Y/ ~ L~1D 3D 13 40 5 lD I-- '" ,," 4Q 15 1'Jl 2 ~ClKACJ,.\ [>7 5TOPTe-y l CUTI1OLD/ :--.11>..'0 3Q I? 4Cit-¥1 'lG. '2 ".;> 4 f" 2 3 ~ 11 I:> ~~ ~ P7 ~ EMUlfl. 'CJ A 1'? TIWIDLY-Y ~ ~ SHUT! Of1 D 1'~~l"'7:2"' Itf 1(0235'" 04- i .a Schematic, 8085 Chip Controller No. UNo. 2 (Sheet 10 of 10) I 2 I 1 .- j;:' 7 l-?,?p"" D *-----~ 9r *-------~ II~ *------~~ <--_ _ _ _ _~~ ~ , ______ '" RZ4 ~~ ~ 13 7:t~~14 ~=l8 ) 3 CH 1/ ~~ )4 CH2/(C2C,C) 1!:>- ~ )(0 CH31 (C'27C) 1r;, ~ )5 eH 41 (e2se) [>: 31 1>-,~.~~7 CHS/(CZ~)C) '~I' =~8 ~ --. RG ~. ~- R33 13 1 I I A3 R34 <------~VV\ CH8/(C3'2.C) Cf.\<)/ (C33C) )12 CH \0/ (C~C) )14 CH III (C3r;C) ::: CH IV (c.:.(,C) C CH 13/ (U7e) ~ If, CI-I 14/ (C38C) RI5 ~>--tI~IZ---VA ) 20 CH 151 (09C) RIG ~,---t'12~~~ "'" RI7 <--______~---~3~1--~~-+1~~-- ~ <------~~ O-\~/(C30C) ~--------------}'3 [)c>----tl'''--O--~VA D CI-I7/(C3\C) ~_ _ _ _ _ _ _~)II RI3 <------~"'" )10 1 10 <------~---~~~~~~ ·r-·~:~----"'".,4 "I _ _ _ _____7)B 11'2 VA <------~VV\ case) 51 P" I 9 3 (~R:EC~O~~CJ J2- 112. Rn A2. RIO ______~~~----~5~1~~~~lrG----~VA RII
Source Exif Data:File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c041 52.342996, 2008/05/07-21:37:19 Create Date : 2015:07:16 17:54:17-08:00 Modify Date : 2015:07:16 17:25:42-07:00 Metadata Date : 2015:07:16 17:25:42-07:00 Producer : Adobe Acrobat 9.0 Paper Capture Plug-in Format : application/pdf Document ID : uuid:0a24b28d-0a05-a74e-89f1-5022abc1bd70 Instance ID : uuid:ee168b1f-1321-dc40-bc01-46ca46c1248b Page Layout : SinglePage Page Mode : UseOutlines Page Count : 233EXIF Metadata provided by EXIF.tools