From 5d34b6a5d7ef926e1b789d01c4fcd9fd99620477 Mon Sep 17 00:00:00 2001 From: Lars Brinkhoff Date: Fri, 10 Apr 2020 20:17:33 +0200 Subject: [PATCH] Files originally from the archive file IMLAC; IML DEVICE. --- doc/imlac/toggle.info | 150 ++++++++++++++++++++++++++++++++++++++++++ src/imsrc/tst8k4.1 | 56 ++++++++++++++++ 2 files changed, 206 insertions(+) create mode 100644 doc/imlac/toggle.info create mode 100644 src/imsrc/tst8k4.1 diff --git a/doc/imlac/toggle.info b/doc/imlac/toggle.info new file mode 100644 index 00000000..7e59fbee --- /dev/null +++ b/doc/imlac/toggle.info @@ -0,0 +1,150 @@ +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 +   \ No newline at end of file diff --git a/src/imsrc/tst8k4.1 b/src/imsrc/tst8k4.1 new file mode 100644 index 00000000..cc296beb --- /dev/null +++ b/src/imsrc/tst8k4.1 @@ -0,0 +1,56 @@ +TITLE TST8K4 (PDS4 VERSION) + +MAXADR=37777 +PDS4=1 +MOUSE=0 +.LSTOF +.INSRT DSK:IMLAC;IMDEFS > +.LSTON +.ADDR.=1 + +; this file contains 8k addressing mod tests: +; it is started at location 100. Bit 15 dataswitch toggles DADR +; instruction to DOPR+0 or DOPR+1. +; a) if 8k addressing DOES NOT____ ___ work, a small square will be drawn +; in the lower left corner of the screen, even with DSB 15 up. +; b) if 8k addressing DOES____ work, a small square will be drawn in the +; upper right corner of the screen. + +LOC 100 + +START: LDA + AND [1] + SBR + DAC MODE + LAW DLIST + DLA + DON + DSN + JMP .-1 + JMP START + +DLIST: DSTS 1 +MODE: DADR + DJMP HILIST + +LOLIST: DGD + DLXA 100 + DLYA 100 + DLV B,100,0 + DLV B,0,100 + DLV B,-100,0 + DLV B,0,-100 + DHLT + +LOC LOLIST+10000 + +HILIST: DGD + DLXA 3100 + DLYA 3100 + DLV B,100,0 + DLV B,0,100 + DLV B,-100,0 + DLV B,0,-100 + DHLT + +END START