/************************** I2ICE TUTORIAL SCREEN #46 **************************/ menu=1 define literally P = 'include scr.45 nolist' define literally R = 'include scr.46 nolist' define literally RTN = 'include scr.46 nolist' define literally N = 'include scr.47 nolist' define literally M = 'include scr.2 nolist' cls /*******************************************************************************/ ' ------------------------' 'Displayed below is the command you entered during | SCR46: BUG 2 FOUND |' 'the previous screen and the I2ICE system response | M = Go to main menu |' 'to the command. | N = Next screen |' '*BYTE .:CMAKER.WRITE_DECIMAL.DIGIT_STACK[4] LENGTH 2 | P = Previous screen |' '0056:0089H 01 31 ''.1'' | Q = Quit tutorial |' ' | R = Rewrite SCR46 |' 'In the response, the address of DIGIT_STACK[4] is | SCR# = Screen desired |' 'shown on the left as a segment offset pair; then, ------------------------' 'the values stored in that byte and the next byte ' 'are displayed. We expected the first byte to contain 1 (because the program' 'has calculated change of 1 quarter). And, we expected 31 in the second byte ' '(because 31 is needed to create the hex value for the undesired "a"). This ' 'confirms our diagnosis.' ' ' 'To fix this error, in line 24 the maximum value of I should be changed from 5' 'to 4, so that the array subscript will not be incremented beyond the end of ' 'the array.' ' ' 'For information on break registers and how we could have used them to help ' 'debug CMAKER, enter MOD_L <Enter>.' '-------------------------------------------------------------------------------'