.NLIST BEX,SEQ,SYM .TITLE VDTPLAY - DECODE KEYS TO OCTAL .MCALL DIR$,QIOW$,ALUN$,EXIT$ ; .LIST ME,MEB,TTM ; ESC=32 VDTLUN=1 ; ; START: DIR$ #ALUN ;ASSINGN THE VDT UNIT DIR$ #ATTACH ;ATTATCH SAME DIR$ #ZAPIT ;CLEAR SCREEN LOOP: DIR$ #HOMER DIR$ #VDTIN ;GET SOMETHING IN BCS VAMOOSE ;NOTHING FANCY FOR NOW CMPB #32,INBUF ;THE GREAT ESCAPE? BEQ LAST1 ;YES, ONE MORE DISPLAY MOVB INBUF,R3 ;GET THE CHARACTER BIC #177400,R3 ;MASK OFF FUNNY BITS CMPB R3,#40 ;SEE IF IT'S DISPLAYABLE BHIS 1$ ;YES, SO DISPLAY IT MOVB #40,OUTBUF ;ELSE FORCE BLANK TO SHOW BR 2$ 1$: MOVB R3,OUTBUF ;DISPLAY CHARACTER 2$: MOV R3,-(SP) ;MAKE INTO 3-BYTE OFFSET ASL R3 ADD (SP)+,R3 ADD #OTABLE,R3 ;ADD TABLE BASE ADDRESS MOVB (R3)+,RETURN ;AND PLUG OCTAL INTO RETURN LINE MOVB (R3)+,RETURN+1 MOVB @R3,RETURN+2 DIR$ #VDTOUT ;SEND IT BACK BCC LOOP ;AND SO ON... LAST1: DIR$ #XITMSG ;DISPLAY LAST CODE VAMOOSE: ;EXIT DIR$ #EXIT ALUN: ALUN$ VDTLUN,TI,0 ATTACH: QIOW$ IO.ATT,VDTLUN,1,,VDTSTAT VDTOUT: QIOW$ IO.WLB,VDTLUN,1,,VDTSTAT,, VDTIN: QIOW$ IO.RAL!TF.RNE,VDTLUN,1,,VDTSTAT,, ZAPIT: QIOW$ IO.WLB,VDTLUN,1,,VDTSTAT,, HOMER: QIOW$ IO.WLB,VDTLUN,1,,VDTSTAT,, XITMSG: QIOW$ IO.WLB,VDTLUN,1,,VDTSTAT,, EXIT: EXIT$ CLEAR: .BYTE 33,'[,'2,'J ;CLEAR SCREEN HOME: .BYTE 33,'[,'0,';,'0,'H ;HOME CURSOR .EVEN INBUF: .BLKW 10. OUTBUF: .BYTE 0,'=,40 RETURN: .BYTE 0,0,0 CTRLZ: .ASCII ?CTRL/Z = 032? .BYTE 15,12 .EVEN VDTSTAT: .BLKW 2 OTABLE: .BYTE '0,'0,'0,'0,'0,'1,'0,'0,'2,'0,'0,'3 .BYTE '0,'0,'4,'0,'0,'5,'0,'0,'6,'0,'0,'7 .BYTE '0,'1,'0,'0,'1,'1,'0,'1,'2,'0,'1,'3 .BYTE '0,'1,'4,'0,'1,'5,'0,'1,'6,'0,'1,'7 .BYTE '0,'2,'0,'0,'2,'1,'0,'2,'2,'0,'2,'3 .BYTE '0,'2,'4,'0,'2,'5,'0,'2,'6,'0,'2,'7 .BYTE '0,'3,'0,'0,'3,'1,'0,'3,'2,'0,'3,'3 .BYTE '0,'3,'4,'0,'3,'5,'0,'3,'6,'0,'3,'7 .BYTE '0,'4,'0,'0,'4,'1,'0,'4,'2,'0,'4,'3 .BYTE '0,'4,'4,'0,'4,'5,'0,'4,'6,'0,'4,'7 .BYTE '0,'5,'0,'0,'5,'1,'0,'5,'2,'0,'5,'3 .BYTE '0,'5,'4,'0,'5,'5,'0,'5,'6,'0,'5,'7 .BYTE '0,'6,'0,'0,'6,'1,'0,'6,'2,'0,'6,'3 .BYTE '0,'6,'4,'0,'6,'5,'0,'6,'6,'0,'6,'7 .BYTE '0,'7,'0,'0,'7,'1,'0,'7,'2,'0,'7,'3 .BYTE '0,'7,'4,'0,'7,'5,'0,'7,'6,'0,'7,'7 .BYTE '1,'0,'0,'1,'0,'1,'1,'0,'2,'1,'0,'3 .BYTE '1,'0,'4,'1,'0,'5,'1,'0,'6,'1,'0,'7 .BYTE '1,'1,'0,'1,'1,'1,'1,'1,'2,'1,'1,'3 .BYTE '1,'1,'4,'1,'1,'5,'1,'1,'6,'1,'1,'7 .BYTE '1,'2,'0,'1,'2,'1,'1,'2,'2,'1,'2,'3 .BYTE '1,'2,'4,'1,'2,'5,'1,'2,'6,'1,'2,'7 .BYTE '1,'3,'0,'1,'3,'1,'1,'3,'2,'1,'3,'3 .BYTE '1,'3,'4,'1,'3,'5,'1,'3,'6,'1,'3,'7 .BYTE '1,'4,'0,'1,'4,'1,'1,'4,'2,'1,'4,'3 .BYTE '1,'4,'4,'1,'4,'5,'1,'4,'6,'1,'4,'7 .BYTE '1,'5,'0,'1,'5,'1,'1,'5,'2,'1,'5,'3 .BYTE '1,'5,'4,'1,'5,'5,'1,'5,'6,'1,'5,'7 .BYTE '1,'6,'0,'1,'6,'1,'1,'6,'2,'1,'6,'3 .BYTE '1,'6,'4,'1,'6,'5,'1,'6,'6,'1,'6,'7 .BYTE '1,'7,'0,'1,'7,'1,'1,'7,'2,'1,'7,'3 .BYTE '1,'7,'4,'1,'7,'5,'1,'7,'6,'1,'7,'7 .BYTE '2,'0,'0,'2,'0,'1,'2,'0,'2,'2,'0,'3 .BYTE '2,'0,'4,'2,'0,'5,'2,'0,'6,'2,'0,'7 .BYTE '2,'1,'0,'2,'1,'1,'2,'1,'2,'2,'1,'3 .BYTE '2,'1,'4,'2,'1,'5,'2,'1,'6,'2,'1,'7 .BYTE '2,'2,'0,'2,'2,'1,'2,'2,'2,'2,'2,'3 .BYTE '2,'2,'4,'2,'2,'5,'2,'2,'6,'2,'2,'7 .BYTE '2,'3,'0,'2,'3,'1,'2,'3,'2,'2,'3,'3 .BYTE '2,'3,'4,'2,'3,'5,'2,'3,'6,'2,'3,'7 .BYTE '2,'4,'0,'2,'4,'1,'2,'4,'2,'2,'4,'3 .BYTE '2,'4,'4,'2,'4,'5,'2,'4,'6,'2,'4,'7 .BYTE '2,'5,'0,'2,'5,'1,'2,'5,'2,'2,'5,'3 .BYTE '2,'5,'4,'2,'5,'5,'2,'5,'6,'2,'5,'7 .BYTE '2,'6,'0,'2,'6,'1,'2,'6,'2,'2,'6,'3 .BYTE '2,'6,'4,'2,'6,'5,'2,'6,'6,'2,'6,'7 .BYTE '2,'7,'0,'2,'7,'1,'2,'7,'2,'2,'7,'3 .BYTE '2,'7,'4,'2,'7,'5,'2,'7,'6,'2,'7,'7 .BYTE '3,'0,'0,'3,'0,'1,'3,'0,'2,'3,'0,'3 .BYTE '3,'0,'4,'3,'0,'5,'3,'0,'6,'3,'0,'7 .BYTE '3,'1,'0,'3,'1,'1,'3,'1,'2,'3,'1,'3 .BYTE '3,'1,'4,'3,'1,'5,'3,'1,'6,'3,'1,'7 .BYTE '3,'2,'0,'3,'2,'1,'3,'2,'2,'3,'2,'3 .BYTE '3,'2,'4,'3,'2,'5,'3,'2,'6,'3,'2,'7 .BYTE '3,'3,'0,'3,'3,'1,'3,'3,'2,'3,'3,'3 .BYTE '3,'3,'4,'3,'3,'5,'3,'3,'6,'3,'3,'7 .BYTE '3,'4,'0,'3,'4,'1,'3,'4,'2,'3,'4,'3 .BYTE '3,'4,'4,'3,'4,'5,'3,'4,'6,'3,'4,'7 .BYTE '3,'5,'0,'3,'5,'1,'3,'5,'2,'3,'5,'3 .BYTE '3,'5,'4,'3,'5,'5,'3,'5,'6,'3,'5,'7 .BYTE '3,'6,'0,'3,'6,'1,'3,'6,'2,'3,'6,'3 .BYTE '3,'6,'4,'3,'6,'5,'3,'6,'6,'3,'6,'7 .BYTE '3,'7,'0,'3,'7,'1,'3,'7,'2,'3,'7,'3 .BYTE '3,'7,'4,'3,'7,'5,'3,'7,'6,'3,'7,'7 .END START