; Example program for a software initialted trap ; example developed by Peter Strazdins, 1992-8 ; Peter Christen, 5 April 2004 ; TT15: data 15 ; data ReadFold; //ret. next char read, folded to lower ReadFold: ; char ReadFold() {/*RV passed via AC*/ ; char ch; /*also impl. via AC*/ trap #2 ; scanf("%c", &ch); cmp #'@' ; if ((ch >= 'A') && ble RFenf ; cmp #'Z' ; (ch <= 'Z')) { bgt RFenf ; sub #'A' ; ch = ch - 'A' add #'a' ; + 'a'; RFenf: ; } ; return ch; ret ; } /* ReadFold() */ main: ; int main() { loada TT15 ; /* establish trap #15 */ trap #9 ; /* with handler ReadFold */ do1: ; do { trap #15 ; char c = ReadFold();/*impl. via AC*/ trap #3 ; printf("%c", c); cmp #'\n' ; } while (c != '\n'); bne do1 ; trap #1 ; return (0); end main ; }