TTY=120 AC0==0 AC1==1 AC2==2 PDP==17 INTERNAL PUTC,PUTS ; PRINT CHAR IN AC1 ON TTY PUTC: CONSZ TTY,20 ; wait until not busy JRST .-1 DATAO TTY,AC1 ; transfer character POPJ PDP, ; CAIE AC1,12 ; return unless LF ; POPJ PDP, ; MOVEI AC1,15 ; put CR and two DEL ; PUSHJ PDP,PUTC ; MOVEI AC1,177 ; PUSHJ PDP,PUTC ; PUSHJ PDP,PUTC ; POPJ PDP, PUTS: ILDB AC1,AC2 SKIPN AC1 POPJ PDP, PUSHJ PDP,PUTC JRST PUTS INTERNAL GETCH,GETC ; READ CHAR FROM TTY INTO AC1 GETCH: CONSO TTY,40 ; wait for flag JRST .-1 DATAI TTY,AC1 ; get character ANDI AC1,177 POPJ PDP, GETC: PUSHJ PDP,GETCH PUSHJ PDP,PUTC POPJ PDP, BASE: 10 DIGITS: EXP "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" ; PRINT NUMBER IN AC! INTERNAL PUTN PUTN: JUMPGE AC1,UPUTN PUSH PDP,AC1 MOVEI AC1, "-" PUSHJ PDP,PUTC POP PDP,AC1 MOVM AC1,AC1 UPUTN: IDIV AC1,BASE JUMPE AC1,UPR1 PUSH PDP,AC2 PUSHJ PDP,UPUTN POP PDP,AC2 UPR1: MOVE AC1,DIGITS(AC2) JRST PUTC