Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!caip!rutgers!sri-spam!nike!cit-vax!elroy!smeagol!usc-oberon!sdcrdcf!ucla-cs!lor From: lor@CS.UCLA.EDU Newsgroups: net.test Subject: testing Message-ID: <1922@curly.ucla-cs.ARPA> Date: Fri, 3-Oct-86 14:49:59 EDT Article-I.D.: curly.1922 Posted: Fri Oct 3 14:49:59 1986 Date-Received: Wed, 8-Oct-86 21:56:35 EDT Reply-To: lor@CS.UCLA.EDU (Edward Lor) Organization: UCLA Computer Science Department Lines: 96 this is a test, ignore the rest ********************************* .globl _startup, _xstartup .globl _getchar, _xgetchar, _getdec, _xgetdec .globl _getline, _xgetline, _getoct, _xgetoct .globl _getsdec, _xgetsdec .globl _ungetchar, _xungetchar .globl _flush, _xflush .globl _putdec, _xputdec, _putline, _xputline, .globl _putnl, _xputnl, _putoct, _xputoct, .globl _putsdec, _xputsdec, _putstr, _xputstr .globl _putchar, _xputchar EOF = -1 ILLCHAR = -2 OVERFLOW = -3 CHAR = 4 / Offset indexing off r5 with to get char arg. ADR = 4 / Offset indexing off r5 with to get adr arg. NMBR = 4 / Offset indexing off r5 with to get nmbr arg. LEN = 6 / Offset indexing off r5 with to get len arg. WAITBIT = 1 \< 5 / Wait bit in processor status word 1. TIMBIT = 1 \< TERMPRIO / Terminal interrupt mask bit. NEWLINE = '\n / newline character SPACE = '\s / a space TAB = '\t CHZERO = '0 CHNINE = '9 PLUS = '+ MINUS = '- //----------------------- _startup --------------------------------- / / _startup - routine to set up primitive operating system for CHIP / / Call: jsr pc, _startup / / Sets up the program trap area so that control is transferred / to the _trap_proc routine whenever a program trap occurs. / _startup: CSV mov $PROGTA+NEWSTATE, (sp) STST mov $_trap_proc, PROGTA+NEWSTATE+PSPC _xstartup: CRET //---------------------- _trap_proc ------------------------------- / / _trap_proc - routine to handle program traps / / When a program trap occurs, the current processor state is loaded into the / OLDSTATE region of the program trap area (PROGTA). Then a new processor / state is loaded from the NEWSTATE region of the PROGTA. If _startup has / been called, then PROGTA+NEWSTATE+PSPC contains _trap_proc, so control is / passed here. / _trap_proc: jsr pc, _flush / Clear terminal buffer. mov pt_msg1len, -(sp) / Output first part of mov $pt_msg1, -(sp) / program trap message. jsr pc, _putstr mov PROGTA+OLDSTATE+PSPC, (sp) / Output user pc. jsr pc, _putoct mov pt_msg2len, 2(sp) / Output second part of mov $pt_msg2, (sp) / program trap message. jsr pc, _putstr mov PROGTA+OLDSTATE+PSPS2, (sp) / Output IT Code. jsr pc, _putdec jsr pc, _flush add $4, sp / Fix stack. _xtrap_proc: HALT .data pt_msg1: <*** program TRAP at pc = > L = . - pt_msg1 .even pt_msg1len: L pt_msg2: < with IT Code = > L = . - pt_msg2 .even pt_msg2len: L Eddy Lor ...!(ihnp4,ucbvax)!ucla-cs!lor lor@neptune.cs.ucla.edu Computer Science Department, UCLA