My first language and interesting early software projects.
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
BASIC-Plus[^] An example of an interesting early project was the one that tried to find its way through a maze, logging each step, which filled the drive and crashed the PDP-11. :cool:
Matthew Dennis wrote:
extremely resource constrained development
None. Unless you consider my current project wherein SQL Server says 15GB of RAM isn't enough.
-
BASIC-Plus[^] An example of an interesting early project was the one that tried to find its way through a maze, logging each step, which filled the drive and crashed the PDP-11. :cool:
Matthew Dennis wrote:
extremely resource constrained development
None. Unless you consider my current project wherein SQL Server says 15GB of RAM isn't enough.
When I was toying with SharePoint, supposedly 24GB was the minimum (though 12GB seemed to work fine). :((
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
I faintly remember ordering a build your own computer kit through some English gadget magazine at the end if the 70'ties - I think I managed to assemble it according to the instructions. I guess it wasn't a real computer, but I managed to get a number lights to blink in the prescribed order. My first real computer was an Acorn BBC model B which was, at the time, an extraordinary piece of hardware.
Espen Harlinn Principal Architect, Software - Goodtech Projects & Services AS Projects promoting programming in "natural language" are intrinsically doomed to fail. Edsger W.Dijkstra
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
I started with 6502 Machine code. Learned enough Basic to write a quick and dirty assembler This was on the Commodore Pet The screen was character based (no pixels in them days!) but did have a character set that included 2x3 'blobs' i.e.
XX
XX
XXwhere X was either on or off. Space = all off. I wrote the machine code (in pencil, in my school rough book) to firstly allow me to draw 'points' by calculating which character on the 80x24 character screen the point occurred in, then taking the character that was there and working out what new character to replace it with in order to turn on or off an individual 'blob'! Then I wrote a line drawing version so I could draw straight lines at any angle. Then ( and this was what it was all leading up to!) I wrote a version of missile command!!!
MVVM# - See how I did MVVM my way ___________________________________________ Man, you're a god. - walterhevedeich 26/05/2011 .\\axxx (That's an 'M')
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
My first language was WATFIV on an IBM /360-65. I then regressed to Fortran IID, SPS IID and machine language on an IBM 1620. Then assembly, machine language, Fortran on PDP-11, then ... (lotsa stuff elided) ... Java. A fun project I did was calculating the first several thousand digits of pi using 10000 digit floating point words on the 1620. This was in the days when there were only about 10,000 digits known at the time (that I could find; there was no Google then). I also wrote an operating system in machine language for PDP-11/05 with 2 X 8K core memory as storage (no disk), keyboard/thermal printer (console) and alternate crt terminal (to avoid paper consumption). I wrote it in assembly on paper, assembled to machine code by hand and typed in each word via boot ROM. Lots of fun making lights blink and show patterns. The one and only app was a text editor. Array overruns and memory copy indiscretions had a bad habit of clearing memory.
-- Harvey
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
I wrote a Motorola 6800 version of DEC Teco (text editor with extensive scripting capabilities) and Runoff (text processor using embedded formatting commands like .center) back in the mid 70s - Teco took less than 12k and Runoff was even smaller. :cool: The programs were revised for the 6809 when that processor was introduced in the early 80s.
Steve _________________ I C(++) therefore I am
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
My chronology of languages is somewhat shorter: MS Basic on the ZX-81 and ZX Spectrum. C and C++ on my first PC, but only dabbling. Never wrote more than Hello World that worked. Clarion. VB 6 SAP ABAP/4 SQL C# V.NET JavaScript TypeScript (just starting)
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
My very first computer programming language was FORTRAN IV on an IBM 360. (I could also mention my beloved Texas Instruments SR-52 wonder, but I am no more sure it came first.) The first useful program was a function plotting utility, character-based, outputting on A3 sized pin-fed sheets with a chain printer. This program was used for real. I never saw the computer, I was living 50 km away from it.
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
Not involving a programming language, but I want to recall this anecdote. My very very first program was a procedure to quickly compute cube roots on a 4 operations calculator:
// Store the argument to memory
MC
M+// Repeat
*
MRSqrt
Sqrt
// Until convergenceConvergence comes in about 14 iterations for an 8 digits display, for a total of 72 keystrokes. On some machines, the
=
operation is not required. -
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
Folks, does anyone here pre-date me? First computer language, 1965: EDSAC2 Autocode in a programming course taught by Dr. Maurice Wilkes (who wrote the first book on computer programming, published in 1951). But there was a huge resource-constraint! Computer time was so valuable that we students were not allowed to run our programs. Dr. Wilkes desk-checked them. Then, for an interesting "software" project, later in 1965, I worked as a programmer for Electronic Associates who manufactured analog plug-board computers. One of my first projects was a real-time oil-field simulation on an EAI 360 which was somewhat bigger than this: http://www.technikum29.de/shared/photos/rechnertechnik/eai180.jpg - programming was done with wires.
-
I faintly remember ordering a build your own computer kit through some English gadget magazine at the end if the 70'ties - I think I managed to assemble it according to the instructions. I guess it wasn't a real computer, but I managed to get a number lights to blink in the prescribed order. My first real computer was an Acorn BBC model B which was, at the time, an extraordinary piece of hardware.
Espen Harlinn Principal Architect, Software - Goodtech Projects & Services AS Projects promoting programming in "natural language" are intrinsically doomed to fail. Edsger W.Dijkstra
>My first real computer was an Acorn BBC model B which was, at the time, an extraordinary piece of hardware.< The whole machine was a marvel of clearly thought out integration between hardware and software. Perhaps THE best example of a totally accessible computer system. The Archimedes wasn't half bad either, I wonder what happened to those nice ARM people. LOL
"It's true that hard work never killed anyone. But I figure, why take the chance." - Ronald Reagan That's what machines are for. Got a problem? Sleep on it.
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
FORTRAN NICOL PLAN RPG2 COBOL QM (QueryMaster) & AM (ApplicationsMaster ?) COBRA BASIC (various flavours) C C++ VB (3/4/5/6) Java JavaScript VB.NET C# + various scripting languages (CL, SCL, DOS, VBS)
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
My step-dad bought a COSMAC ELF 1802 single-board computer. It originally had two 7 segment displays and a hex keypad. John, an electrical engineer, added a teletype interface and hooked the thing up to an old KSR 33 teletype. We found a version of Tiny Basic for it that took up about 1.3K of the 2K of RAM. After fat-fingering in the Tiny Basic, and then painstakingly patching it to do I/O via the teletype, we kept the thing running using a car battery as backup. The most extraordinary program I remember us writing for the thing was a mortgage amortization table program. Tiny Basic only had 26 16-bit integer variables named A-Z, so you had to do fixed point arithmetic and manage overflows and large values yourself. The program ran overnight, chugging out a line of data every minute or so.
Software Zen:
delete this;
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
We had a forward-looking Maths teacher in my first year at senior school, 1969. He taught us the principles of programming by having us navigate him around the classroom using only commands "Forward", "Right", "Left", "Stop". Think he must have had quite a few bruises. After that he introduced us to a 4-bit machine code (Elliott 903) and later Fortran. We punched cards using a mechanical hand-held punch, sent them off by post and they'd arrive back about two weeks later with our punching and syntax errors. Took a whole year to run the most basic of programs! Later we had a teletype connection to a University in the North-east and could type up programs off-line onto paper tape, then load them over the dial-up line. Programs were effectively limited by the length of a spool of paper tape. I pushed that to the max when, having explored the boundaries of that first limited Basic, wanted to learn another language and taught myself COBOL. There was no Cobol compiler, so I wrote a Cobol interpreter using Basic. That was an interesting concept, BUT it did work! That early basic was constrained to single-character data names, but you could use arrays, so when you ran out of data names you just had to declare arrays of them and so A(1) could be totally unrelated to A(2) etc.. On to Uni where I extended my Fortran (Running on ICL mainframes, remember George III, MOP and MultiMop??) and the rest is history. Oh, and that Maths teacher had a word of advice for me when I left school: "Never go into Data Processing, you'll never make a living from it". Maybe not so forward looking, after all... :-D
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
EasyUO[^] (yeah, really) Not a resource constrained one, but my first language. If it hadn't been for Ultima Online I guess I would never have learned actual programming years after.
Interested in Machine Learning in .NET? Check the Accord.NET Framework. See also Sequence Classifiers in C# with Hidden Conditional Random Fields.
-
My first language was WATFIV on an IBM /360-65. I then regressed to Fortran IID, SPS IID and machine language on an IBM 1620. Then assembly, machine language, Fortran on PDP-11, then ... (lotsa stuff elided) ... Java. A fun project I did was calculating the first several thousand digits of pi using 10000 digit floating point words on the 1620. This was in the days when there were only about 10,000 digits known at the time (that I could find; there was no Google then). I also wrote an operating system in machine language for PDP-11/05 with 2 X 8K core memory as storage (no disk), keyboard/thermal printer (console) and alternate crt terminal (to avoid paper consumption). I wrote it in assembly on paper, assembled to machine code by hand and typed in each word via boot ROM. Lots of fun making lights blink and show patterns. The one and only app was a text editor. Array overruns and memory copy indiscretions had a bad habit of clearing memory.
-- Harvey
H.Brydon wrote:
I also wrote an operating system in machine language for PDP-11/05 with 2 X 8K core memory as storage
By any chance did you go to Wright State University[^] in the late 70's through early 80's? That matches a two course sequence I took there, 'Introduction to Real-Time Programming'. The first course was really "learn PDP-11 assembly language". The second introduced concurrent programming. The labs included a PDP-11/15 running RSX-11 that we used to edit and assemble our source code, and then two PDP-11/05's for testing. The 05's included core memory that mainly stored the RT-11 bootstrap code, which student apps routinely overwrote. You then had to toggle in the bootstrap, about 80 words worth, via the front-panel switches. I had to do it a couple of times. One guy in our class had to do it so often he could do the whole thing in less than 60 seconds. This was probably my second-favorite class in school :cool: (first favorite being the computer graphics sequence).
Software Zen:
delete this;
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
Time was, it was hard to get anything done on a minicomputer unless you coded in assembler. Everyone programming minis worked in assembler at that time, which severely restricted the market for them...but made those of us with "assembler muscles" a rather valuable commodity. Of course, we often had to flex those muscles in some rather interesting ways.
One of my earliest commercial gigs had me programming the Data General NOVA 1200. If you've never heard of it, God bless you. It had a bare 32K 16-bit words of core memory, no floating point, no hardware multiply or divide, no stack, a single-level interrupt system, only four 16-bit registers, and an addressing scheme from Hell. Everyone who worked on it swore at it more or less continuously.
Our shop programmed and sold payments-processing systems that were state of the art at the time, though they were utterly obsolete before the 80s were very old. Some of our customers were very large companies. Telephone companies, in particular. And some of them had to deal with amounts that you couldn't fit in 16 bits. So we had software multiply and divide routines for 32-bit arithmetic to handle the larger amounts.
Then came The Really Big Customer: the customer whose figures wouldn't fit in 32 bits. Suddenly we needed 48-bit multiply and divide capabilities...but the payments-processing program had already grown so large that we had less than thirty words of memory left unused.
I was the stuckee.
I got it done, but it took, as the saying goes, "every trick in the book." At the end of the process I knew more about the NOVA 1200 machine language and binary arithmetic than I'd thought there was to learn. I've (mercifully) forgotten just about all of it.
Today, the microprocessor in your microwave oven has about 100 times the power of the NOVA 1200. But I'd bet no one has written a machine-language triple-precision arithmetic package for it. Ah well, it probably has hardware floating point.
(This message is programming you in ways you cannot detect. Be afraid.)
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
First exposure to computers, an Apple IIe at school. got my own zx81, BASIC & a bit of assembler (which had to be stored in REM statements) ATARI BASIC (shite and veeeery slow) 6502 Assembly & FORTH BBC Basic & more 6502 MC (had an awesome built in assembler with relocatable code options) PASCAL (Borland turbo v6) - my first foray in to OOP Bought Acorn Archimedes learnt ARM assembler got a DOS 2.11 Atari Portfolio and learnt C and x86 assembly on that promptly got a proper Laptop with green LCD (the viewing angle drifted as the battery expired) reluctantly picked up C++ and Java. X| It's been C/C++ and Javascript for the last 16yrs, just dabbled with a few functional languages along the way.
"It's true that hard work never killed anyone. But I figure, why take the chance." - Ronald Reagan That's what machines are for. Got a problem? Sleep on it.
-
Update: Responses have reminded me of several laguages that I had forgotten. The responses to my post about my first computer got me thinking about my first languages. I think they were Basic MC 6800 Assembler Fortran (WatIV) C B Z80 Assembler 8086 Assembler (and worked on a Small C port on an original IBM PC) Turbo Pascal Turbo C Delphi Pascal PL-M MC 6809 Assembler (wrote a whole OS for traffic control systems) Forth (the MC6809 seemed to be designed to implement Forth) Clarion C++ (including Turbo C++) C# During this, a number of micro-controller assemblers. One of my favorite projects was a dual printer controller for a point of sale terminal. Had a roll and slip printer. I had to control the head motion, fire the print head pins and bit bang a serial port and include the fonts. All on a MC 6805 with 3096 BYTES of ROM and 112 BYTE of RAM (including stack). For another set of products, I developed an Operating Kernel and developement environment for an Embedded system using Turbo C++. All the Tasks were initialize with static initializers, so you could just link in new processes. The whole compiled Kernel took less than 15K. What extremely resource constrained development do you remember from the stone age?
First language was Fortran IV in college loaded via punch cards on the U of H computer. Lots of fun. We could have the mainframe mostly to ourselves at night because I lived on campus and could take the basement halls from the dorms to the lab in any weather. TRS80 and BASIC CPM and later MPM machine and CBASIC (an interpreter) MS DOS machines and CBASIC (Compiler version) Tried Forth, Pascal, assembler, C Still use CBASIC compiler version and Visual Basic for business aps. Most interesting project was a text editor I wrote WTTHOUT using a text editor to enter the code. echo dim a$(10)>nate.bas echo for j% = 1 to 10>>nate.bas echo input "enter a line";line a$(j%)>>nate.bas echo next j%>>nate.bas I then compiled nate.bas (Not Another #$!% Text Editor!) to get the next version of the editor. The result was a somewhat limited, but full screen text editor I still use today.