Type 340 display problems

40 views
Skip to first unread message

Francis King

unread,
Jan 30, 2026, 12:16:59 PM (12 days ago) Jan 30
to PiDP-10
Hello.

This is my code fro drawing a square on the Type 340 display. However, although it displays a square, it is n the wrong place. I draw a point at decimal coordinates (400,400), and my understanding is that this is the starting point for other types of drawing. However my square of width and height 200 pixels (100 size, scale factor x2) wh ch I subsequently draw is well to the left of the point.

Please can I ask someone to run the code below and see if they get the same result

Also, I tried to use character mode, and it produced nonsensical characters. Does this feature exist on PiDP-10?

title Draw a square

A=1
DIS=130
N=4

define display data
    conso DIS, 200
     jrst .-1
    datao DIS, data
termin

start:    seto A,
          .iotlsr A,
          cono DIS,100
init:     MOVSI A, -N  
loop:     display TABLE(A)
          AOBJN A, loop
          JRST init
table:    XWD 020114,220620     ;  point parameter, draw point
          XWD 020620,100134         ; draw point, vector parameter
          XWD 262000,200144        ; draw four sides and escape
          XWD 362000,700344
end start

Lars Brinkhoff

unread,
Jan 31, 2026, 1:34:11 AM (12 days ago) Jan 31
to PiDP-10
This is my code fro drawing a square on the Type 340 display.

If you are drawing a static picture, it's not ideal to output the display instructions one by one and busy wait between them.  The idiomatic way to do it is by using the .DSTART system call.  LARS;TVBROT has an example.  You are of course free to do it however you like.

Also, I tried to use character mode, and it produced nonsensical characters. Does this feature exist on PiDP-10?

Yes, it's implemented.  Phil Budne did this work.  Maybe your problem is that the character codes are not ASCII or SIXBIT.

Francis King

unread,
Jan 31, 2026, 5:04:08 PM (11 days ago) Jan 31
to PiDP-10
Hello Lars,

     Thank you for your comments.

     I agree that .DSTART would be more efficient. I'll try to understand LARS;TVBROT. The problem is if you create a tight loop for the interrupts the system locks up. The HALT sequence we tried didn't improve things. Using CONSO works better, it seems to have enough slack built in to allow for F1 to work in a KNIGHT TV terminal.

    The problem that I found is in the code. I drew a point at decimal location (400,400). Then setting the scale to x2, I wrote a square of 100 x 100 decimal size. So, the square should, by my understanding, go from decimal location (400,400) to (600,600). In practice, the square was smaller, ignoring the scale factor, and was far to the left of (400,400).

    As for the characters, I gave the system 4 x 18-bit word, with SIXBIT characters for Hello world. The SIXBIT space is the same value as Escape, 00(8) as space, so I replaced space with an underscore. I added an escape athte end. So, irrespective of the encoding, I should get out 11 characters - but I'm getting many more than this. And the characters weren't drawn from the point at (400,400), but again tp the left.
Reply all
Reply to author
Forward
0 new messages