TITLE TOGGLE -- Short toggle-in diagnostics (PDL) ; Do not assemble this file! ; This file contains several useful diagnostics that are intended to ; be toggled in. They are mostly TTY testers of one sort or another, ; so it would be stupid to try and assemble and load them in almost ; all cases! ; Any of them (except the 8k display test) may be toggled in at 10000 ; instead of 0 to use them in conjunction with an SSV. ;................................................................... ; 1) TTY Continuous Send, No Flag Check ; This program sends the character stored in location 101 at a rate ; determined by the console switch settings. The higher the number ; in the switches, the longer the wait between transmits. It is mostly ; useful in conjunction with a scope to see if characters are in fact ; being transmitted. With switch setting of 400 octal there will be ; approximately 1 ms. between transmits. LOC 0 or 10000 LDA ; 0/ 100041 ; read switches CIA ; 1/ 100006 ; make into negative number DAC 100 ; 2/ 020100 ; save it ISZ 100 ; 3/ 030100 ; don't skip until runs out JMP .-1 ; 4/ 010003 ; loop LAC 101 ; 5/ 060101 ; get character to send TPC ; 6/ 001043 ; send character JMP 0 ; 7/ 010000 ; loop to read switches ;................................................................... ; 2) Continuous Send on Count in Memory ; This program is similar to (1), but has the delay count stored in ; memory and read the character to send from the data switches. LOC 0 or 10000 LAC 10 ; 0/ 060010 ; get delay time CIA ; 1/ 100006 ; make it negative DAC 100 ; 2/ 020100 ; save it ISZ 100 ; 3/ 030100 ; delay over? JMP .-1 ; 4/ 010003 ; no LDA ; 5/ 100041 ; yes, read switches TPC ; 6/ 001043 ; send character JMP 0 ; 7/ 010000 ; loop 10000 ; 10/ 010000 ; delay time ;................................................................... ; 3) Continuous Send on Flag ; This program sends the data switch contents continuously, on the ; TTY done flag. If the TTY done flag is malfunctioning, the program ; will stay in tight loop at 2-3. LOC 0 or 10000 LDA ; 0/ 100041 ; read switches TPC ; 1/ 001043 ; send data switches TSF ; 2/ 002100 ; done sending? JMP .-1 ; 3/ 010002 ; no JMP 0 ; 4/ 010000 ; loop ;................................................................... ; 4) Echo Test ; This program reads the console switches and transmits the result, ; then waits for it to be echoed. It uses the TTY transmit and TTY ; read flags. The character last received from the TTY is displayed ; in the accumulator lights. If the TTY done flag is not working, ; the program will loop at 0-1. If the TTY receive flag is not work- ; ing, the program will loop at 4-5. If the characters being received ; are not the same as those being sent, the ac will be different from ; the value in the data switches. LOC 0 or 10000 TSF ; 0/ 002100 ; tty done sending? JMP .-1 ; 1/ 010000 ; no LDA ; 2/ 100041 ; read character to send TPC ; 3/ 001043 ; send character RSF ; 4/ 002040 ; tty has character? JMP .-1 ; 5/ 010004 ; no CLA ; 6/ 100001 ; clear ac for read RRC ; 7/ 001033 ; read character from tty JMP 0 ; 10/ 010000 ; loop ;................................................................... ; 5) Ding! ; This program dings the bell for each character received. Any length ; of ringing desired may be had by increasing the number of BELs put ; in before the JMP 0. The character read is displayed in the ac. LOC 0 or 10000 RSF ; 0/ 002040 ; tty has char? JMP .-1 ; 1/ 010000 ; no CLA ; 2/ 100001 ; clear ac RRC ; 3/ 001033 ; read character BEL ; 4/ 001711 ; ding! JMP 0 ; 5/ 010000 ; loop ;................................................................... ; 6) 8k Display Addressing Test ; This program tests the DMS IMLAC 8K Display Addressing Mode. If ; this mode is working, a small dot will appear near the center of ; the screen. If the mode is not working, no dot will appear. For ; this test to work the machine should also have suppressed grid ; hardware (or replace the DGD by a DJMS DWAIT routine). This will ; be neccessary if the machine is an Alpha machine, in which case the ; dot will appear in the lower left as well. LOC 100 LAW 106 ; 100/ 004106 ; display list address DLA ; 101/ 001003 ; load dpc DON ; 102/ 003100 ; start display DSN ; 103/ 102010 ; display off? JMP .-1 ; 104/ 010103 ; no JMP 100 ; 105/ 010100 ; yes, loop DHVS 1 ; 106/ 006005 ; startup DADR ; 107/ 004001 ; turn on 8k addressing DGD ; 110/ 777771 ; part of set point DLXA 1000 ; 111/ 011000 ; set point to center DLYA 1000 ; 112/ 121000 ; of screen DJMP .+10001 ; 113/ 160114 ; jump to high core DHLT ; 114/ 000000 ; halt LOC .+10000 DDSP ; 10114/ 004020 ; display dot DHLT ; 10115/ 000000 ; halt ;................................................................... END