IDENT DSD,0 TITLE MSM --- MUX SIMULATOR (IDENT DSD) PERIPH EJECT DSPCHN EQU 10B MUXCHN EQU 6 MUXRD EQU 7774B MUXWRT EQU 7763B * * KTRYS EQU 5 NUMBER OF INPUTS TO SKIP OUTTIME EQU 2 COUNTS BEFORE SENDING OUTPUT READY * * I.POINTS EQU 22B MSMPNT EQU 3 FLASH EQU 0 CTLCHAR EQU 55B MUXWRBIT EQU 400B EJECT ORG 0 VFD 12/START-1 ORG 20B X1 BSSZ 1 X2 BSSZ 1 LINE VFD 12/LINES WORD DATA 0 ORG 100B START EQU * LDN 15 SBN 1 NJN *-1 MLOOP RJM DISPLAY RJM KEYBRD RJM CHKPPU RJM COUNTOUT RJM SETCONT UJN MLOOP EJECT * * DRIVE DISPLAY SCREEN * LJM 0 DISPLAY EQU *-1 LDN FLASH NJN DISPLAY-1 FNC 7000B,DSPCHN ACN DSPCHN LDM OUTLINE STD X1 ADN 1 STM DSPLAY1+1 LDI X1 DSPLAY1 OAM 0,DSPCHN LDI LINE SBN 3 SHN 4 ADC 6000B OAN DSPCHN LDC 7000B OAN DSPCHN LDI LINE ADD LINE STD X1 LDI X1 NJN SECOND LDC 2R1 OAN DSPCHN UJN CURSDONE SECOND LDC 2R 1 OAN DSPCHN CURSDONE DCN DSPCHN LDC 53 RAM OUTLINE ADC -LIMIT MJN RTNDSP LDC LINES STM OUTLINE RTNDSP LJM DISPLAY-1 * OUTLINE VFD 12/LINES EJECT * * READ INPUT KEYBOARD * CONTRL LDM INCHARS,X1 ADC -100B STM INCHR SETSPCL LDM FLAG LMN 1 SWITCH TOGGLE STM FLAG LJM 0 KEYBRD EQU *-1 SOM KEYBRDC PJN KEYBRD-1 LDN KTRYS STM KEYBRDC FNC 7020B,DSPCHN READ KEYBORD ACN DSPCHN IAN DSPCHN DCN DSPCHN ZJN KEYBRD-1 STD X1 LDM FLAG NJN CONTRL SENSE SPECIAL MODE LDD X1 SBN CTLCHAR ZJN SETSPCL SENSE SPECIAL MODE INDICATOR LDM INCHARS,X1 STM INCHR UJN KEYBRD-1 * * KEYBRDC DATA 0 INCHR DATA 0 FLAG DATA 0 SPECIAL CHARACTER MODE EJECT * * CHECK MUX PPU * LJM 0 CHKPPU EQU *-1 IJM CHKPPU-1,MUXCHN EJM CHKPPU-1,MUXCHN IAN MUXCHN LMC MUXRD ZJN *+3 LJM CHKPPUW MUST HAVE BEEN A WRITE REQUEST * CHKPPUR DCN MUXCHN READ REQUEST IJM *,MUXCHN LDN 3 OAM MUXCONT,MUXCHN NJN CHKPPU-1 STM MUXCONT UJN CHKPPU-1 * CHKPPUW LMC MUXRD LMC MUXWRT NJN CHKPPU-1 DONT RECOGNIZE REQUEST * DCN MUXCHN WRITE REQUEST IJM *,MUXCHN EJM *,MUXCHN LDN 2 IAM MUXGET,MUXCHN RJM NEWCHR GOT A NEW CHARACTER FOR OUTPUT LJM CHKPPU-1 * * MUXCONT DATA 0 DATA 1 DATA 0 EJECT * * SET CENTRAL MUX CONTROLS * LJM 0 SETCONT EQU *-1 LDM MUXCONT NJN SETCONT-1 LDM INCHR NJN SETCONTR LDM WFLAG ZJN SETCONT-1 * LDC MUXWRBIT+1 STM MUXCONT+1 LDN 1 STM MUXCONT LDN 0 STM WFLAG UJN SETCONT-1 * SETCONTR LDC 1B STM MUXCONT+1 LDN 1 STM MUXCONT LDM INCHR LMC 377B STM MUXCONT+2 LDN 0 STM INCHR LJM SETCONT-1 EJECT * * COUNT DELAY UNTIL SIGNAL CHAR OUT * LJM 0 COUNTOUT EQU *-1 LDM OUTCNT ZJN COUNTOUT-1 SOM OUTCNT NJN COUNTOUT-1 LDN 1 STM WFLAG UJN COUNTOUT-1 * OUTCNT DATA 0 WFLAG DATA 0 EJECT * * NEW CHARACTER OUTPUT FROM MUX PPU * LJM 0 NEWCHR EQU *-1 LDC OUTTIME STM OUTCNT LDM MUXGET+1 LMC 1774B STM MUXGET+1 LDM MUXGET+1 SHN -2 LPC 177B STD X1 LDM OUTCHARS,X1 STM STCHAR LDN FLASH ZJN *+3 LJM FLASH1 LDM STCHAR SCN 77B ZJN NEWCHR2 LDM STCHAR LPN 3B STD X1 LDM NEWCHR1,X1 STD X1 LJM 0,X1 * NEWCHR1 VFD 12/NEWCHR-1 VFD 12/CR VFD 12/LF VFD 12/NEWCHR-1 VFD 12/NEWCHR-1 * NEWCHR2 LDD LINE ADI LINE STD WORD LDI WORD NJN ADDBYTE LDM STCHAR SHN 6 STI WORD LJM NEWCHR-1 ADDBYTE LDM STCHAR RAI WORD AOD WORD AOI LINE SBN 2+32 MJN *+3 SOI LINE SOD WORD LDN 0 STI WORD LJM NEWCHR-1 * CR LDN 2 STM STPOS LJM NEWCHR-1 * * LF LDD LINE ADN 53 STD LINE ADC -LIMIT MJN LF1 LDC LINES STD LINE LF1 LDN 3 STI LINE ADD LINE STD WORD LDN 0 STI WORD LDD LINE ADN 1 STD WORD LDC 7020B STD X1 SETCOOR LDD X1 STI WORD .. SET Y COOR ADN 16 STD X1 SHN -12 NJN RTN LDD WORD ADN 53 STD WORD ADC -LIMIT MJN SETCOOR LDC LINES+1 STD WORD LJM SETCOOR RTN LJM NEWCHR-1 LJM NEWCHR-1 * STLINE VFD 12/LINES STPOS DATA 2 STCHAR BSSZ 1 * * MUXGET BSSZ 2 * * * FLASH1 LDM STCHAR SCN 77B ZJN FLASH2 LDM STCHAR LPN 3B STD X1 LDM SPCHR,X1 STM VIEW UJN FLASH3 FLASH2 LDM STCHAR LPN 77B ADC 5500B STM VIEW FLASH3 FNC 7000B,DSPCHN ACN DSPCHN LDN 7 OAM FLASHX,DSPCHN DCN DSPCHN LJM NEWCHR-1 * * SPCHR DATA H* CRLF * * FLASHX DATA 7400B,6500B,5555B,0000B,6500B,5555B VIEW DATA 0 EJECT * * LINES BSS 0 POS SET 760B DUP 31 DATA 3 VFD 12/7000B+POS VFD 12/6000B BSSZ 50 POS SET POS-20B ENDD LIMIT EQU * EJECT * * DISPLAY TO ASCII CODE CONVERSION * INCHARS DATA 0 DATA 101B,102B,103B,104B,105B,106B,107B DATA 110B,111B,112B,113B,114B,115B,116B,117B DATA 120B,121B,122B,123B,124B,125B,126B,127B,130B DATA 131B,132B DATA 60B,61B,62B,63B,64B,65B,66B,67B,70B,71B DATA 53B,55B,52B,57B,50B,51B,12B,75B,0,54B,56B DATA 15B,2000B,40B,0,0,0,0 DATA 0,0,0,0,0,0,0,0 EJECT * * ASCII TO DISPLAY CODE CONVERSION * OUTCHARS EQU * DUP 10,1 DATA 0 DATA 1002B LINE FEED DATA 0,0 DATA 1001B CARRIAGE RETURN DATA 0,0 * DUP 16,1 DATA 0 * DATA 55B DUP 7,1 DATA 0 DATA 51B,52B,47B,45B,56B,46B,57B,50B * DATA 33B,34B,35B,36B,37B,40B,41B,42B,43B,44B DATA 0,0,0,54B,0,0 * DATA 0,1,2,3,4,5,6,7,10B,11B,12B,13B,14B,15B,16B,17B * DATA 20B,21B,22B,23B,24B,25B,26B,27B,30B,31B,32B DATA 0,0,0,0,0 * DUP 16,1 DATA 0 * DUP 16,1 DATA 0 END