My first language and interesting early software projects.
-
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.
I think I actually used the copy command: copy con: nate.bas for version 1
-
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.
Your story reminds me of mine. I also started with a TRS-80 "Color Computer 2" and Microsoft's BASIC, to which I added 6809 Assembler and then, C (which I had to get OS-9 to obtain). The problem was, OS-9's line editor was horrific; I couldn't stand working with it. So the first thing I did was write a line editor to replace it that worked more like the one on NCR ITX. (If anyone has used ITX's line editor, they know two things; a) my goal wasn't overly ambitious and b) OS-9's line editor must have been really bad, for an ITX style editor to be better.) On the plus side: I got to learn about pointers and doubly-linked lists and so forth which was a great start on C. It was also a very neat experience to spend a few hours in OS-9's editor writing just enough to get my own editor started, and then code the rest of it in my own editor. On the minus side, the text editor compiled to a little over 10K which left something like 5K left for editing! So setting up an editor I could stand ended up being the last significant thing I did on OS-9 because there wasn't enough memory space to do more. :laugh: I remember sitting down one day to write an enhancement to swap lines between disk and memory, and deciding that it just wasn't worth doing for a computer that connected to a TV.
-
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?
8085 Processor 2k RAM 4K ROM (upgraded to 8K because of feature creep :) ) 2 UARTS Multiple buttons and parallel control lines. Memory was used for general CPU usage (variables and stack) and double buffering the serial ports. Project was a data logging device that received data from a serial port and wrote it to a cassette tape in blocks. Had to handle searching for blocks, writing and reading, fast forward, reverse, and receiving text commands from the second serial port, that were mirrors of the front panel controls. Manager wanted a 8048 processor, but, fortunately, I did two designs and showed that the 8085 was a cheaper and more flexible design. The original specs pushed the 8048 resources, and the scope creep would have been impossible to do. Written in PLM-80 and assembler.
-
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?
(deep breath) DEC PDP-8/I TSS-8 FOCAL-8 BASIC-8 PALD (Assembler) IBM S/360 FORTRAN COBOL UNIVAC 418 ART-418 (Assembler) IBM S/370 PL/C, PL/I 370 Assembler Apple II Applesoft BASIC 6502 Assembler Various CP/M machines GW-BASIC CBASIC 8080 Assembler Misc micros 6800 Assembler 6809 Assembler Bally Home Arcade TERSE (FORTH derivative) Z-80 Assembler IBM S/34 RPG-II IBM PC 8086 Assembler LMI FORTH (16 bit) 80186 Assembler LMI FORTH (32 bit) 80386 Assembler 32 bit protected mode C (4, 5, 6) VB1, VB2, VB3, VB4, VB5, VB6 S/370 JCL (to write a parsing program in VB3 to aid a migration project) VBA SQL, PL/SQL Smalltalk VBScript JavaScript VB.NET (1.1, yuck, management insisted we convert all our ASP pages) T-SQL C#.NET (2.0 on) HP Calculators HP-9100A HP-65 HP-67 HP-41C, HP-41CV, HP-41CX HP-16 HP-48SX, HP-48GX HP-75 (whew) I think that is most of them, I left off duplicates of FORTRAN, COBOL, and some dialects of BASIC, I'm sure more will come to me later. Mostly in chronological order except for the calculators. I tried to skip the turkeys like PASCAL (and DELPHI) and C++. Would have taken a pass on Smalltalk, but management was on an Object kick, which reminds me of INFERENCE, which I had to take classes on but since it had hefty CPU and RAM requirements just to crawl, they decided it wasn't worth getting me a better computer even though it would have been the least of their expenditures. I've looked at F#, I could be wrong, but I think it is another language that will end up on the trash heap of history.
Psychosis at 10 Film at 11 Those who do not remember the past, are doomed to repeat it. Those who do not remember the past, cannot build upon 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?
APL (yes a horrible language to start with but that's what was available on the first computer I had access to) BASIC SPECTRE[^] Assembler Pascal 6502 Assembler C Forth Lisp PL/1 Modula 2 x86 Assembler Prolog Data General Assembler VAX Assembler Objective C PostScript C++ AWK Perl SQL Java XSLT C# ECMAScript ActionScript Groovy
-
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 FORTRAN that had to be punched into cards and submitted to the University computer center, which probably had about 256K of memory. Results were returned as a printout in about an hour.
-
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?
30 years ago a friend and I used to visit the mall where they let us play with the computers in exhibition. Those were commodore 64 computers with no floppy or cassette recorder available. We liked to play "snake" but it was hard to convince the salesmen to let us use it. So we learned to program in Commodore BASIC and we did our own version of the game. So when we wanted to "play snake" we arrived to the mall and started writing the game, from memory, with no way to record it to any physical media. After writing and testing it we played for hours. Those were happy days! :)
-
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?
IBM 1401 assembler or maybe machine code before I actually had access to one. One interesting project was a 2 line (just could not get it down to one line) APL function to look up a keyword in a table of the form keyword space value and return the value.
-
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;
Gary Wheeler wrote:
By any chance did you go to Wright State University[^] in the late 70's through early 80's?
Nope - off by almost a decade. I started the /360 stuff in 1969 with high school in Winnipeg, then University of Manitoba and beyond. My PDP-11/05s (2 of them) were retired equipment from work that I got to take home (without most of the attached digital lab equipment, sniff).
-- 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?
1967 Fortran IV 1968 IBM 360 assembler 1968 IBM 360 channel program (program peripherals to talk to each other without CPU) 1969 COBOL but now it gets interesting! In 1974'ish I convinced the company I was working for to purchase an Interdata 7/32 (first 32 bit minicomputer) It came with an operating system that made cp/cpm look good. It also came with minimal peripherals. It booted using the paper tape part of a telex machine. It had a 2.5 megabyte hard drive and a primitive CRT as a console. I and two helpers decided we would write a better operating system for it. Goal was multi-user virtual memory system (machine was organized into 16 64k segments,1 Megabyte total) Since we did not have driver code for the hard drive at first, the object files output from the existing Assembler (Interdata's) were sent to paper tape (slow telex) which we used to build the various parts of the new operating system (extreme bootstrapping) We ran into a hardware problem in that sometimes a register would be clobbered on segment/page fault The CPU was all ttl chips so I modified the CPU to not clobber registers. Within about 6 months we had a VM machine that could support 8 users and 1 background task. By then we had an Ampex 40 megabyte hard drive (bigger than a washing machine) The operating system used 64K and was not itself paged, and the hardware was limited to 1 megabyte. Next we needed an IBM Fortran IV compatible compiler. In about 4 months we had one that ran in about 48K with no paging. Since segment/page size was a maximum of 64k and users had access to only 14 of them as special linker was written that analyzed the function calls and clustered as much as possible into the same segment. We converted 100,000's of lines of Fortran from IBM to this system successfully. Next came a new CPU an 8/32 which was faster and had 16 megs total, but only 1 meg per task. We converted huge seismic programs (million's of lines of code) to it. Interesting that our system both compiled and ran the resulting programs faster than the existing IBM mainframe's at 1/10th cost. At least one of these systems is still in use due to the special peripherals we interfaced to it. I am currently contract programming (mostly in c/c++)
-
1967 Fortran IV 1968 IBM 360 assembler 1968 IBM 360 channel program (program peripherals to talk to each other without CPU) 1969 COBOL but now it gets interesting! In 1974'ish I convinced the company I was working for to purchase an Interdata 7/32 (first 32 bit minicomputer) It came with an operating system that made cp/cpm look good. It also came with minimal peripherals. It booted using the paper tape part of a telex machine. It had a 2.5 megabyte hard drive and a primitive CRT as a console. I and two helpers decided we would write a better operating system for it. Goal was multi-user virtual memory system (machine was organized into 16 64k segments,1 Megabyte total) Since we did not have driver code for the hard drive at first, the object files output from the existing Assembler (Interdata's) were sent to paper tape (slow telex) which we used to build the various parts of the new operating system (extreme bootstrapping) We ran into a hardware problem in that sometimes a register would be clobbered on segment/page fault The CPU was all ttl chips so I modified the CPU to not clobber registers. Within about 6 months we had a VM machine that could support 8 users and 1 background task. By then we had an Ampex 40 megabyte hard drive (bigger than a washing machine) The operating system used 64K and was not itself paged, and the hardware was limited to 1 megabyte. Next we needed an IBM Fortran IV compatible compiler. In about 4 months we had one that ran in about 48K with no paging. Since segment/page size was a maximum of 64k and users had access to only 14 of them as special linker was written that analyzed the function calls and clustered as much as possible into the same segment. We converted 100,000's of lines of Fortran from IBM to this system successfully. Next came a new CPU an 8/32 which was faster and had 16 megs total, but only 1 meg per task. We converted huge seismic programs (million's of lines of code) to it. Interesting that our system both compiled and ran the resulting programs faster than the existing IBM mainframe's at 1/10th cost. At least one of these systems is still in use due to the special peripherals we interfaced to it. I am currently contract programming (mostly in c/c++)
My first computer encounters was a calculator with a CRT screen at the pacific science center you could tell it divide by zero and lock it up.
The next was in the army hacking a field artillery computer (FADAC) to drive a teletype paper tape punch for target lists. Teletype operators always made too many errors with numbers.
The FADAC had rotating disk memory with heads on each track. It also had no program counter so you had to specify the location of the next instruction which had to be at least six sectors away from the current word or you would have to wait for the disk to spin around again and I implemented a software UART in that environment! Oh and it was 32 bit machine!
My first personal computer was a sphere 6800 based machine with 4K of dynamic memory that barely worked. To get it to work I implemented hardware interrupt to a real time clock to read a specific memory location to keep the memory from fading away!
-
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?
Early 70's my to-be business partner and I bought a Redcor RC70 (the company had gone bankrupt). As I recall it was 16K of 18 bit magnetic core memory. We wedded it with an Execuport portable TTY like keyboard with thermal printer and a star-wheel paper tape reader from Autonetics surplus store. I forget the source of the paper tape punch we started with. I then started programming in Fortran and assembly. It was almost impossible to get the Fortran compiler tape to load with the flaky star-wheel reader. We shortly replaced it with another Autonetics surplus item -- a 1000 CPS, stop on character, Ferranti paper tape reader. It was wondrous and continued to work for years. This was a mechanical marvel with pancake motors for the paper tape reels and it would shake the 6 ft, rack it was mounted in. You did not want to get your hands tangled in the reels -- it could inflict severe damage. Eventually we added a General Automation 18/30 (an IBM 1130 look alike) with (gasp!) 5 MB hard disk drives that we bought at a bankruptcy auction. We did a lot of paper tape code conversion for PCB drilling machines and flex layout software that I wrote mainly in Fortran with assembly used for the interface boards we did for the paper tape punches, pen plotters, and Teletype chain line printers. Not exactly a microprocessor, but quite a do-it-yourself project.
-
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 was DEC PDP8 FOCAL, an interpreter that had to be loaded in first from a mylar Tape Reader. Then followed a lot of others: Fortran IV Algol-60 PL/1 IBM 360 Assembler COBOL 74 - 80 Burroughs L-Series Assembler 8086 Assembler Z80 Assembler Datapoint Datashare Interpreter Bourne Shell BASH Shell Perl C# and others I cannot think of ... Mostly fun.
"Courtesy is the product of a mature, disciplined mind ... ridicule is lack of the same - DPM"
-
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.
Wilkes in person, wow !
-
I started with FORTRAN that had to be punched into cards and submitted to the University computer center, which probably had about 256K of memory. Results were returned as a printout in about an hour.
Join the club ;-)
-
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?
Wrote an "operating system" for a 6502 to allow its use to receive 8 modem channels simultaneously and buffer and write the data out to a 9 track tape drive. Multi-tasking, but no disk drivers. It fit onto a 4K ROM. The devices sending it information were handheld computers used for stock control, running a RCA 1802 8 bit CMOS CPU (same as on the Galileo space probe). It ran with a 1 Megahertz clock, the fastest instruction was a NOP which took 8 clock cycles, so 0.1 MHz in reality. The devices were limited to 1200 baud because they lacked a dedicated serial chip so I had to raise and lower a CPU IO line in software and use loop timing to generate the 8 bit characters for RS-232 one bit at a time. 1200 baud was as fast as I could do it in software. Also 4K of ROM for the whole thing. All this was 1979.
-
Pascal Fortran, COBOL (in university) C Lisp OPS5 C++ Java C# /ravi
My new year resolution: 2048 x 1536 Home | Articles | My .NET bits | Freeware ravib(at)ravib(dot)com
-
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 an application on the original Tandy pocket computer (PC-1) that assisted a surveyor in closing a survey. The computer had ROM-based Basic 1.5 K (that's right K) of RAM The RAM had to be sufficient for both the program and variables. Some judicious reuse of variables was necessary to get it all to fit and run properly.