; Example program for a software initialised trap ; ; Peter Christen, 5 April 2004 ; TT15: data 15 ; data ReadFold ; ; char ReadFold() { ; /* post: returns next char */ ; /* read, folded to lower case */ ; /* nb. RV passed via AC */ ; char ch; /* also impl. via AC */ ReadFold: ; trap #2 ; /* Get */ cmp #'@' ; if ((AC >= 'A') && ble RFenf ; cmp #'Z' ; (AC <= 'Z')) { bgt RFenf ; ; AC = AC sub #'A' ; - 'A' add #'a' ; + 'a'; /* AC = AC + 32 */ RFenf: ; } /* if */ ; return ch; ret ; } /* ReadFold() */ main: loada TT15 ; /* establish trap #15 */ trap #9 ; /* with handler ReadFold */ loop: trap #15 ; NextC = ReadFold(); trap #3 ; Put (print) cmp #'\n' bne loop trap #3 ; Put new-line trap #1 end main