/************************** I2ICE TUTORIAL SCREEN #36 **************************/ menu=1 define literally P = 'include scr.35 nolist' define literally R = 'include scr.36 nolist' define literally RTN = 'include scr.36 nolist' define literally N = 'include scr.37 nolist' define literally M = 'include scr.2 nolist' cls /*******************************************************************************/ ' ------------------------' 'Let''s see how these specifications for breaking | SCR36: BREAK AT "a" |' 'emulation can help us locate the bug that writes | M = Go to main menu |' 'lowercase letters after the amount of change. | N = Next screen |' ' | P = Previous screen |' 'We need to find how the letters "a" and "b" get | Q = Quit tutorial |' 'into the output data stream. One way to begin a | R = Rewrite SCR36 |' 'search for the bug is to break emulation when "a" | SCR# = Screen desired |' 'occurs after 1 in the output: "1a quarter". Then ------------------------' 'we can identify the source of the "a" by examining ' 'the variables involved in generating the output stream.' ' ' 'We have various options for specifying the breakpoint. We could use a break' 'specification to break at line 14, which is the line that sends ASCII code to' 'the output port.' ' ' 'This is not a good choice, because our program would stop each time line 14' 'was executed (each time a character was output). We only want to break when' '"a" is output. Let''s use a system specification to break when a data value' '("a") is output. ' '------------------------------------------------------------------------------'