Matt1234
Posts: 33
Joined: Mon Aug 06, 2012 12:34 pm

What is the LOWEST level language??

Sat Sep 29, 2012 12:10 pm

Hello,

At the moment I feel like a total noob!!!

Anyway I was wondering if anyone could tell me what the lowest level language is? I know there is assembly language but surely one language must tell what pixel to turn on or off???

Please enlighten me!

User avatar
joan
Posts: 14763
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: What is the LOWEST level language??

Sat Sep 29, 2012 12:18 pm

Machine code. Everything ends up as a list of cpu instructions. Assembler tends to have a more one-to-one relationship.

But you won't necessarily find a machine code instruction to switch a pixel. If the display is memory mapped then flipping a bit might change the state of a monochrome pixel. On a modern colour display there might be 8 bits for red, green, blue for each pixel plus 8 bits of intensity data.

Matt1234
Posts: 33
Joined: Mon Aug 06, 2012 12:34 pm

Re: What is the LOWEST level language??

Sat Sep 29, 2012 2:48 pm

Thanks for the quick answer...

But still!

I am still left wondering how the first proper computer was told to display stuff... SURELY someone must have developed Machine Code but how?

Thanks again

User avatar
joan
Posts: 14763
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: What is the LOWEST level language??

Sat Sep 29, 2012 3:49 pm

It's a vast topic.

Arguably you could date machine code from http://en.wikipedia.org/wiki/Jacquard_loom

Have a look at http://en.wikipedia.org/wiki/Instruction_set

User avatar
Burngate
Posts: 6227
Joined: Thu Sep 29, 2011 4:34 pm
Location: Berkshire UK Tralfamadore
Contact: Website

Re: What is the LOWEST level language??

Sat Sep 29, 2012 4:02 pm

You're looking at the hardware level - the gates that make up the processor.

A set of switches to determine ones and zeros, a set of storage cells - memory - in which to put those digits, and a counter to determine which cells they go in. Set up the switches, press a button, and those get stored, then the counter increments.

What those digits mean is determined by the processor - an instruction decoder and an ALU. Where data comes from and where it goes is determined by the instruction, which sets gates to let data through from/to latches forming registers or from/to memory. And a special register which is also a counter - the program counter - decides which memory location the instruction comes from.

As for writing to a screen, the first ones didn't - they put out 8-bit (or 7-bit or 5-bit) codes that the hardware of a teletype understood, and a spinning ball was clouted by a hammer when the right character was opposite the paper. Later a chip with a font inbuilt interfaced between a bit of memory and the scanning circuitry of a CRT.

jardino
Posts: 130
Joined: Wed Aug 08, 2012 9:03 am
Location: Aberdeenshire, Scotland

Re: What is the LOWEST level language??

Sat Oct 06, 2012 12:48 pm

Not strictly true, Burngate.

Computer output devices used both Cathode-Ray Tube (CRT) devices and hard-copy devices over the years.

In 1949, the first (British) stored-program computer, EDSAC, used a CRT, derived from radar displays, for its binary output. (Input was by means of a rotating telephone dial!) See http://www.dcs.warwick.ac.uk/~edsac/ , where you can download an EDSAC simulator for your PC or Linux machine. (I haven't tried it on my RPi yet.)

Then, for high-volume printed ouput, the industry moved towards line printers. Those machines were built around a horizontal drum which contained lines of 120 or more characters arranged as:

EEEEEEEEEEEEEEEEEEEE ...
TTTTTTTTTTTTTTTTTTTTTTTT ...
OOOOOOOOOOOOOOOOOO ...
AAAAAAAAAAAAAAAAAAA ...
NNNNNNNNNNNNNNNNNNNN ...

Opposite each letter position was a hammer and between the row of hammers and the drum were the paper and an ink ribbon.

The drum rotated at high speed and as each letter for the required output line came under the row of hammers, appropriate hammers were fired at the drum.

So the output line:
THE QUICK BROWN FOX" (only capitals were available) would be printed as:
E then,
T then,
O O then,
N then,
F ... and so on.

(Hope word-wrapping doesn't mess the foregoing up!)

The lines of letters were arranged in sequence according to the frequency of letter usage in the English language. Other languages had different sequences.

See the Wikipedia entry at http://en.wikipedia.org/wiki/Line_printer for pictures and more details.

Other variants of line printers included chain and band printers.

For low-volume output, CRTs (or VDUs) based on TV technology became popular again. The first one I commisioned was a Cossor shadow-mask device, so called because a stencil-like mask of characters (upper-case only, I think) was interposed between the cathode ray and the screen. By pointing the cathode-ray beam appropriately, letters and numbers could be painted on the screen. Not very flexible, though.

Both line printers and CRTs, of course, are output-only devices. To allow operator input, a keyboard of some form had to be provided. So a logical step was to use teletype techology, which was adapted from typewriter technology, to combine operator input and output into a single, handy device.

Early devices used the first typewriter technology of flying typebars, which were prone to jamming. (Did you know that the QWERTY keyboard that we all have even now was designed to be inefficient, to prevent fast typists jamming the machine?) At least, we now had lower-case letters!

However, typewriter and teletype technology moved on to having a drum of letters, then a flat matrix of letter pins, which moved up and sideways over the printed sheet to be hit by a hammer device. This is the techology, which culminated in the IBM Selectric golfball typewriter, that I think you are referring to.

Nowadays, of course, output is enabled by high-graphic CRT or LED displays (and inkjet and laser printers), with separate input devices. Has much changed from the days of EDSAC? ;)

I hope that adds to the discussion. If I've missed any old technologies, let me know.

Cheers,
Alan.
IT Background: Honeywell H2000 ... CA Naked Mini ... Sinclair QL ... WinTel ... Linux ... Raspberry Pi.

User avatar
joan
Posts: 14763
Joined: Thu Jul 05, 2012 5:09 pm
Location: UK

Re: What is the LOWEST level language??

Sat Oct 06, 2012 1:02 pm

Punch cards? Certainly used as inputs and I think as outputs when I was at University in the, er, ummh, last century.

pygmy_giant
Posts: 1562
Joined: Sun Mar 04, 2012 12:49 am

Re: What is the LOWEST level language??

Sat Oct 06, 2012 1:20 pm

I got my name printed out on a punch card at the Wigan Raspberry Jam - it was used up untill a few years ago by an engineering firm to load cnc data into gear cutting machinery
Ostendo ignarus addo scientia.

User avatar
fos
Posts: 104
Joined: Wed Nov 16, 2011 1:48 am
Location: Texas & Kansas, United States
Contact: Website

Re: What is the LOWEST level language??

Sat Oct 06, 2012 2:17 pm

Very nice explanation, Alan.

I came in with the punch cards and Fortran. I was at a university lab in Jacksonville, FL. The computer system was at the University of Florida in Gainesville. It was called NERDC for northeast regional data center. Pretty appropriate name.....

They first added a couple of CRT displays with keyboards (terminals). at the time, they were pretty unreliable and very slow. They then added tables of IBM Selectrics. I can still remember playing a version of Star Trek.

Once while still in high school, I got to visit the data center at the Atlantic Coastline RR corporate headquarters. They had a whole floor of IBM main frames. The engineer showed me a "memory board" that had rows of toroid cores wrapped with wire coils. The prices he quoted for spare parts was unbelievable in sixties dollars.

Jeff
https://faroutscience.com

tekim
Posts: 13
Joined: Fri Sep 28, 2012 7:14 pm
Location: U.K.

Re: What is the LOWEST level language??

Sat Oct 06, 2012 3:21 pm

A lower level programming would be microcode that's implemented on a risc design.
This allows the target level machine code to be changed, on some designs there can be
more than one (target level) running.

This link is to a home designed and built computer. The website has a lot of detail.

http://www.holmea.demon.co.uk/Mk1/Architecture.htm

Also of interest maybe this site:-

http://www.ict1301.co.uk/1301ccsx.htm

A 1960's computer,
input cards,
output cards,
output paper print,
input/output magnetic tape,
storage magnetic core and drum.

Still in working order and open to the public once a year.

Cheers,

User avatar
PeterO
Posts: 5623
Joined: Sun Jul 22, 2012 4:14 pm

Re: What is the LOWEST level language??

Sat Oct 06, 2012 4:23 pm

If you are interested in 1960s machines, and want more than one chance a year to see one, come and visit The National Museum of Computing. http://www.tnmoc.org/
PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
Burngate
Posts: 6227
Joined: Thu Sep 29, 2011 4:34 pm
Location: Berkshire UK Tralfamadore
Contact: Website

Re: What is the LOWEST level language??

Sat Oct 06, 2012 5:20 pm

I stand in awe of others' knowledge.

I'd also forgotten line printers.
Urban Myth - if you asked for a print-out with just one line per page, how quick would it go through a ream?
I was told - but never saw - it would stream the paper in a straight line across the room. Also got you a carpetting from the management.

And I must make time to visit the museum

User avatar
rurwin
Forum Moderator
Forum Moderator
Posts: 4258
Joined: Mon Jan 09, 2012 3:16 pm
Contact: Website

Re: What is the LOWEST level language??

Sat Oct 06, 2012 8:07 pm

You may be interested in these tutorials I wrote up earlier:
What is a Computer?
The Stored Program
How to Build a Computer

User avatar
Jongoleur
Posts: 1179
Joined: Thu Aug 11, 2011 12:47 pm
Location: O'erlooking the sea, and all those effin windfarms...

Re: What is the LOWEST level language??

Sat Oct 06, 2012 9:30 pm

jardino wrote:Not strictly true, Burngate.

Computer output devices used both Cathode-Ray Tube (CRT) devices and hard-copy devices over the years.

In 1949, the first (British) stored-program computer, EDSAC, used a CRT, derived from radar displays, for its binary output. (Input was by means of a rotating telephone dial!) See http://www.dcs.warwick.ac.uk/~edsac/ , where you can download an EDSAC simulator for your PC or Linux machine. (I haven't tried it on my RPi yet.)

.....

I hope that adds to the discussion. If I've missed any old technologies, let me know.

Cheers,
Alan.
Before EDSAC, there was the Manchester Small Scale Experimental Machine (Baby) ( http://en.wikipedia.org/wiki/Manchester ... al_Machine ) which "successfully executed its first program on 21st June 1948. That program was written by Tom Kilburn ...". That was the first to use a CRT for storage and output. If you're anywhere near the Manchester Museum of Science and Industry, pop in and have a look at the working replica. Sometimes they even have it working! The instruction set was an extreme example of RISC, there were only 7 instructions...

Its a bit bigger than a Raspberry Pi!
I'm just a bouncer, splatterers do it with more force.....

fivdi
Posts: 208
Joined: Sun Sep 23, 2012 8:09 pm
Contact: Website

Re: What is the LOWEST level language??

Sat Oct 06, 2012 10:03 pm

... don't forget the Z1, Z2, Z3, and Z4

Z1: http://en.wikipedia.org/wiki/Z1_%28computer%29
Z2: http://en.wikipedia.org/wiki/Z2_%28computer%29
Z3: http://en.wikipedia.org/wiki/Z3_%28computer%29
Z4: http://en.wikipedia.org/wiki/Z4_%28computer%29

they were also a little bigger and slower than the Raspberry Pi.

User avatar
SN
Posts: 1014
Joined: Mon Feb 13, 2012 8:06 pm
Location: Romiley, UK
Contact: Website

Re: What is the LOWEST level language??

Sun Oct 07, 2012 12:15 am

Jongoleur wrote:
jardino wrote:Not strictly true, Burngate.

Computer output devices used both Cathode-Ray Tube (CRT) devices and hard-copy devices over the years.

In 1949, the first (British) stored-program computer, EDSAC, used a CRT, derived from radar displays, for its binary output. (Input was by means of a rotating telephone dial!) See http://www.dcs.warwick.ac.uk/~edsac/ , where you can download an EDSAC simulator for your PC or Linux machine. (I haven't tried it on my RPi yet.)

.....

I hope that adds to the discussion. If I've missed any old technologies, let me know.

Cheers,
Alan.
Before EDSAC, there was the Manchester Small Scale Experimental Machine (Baby) ( http://en.wikipedia.org/wiki/Manchester ... al_Machine ) which "successfully executed its first program on 21st June 1948. That program was written by Tom Kilburn ...". That was the first to use a CRT for storage and output. If you're anywhere near the Manchester Museum of Science and Industry, pop in and have a look at the working replica. Sometimes they even have it working! The instruction set was an extreme example of RISC, there were only 7 instructions...

Its a bit bigger than a Raspberry Pi!
You missed Freddie Williams http://www.computer50.org/mark1/williams.html the guy who invented the Williams Tube "which was a CRT for storage!" Important to me as he was born where I live.
Steve N – binatone mk4->intellivision->zx81->spectrum->cbm64->cpc6128->520stfm->pc->raspi ?

pygmy_giant
Posts: 1562
Joined: Sun Mar 04, 2012 12:49 am

Re: What is the LOWEST level language??

Sun Oct 07, 2012 12:45 am

Regarding the title of this thread, if one could work out how to do sarcasm in binary, then that would surely be the lowest form of wit.

Maybe something like:

!1

i.e. " thats sooo true (not!) "
Ostendo ignarus addo scientia.

User avatar
jackokring
Posts: 816
Joined: Tue Jul 31, 2012 8:27 am
Location: London, UK
Contact: ICQ

Re: What is the LOWEST level language??

Sun Oct 07, 2012 12:53 am

If language is a symbolism, then excessive electron densities beyond the normal proton-electron balance would be the lowest representation of zero and one. The extra semantics and higher functional calculus of higher level languages would not be present in this low level language.
Pi[NFA]=B256R0USB CL4SD8GB Raspbian Stock.
Pi[Work]=A+256 CL4SD8GB Raspbian Stock.
My favourite constant 1.65056745028

GrayHatter
Posts: 18
Joined: Tue Sep 25, 2012 6:29 pm

Re: What is the LOWEST level language??

Sun Oct 07, 2012 12:59 am

jardino wrote:Early devices used the first typewriter technology of flying typebars, which were prone to jamming. (Did you know that the QWERTY keyboard that we all have even now was designed to be inefficient, to prevent fast typists jamming the machine?) At least, we now had lower-case letters!
A popular myth is that QWERTY was designed to "slow down" typists though this is incorrect – it was designed to prevent jams[4] while typing at speed, allowing typists to type faster.[5]

http://en.wikipedia.org/wiki/QWERTY#His ... d_purposes

User avatar
PeterO
Posts: 5623
Joined: Sun Jul 22, 2012 4:14 pm

Re: What is the LOWEST level language??

Sun Oct 07, 2012 7:13 am

Slightly more "on topic".... If you are interested in learning more about 1960s computers, then I'll be releasing this soon:
http://www.peteronion.org.uk/Elliott-80 ... _scrot.png

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
RaTTuS
Posts: 10539
Joined: Tue Nov 29, 2011 11:12 am
Location: North West UK
Contact: Twitter YouTube

Re: What is the LOWEST level language??

Sun Oct 07, 2012 7:26 am

Z80's where designed as a display processor!
How To ask Questions :- http://www.catb.org/esr/faqs/smart-questions.html
WARNING - some parts of this post may be erroneous YMMV

1QC43qbL5FySu2Pi51vGqKqxy3UiJgukSX
Covfefe

fivdi
Posts: 208
Joined: Sun Sep 23, 2012 8:09 pm
Contact: Website

Re: What is the LOWEST level language??

Sun Oct 07, 2012 8:08 am

@PeterO: Your Elliott 803 emulator looks good.

jardino
Posts: 130
Joined: Wed Aug 08, 2012 9:03 am
Location: Aberdeenshire, Scotland

Re: What is the LOWEST level language??

Sun Oct 07, 2012 9:32 am

I see the word-wrapping gremlin did indeed mess up my first post.

It should have read:

So the output line:
THE QUICK BROWN FOX" (only capitals were available) would be printed as:
__E then,
T then,
____________O_____O then,
_______________N then,
_________________F ... and so on.

(Where the underscores represent spaces.)

Slsn.
IT Background: Honeywell H2000 ... CA Naked Mini ... Sinclair QL ... WinTel ... Linux ... Raspberry Pi.

jardino
Posts: 130
Joined: Wed Aug 08, 2012 9:03 am
Location: Aberdeenshire, Scotland

Re: What is the LOWEST level language??

Sun Oct 07, 2012 9:51 am

Burngate wrote:I stand in awe of others' knowledge.

I was told - but never saw - it would stream the paper in a straight line across the room.
True! For a page that had just one or a few lines at the top of the page, you didn't want to waste time by having the printer chug through the remaining blank part of the page at the slow rate determined by the rotation speed of the drum. So it went into "slew" mode, throwing the fanfold ream to the top of the next page. The fastest line printer I played with (er, commissioned - sorry, boss) did 1100 lines per minute, with a correspondingly high slew rate. Printing several pages with one line only could cause a stream of paper to fly across the floor.

Alan.
IT Background: Honeywell H2000 ... CA Naked Mini ... Sinclair QL ... WinTel ... Linux ... Raspberry Pi.

User avatar
rurwin
Forum Moderator
Forum Moderator
Posts: 4258
Joined: Mon Jan 09, 2012 3:16 pm
Contact: Website

Re: What is the LOWEST level language??

Sun Oct 07, 2012 12:31 pm

In case it has not been obvious, the first computers did not use screens as you would recognise them today. They used teletypes for input and output. For a brief period in 1948-1951 CRTs were used for storage and slave CRTs were used to read the contents of the memory, but the real output was to teletype as soon as one was hooked up. (The Manchester SSEM "Baby" may not have had a teletype at first.) But those screens were not the sort of thing one would recognise as a display screen today; they just had a grid of dots on them with blank spaces between.

Computers grew out of Turing's work. At the end of the war there were several machines that could compute, but they were programmed by moving wires and switches. So to write a new program, one built a new computer, albeit by rewiring the one machine. Turing realised that a sufficiently powerful such machine could emulate any such machine (the Church-Turing Thesis). The advantage of that would be that to reprogram it one would only need to change its parameters, no rewiring would be required. But of course the hardware machine would need a big memory in order to hold all those parameters and it took until 1948 for a large enough memory to be built.

That's not quite right; the Z3 had memory built from relays, but it was expensive -- over half of the relays in the machine were in the memory. The Z3 was almost the first modern computer, seven years before the Manchester SSEM, but it did not store its program in the memory, in modern parlance it used ROM. The Manchester SSEM was the first "stored-program, electronic, digital computer".

The lowest level language in those early machines was machine code, of which assembler is just a one-to-one translation. It is possible to program in machine code, just slow and intricate. If you imagine writing an essay in Braille using a pin, as opposed to a Braille typewriter, that is the difference between machine code and assembler; it's the same language, the only difference is the ease of writing it. Any assembler manual will teach you machine language.

Modern computers are more complex than the early computers, and designing hardware logic for all the complex instructions is prohibitive. So the hardware implements a computer that then emulates the computer that one wants to build. The program (called micro-code) for that intermediate computer is generally in ROM though, deep inside the chip. It is not something that one can program. So the lowest level accessible language is still machine code. To use anything else one would have to either build their own computer from discrete logic chips, or use a huge mainframe like the big VAXes which used a 16-bit computer to load their micro-code on start-up. If you are going that far, then it is arguable that the lowest level language is not any programming language, rather it is the wiring and logic gates. To program a computer at the absolutely lowest level, one would use a soldering iron. Of course in any modern computer that is impossible, because all the logic is inside the computer chip, sealed inside plastic and implemented in a single piece of silicon.

Writing a dot to the screen is, in fact, not the simplest operation of a computer, it is one of the most complex. You wont find any information on how to do that in any assembler manual. All you will find is how to move numbers about, how to add and subtract numbers, and so forth. To write a dot on the screen, first of all you need to get access to the screen, (by writing the right numbers into the memory locations used as control registers by the memory management unit), put it into the right mode, (by writing the right numbers into the memory locations used as control registers by the video hardware), and work out where the dot is in memory and what value it should have. That is a significant number of assembler instructions.

Return to “Off topic discussion”