Code Monkey home page Code Monkey logo

Comments (47)

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

From DECUS 7-13, [PDP-7] 340 DISPLAY PROGRAMMING MANUAL.

340a

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

From H-340 TYPE 340 PRECISION INCREMENTAL CRT DISPLAY.

340b

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

@philbudne pointed out that the point size is larger than the point spacing. I can believe that. Compare the simulated MacHack display with a film frame. Also, note how the top text seems to sit too far to the right.

chess

machackdisplay02

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

@qu1j0t3, do you have any input?

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

TABLE 3 doesn't seem to be entirely consistent. Especially the distance for 127 points seems off. At point spacing .0091" the computed distances ought to be:

Number of points Documented Computed
1 .04 .04
2 .05 .04 + 1×.0091 ≈ .049
4 .06 .04 + 3×.0091 ≈ .067
8 .09 .10
16 .17 .18
32 .31 .32
64 .60 .61
127 1.32 1.19

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

The display is documented to be 9 and 3/8 inches. Divided by 1024, that comes to .0091" per point, which is as per the comment to TABLE 3.

This is also roughly consistent with TABLE 3, where difference in distances are between .007 and .010, except for the 127 row.

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

340 DISPLAY PROGRAMMING, page 2.

At scale setting 112, each point can be clearly distinguished. At scale setting 002, lines and symbols appear to be continuous.

Note that scale and intensity settings are interrelated. For example, if characters are drawn (with the character generator) at the lowest scale setting, and too high an intensity is used, they will be badly blurred. On the other hand, if many characters are to be displayed simultaneously or if the light pen is to be used, it is best to use as high an intensity level as possible.

from simh.

psubjj3 avatar psubjj3 commented on June 2, 2024

I don't remember anything unusual about scale. I used scale 3 to draw a grid over the bottom 3/4 of the screen, primarily for light pen detects but also to indicate position (this being a CAD program). I don't remember any issues, my code contains nothing odd. Light pen was never all that accurate, at the time I did this (1978) Mouse House was selling mice to the public so I interfaced one of them to behave like the light pen but without the limitations, that of course worked much better. Had the displayed picture been wrong I would have adjusted the software, which I didn't, so I assume the display of scaled vectors was good.

Thinking about the hardware, given the technology available, it would not have been possible to scale at anything other than powers of two, it would require an adder. There must have been analog issues in the beam deflection, scaling did not change timing, spot had to move further in the same time, perhaps that's what Feed Forward Load Resistor is all about in table 3-2? Maybe somebody had defective hardware? But that wouldn't be a cumulative change, the digital portion could not be off.

Table 3 is very suspicious to me. It covers line length with a vector of length 1, a little odd since a vector of length 1 has only 1 point (340 does not display the first point of any vector).

The 340 disagnostics I used, and converted to a TOPS-10 user mode program, appears to fully test scale mode. I don't rememer it's display ever being off.

I really should configure the 340 on my simulator and try this stuff.

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Thank you, that's very good information.

Yes, table 3 is a bit weird. Consider the remark "This applies to increment mode if the previous point is intensified". If you take that to mean there already is a .03" point (number 0 if you will), and all additional points add .0091" times scaling, then it mostly makes sense. Except the bottom line!

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Hello @rmaldersoniii,

Do you have any experience with the Type 340 at the museum, or elsewhere?

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

More MacHack footage:
https://www.csail.mit.edu/node/6632

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Mathlab: https://www.csail.mit.edu/node/6621

Portions of the 340 character set it visible. Unfortunately nothing lower case.

Also brief MacHack appearances.

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

According to William Ninke, about 200 inches of line drawing or 1,000 characters could be displayed flicker free at 30 frames per second

http://www.cadhistory.net/04%20The%20Second%20Half%20of%20the%201960s.pdf

200 inches should be 21845 points.

from simh.

philbudne avatar philbudne commented on June 2, 2024

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Is this the hardware that was used to run Space Travel on the PDP-7?

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Regarding point size, I unceremoniously hacked point() in type340.c to add eight more points around the specified coordinates. I think this results in a considerably more vivid display, and maybe closer to the screenshots we have.

I tried to reduce the intensity of the added points, but it seems the dynamic range of intensities offerend by display.c isn't large enough. Even the dimmest intensity is quite bright.

I envision a GLSL implementation where maybe there's a floating point buffer for each phosphor, modeling the energy of display areas. Then a separate pass would render this to the screen.

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Screenshot from https://www.masswerk.at/spacewar/:

spcwar

from simh.

philbudne avatar philbudne commented on June 2, 2024

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Stan Kugell writes about 340D, the Datapoint terminal emulator:

Also the slow refresh rate of the 340 had to be considered. Using full width and height, full of text, the refresh rate was painfully slow. Better than using TECO on a TTY, but not optimal either. There are some things it would be difficult to simulate - color for example. The display’s phosphor had a bluish tiny when painted with the electron beam, and a long yellow-green decay. When full of text, the sweep of the beam painting letters from top to bottom, the color and intensity gradient behind the beam, was very noticeable.

I tested this right now, making a screen full of 66x35 characters. The current version of the 340 simulation doesn't suffer noticeably.

from simh.

philbudne avatar philbudne commented on June 2, 2024

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Yes, maybe the CPU is too fast. Another possibility is that the ratio between the 340 update rate and the CPU speed is off.

I think SIMH has some kind of CPU throttling, but I have never tried it. @rcornwell, does your KA10 simulator support this?

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Another thing I noticed is that the display looks mostly white when static. According to Kugell, and also the JavaScript screenshot, maybe it should look more blue.

from simh.

rcornwell avatar rcornwell commented on June 2, 2024

Yes, CPU throttle works. Idle detection also works. Any AOJx . SOJx . in a register is considered an idle loop.

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Another piece of information. When you open the DIS: device, it computes the display size in characters based on the scale factor:

        LDB TT,[40200,,CSCALE]
        MOVNS TT
        MOVEI T,170.
        LSH T,(TT)
        TRZ T,7
        MOVEM T,DISCHS  ;CHARS THAT WILL FIT THIS SIZE
        MOVEI T,88.
        LSH T,(TT)
        MOVEM T,DISLNL  ;LINES THAT WILL FIT

It looks to me at scale factor 1 the display is 170x88 characters! 170 is way more than 1024/7.

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Would it be possible that the MIT 340 was modified to have characters 6 points apart horizontally?

from simh.

philbudne avatar philbudne commented on June 2, 2024

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

I think you've swapped horizontal and vertical, and forgotten about spacing

No, I really mean horizontal. But I worded it badly.

The PDP-7 340 manual says "Space (408) moves the beginning location 7 units to the right", and "after each character is drawn, the beginning location is moved 2 units past the lower right corner to correctly space the next character". So the available documentation clearly says the character grid is 7 points horizontally, and your simulation faithfully implements this.

However, ITS says there should be 170 characters horizontally. This works out to 6 points per character.

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

This would explain anomalies in MacHack and PEEK.

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

PEEK computes this value from the light pen coordinates. I think this means the character cell size is 12x18. Since scale factor 2 is used, this would be 6x9 at scale 1.

(x-12)/(12*8)+6*((960-y)/18-1)

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

According to William Ninke, about 200 inches of line drawing or 1,000 characters could be displayed flicker free at 30 frames per second

200 inches should be 21845 points.

21845 × 1.5 𝜇s is 0.032, so that seems to work out.

I also get 33 𝜇s per character.

from simh.

philbudne avatar philbudne commented on June 2, 2024

from simh.

psubjj3 avatar psubjj3 commented on June 2, 2024

As I understood the 340 hardware, vectors are plotted at 1.5 uS per point, no matter what. So if you have a scale of 8, you cover 8 times the distance in the same interval. Points were not dimmed though I never paid attention to see if they were stretched a bit (from beam not being fully settled). Wasn't a problem in my setup (scaled vectors used to draw a grid).

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Interesting, but seems anectotal-ish.... ISTR some manuals specified times for command execution movement and settle time.

Agreed, it's not the most reliable information. But it so happens to agree with the manuals.

The available manuals agree on this:

Operation Time
Data transfer 3 µs
Random positioning 35 µs
Incremental positioning 1.5 µs
Character 1.5 µs per point, 35 µs on average
Intensification 0.5 µs

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

So if you have a scale of 8, you cover 8 times the distance in the same interval.

Does the scaling apply to vector mode, i.e. are the points spaced further apart? The current simulation draws a solid line regardless of the scale. (The length of the vector is scaled of course.)

from simh.

psubjj3 avatar psubjj3 commented on June 2, 2024

Yes vector scaling places the points further apart, it does not affect the number of points plotted, only the spacing.

from simh.

psubjj3 avatar psubjj3 commented on June 2, 2024

Drawing a continuous line would have been impractical in a device built from discrete transistors. The two rate multipliers (BRM) would have to be lengthened from 7 bits to 10 bits. If that were done there would be a strong temptation to lengthen the vectors from 7 to 10 bits since all the hardware would have been present to plot the longer vectors.

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Reducing the character spacing seems to solve all points raised in the first comment above. I think the position of the text in this simulator screenshot matches the film frame.

machack

from simh.

philbudne avatar philbudne commented on June 2, 2024

from simh.

philbudne avatar philbudne commented on June 2, 2024

from simh.

qu1j0t3 avatar qu1j0t3 commented on June 2, 2024

Some of us might take that as a challenge…

from simh.

psubjj3 avatar psubjj3 commented on June 2, 2024

The 340 vector drawing cycle is 1uS for moving to the next point with the beam off, than a stable 0.5uS with the beam on for drawing the point. So hopefully the beam is never moving while it's on. There are no jaggies because the spot size is bigger than the point size otherwise you'd see the entire display was made up of points.

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

I think this is text on a real 340 display. (Except the comma doesn't look like the simulated one.) Compared against simulation.

I think the photo supports the narrower character spacing. This simulator screen shot has not been updated with this.
340-real
340-sim

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

Source: https://archive.org/details/AIfilms/104-mac.mp4

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

I got this from https://archive.org/details/AIfilms/75-logo.mp4 I believe this is text on the 340 display. There's not much to go on, but at least the upper case characters match the documentation and the comma matches the screenshot above.

So here is a sample of lower case text. We have a, b, d, e, g, h, i, k, l, n, o, r, t, u, w, y. Missing: c, f, j, m, p, q, s, v, x, z.

mystery

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

text

From AI memo 276:

                Mg X intensity from OSO-VI
                  August 1969 - May 1970

                  Solar Satellite Project
                Harvard College Observatory
            Supported by NASA through contracts
            NAS 5-9274 and grant NGR 22-007-211.

        Artificial Intelligence Laboratory, M.I.T.
   Supported in part by ARPA of DoD and monitored by ONR
       under Contract Number N000 14-70-A-0362-0003.

   Solar Satellite Project      Dr. Edmond Reeves
           Mg X experiment      Dr. George Withbroe
astronomy data programmers      Judy Smith and Pat Thomas
            cinematography      Michael Beeler

                           1972

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

ITS source code. Given the date of the film, this may be PDP-6 ITS. But more importantly in this context, we see a down arrow. I can't quite see the characters after it.

its

from simh.

larsbrinkhoff avatar larsbrinkhoff commented on June 2, 2024

I think it's "↓14" to indicate a FF character.

from simh.

Related Issues (5)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.