Perhaps I asked the wrong question...
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else? Keep in mind that my natural aptitude is liberal arts, not math. :)
I thought that you were trying to learn Apple 2 assembly because you wanted to modify logo to create new commands for your Lego/Logo robot. On Tue, Jan 17, 2017 at 1:41 AM, Evan Koblentz via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
-- Jeff Brace - ark72axow@gmail.com
On Tue, Jan 17, 2017 at 1:50 AM, Jeffrey Brace via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
I thought that you were trying to learn Apple 2 assembly because you wanted to modify logo to create new commands for your Lego/Logo robot.
On Tue, Jan 17, 2017 at 1:41 AM, Evan Koblentz via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
I don't think there's any normal pattern or progression regarding this. After years, you can go from any high level programming to bare metal coding and the reverse too. I say it's mostly just a matter of having enough enthusiasm to take up the challenge Then having some intuition to to decipher the obvious when solving coding issues And practice -- cause syntax problems suck ass. Certain compilers are just too dumb to tell you the obvious - but then you should already :) Yours is just one example, lots of people started with BASIC in school, then went on to others. I think it's different these past generations, I hear some places start with Java in high school Dan
-----Original Message----- From: vcf-midatlantic [mailto:vcf-midatlantic- bounces@lists.vintagecomputerfederation.org] On Behalf Of Evan Koblentz via vcf-midatlantic Sent: 17 January 2017 06:41 To: Vcf <vcf-midatlantic@lists.vintagecomputerfederation.org> Cc: Evan Koblentz <evan@snarc.net> Subject: [vcf-midatlantic] Perhaps I asked the wrong question...
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
Evan As others have said I don't think there was any natural progression. On many machines, (and on many budgets) buying a compiler or interpreter was a major investment. I bought an Atari STE around its launch date (1985) because there was a free "C" compiler available, and I had written "B" at work. Also it had MIDI ports and a flat address space unlike the 8086 with segment registers. I don't think PASCAL was widely used. I don't ever recall any one using LOGO but of course it depended on the environment you were working in. I think folks tended to learn one language, and then assembler when they couldn't do what they wanted in a high level language. Of course the problem with assembler is that each machine has its own, 6502, 6800 and 6809 are similar as are 8080 and z80. But z80 and 6809 assembler programmers may live on different planets.. Dave
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
Evan
Focus on mastering one environment at a time. If you pick the Apple II, learn 6502 assembly basics, enough to PEEK and POKE values from Apple BASIC or LOGO. You can use BASIC as the control language and call little assembly routines as needed when BASIC does not done what you want. You can take BASIC pretty far, nothing wrong with mastering that. Once you get the BASIC program working, compile it, let the computer do the work of converting into machine lang. so it runs faster. That's the practical get the job done approach. If you want to be an academic "programming engineer" learn C. B
For me my progression was: 8th grade middle school: Apple 2 - Logo Home computer (between 8th and 9th grade): Commodore 64 - BASIC, assembly 10th grade high school: IBM PC - BASIC, Pascal College: Macintosh: Pascal, C, assembly So for the Commodore 64 you had free BASIC and when that was too slow, then you went to assembly for faster speed. I would say for most people is was the same BASIC, then assembly. If you had to take a high school or college course, then other languages such as Pascal, Fortran etc. On Tue, Jan 17, 2017 at 1:41 AM, Evan Koblentz via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
-- Jeff Brace - ark72axow@gmail.com
On Tue, Jan 17, 2017 at 01:41:26AM -0500, Evan Koblentz via vcf-midatlantic wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next?
High level languages aren't great preparation for assembly since there purpose was to hide the fiddly details you have to worry about in assembly. If you start with C then go to PDP-11 assembly you will understand more some of the choices that they made with the language. The big advantage of learning an assembly language is you will much better understand how a computer actually works than you will get from using high level languages. Some processor instruction sets are easier to program in since they are more symetric and have more operations that can be done with one instruction. What you go to next is more what you wish to accomplish or what strikes your fancy.
Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
I think this was common. You would start learning assmelby and making little routines to call from Basic to do things that couldn't be done in Basic or were too slow. I went from Basic to assmebly to PL/1 to Pascal to C...
Keep in mind that my natural aptitude is liberal arts, not math. :)
Its not really math skills but attention to details and solving puzzles. How do I string together the operations the CPU can do to accomplish what I want. You need a little math when you need to multiply on processors without an instruction for that. Single stepping instructions will help in the beginning so you can see where your understaning of how the instuctions work disagrees with how they really work.
This was my introduction to 6502 asm: https://www.amazon.com/Programming-Interfacing-6502-Experiments-Blacksburg/d... I highly recommend it, along with most of the other Blacksburg Group/Bugbook books. Note that you don't need an assembler program for basic learning assembly type routines, *you* get to be the assembler and look up the opcodes in a table. If you need them, I have scans of vintage programming worksheets intended for this purpose. You might also grab one of these: http://www.ebay.com/itm/291889128916 I've bought that particular reference card from that seller. I like having reference cards around, I have them for the PDP-11, Intel 8080/8085, MOS 6502, and a few non-CPU references (S-100 bus pinout, et c.). Once you get used to the basic operations offered by most CPUs, and the mnemonics particular to your CPU of choice, a reference card and a sheet of paper will be all you need to write programs.
If you start with C then go to PDP-11 assembly you will understand more some of the choices that they made with the language.
Very true! Many of the bits of pointer magic that confuse people new to C have a direct relationship to hardware operations in the PDP-11 CPU.
The big advantage of learning an assembly language is you will much better understand how a computer actually works than you will get from using high level languages.
That's where I think basic math comes into it -- you will probably be able to fumble your way through the logical operators, but a basic grasp of Boolean algebra will come in handy. You're going to learn to convert between different bases in numbering systems (no, you won't be using negative integers for your higher addresses, like with BASIC :) ). Assembly/machine language programming isn't all that hard, my first introduction to CISC assembly was the above-linked Blacksburg Group book and a KIM-1. Before that I'd learned PIC16 assembly because the C compiler cost money. I started off with BASIC as well so it can't be 100% true that BASIC ruins programmers :D Thanks, Jonathan
I started with BASIC on my TRS-80 Model I because that's what it came with. Learned Z-80 assembler because it was necessary in order to do anything really cool and groovy with the hardware. Sometimes, necessity is the mother of education. On Tue, Jan 17, 2017 at 8:34 AM, Systems Glitch via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
This was my introduction to 6502 asm:
https://www.amazon.com/Programming-Interfacing-6502- Experiments-Blacksburg/dp/0672216515
I highly recommend it, along with most of the other Blacksburg Group/Bugbook books. Note that you don't need an assembler program for basic learning assembly type routines, *you* get to be the assembler and look up the opcodes in a table. If you need them, I have scans of vintage programming worksheets intended for this purpose.
You might also grab one of these:
http://www.ebay.com/itm/291889128916
I've bought that particular reference card from that seller. I like having reference cards around, I have them for the PDP-11, Intel 8080/8085, MOS 6502, and a few non-CPU references (S-100 bus pinout, et c.). Once you get used to the basic operations offered by most CPUs, and the mnemonics particular to your CPU of choice, a reference card and a sheet of paper will be all you need to write programs.
If you start with C then go to PDP-11 assembly you will understand more some of the choices that they made with the language.
Very true! Many of the bits of pointer magic that confuse people new to C have a direct relationship to hardware operations in the PDP-11 CPU.
The big advantage of learning an assembly language is you will much better understand how a computer actually works than you will get from using high level languages.
That's where I think basic math comes into it -- you will probably be able to fumble your way through the logical operators, but a basic grasp of Boolean algebra will come in handy. You're going to learn to convert between different bases in numbering systems (no, you won't be using negative integers for your higher addresses, like with BASIC :) ).
Assembly/machine language programming isn't all that hard, my first introduction to CISC assembly was the above-linked Blacksburg Group book and a KIM-1. Before that I'd learned PIC16 assembly because the C compiler cost money. I started off with BASIC as well so it can't be 100% true that BASIC ruins programmers :D
Thanks, Jonathan
I picked up the card from eBay, thanks for the idea! On Tue, Jan 17, 2017 at 8:34 AM, Systems Glitch via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
This was my introduction to 6502 asm:
https://www.amazon.com/Programming-Interfacing-6502- Experiments-Blacksburg/dp/0672216515
I highly recommend it, along with most of the other Blacksburg Group/Bugbook books. Note that you don't need an assembler program for basic learning assembly type routines, *you* get to be the assembler and look up the opcodes in a table. If you need them, I have scans of vintage programming worksheets intended for this purpose.
You might also grab one of these:
http://www.ebay.com/itm/291889128916
I've bought that particular reference card from that seller. I like having reference cards around, I have them for the PDP-11, Intel 8080/8085, MOS 6502, and a few non-CPU references (S-100 bus pinout, et c.). Once you get used to the basic operations offered by most CPUs, and the mnemonics particular to your CPU of choice, a reference card and a sheet of paper will be all you need to write programs.
If you start with C then go to PDP-11 assembly you will understand more some of the choices that they made with the language.
Very true! Many of the bits of pointer magic that confuse people new to C have a direct relationship to hardware operations in the PDP-11 CPU.
The big advantage of learning an assembly language is you will much better understand how a computer actually works than you will get from using high level languages.
That's where I think basic math comes into it -- you will probably be able to fumble your way through the logical operators, but a basic grasp of Boolean algebra will come in handy. You're going to learn to convert between different bases in numbering systems (no, you won't be using negative integers for your higher addresses, like with BASIC :) ).
Assembly/machine language programming isn't all that hard, my first introduction to CISC assembly was the above-linked Blacksburg Group book and a KIM-1. Before that I'd learned PIC16 assembly because the C compiler cost money. I started off with BASIC as well so it can't be 100% true that BASIC ruins programmers :D
Thanks, Jonathan
On Tue, Jan 17, 2017 at 2:57 PM, Chris Fala via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
I picked up the card from eBay, thanks for the idea!
On Tue, Jan 17, 2017 at 8:34 AM, Systems Glitch via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
You might also grab one of these:
http://www.ebay.com/itm/291889128916
I've bought that particular reference card from that seller. I like having reference cards around,
oh yes, those were my favorite And then they came out with the full page plastic sheet version which slipped in your bookshelf very easily and they had one for almost every processor called the instant reference card, and it was 2 sided, full of info while it's only a pdf, you coudl still use card-stock paper to get the same feel when you print it http://seriouscomputerist.altervista.org/media/pdf/book/6502%20(65xx)%20Inst... Dan
The PDF is nice. I can print it on card stock and/or laminate it. On Jan 17, 2017, at 3:51 PM, Dan Roganti via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote: On Tue, Jan 17, 2017 at 2:57 PM, Chris Fala via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
I picked up the card from eBay, thanks for the idea!
On Tue, Jan 17, 2017 at 8:34 AM, Systems Glitch via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
You might also grab one of these:
http://www.ebay.com/itm/291889128916
I've bought that particular reference card from that seller. I like having reference cards around,
oh yes, those were my favorite And then they came out with the full page plastic sheet version which slipped in your bookshelf very easily and they had one for almost every processor called the instant reference card, and it was 2 sided, full of info while it's only a pdf, you coudl still use card-stock paper to get the same feel when you print it http://seriouscomputerist.altervista.org/media/pdf/book/6502%20(65xx)%20Inst... Dan
On Tue, Jan 17, 2017 at 4:39 AM, David Gesswein via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
I think this was common. You would start learning assmelby and making little routines to call from Basic to do things that couldn't be done in Basic or were too slow.
That was my progression as well (BASIC to assembly). Given the constraints of the personal computers in the late 70s, there weren't too many other options. Our school had a UCSD Pascal compiler for our IMSAI 8080 but it took forever to compile anything. BASIC and assembly are actually similar in that they are both very simple and unstructured languages, where most control flow is done with either goto (jmp) or gosub (jsr). Mostly what you'll miss from BASIC is easy string manipulation and for/next loops.
On Tue, Jan 17, 2017 at 12:01 PM, Joseph S. Barrera III via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On Tue, Jan 17, 2017 at 4:39 AM, David Gesswein via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
I think this was common. You would start learning assmelby and making little routines to call from Basic to do things that couldn't be done in Basic or were too slow.
That was my progression as well (BASIC to assembly). Given the constraints of the personal computers in the late 70s, there weren't too many other options. Our school had a UCSD Pascal compiler for our IMSAI 8080 but it took forever to compile anything.
BASIC and assembly are actually similar in that they are both very simple and unstructured languages, where most control flow is done with either goto (jmp) or gosub (jsr). Mostly what you'll miss from BASIC is easy string manipulation and for/next loops.
per my previous reply, regarding there's really no natural progression I went from 8080 assembly, while homebrewing computers before high school then some more 6800 assembly after building the 680b kit then to Assembly, Basic and Fortran IV on the high school computer, Honeywell H-1646 (dual H316, same as the IMP on Arpanet) and as a hobby, some more Basic on the Apple ][ my big brother bought for us, and also on my buddies TRS80 model I then in college, some more Fortran and Pascal on the Northstar Advantage CP/M during that time, on some hobbyist projects, more Pascal and C language on the C64 and this just went on, to the C coding on the Amiga and SBC's like the embedded 68HC11, ColdFire and this varied between the many diff jobs, and more hobbyist projects with or without competitions, I still like to pickup a new language from time to time between the hardware projects One lately being the "Processing" derivative of Java, which has a nice standard suite of libraries and more recently using Python [especially since they have a compiler now] And then next some others such as the R language for its machine learning features So there was really no distinct linear progression unless your a CS major, with it's many courses to teach the fundamentals, so then in school you are forced to take prereq's in order to advance I think this goes on even for today
I started as an EET, it was FORTRAN WAT-5, then Darthmouth BASIC, Atari BASIC, 6502, 8085, C, 68xx and then all over the place. When I started on my CS degree, Middlesex County College's CS program (what a mess) kept changing the requirements, first PASCAL, then C, then C++ then Java (but they taught graphics and not the useful Java - GRRR). I switched to Pace after MCC changed it again. I finally got my CS degree. -- Linux Home Automation Neil Cherry ncherry@linuxha.com http://www.linuxha.com/ Main site http://linuxha.blogspot.com/ My HA Blog Author of: Linux Smart Homes For Dummies
I suppose it depends on the end - what you want to do. I find if one free-wheels with a open reference book and no goal, little of the knowledge sticks. Pick a project idea. Could be a game, could be some useful utility, etc and use that as the focus of your learning. If assembly is the right tool to realize it, go that route. It may be an easier road in C, Forth, or some other language. Picking up a text and deciding I'm going to learn something by reading said text, rarely works imho. And of course if you don't use it regularly after you learn it, it will fade quick. -Alan On 2017-01-17 01:41, Evan Koblentz via vcf-midatlantic wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
On second thought, you could just learn C++. That way when you meet Bjarne in the spring, you'll have a better appreciation why he should have just designed a new language from the start rather than undertaking a 30+ year long masochistic retrofit of a completely dissimilar language! -Alan On 2017-01-17 10:17, Alan Hightower via vcf-midatlantic wrote:
I suppose it depends on the end - what you want to do. I find if one free-wheels with a open reference book and no goal, little of the knowledge sticks. Pick a project idea. Could be a game, could be some useful utility, etc and use that as the focus of your learning. If assembly is the right tool to realize it, go that route. It may be an easier road in C, Forth, or some other language.
Picking up a text and deciding I'm going to learn something by reading said text, rarely works imho. And of course if you don't use it regularly after you learn it, it will fade quick.
-Alan
On 2017-01-17 01:41, Evan Koblentz via vcf-midatlantic wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
On 01/17/2017 10:21 AM, Alan Hightower via vcf-midatlantic wrote:
On second thought, you could just learn C++. That way when you meet Bjarne in the spring, you'll have a better appreciation why he should have just designed a new language from the start rather than undertaking a 30+ year long masochistic retrofit of a completely dissimilar language!
ROFL!! Yes!! But seriously Evan, don't...I've seen C++ ruin many people to the very idea of programming. At least a couple such people are on this list. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
On Jan 17, 2017, at 11:40, Dave McGuire via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 01/17/2017 10:21 AM, Alan Hightower via vcf-midatlantic wrote: On second thought, you could just learn C++. That way when you meet Bjarne in the spring, you'll have a better appreciation why he should have just designed a new language from the start rather than undertaking a 30+ year long masochistic retrofit of a completely dissimilar language!
ROFL!! Yes!!
But seriously Evan, don't...I've seen C++ ruin many people to the very idea of programming. At least a couple such people are on this list.
I think C++ is a fine language (I differ with Dave on this, I recall). However, it's a terrible FIRST language. C is better, especially if you already know a less arcane language like BASIC or Python. - Dave
Should you decide to learn assembly, definitely starting on a simpler CPU is a worthwhile approach. Back in 1996 I took a class on Assembly at Brookdale Community College, and they actually taught it on the IBM 360 (i.e. through an emulator for DOS). I remember even then thinking, "Why the hell are they teaching assembly for such a dinosaur?" The answer was pretty simple - it's a hell of alot easier to learn assembly on a relatively simple CPU than what one might consider more modern processors. Devin On Tue, Jan 17, 2017 at 1:41 AM, Evan Koblentz via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
-- Devin J. Heitmueller http://www.devinheitmueller.com
Perhaps start on a Vic-20 or C-64. I did some assembly on those back in my youth. On Tue, Jan 17, 2017 at 10:28 AM, Devin Heitmueller via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
Should you decide to learn assembly, definitely starting on a simpler CPU is a worthwhile approach. Back in 1996 I took a class on Assembly at Brookdale Community College, and they actually taught it on the IBM 360 (i.e. through an emulator for DOS). I remember even then thinking, "Why the hell are they teaching assembly for such a dinosaur?" The answer was pretty simple - it's a hell of alot easier to learn assembly on a relatively simple CPU than what one might consider more modern processors.
Devin
On Tue, Jan 17, 2017 at 1:41 AM, Evan Koblentz via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
-- Devin J. Heitmueller http://www.devinheitmueller.com
I agree C64 assembly is the bomb! :-D On Tue, Jan 17, 2017 at 10:31 AM murphnj via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
Perhaps start on a Vic-20 or C-64. I did some assembly on those back
in my youth.
On Tue, Jan 17, 2017 at 10:28 AM, Devin Heitmueller via
vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org>
wrote:
Should you decide to learn assembly, definitely starting on a simpler
CPU is a worthwhile approach. Back in 1996 I took a class on Assembly
at Brookdale Community College, and they actually taught it on the IBM
360 (i.e. through an emulator for DOS). I remember even then
thinking, "Why the hell are they teaching assembly for such a
dinosaur?" The answer was pretty simple - it's a hell of alot easier
to learn assembly on a relatively simple CPU than what one might
consider more modern processors.
Devin
On Tue, Jan 17, 2017 at 1:41 AM, Evan Koblentz via vcf-midatlantic
<vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
--
Devin J. Heitmueller
On 1/17/2017 9:30 AM, murphnj via vcf-midatlantic wrote:
Perhaps start on a Vic-20 or C-64. I did some assembly on those back in my youth. I think an combination of the "learn on something simple" and "pick something to do and let the education on language be a task to reach the goal" are excellent advice.
I'd add that using a CPU that has lots of community support is important. Mentoring and help are much easier. I'm going to suggest the Arduino platform. It's 'C', which is a good language to know, and there are lots of communities and products to serve the space. Assembly is grand, and I tip my hate to those on-list who dream in opcodes, but the pace is slow when you are learning, and it can be discouraging, especially if your background is not CS. Jim
On 01/17/2017 10:28 AM, Devin Heitmueller via vcf-midatlantic wrote:
Should you decide to learn assembly, definitely starting on a simpler CPU is a worthwhile approach. Back in 1996 I took a class on Assembly at Brookdale Community College, and they actually taught it on the IBM 360 (i.e. through an emulator for DOS). I remember even then thinking, "Why the hell are they teaching assembly for such a dinosaur?" The answer was pretty simple - it's a hell of alot easier to learn assembly on a relatively simple CPU than what one might consider more modern processors.
Well if you know 360, it's trivial to learn 370, and then 390, then z/Arch, which is currently a very marketable skill, as 390 was when you took the course...so maybe they had that in mind, as a stepping stone. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
On 01/17/2017 01:41 AM, Evan Koblentz via vcf-midatlantic wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
It seems most of the time the path people took depended upon what was available to them on the platform they were using. I learned Pascal first after several transient exposures to BASIC, because a very good Pascal compiler (Borland's Turbo Pascal under CP/M) was made available to me by a friend for the system I was running. If it weren't for that, I likely wouldn't have had the opportunity to learn Pascal until much later, and I would've gone with something else. My other friends mostly started out with BASIC because that was in the ROMs of their VIC-20s, TRS-80s, and Ataris. Even the one guy (with rich parents) with the Apple ][. So knowing what people did "back in the day" from my perspective probably isn't all that helpful in your situation, as most everything is available to you now. Some folks have suggested that you pick a goal or a project and choose the language based on that. That seems logical to me.
Keep in mind that my natural aptitude is liberal arts, not math. :)
Well one mistake certainly might be thinking it has something to do with math. ;) -Dave -- Dave McGuire, AK4HZ New Kensington, PA
My other friends mostly started out with BASIC because that was in the ROMs of their VIC-20s, TRS-80s, and Ataris. Even the one guy (with rich parents) with the Apple ][.
My parents bought my brother and I a //e in the mid-1980s, but they definitely weren't rich -- they had the same C-64 budget as all the other families in our area. We got the //e because my mom was a secretary for the local school district, which meant getting the educational discount. In school we mostly used the //+ which meant I was fortunate enough to have a * better * computer at home.
On Tue, Jan 17, 2017 at 1:43 PM, Douglas Crawford via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
-
Hopefully is more helpful than telling you the way to put four elephants in a volkswagon is two in the front and two in the back. :)
or perhaps the bigger challenge in watching Ian pack up his van with the vast array of machines after VCF :) Dan
On 01/17/2017 04:28 PM, Douglas Crawford via vcf-midatlantic wrote:
On 1/17/2017 1:47 PM, Dan Roganti via vcf-midatlantic wrote:
On Tue, Jan 17, 2017 at 1:43 PM, Douglas Crawford via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
-
Hopefully is more helpful than telling you the way to put four elephants in a volkswagon is two in the front and two in the back. :)
or perhaps the bigger challenge in watching Ian pack up his van with the vast array of machines after VCF :) Dan Oh that's easy- 4 machines in the passenger seat, 60 machines in the back.
I once sold an Onyx to a guy with an E36 //M3. He removed the passenger seat to have room for the computer. -- -- Derrik Derrik Walker v2.0, RHCE dwalker@doomd.net "Those UNIX guys, they think weird!" -- John C. Dvorak
I've told this story before, but it's been a while. I was on the Miata forum and there was a thread about what is the biggest thing you ever fit in your car. It was quite funny because our cars only have FIVE cubic feet of trunk space and it's very shallow, difficult to even fit a suitcase. The front seats comes out with four bolts and one electrical connector, so a lot people do that for hauling (relatively) larger items. You can even get a Miata trailer hitch. Anyway, I chimed in and wrote "ASR-33 teletype -- put the stand upside-down in the passenger seat, machine in the trunk with all else cleared out" -- and the very next person sarcastically wrote, "What, for a museum? LOL". Errrrmmm yes. Yes it was.
MOBIDEC?
Very funny. :) For those who aren't aware: Doug is making a play on words about MOBIDIC, a project (of which I'm quite fond) between the Army and Sylvania, from 1956.
Is this the first documented mobile DEC computer?
Doug -- the literal answer to your question depends on when that photograph appeared vs. when in 1965 DEC installed a PDP-6 in a trailer for Brookhaven National Laboratory. See "Communications of the ACM", Vol. 8, No. 4 (April 1965), page 253, or see page 27 of my book. ________________________________ Evan Koblentz, director Vintage Computer Federation a 501(c)3 educational non-profit evan@vcfed.org (646) 546-9999 www.vcfed.org facebook.com/vcfederation twitter.com/vcfederation
On 1/17/2017 11:54 PM, Evan Koblentz via vcf-midatlantic wrote:
MOBIDEC?
Very funny. :)
For those who aren't aware: Doug is making a play on words about MOBIDIC, a project (of which I'm quite fond) between the Army and Sylvania, from 1956.
Is this the first documented mobile DEC computer?
Doug -- the literal answer to your question depends on when that photograph appeared vs. when in 1965 DEC installed a PDP-6 in a trailer for Brookhaven National Laboratory. See "Communications of the ACM", Vol. 8, No. 4 (April 1965), page 253, or see page 27 of my book. Yes indeed- it could be a close race indeed since its wiki says the pdp-8 was introduced Mar 22, 1965!
________________________________ Evan Koblentz, director Vintage Computer Federation a 501(c)3 educational non-profit
evan@vcfed.org (646) 546-9999
www.vcfed.org facebook.com/vcfederation twitter.com/vcfederation
MOBIDEC?
Very funny. :)
For those who aren't aware: Doug is making a play on words about MOBIDIC, a project (of which I'm quite fond) between the Army and Sylvania, from 1956.
Is this the first documented mobile DEC computer?
Doug -- the literal answer to your question depends on when that photograph appeared vs. when in 1965 DEC installed a PDP-6 in a trailer for Brookhaven National Laboratory. See "Communications of the ACM", Vol. 8, No. 4 (April 1965), page 253, or see page 27 of my book. Yes indeed- it could be a close race indeed since its wiki says the pdp-8 was introduced Mar 22, 1965!
What's the source of the picture you posted via CHM?
On 1/18/2017 12:10 AM, Evan Koblentz via vcf-midatlantic wrote:
MOBIDEC?
Very funny. :)
For those who aren't aware: Doug is making a play on words about MOBIDIC, a project (of which I'm quite fond) between the Army and Sylvania, from 1956.
Is this the first documented mobile DEC computer?
Doug -- the literal answer to your question depends on when that photograph appeared vs. when in 1965 DEC installed a PDP-6 in a trailer for Brookhaven National Laboratory. See "Communications of the ACM", Vol. 8, No. 4 (April 1965), page 253, or see page 27 of my book. Yes indeed- it could be a close race indeed since its wiki says the pdp-8 was introduced Mar 22, 1965!
What's the source of the picture you posted via CHM? No idea. Its copied all over.
I found you can fit 30 or so of these AOpen AT cases in a VW Jetta, with the seats in... http://geneticcomputers.com/img/computerCases/hx95.gif -J On Tue, Jan 17, 2017 at 10:48 PM, Derrik Walker v2.0 via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 01/17/2017 04:28 PM, Douglas Crawford via vcf-midatlantic wrote:
On 1/17/2017 1:47 PM, Dan Roganti via vcf-midatlantic wrote:
On Tue, Jan 17, 2017 at 1:43 PM, Douglas Crawford via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
-
Hopefully is more helpful than telling you the way to put four elephants in a volkswagon is two in the front and two in the back. :)
or perhaps the bigger challenge in watching Ian pack up his van with the vast array of machines after VCF :) Dan
Oh that's easy- 4 machines in the passenger seat, 60 machines in the back.
I once sold an Onyx to a guy with an E36 //M3. He removed the passenger seat to have room for the computer.
-- -- Derrik
Derrik Walker v2.0, RHCE dwalker@doomd.net
"Those UNIX guys, they think weird!" -- John C. Dvorak
-- Jason Perkins 313 355 0085
- *Patching LOGO to use your code. There are two parts to this. * - *Hooking your code into to LOGO so you can use your "functions". Here is where you learn enough about LOGO to make patches to the LOGO system while it is in memory to augment LOGO to use your new code. This is some detective work with disassemblers and guesses on where the code is you need to patch, setting break points in a monitor program, stepping through the logo code, deciding where a good surgical place is to modify the flow to call your code and allow LOGO to use the results. * - *Modifying the original executable file (of LOGO) while maintaining its ability to be reloaded from disk. There's got to be someone here familiar with specifics of the Apple II executable file format. Some systems have check sums or other methods to insure that a file to be loaded is "valid". There may be copy protection stuff that gets in the way. I might suggest enlisting the help of someone to work on this part independently- to prove they can make a change to the file and still have it work. Then when you have your new code ready to integrate, they will be ready to add it to the LOGO executable and patch it in. What this might look like in the end might be that you would run a program to load your code into some available place in memory, then load a modified version of LOGO that assumes your code is in place. Or, if you get really good, the modified version of LOGO may have your code and the LOGO code all in one file* This is getting to be what may be an insurmountable challenge. The Logo in question is Lego Logo, and the disk is in a non-standard format, as I discovered when I tried to convert it with ciderpress (I wanted to use a very nice disassembler I found for the IIgs). The disk is self booting, so even if I can get the code into a disassembler, writing changes back to a usable format is going to be a major challenge. So far I have not found a way to do it. On Tue, Jan 17, 2017 at 1:43 PM, Douglas Crawford via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 1/17/2017 1:41 AM, Evan Koblentz via vcf-midatlantic wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
Evan, knowing what you are trying to accomplish, it is completely reasonable to move on to 6502 assembly language for the Apple II as you were planning in order to perhaps lead to augmenting LOGO. As testified here, many went from BASIC to assembly language directly.
I'll take a shot at trying to define the distinct challenges you face:
- Learning the 6502 machine and instruction set. Perhaps helpful here would be publications that were written to take folks from what they know about BASIC and introduce them to 6502 assembly would be specifically helpful for you. In Commodore land hobbyists had Jim Butterfield to look to. I don't know who was a similar author in Apple II land. Hopefully you can find some pubs written for Apple II users. Or the one you are working from now that prompted the original question is this sort of thing. - Selecting and using the available Apple II tools for assembly language programming Beginning with a machine language monitor like you were trying to do is a good place to start. With that, you can work on small exercises that illustrate assembly program principles. Awesome. Eventually you may move on to a more full featured assembler setup like what Jeff recommended at the workshop - Merlin Pro I recall, he said was a really good one. But that's only at the point where you want to write your program in a file and make use of more sophisticated features of the assembler. - Writing the assembly language routines that implement the new features and testing them apart from LOGO as best you can. You take what you learned in exercises and put it to doing the work you want LOGO to do. - Patching LOGO to use your code. There are two parts to this. - Hooking your code into to LOGO so you can use your "functions". Here is where you learn enough about LOGO to make patches to the LOGO system while it is in memory to augment LOGO to use your new code. This is some detective work with disassemblers and guesses on where the code is you need to patch, setting break points in a monitor program, stepping through the logo code, deciding where a good surgical place is to modify the flow to call your code and allow LOGO to use the results. - Modifying the original executable file (of LOGO) while maintaining its ability to be reloaded from disk. There's got to be someone here familiar with specifics of the Apple II executable file format. Some systems have check sums or other methods to insure that a file to be loaded is "valid". There may be copy protection stuff that gets in the way. I might suggest enlisting the help of someone to work on this part independently- to prove they can make a change to the file and still have it work. Then when you have your new code ready to integrate, they will be ready to add it to the LOGO executable and patch it in. What this might look like in the end might be that you would run a program to load your code into some available place in memory, then load a modified version of LOGO that assumes your code is in place. Or, if you get really good, the modified version of LOGO may have your code and the LOGO code all in one file.
Hopefully is more helpful than telling you the way to put four elephants in a volkswagon is two in the front and two in the back. :)
This is getting to be what may be an insurmountable challenge. The Logo in question is Lego Logo, and the disk is in a non-standard format, as I discovered when I tried to convert it with ciderpress (I wanted to use a very nice disassembler I found for the IIgs). The disk is self booting, so even if I can get the code into a disassembler, writing changes back to a usable format is going to be a major challenge. So far I have not found a way to do it.
Changed subject line to match thread fork.
On 1/17/2017 7:06 PM, Evan Koblentz via vcf-midatlantic wrote:
This is getting to be what may be an insurmountable challenge. The Logo in question is Lego Logo, and the disk is in a non-standard format, as I discovered when I tried to convert it with ciderpress (I wanted to use a very nice disassembler I found for the IIgs). The disk is self booting, so even if I can get the code into a disassembler, writing changes back to a usable format is going to be a major challenge. So far I have not found a way to do it.
Changed subject line to match thread fork.
Yikes that's perhaps a show stopper for modifying the executable file. At best a program would patch the in memory image after the boot of LEGO, which also will be tricky.
Do we know anything about the actual lineage of Lego Logo? Is it derived from some other Logo implementation? The reason I ask is because at least with Apple Logo there are hooks implemented for assembly language (at least according to page 238 of http://www.virtualapple.org/docs/Apple%20Logo%20II%20Reference%20Manual.pdf) It's possible that such hooks also exist for Lego Logo if it were derived from some less child-oriented implementation (i.e. present in the upstream but not documented in Lego's docs). Devin On Tue, Jan 17, 2017 at 9:49 PM, Douglas Crawford via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 1/17/2017 7:06 PM, Evan Koblentz via vcf-midatlantic wrote:
This is getting to be what may be an insurmountable challenge. The Logo in question is Lego Logo, and the disk is in a non-standard format, as I discovered when I tried to convert it with ciderpress (I wanted to use a very nice disassembler I found for the IIgs). The disk is self booting, so even if I can get the code into a disassembler, writing changes back to a usable format is going to be a major challenge. So far I have not found a way to do it.
Changed subject line to match thread fork.
Yikes that's perhaps a show stopper for modifying the executable file. At best a program would patch the in memory image after the boot of LEGO, which also will be tricky.
-- Devin J. Heitmueller http://www.devinheitmueller.com
Or here's another thought: email Mitch Resnick at MIT and see if he still has the source kicking around. It's been nearly 30 years, so it's not like it has any commercial value. Devin On Tue, Jan 17, 2017 at 10:13 PM, Douglas Crawford <touchetek@gmail.com> wrote:
Great find... how about switch to Apple Logo and extend it with machine language to use that hardware? That could be WAY more practical. DC
On 1/17/2017 10:10 PM, Devin Heitmueller wrote:
Do we know anything about the actual lineage of Lego Logo? Is it derived from some other Logo implementation?
The reason I ask is because at least with Apple Logo there are hooks implemented for assembly language (at least according to page 238 of http://www.virtualapple.org/docs/Apple%20Logo%20II%20Reference%20Manual.pdf)
It's possible that such hooks also exist for Lego Logo if it were derived from some less child-oriented implementation (i.e. present in the upstream but not documented in Lego's docs).
Devin
On Tue, Jan 17, 2017 at 9:49 PM, Douglas Crawford via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 1/17/2017 7:06 PM, Evan Koblentz via vcf-midatlantic wrote:
This is getting to be what may be an insurmountable challenge. The Logo in question is Lego Logo, and the disk is in a non-standard format, as I discovered when I tried to convert it with ciderpress (I wanted to use a very nice disassembler I found for the IIgs). The disk is self booting, so even if I can get the code into a disassembler, writing changes back to a usable format is going to be a major challenge. So far I have not found a way to do it.
Changed subject line to match thread fork.
Yikes that's perhaps a show stopper for modifying the executable file. At best a program would patch the in memory image after the boot of LEGO, which also will be tricky.
-- Devin J. Heitmueller http://www.devinheitmueller.com
Some quick research suggests that both Lego Logo and Apple Logo were derived from LCSI's implementation: http://el.media.mit.edu/logo-foundation/resources/logoupdate/v7n1/v7n1-pbric... "The LEGO Mindstorms products are the latest in a series of LEGO robotics systems that began in 1986 with LEGO TC Logo™ and continued with the 1993 release of Control Lab™. Both of these products used Logo-based software developed by Logo Computer Systems, Inc. (LCSI). The software with LEGO TC Logo was a version of LCSI's popular LogoWriter™ with additional primitives added to read from sensors and to control motors and lights." Hence assuming the assembly routines weren't added by Apple, it's possible that they're already there from the underlying LCSI implementation and simply not documented. I would try feeding it some of the assembly related commands from the Apple Logo manual and see if it responds... Devin On Tue, Jan 17, 2017 at 10:17 PM, Devin Heitmueller <devin.heitmueller@gmail.com> wrote:
Or here's another thought: email Mitch Resnick at MIT and see if he still has the source kicking around. It's been nearly 30 years, so it's not like it has any commercial value.
Devin
On Tue, Jan 17, 2017 at 10:13 PM, Douglas Crawford <touchetek@gmail.com> wrote:
Great find... how about switch to Apple Logo and extend it with machine language to use that hardware? That could be WAY more practical. DC
On 1/17/2017 10:10 PM, Devin Heitmueller wrote:
Do we know anything about the actual lineage of Lego Logo? Is it derived from some other Logo implementation?
The reason I ask is because at least with Apple Logo there are hooks implemented for assembly language (at least according to page 238 of http://www.virtualapple.org/docs/Apple%20Logo%20II%20Reference%20Manual.pdf)
It's possible that such hooks also exist for Lego Logo if it were derived from some less child-oriented implementation (i.e. present in the upstream but not documented in Lego's docs).
Devin
On Tue, Jan 17, 2017 at 9:49 PM, Douglas Crawford via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 1/17/2017 7:06 PM, Evan Koblentz via vcf-midatlantic wrote:
This is getting to be what may be an insurmountable challenge. The Logo in question is Lego Logo, and the disk is in a non-standard format, as I discovered when I tried to convert it with ciderpress (I wanted to use a very nice disassembler I found for the IIgs). The disk is self booting, so even if I can get the code into a disassembler, writing changes back to a usable format is going to be a major challenge. So far I have not found a way to do it.
Changed subject line to match thread fork.
Yikes that's perhaps a show stopper for modifying the executable file. At best a program would patch the in memory image after the boot of LEGO, which also will be tricky.
-- Devin J. Heitmueller http://www.devinheitmueller.com
-- Devin J. Heitmueller http://www.devinheitmueller.com
Gents, that is awesome and interesting info. Thanks, I have some homework to do! Dean On Tue, Jan 17, 2017 at 10:24 PM, Devin Heitmueller via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
Some quick research suggests that both Lego Logo and Apple Logo were derived from LCSI's implementation:
http://el.media.mit.edu/logo-foundation/resources/ logoupdate/v7n1/v7n1-pbrick.html
"The LEGO Mindstorms products are the latest in a series of LEGO robotics systems that began in 1986 with LEGO TC Logo™ and continued with the 1993 release of Control Lab™. Both of these products used Logo-based software developed by Logo Computer Systems, Inc. (LCSI). The software with LEGO TC Logo was a version of LCSI's popular LogoWriter™ with additional primitives added to read from sensors and to control motors and lights."
Hence assuming the assembly routines weren't added by Apple, it's possible that they're already there from the underlying LCSI implementation and simply not documented.
I would try feeding it some of the assembly related commands from the Apple Logo manual and see if it responds...
Devin
On Tue, Jan 17, 2017 at 10:17 PM, Devin Heitmueller <devin.heitmueller@gmail.com> wrote:
Or here's another thought: email Mitch Resnick at MIT and see if he still has the source kicking around. It's been nearly 30 years, so it's not like it has any commercial value.
Devin
On Tue, Jan 17, 2017 at 10:13 PM, Douglas Crawford <touchetek@gmail.com> wrote:
Great find... how about switch to Apple Logo and extend it with machine language to use that hardware? That could be WAY more practical. DC
On 1/17/2017 10:10 PM, Devin Heitmueller wrote:
Do we know anything about the actual lineage of Lego Logo? Is it derived from some other Logo implementation?
The reason I ask is because at least with Apple Logo there are hooks implemented for assembly language (at least according to page 238 of http://www.virtualapple.org/docs/Apple%20Logo%20II% 20Reference%20Manual.pdf)
It's possible that such hooks also exist for Lego Logo if it were derived from some less child-oriented implementation (i.e. present in the upstream but not documented in Lego's docs).
Devin
On Tue, Jan 17, 2017 at 9:49 PM, Douglas Crawford via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 1/17/2017 7:06 PM, Evan Koblentz via vcf-midatlantic wrote:
This is getting to be what may be an insurmountable challenge. The Logo in question is Lego Logo, and the disk is in a non-standard format, as I discovered when I tried to convert it with ciderpress (I wanted to use a very nice disassembler I found for the IIgs). The disk is self booting, so even if I can get the code into a disassembler, writing changes back to a usable format is going to be a major challenge. So far I have not found a way to do it.
Changed subject line to match thread fork.
Yikes that's perhaps a show stopper for modifying the executable file. At best a program would patch the in memory image after the boot of LEGO, which also will be tricky.
-- Devin J. Heitmueller http://www.devinheitmueller.com
-- Devin J. Heitmueller http://www.devinheitmueller.com
Do we know anything about the actual lineage of Lego Logo? Is it derived from some other Logo implementation?
It's derived from the M.I.T. original version. The university's Media Lab and Lego were well-documented collaborators (and still are).
The reason I ask is because at least with Apple Logo there are hooks implemented for assembly language (at least according to page 238 of http://www.virtualapple.org/docs/Apple%20Logo%20II%20Reference%20Manual.pdf)
It's possible that such hooks also exist for Lego Logo if it were derived from some less child-oriented implementation (i.e. present in the upstream but not documented in Lego's docs).
Devin
Great find... how about switch to Apple Logo and extend it with machine language to use that hardware? That could be WAY more practical. DC
Whoa! Devin/Doug: I was talking to Dean tonight about a similar concept. Lego provided a BASIC program for the IBM and LOGO for the Apple, so we figured if we use the BASIC/IBM then we might be able to know the status of a given port on the interface box (which is the problem I want to solve). Dean said he thinks that's a good idea vs. trying it in Lego LOGO where we lack assembler access. It added that it still may depend on whether the Lego BASIC card keeps a signal status when a port is on/off, because if it only sends a toggle then we're back to square one. However, neither of us thought of rolling our own "VCFed LOGO" :) (which I like a lot better than using BASIC, as the meta point of this application is to teach little kids and I'm unsatisfied with the limitations of the Lego LOGO implementation). It seems inefficient to start with ordinary Apple LOGO, add all the Lego LOGO stuff, and then add the (ahem) Evan LOGO addition, vs. taking what Lego already added and then tacking on what I want, but I totally understand why you're both suggesting it this way. Dean, you're my main man on this subject, what do you think?
On Tue, Jan 17, 2017 at 7:06 PM, Evan Koblentz via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
This is getting to be what may be an insurmountable challenge. The Logo in
question is Lego Logo, and the disk is in a non-standard format, as I discovered when I tried to convert it with ciderpress (I wanted to use a very nice disassembler I found for the IIgs). The disk is self booting, so even if I can get the code into a disassembler, writing changes back to a usable format is going to be a major challenge. So far I have not found a way to do it.
Changed subject line to match thread fork.
which disk are you referring to ? this webpage shows there's 3 diff software disks available They have the first two archived on there So you can examine the disk images with ciderpress I just tried the 1st software disk on there called Lego Lines, I can view the Basic files as well as the machine code file (*.bin, *.sys) The 2nd software disk on there is called Lego TC Logo That one has a bunch of pdf files with instructions, plus another file which appears to be a disk image but I'm not sure, its *.do file but I couldn't open it with ciderpress, so I don't know yet what's in there The 3rd software disk they mention, but not archived there, is called LogoWriter Robotics http://lukazi.blogspot.com/2014/07/lego-legos-first-programmable-product.htm... Dan
which disk are you referring to ? this webpage shows there's 3 diff software disks available They have the first two archived on there So you can examine the disk images with ciderpress I just tried the 1st software disk on there called Lego Lines, I can view the Basic files as well as the machine code file (*.bin, *.sys) The 2nd software disk on there is called Lego TC Logo That one has a bunch of pdf files with instructions, plus another file which appears to be a disk image but I'm not sure, its *.do file but I couldn't open it with ciderpress, so I don't know yet what's in there The 3rd software disk they mention, but not archived there, is called LogoWriter Robotics http://lukazi.blogspot.com/2014/07/lego-legos-first-programmable-product.htm... Dan
At the end of the first paragraph it says, "Several commercial programs were available for controlling the equipment, LEGO Lines, LEGO TC Logo and then later LogoWriter Robotics." The version I have is the middle one, Lego TC LOGO.
which disk are you referring to ? this webpage shows there's 3 diff software disks available They have the first two archived on there So you can examine the disk images with ciderpress I just tried the 1st software disk on there called Lego Lines, I can view the Basic files as well as the machine code file (*.bin, *.sys) The 2nd software disk on there is called Lego TC Logo That one has a bunch of pdf files with instructions, plus another file which appears to be a disk image but I'm not sure, its *.do file but I couldn't open it with ciderpress, so I don't know yet what's in there The 3rd software disk they mention, but not archived there, is called LogoWriter Robotics http://lukazi.blogspot.com/2014/07/lego-legos-first-programmable-product.htm...
Dan
At the end of the first paragraph it says, "Several commercial programs were available for controlling the equipment, LEGO Lines, LEGO TC Logo and then later LogoWriter Robotics."
The version I have is the middle one, Lego TC LOGO.
Ps. That same page mentions how the site author did not know of an online image file for LogoWriter Robotics. I would be very interested in getting a copy of that. Since it's a slightly newer program, then who knows, maybe it has the port-checking feature I need! Which would make this whole damn thing including my reason for learning assembler moot. :)
On Tue, Jan 17, 2017 at 10:55 PM, Evan Koblentz via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
which disk are you referring to ?
this webpage shows there's 3 diff software disks available They have the first two archived on there So you can examine the disk images with ciderpress I just tried the 1st software disk on there called Lego Lines, I can view the Basic files as well as the machine code file (*.bin, *.sys) The 2nd software disk on there is called Lego TC Logo That one has a bunch of pdf files with instructions, plus another file which appears to be a disk image but I'm not sure, its *.do file but I couldn't open it with ciderpress, so I don't know yet what's in there The 3rd software disk they mention, but not archived there, is called LogoWriter Robotics http://lukazi.blogspot.com/2014/07/lego-legos-first-programm able-product.html Dan
At the end of the first paragraph it says, "Several commercial programs were available for controlling the equipment, LEGO Lines, LEGO TC Logo and then later LogoWriter Robotics."
The version I have is the middle one, Lego TC LOGO.
yea I still get an error message on that disk image that's the one with the *.do disk image the 1st software disk has *.dsk files which read fine Ciderpress is supposed to read *.do images But when I try, I get "unable to identify filesystem" error message
Dan, The .do disk is the main Logo environment, used to write and run Logo programs. This is what would need to be patched and therein is the rub. As we both discovered, ciderpress will not read the .do file because it is a custom format. I'm starting to suspect that it was developed with some sort of intermediate system similar to p-system. Evan, It depends on what your ultimate goal is, the two of which seem to be opposed. On the one hand, we want to overcome the limitations of Logo, however that language is not ideal for interactive applications. On the other hand, we want to make it accessible and simple, like Logo. I'm not sure we can have both. Writing a custom Logo is a task that is beyond our grasp here. Our best best is to use basic on the IBM to see if we can accomplish the things we want and try to illustrate the programming concepts as simply as possible. The approach should become apparent as we progress. Dean On Tue, Jan 17, 2017 at 10:52 PM, Dan Roganti via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On Tue, Jan 17, 2017 at 7:06 PM, Evan Koblentz via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
This is getting to be what may be an insurmountable challenge. The Logo in
question is Lego Logo, and the disk is in a non-standard format, as I discovered when I tried to convert it with ciderpress (I wanted to use a very nice disassembler I found for the IIgs). The disk is self booting, so even if I can get the code into a disassembler, writing changes back to a usable format is going to be a major challenge. So far I have not found a way to do it.
Changed subject line to match thread fork.
which disk are you referring to ? this webpage shows there's 3 diff software disks available They have the first two archived on there So you can examine the disk images with ciderpress I just tried the 1st software disk on there called Lego Lines, I can view the Basic files as well as the machine code file (*.bin, *.sys) The 2nd software disk on there is called Lego TC Logo That one has a bunch of pdf files with instructions, plus another file which appears to be a disk image but I'm not sure, its *.do file but I couldn't open it with ciderpress, so I don't know yet what's in there The 3rd software disk they mention, but not archived there, is called LogoWriter Robotics http://lukazi.blogspot.com/2014/07/lego-legos-first- programmable-product.html Dan
Evan, It depends on what your ultimate goal is, the two of which seem to be opposed. On the one hand, we want to overcome the limitations of Logo, however that language is not ideal for interactive applications. On the other hand, we want to make it accessible and simple, like Logo. I'm not sure we can have both. Writing a custom Logo is a task that is beyond our grasp here. Our best best is to use basic on the IBM to see if we can accomplish the things we want and try to illustrate the programming concepts as simply as possible. The approach should become apparent as we progress.
But I want it all and I want it now! :) Kidding... I agree that BASIC is the smarter choice. Kids can still understand it and it's more likely to be hackable for the port-checking command I need. A secondary awesome thing, which might also be a tremendous learning experience for me, would be (as you and I briefly discussed on the phone tonight) to get BASIC ** on the Apple II ** working with the Lego hardware instead of just IBM/BASIC or Apple/LOGO. That would be helpful in our museum for several reasons. For example, children nowadays (and even their 30-something parents) would be more excited about using a historic Apple computer than a bland PC.
On 1/17/2017 11:23 PM, Evan Koblentz via vcf-midatlantic wrote:
Evan, It depends on what your ultimate goal is, the two of which seem to be opposed. On the one hand, we want to overcome the limitations of Logo, however that language is not ideal for interactive applications. On the other hand, we want to make it accessible and simple, like Logo. I'm not sure we can have both. Writing a custom Logo is a task that is beyond our grasp here. Our best best is to use basic on the IBM to see if we can accomplish the things we want and try to illustrate the programming concepts as simply as possible. The approach should become apparent as we progress.
But I want it all and I want it now! :)
Kidding...
I agree that BASIC is the smarter choice. Kids can still understand it and it's more likely to be hackable for the port-checking command I need.
A secondary awesome thing, which might also be a tremendous learning experience for me, would be (as you and I briefly discussed on the phone tonight) to get BASIC ** on the Apple II ** working with the Lego hardware instead of just IBM/BASIC or Apple/LOGO. That would be helpful in our museum for several reasons. For example, children nowadays (and even their 30-something parents) would be more excited about using a historic Apple computer than a bland PC.
Oh- Interesting side step! No argument that the Apple II would be great. However, an historic IBM 5150 & QBasic would be pretty interesting too! The period QBasic is very nice too- perhaps the first IDE ever I used. QBasic has poke & peek, INP & OUT and CALL ABSOLUTE if necessary to call machine language routines. You might do just fine with INP & OUT to access the interfaces. Wow is there a lot of doc here on QBasic... didn't know there was such fans http://www.petesqbsite.com/sections/express/express.shtml
However, an historic IBM 5150 & QBasic would be pretty interesting too!
And it might actually work: at HOPE there were problems, which Jon attributed to a timing issue, because we used a Compaq 386 (in Network General Sniffer clothes) instead of the recommended slower IBM PC.
On 1/18/2017 12:50 AM, Evan Koblentz via vcf-midatlantic wrote:
However, an historic IBM 5150 & QBasic would be pretty interesting too!
And it might actually work: at HOPE there were problems, which Jon attributed to a timing issue, because we used a Compaq 386 (in Network General Sniffer clothes) instead of the recommended slower IBM PC.
This short tutorial shows how to add machine code to QBasic. You can load the code bytes into a string and call it (section 3) Assuming someone can write the code bytes, you definitely can do anything you might need that way. http://www.petesqbsite.com/sections/tutorials/tutorials/asm.txt Now I'm really curious what that example does... guess I'll have to fire up the 5150.
Here's a PDF of the awesome reference card Glitch mentioned forever ago in this thread: http://www.classiccmp.org/cini/pdf/Rockwell/R6500%20Microprocessor%20Program...
From an incredible resource: http://www.classiccmp.org/cini/systems.htm
See ya! -Todd On Tue, Jan 17, 2017 at 5:58 PM Dean Notarnicola via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
- *Patching LOGO to use your code. There are two parts to this. * -
*Hooking your code into to LOGO so you can use your "functions". Here is where you learn enough about LOGO to make patches to the LOGO system while it is in memory to augment LOGO to use your new code. This is some detective work with disassemblers and guesses on where the code is you need to patch, setting break points in a monitor program, stepping through the logo code, deciding where a good surgical place is to modify the flow to call your code and allow LOGO to use the results. * -
*Modifying the original executable file (of LOGO) while maintaining its ability to be reloaded from disk. There's got to be someone here familiar with specifics of the Apple II executable file format. Some systems have check sums or other methods to insure that a file to be loaded is "valid". There may be copy protection stuff that gets in the way. I might suggest enlisting the help of someone to work on this part independently- to prove they can make a change to the file and still have it work. Then when you have your new code ready to integrate, they will be ready to add it to the LOGO executable and patch it in. What this might look like in the end might be that you would run a program to load your code into some available place in memory, then load a modified version of LOGO that assumes your code is in place. Or, if you get really good, the modified version of LOGO may have your code and the LOGO code all in one file*
This is getting to be what may be an insurmountable challenge. The Logo in question is Lego Logo, and the disk is in a non-standard format, as I discovered when I tried to convert it with ciderpress (I wanted to use a very nice disassembler I found for the IIgs). The disk is self booting, so even if I can get the code into a disassembler, writing changes back to a usable format is going to be a major challenge. So far I have not found a way to do it.
On Tue, Jan 17, 2017 at 1:43 PM, Douglas Crawford via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 1/17/2017 1:41 AM, Evan Koblentz via vcf-midatlantic wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
Evan, knowing what you are trying to accomplish, it is completely reasonable to move on to 6502 assembly language for the Apple II as you were planning in order to perhaps lead to augmenting LOGO. As testified here, many went from BASIC to assembly language directly.
I'll take a shot at trying to define the distinct challenges you face:
- Learning the 6502 machine and instruction set. Perhaps helpful here would be publications that were written to take folks from what they know about BASIC and introduce them to 6502 assembly would be specifically helpful for you. In Commodore land hobbyists had Jim Butterfield to look to. I don't know who was a similar author in Apple II land. Hopefully you can find some pubs written for Apple II users. Or the one you are working from now that prompted the original question is this sort of thing. - Selecting and using the available Apple II tools for assembly language programming Beginning with a machine language monitor like you were trying to do is a good place to start. With that, you can work on small exercises that illustrate assembly program principles. Awesome. Eventually you may move on to a more full featured assembler setup like what Jeff recommended at the workshop - Merlin Pro I recall, he said was a really good one. But that's only at the point where you want to write your program in a file and make use of more sophisticated features of the assembler. - Writing the assembly language routines that implement the new features and testing them apart from LOGO as best you can. You take what you learned in exercises and put it to doing the work you want LOGO to do. - Patching LOGO to use your code. There are two parts to this. - Hooking your code into to LOGO so you can use your "functions". Here is where you learn enough about LOGO to make patches to the LOGO system while it is in memory to augment LOGO to use your new code. This is some detective work with disassemblers and guesses on where the code is you need to patch, setting break points in a monitor program, stepping through the logo code, deciding where a good surgical place is to modify the flow to call your code and allow LOGO to use the results. - Modifying the original executable file (of LOGO) while maintaining its ability to be reloaded from disk. There's got to be someone here familiar with specifics of the Apple II executable file format. Some systems have check sums or other methods to insure that a file to be loaded is "valid". There may be copy protection stuff that gets in the way. I might suggest enlisting the help of someone to work on this part independently- to prove they can make a change to the file and still have it work. Then when you have your new code ready to integrate, they will be ready to add it to the LOGO executable and patch it in. What this might look like in the end might be that you would run a program to load your code into some available place in memory, then load a modified version of LOGO that assumes your code is in place. Or, if you get really good, the modified version of LOGO may have your code and the LOGO code all in one file.
Hopefully is more helpful than telling you the way to put four elephants in a volkswagon is two in the front and two in the back. :)
One possible option to learn 6502 style assembler, and stimulate simple I/O, is to use a Heathkit 3400 microprocessor trainer. It's 6800 based, but the opcodes are nearly identical. If the museum has one in storage, perhaps you could use it. You can make it light LEDs and respond to electrical input, through assembly chide and a simple memory map. On Jan 17, 2017 1:43 PM, "Douglas Crawford via vcf-midatlantic" < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 1/17/2017 1:41 AM, Evan Koblentz via vcf-midatlantic wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
Evan, knowing what you are trying to accomplish, it is completely reasonable to move on to 6502 assembly language for the Apple II as you were planning in order to perhaps lead to augmenting LOGO. As testified here, many went from BASIC to assembly language directly.
I'll take a shot at trying to define the distinct challenges you face:
- Learning the 6502 machine and instruction set. Perhaps helpful here would be publications that were written to take folks from what they know about BASIC and introduce them to 6502 assembly would be specifically helpful for you. In Commodore land hobbyists had Jim Butterfield to look to. I don't know who was a similar author in Apple II land. Hopefully you can find some pubs written for Apple II users. Or the one you are working from now that prompted the original question is this sort of thing. - Selecting and using the available Apple II tools for assembly language programming Beginning with a machine language monitor like you were trying to do is a good place to start. With that, you can work on small exercises that illustrate assembly program principles. Awesome. Eventually you may move on to a more full featured assembler setup like what Jeff recommended at the workshop - Merlin Pro I recall, he said was a really good one. But that's only at the point where you want to write your program in a file and make use of more sophisticated features of the assembler. - Writing the assembly language routines that implement the new features and testing them apart from LOGO as best you can. You take what you learned in exercises and put it to doing the work you want LOGO to do. - Patching LOGO to use your code. There are two parts to this. - Hooking your code into to LOGO so you can use your "functions". Here is where you learn enough about LOGO to make patches to the LOGO system while it is in memory to augment LOGO to use your new code. This is some detective work with disassemblers and guesses on where the code is you need to patch, setting break points in a monitor program, stepping through the logo code, deciding where a good surgical place is to modify the flow to call your code and allow LOGO to use the results. - Modifying the original executable file (of LOGO) while maintaining its ability to be reloaded from disk. There's got to be someone here familiar with specifics of the Apple II executable file format. Some systems have check sums or other methods to insure that a file to be loaded is "valid". There may be copy protection stuff that gets in the way. I might suggest enlisting the help of someone to work on this part independently- to prove they can make a change to the file and still have it work. Then when you have your new code ready to integrate, they will be ready to add it to the LOGO executable and patch it in. What this might look like in the end might be that you would run a program to load your code into some available place in memory, then load a modified version of LOGO that assumes your code is in place. Or, if you get really good, the modified version of LOGO may have your code and the LOGO code all in one file.
Hopefully is more helpful than telling you the way to put four elephants in a volkswagon is two in the front and two in the back. :)
Another possibility for a natural 80s style progression which I would recommend is Forth. Still a great language and was designed to run easily on hardware from that era. Get a copy of fig-Forth and download a free PDF of "Starting Forth" by Leo Brodie from https://www.forth.com/starting-forth/ and you will begin an incredibly rewarding journey. On Tue, Jan 17, 2017 at 1:41 AM, Evan Koblentz via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
After posting my assembly-for-newbs question, it occurred to me that perhaps I should be asking this instead: with no experience other than LOGO and then BASIC, which (period 1980s) language should I learn next? Was it normal to go from BASIC directly to assembly (is BASIC enough preparation), or were people better off getting some in-between experience with a language such as Pascal or something else?
Keep in mind that my natural aptitude is liberal arts, not math. :)
On 01/18/2017 08:06 PM, Chris Leyon via vcf-midatlantic wrote:
Another possibility for a natural 80s style progression which I would recommend is Forth. Still a great language and was designed to run easily on hardware from that era. Get a copy of fig-Forth and download a free PDF of "Starting Forth" by Leo Brodie from https://www.forth.com/starting-forth/ and you will begin an incredibly rewarding journey.
Forth is a really mind-bending language, but man, it sure is powerful. I love it. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
I've come to what is left of my senses: I am not remotely qualified to learn assembly. Sticking with BASIC for now. There is much left for me to learn in this language. New fork for this discussion: someday, if I ever have bunches of free time (ha!), maybe I should learn another high-level language. I now realize that could be any number of choices: C, COBOL, Forth, Fortran, Pascal, Java, and others .... which would be easiest for a liberal arts person like me to transition into from BASIC, and which would best serve me as a tour guide at the museum?
-----Original Message----- From: vcf-midatlantic [mailto:vcf-midatlantic- bounces@lists.vintagecomputerfederation.org] On Behalf Of Evan Koblentz via vcf-midatlantic Sent: 19 January 2017 06:53 To: vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> Cc: Evan Koblentz <evan@vcfed.org> Subject: Re: [vcf-midatlantic] Perhaps I asked the wrong question...
I've come to what is left of my senses: I am not remotely qualified to learn assembly.
Sticking with BASIC for now. There is much left for me to learn in this language.
I don't believe that any one is ever qualified to learn Assembler Can I recommend a diversion from actually programming and learning about the Art of Programming? Perhaps get a copy of Volume 1 of Knuth... https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming which is about "how to program"...
New fork for this discussion: someday, if I ever have bunches of free time (ha!), maybe I should learn another high-level language. I now realize that could be any number of choices: C, COBOL, Forth, Fortran, Pascal, Java, and others .... which would be easiest for a liberal arts person like me to transition into from BASIC, and which would best serve me as a tour guide at the museum?
Dave G4UGM
Can I recommend a diversion from actually programming and learning about the Art of Programming? Perhaps get a copy of Volume 1 of Knuth...
Ahem: https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming#Chapter_outlin... What part of "my liberal arts background" didn't you understand? :) I did okay in algebra, worked hard for a B in trig, passed with a C in pre-calc, got a D in calc 1, and flunked physics. But I had almost straight As in English and history. Yet somehow I remain drawn to science, engineering, and technology!
On Thu, Jan 19, 2017 at 2:51 AM, Evan Koblentz via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
Can I recommend a diversion from actually programming and learning about
the Art of Programming? Perhaps get a copy of Volume 1 of Knuth...
Ahem: https://en.wikipedia.org/wiki/The_Art_of_Computer_Programmin g#Chapter_outline_of_published_volumes
What part of "my liberal arts background" didn't you understand? :)
I did okay in algebra, worked hard for a B in trig, passed with a C in pre-calc, got a D in calc 1, and flunked physics. But I had almost straight As in English and history. Yet somehow I remain drawn to science, engineering, and technology!
Evan, you just can't keep making excuses like this, I know this is just a hobby but, like I mentioned very early in this topic here, you have to find your motivation. The rest will fall naturally into place, no amount of book work will get you motivated. Building up a good sense of intuition helps too, in any field, that takes practice of course. But consider the reality, as you may be aware, there a tons of people out there that have to make desperate career choices in life. Because they might get laid-off from work, sometimes it's a massive job lay-off. The have to make career changes , not just search for the next job, so they can afford to live, so they don't go bankrupt. And one of the biggest careers which people transition to just so happens to be CS Those people come from all walks of life, accountants, mine workers, secretary, etc,etc,etc. You be surprised how motivated you get when you can't find a job in your current occupation. I know guys when we were stuck in the dot com lay-off, with 10's of thousands of job losses, they had to leave the entire industry, both hardware and programming, because of the job saturation. Mostly because they just couldn't up and move their families across the country, sell their house, etc, when they have little reserves. Getting a CS career has become versatile now. Mostly because there's little or few essentials to get equipped, most people have a laptop to start coding. They can start a online degree, or attend night classes, so they study while working a day job to pay bills. They might not be become expert programmers or work at CERN, but they still do an acceptable job, after several years grinding the stone, they make their boss satisfied and actually help the bottom line, that's what counts to get a paycheck. Anyone see the latest article about this topic, even Physicists are changing to CS careers these days because they are losing jobs, not because they are flunkies, these are people who are dominant in their field, but because there's many places where the work has dwindled enough to get laid-off. They joke how silicon valley will be void of coders and filled with physicists instead. But this event has some parallels to the dawn of the industry, physicists are what started this computer industry[and others]. Mauchly was a physicist and countless others from the past 100+yrs. It's a very interesting read, one of the reasons is since the discovery of higgs boson has proven many of their theories to be correct, so the gap of uncertainty in the current universe has been shrinking, There amount of significant problems to solve has been shrinking, until a new and significant theory emerges, such as did the higgs boson, and that was 50yrs ago. Some such as the mysterious behind dark matter or dark energy still doesn't qualify enough to build a large project team, thus more employment. So it just goes to show you that life is still like a box of chocolates. https://www.wired.com/2017/01/move-coders-physicists-will-soon-rule-silicon-... Dan
Natural progression to learning a new computer language...The lights and switches mentioned in this progression are metaphors for inputs and outputs Make light turn on Make light turn off Make light turn on, then off Make light turn on/off/on... (blink) Read switch Make light turn on if switch is pressed, off if not pressed Read two switches and make light turn on or off depending on switch pattern ...in other words, take baby steps. It'll all fall into place. I started with BASIC (self taught) by taking baby steps and not trying to learn a language for a single significant goal at the start. I then taught myself Assembler, C, PERL, Python, JavaScript, Pascal, along with variations on any of those. Each time, I learned to manage the basic input and output capabilities of the language before digging deeper into its more powerful syntax. It's like learning to play a musical instrument. You can't expect to become proficient with musical instruments until you learn music theory first. On Thu, Jan 19, 2017 at 10:42 AM, Dan Roganti via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
Evan, you just can't keep making excuses like this, I know this is just a hobby but, like I mentioned very early in this topic here, you have to find your motivation. The rest will fall naturally into place, no amount of book work will get you motivated. Building up a good sense of intuition helps too, in any field, that takes practice of course.
But consider the reality, as you may be aware, there a tons of people out there that have to make desperate career choices in life. Because they might get laid-off from work, sometimes it's a massive job lay-off. The have to make career changes , not just search for the next job, so they can afford to live, so they don't go bankrupt. And one of the biggest careers which people transition to just so happens to be CS
Those people come from all walks of life, accountants, mine workers, secretary, etc,etc,etc. You be surprised how motivated you get when you can't find a job in your current occupation. I know guys when we were stuck in the dot com lay-off, with 10's of thousands of job losses, they had to leave the entire industry, both hardware and programming, because of the job saturation. Mostly because they just couldn't up and move their families across the country, sell their house, etc, when they have little reserves.
Getting a CS career has become versatile now. Mostly because there's little or few essentials to get equipped, most people have a laptop to start coding. They can start a online degree, or attend night classes, so they study while working a day job to pay bills. They might not be become expert programmers or work at CERN, but they still do an acceptable job, after several years grinding the stone, they make their boss satisfied and actually help the bottom line, that's what counts to get a paycheck.
But consider the reality, as you may be aware, there a tons of people out there that have to make desperate career choices in life.
I am not looking to become a professional programmer. Just want to expand my programming horizons to become a better hobbyists and computer historian.
On Thu, Jan 19, 2017 at 12:20 PM, Evan Koblentz via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
But consider the reality, as you may be aware, there a tons of people out there that have to make desperate career choices in life.
I am not looking to become a professional programmer. Just want to expand my programming horizons to become a better hobbyists and computer historian.
is this another form of butt-dialing :) this is the 2nd email, there's no message
On Thu, Jan 19, 2017 at 12:24 PM, Dan Roganti <ragooman@gmail.com> wrote:
On Thu, Jan 19, 2017 at 12:20 PM, Evan Koblentz via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
But consider the reality, as you may be aware, there a tons of people out there that have to make desperate career choices in life.
I am not looking to become a professional programmer. Just want to expand my programming horizons to become a better hobbyists and computer historian.
is this another form of butt-dialing :) this is the 2nd email, there's no message
oh that happened with you now, email going in the wrong direction, and I continued the confusion by replying ----------- I know, I'm trying to give you a juxtaposition. The motivation applies to both. And both require you to find it. btw, I'm still in the middle of your reply to last nights coding problem you sent
I would recommend Pascal because it was a common language to learn after BASIC, was a structured language and is relatively easy compared to other languages of the time period. You can also find many versions of it for many microcomputers. On Thu, Jan 19, 2017 at 1:52 AM, Evan Koblentz via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
I've come to what is left of my senses: I am not remotely qualified to learn assembly.
Sticking with BASIC for now. There is much left for me to learn in this language.
New fork for this discussion: someday, if I ever have bunches of free time (ha!), maybe I should learn another high-level language. I now realize that could be any number of choices: C, COBOL, Forth, Fortran, Pascal, Java, and others .... which would be easiest for a liberal arts person like me to transition into from BASIC, and which would best serve me as a tour guide at the museum?
-- Jeff Brace - ark72axow@gmail.com
What Jeff said... Pascal is considered to be a "perfect" language due to it's clean structure and adherence to best programming practices. It has an inherent ability to be quickly understood by beginners due to its easy to read syntax, yet powerful enough for production use for those who have mastered it and choose to work with it. Yes, you can still use Pascal today. It's making inroads on the Raspberry Pi hardware environment. On Thu, Jan 19, 2017 at 7:29 AM, Jeffrey Brace via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
I would recommend Pascal because it was a common language to learn after BASIC, was a structured language and is relatively easy compared to other languages of the time period. You can also find many versions of it for many microcomputers.
Sticking with BASIC for now. There is much left for me to learn in this language.
New fork for this discussion: someday, if I ever have bunches of free time (ha!), maybe I should learn another high-level language. I now realize that could be any number of choices: C, COBOL, Forth, Fortran, Pascal, Java, and others .... which would be easiest for a liberal arts person like me to transition into from BASIC, and which would best serve me as a tour guide at the museum?
BASIC is the universal language for demos in a museum setting when you're just showing something that you can execute in real time. There is nothing wrong with concluding that formal programming is not for you, it's a lot like music, painting, writing, etc. Most everyone has their strengths and weaknesses. A person can be a great programmer but incapable of writing a good user interface, directions, help screens, etc. Maybe you can team up with a programmer...write the interface and screens for museum projects how you'd like them and then get someone to code them up. In most businesses the programmers are not also tasked with anything other than the actual programming itself, a team contributes to the finished product. Bill
Given what Bill Deg said. I would suggest a rough introduction to each language emphasizing a general overview. For the purposes of being a docent one needn't need to be able to program in the language, only a general idea. A comparison chart would be interesting. On Thu, Jan 19, 2017 at 7:46 AM william degnan via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
Sticking with BASIC for now. There is much left for me to learn in this
language.
New fork for this discussion: someday, if I ever have bunches of free
time
(ha!), maybe I should learn another high-level language. I now realize
that
could be any number of choices: C, COBOL, Forth, Fortran, Pascal, Java,
and
others .... which would be easiest for a liberal arts person like me to
transition into from BASIC, and which would best serve me as a tour guide
at the museum?
BASIC is the universal language for demos in a museum setting when you're
just showing something that you can execute in real time.
There is nothing wrong with concluding that formal programming is not for
you, it's a lot like music, painting, writing, etc. Most everyone has
their strengths and weaknesses.
A person can be a great programmer but incapable of writing a good user
interface, directions, help screens, etc. Maybe you can team up with a
programmer...write the interface and screens for museum projects how you'd
like them and then get someone to code them up. In most businesses the
programmers are not also tasked with anything other than the actual
programming itself, a team contributes to the finished product.
Bill
Agreed. I wrote a system in FORTH that monitored equipment at various sites around the USA for MCI. It was used for about 15 year. ('85-'00). Quick trivia question. Why was it named FORTH, not FOURTH? Bob On Thu, Jan 19, 2017 at 1:35 AM, Dave McGuire via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 01/18/2017 08:06 PM, Chris Leyon via vcf-midatlantic wrote:
Another possibility for a natural 80s style progression which I would recommend is Forth. Still a great language and was designed to run easily on hardware from that era. Get a copy of fig-Forth and download a free PDF of "Starting Forth" by Leo Brodie from https://www.forth.com/starting-forth/ and you will begin an incredibly rewarding journey.
Forth is a really mind-bending language, but man, it sure is powerful. I love it.
-Dave
-- Dave McGuire, AK4HZ New Kensington, PA
On 01/19/2017 06:50 AM, Bob Flanders via vcf-midatlantic wrote:
Agreed. I wrote a system in FORTH that monitored equipment at various sites around the USA for MCI. It was used for about 15 year. ('85-'00).
Quick trivia question. Why was it named FORTH, not FOURTH?
A five-letter filename limitation, if memory serves. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
Good memory Dave!
From Wikipedia, the source of all knowledge... "Forth is so named because in 1968 "the file holding the interpreter was labeled FOURTH, for 4th (next) generation software—but the IBM 1130 operating system restricted file names to 5 characters." Moore saw Forth as a successor to compile-link-go third-generation programming languages, or software for "fourth generation" hardware, not a fourth-generation programming language as the term has come to be used."
On Thu, Jan 19, 2017 at 2:41 PM Dave McGuire via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 01/19/2017 06:50 AM, Bob Flanders via vcf-midatlantic wrote:
Agreed. I wrote a system in FORTH that monitored equipment at various sites around the USA for MCI. It was used for about 15 year. ('85-'00).
Quick trivia question. Why was it named FORTH, not FOURTH?
A five-letter filename limitation, if memory serves.
-Dave
-- Dave McGuire, AK4HZ New Kensington, PA
On 01/19/2017 02:40 PM, Dave McGuire via vcf-midatlantic wrote:
On 01/19/2017 06:50 AM, Bob Flanders via vcf-midatlantic wrote:
Agreed. I wrote a system in FORTH that monitored equipment at various sites around the USA for MCI. It was used for about 15 year. ('85-'00).
Quick trivia question. Why was it named FORTH, not FOURTH?
A five-letter filename limitation, if memory serves.
-Dave
Brrrr, brings back bad assembler memories (5 char limit) .... -- Linux Home Automation Neil Cherry ncherry@linuxha.com http://www.linuxha.com/ Main site http://linuxha.blogspot.com/ My HA Blog Author of: Linux Smart Homes For Dummies
On 01/19/2017 03:44 PM, Neil Cherry wrote:
sites around the USA for MCI. It was used for about 15 year. ('85-'00).
Quick trivia question. Why was it named FORTH, not FOURTH?
A five-letter filename limitation, if memory serves.
Brrrr, brings back bad assembler memories (5 char limit) ....
Yeah, that's one part of history that I do NOT miss. I do a good bit of assembler these days and just wouldn't be able to stay sane with five-character identifier names. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
On 01/19/2017 03:49 PM, Dave McGuire via vcf-midatlantic wrote:
On 01/19/2017 03:44 PM, Neil Cherry wrote:
sites around the USA for MCI. It was used for about 15 year. ('85-'00).
Quick trivia question. Why was it named FORTH, not FOURTH?
A five-letter filename limitation, if memory serves.
Brrrr, brings back bad assembler memories (5 char limit) ....
Yeah, that's one part of history that I do NOT miss. I do a good bit of assembler these days and just wouldn't be able to stay sane with five-character identifier names.
-Dave
Ssmblr w dnt nd n stnkng vwls -- Linux Home Automation Neil Cherry ncherry@linuxha.com http://www.linuxha.com/ Main site http://linuxha.blogspot.com/ My HA Blog Author of: Linux Smart Homes For Dummies
On 01/19/2017 04:17 PM, Neil Cherry wrote:
sites around the USA for MCI. It was used for about 15 year. ('85-'00).
Quick trivia question. Why was it named FORTH, not FOURTH?
A five-letter filename limitation, if memory serves.
Brrrr, brings back bad assembler memories (5 char limit) ....
Yeah, that's one part of history that I do NOT miss. I do a good bit of assembler these days and just wouldn't be able to stay sane with five-character identifier names.
Ssmblr w dnt nd n stnkng vwls
Yep. :) -- Dave McGuire, AK4HZ New Kensington, PA
On Thu, Jan 19, 2017 at 4:18 PM, Dave McGuire via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 01/19/2017 04:17 PM, Neil Cherry wrote:
sites
around the USA for MCI. It was used for about 15 year. ('85-'00).
Quick trivia question. Why was it named FORTH, not FOURTH?
A five-letter filename limitation, if memory serves.
Brrrr, brings back bad assembler memories (5 char limit) ....
Yeah, that's one part of history that I do NOT miss. I do a good bit of assembler these days and just wouldn't be able to stay sane with five-character identifier names.
Ssmblr w dnt nd n stnkng vwls
Yep. :)
well, you can wonder how he chose to remove the 'U' instead of some other character Could there be some significance behind removing the 3rd letter Since this was supposed to be the 4th generation, maybe he wanted to symbolize the advancement over the 3rd generation, by removing the 3rd letter, or.... was it really to make it a succinct word already found in the dictionary, such as FORTH this industry was already know for making unique conjunctions of letters to make a title, regardless if it was an acroynym or not why could he have not made it, FURTH, to make it stand above the crowd, FURTH, "what's that, cool another programming language" which removes the 2nd letter, but maybe that option didn't have any significance I mean look at the name PERL after all who knows....
On 01/19/2017 04:31 PM, Dan Roganti wrote:
well, you can wonder how he chose to remove the 'U' instead of some other character Could there be some significance behind removing the 3rd letter Since this was supposed to be the 4th generation, maybe he wanted to symbolize the advancement over the 3rd generation, by removing the 3rd letter, or.... was it really to make it a succinct word already found in the dictionary, such as FORTH this industry was already know for making unique conjunctions of letters to make a title, regardless if it was an acroynym or not why could he have not made it, FURTH, to make it stand above the crowd, FURTH, "what's that, cool another programming language" which removes the 2nd letter, but maybe that option didn't have any significance
ROFL yes :)
I mean look at the name PERL after all who knows....
PERL is an acronym for Practical Extension and Reporting Language. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
On Thu, Jan 19, 2017 at 5:49 PM, Dave McGuire via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 01/19/2017 04:31 PM, Dan Roganti wrote:
well, you can wonder how he chose to remove the 'U' instead of some other character Could there be some significance behind removing the 3rd letter Since this was supposed to be the 4th generation, maybe he wanted to symbolize the advancement over the 3rd generation, by removing the 3rd letter, or.... was it really to make it a succinct word already found in the dictionary, such as FORTH this industry was already know for making unique conjunctions of letters to make a title, regardless if it was an acroynym or not why could he have not made it, FURTH, to make it stand above the crowd, FURTH, "what's that, cool another programming language" which removes the 2nd letter, but maybe that option didn't have any significance
ROFL yes :)
I mean look at the name PERL after all
who knows....
PERL is an acronym for Practical Extension and Reporting Language.
-Dave
oh yea I saw that, but I read it was an after thought, as in backronym, I guess when everyone kept bugging them so they improvised something
On Thu, Jan 19, 2017 at 6:02 PM, Dan Roganti <ragooman@gmail.com> wrote:
On Thu, Jan 19, 2017 at 5:49 PM, Dave McGuire via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 01/19/2017 04:31 PM, Dan Roganti wrote:
well, you can wonder how he chose to remove the 'U' instead of some other character Could there be some significance behind removing the 3rd letter Since this was supposed to be the 4th generation, maybe he wanted to symbolize the advancement over the 3rd generation, by removing the 3rd letter, or.... was it really to make it a succinct word already found in the dictionary, such as FORTH this industry was already know for making unique conjunctions of letters to make a title, regardless if it was an acroynym or not why could he have not made it, FURTH, to make it stand above the crowd, FURTH, "what's that, cool another programming language" which removes the 2nd letter, but maybe that option didn't have any significance
ROFL yes :)
I mean look at the name PERL after all
who knows....
PERL is an acronym for Practical Extension and Reporting Language.
-Dave
oh yea I saw that, but I read it was an after thought, as in backronym, I guess when everyone kept bugging them so they improvised something
fyi, I read that some acronyms we were so accustomed to were actually backronyms BASIC SOS I think there were more
On 01/19/2017 06:02 PM, Dan Roganti wrote:
PERL is an acronym for Practical Extension and Reporting Language.
oh yea I saw that, but I read it was an after thought, as in backronym, I guess when everyone kept bugging them so they improvised something
I hadn't heard that, but it's certainly plausible. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
On 01/19/2017 06:02 PM, Dan Roganti via vcf-midatlantic wrote:
On Thu, Jan 19, 2017 at 5:49 PM, Dave McGuire via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 01/19/2017 04:31 PM, Dan Roganti wrote:
I mean look at the name PERL after all
who knows....
PERL is an acronym for Practical Extension and Reporting Language.
-Dave
oh yea I saw that, but I read it was an after thought, as in backronym, I guess when everyone kept bugging them so they improvised something
No I think that's what Larry named it when he posted it to the sources newsgroup (a long time ago). -- Linux Home Automation Neil Cherry ncherry@linuxha.com http://www.linuxha.com/ Main site http://linuxha.blogspot.com/ My HA Blog Author of: Linux Smart Homes For Dummies
On Jan 19, 2017, at 4:17 PM, Neil Cherry via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
Brrrr, brings back bad assembler memories (5 char limit) ....
Yeah, that's one part of history that I do NOT miss. I do a good bit of assembler these days and just wouldn't be able to stay sane with five-character identifier names.
-Dave
Ssmblr w dnt nd n stnkng vwls
Eschew obfuscatory abbreviation! - Dave
On 01/19/2017 04:19 PM, David Riley via vcf-midatlantic wrote:
Brrrr, brings back bad assembler memories (5 char limit) ....
Yeah, that's one part of history that I do NOT miss. I do a good bit of assembler these days and just wouldn't be able to stay sane with five-character identifier names.
Ssmblr w dnt nd n stnkng vwls
Eschew obfuscatory abbreviation!
Gezundheit! -- Dave McGuire, AK4HZ New Kensington, PA
And don't use no big words I can't understand. ;) On Thu, Jan 19, 2017 at 4:19 PM, David Riley via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On Jan 19, 2017, at 4:17 PM, Neil Cherry via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
Brrrr, brings back bad assembler memories (5 char limit) ....
Yeah, that's one part of history that I do NOT miss. I do a good bit
of assembler these
days and just wouldn't be able to stay sane with five-character identifier names.
-Dave
Ssmblr w dnt nd n stnkng vwls
Eschew obfuscatory abbreviation!
- Dave
On 01/19/2017 04:19 PM, David Riley via vcf-midatlantic wrote:
On Jan 19, 2017, at 4:17 PM, Neil Cherry via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
Brrrr, brings back bad assembler memories (5 char limit) ....
Yeah, that's one part of history that I do NOT miss. I do a good bit of assembler these days and just wouldn't be able to stay sane with five-character identifier names.
-Dave
Ssmblr w dnt nd n stnkng vwls
Eschew obfuscatory abbreviation!
Gesundheit! I hope you didn't hit you head on the keyboard! -- Linux Home Automation Neil Cherry ncherry@linuxha.com http://www.linuxha.com/ Main site http://linuxha.blogspot.com/ My HA Blog Author of: Linux Smart Homes For Dummies
Rght n! On Thu, Jan 19, 2017 at 4:17 PM, Neil Cherry via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 01/19/2017 03:49 PM, Dave McGuire via vcf-midatlantic wrote:
On 01/19/2017 03:44 PM, Neil Cherry wrote:
sites
around the USA for MCI. It was used for about 15 year. ('85-'00).
Quick trivia question. Why was it named FORTH, not FOURTH?
A five-letter filename limitation, if memory serves.
Brrrr, brings back bad assembler memories (5 char limit) ....
Yeah, that's one part of history that I do NOT miss. I do a good bit of assembler these days and just wouldn't be able to stay sane with five-character identifier names.
-Dave
Ssmblr w dnt nd n stnkng vwls
-- Linux Home Automation Neil Cherry ncherry@linuxha.com http://www.linuxha.com/ Main site http://linuxha.blogspot.com/ My HA Blog Author of: Linux Smart Homes For Dummies
This has been a very educational thread for me. It sounds like most people agree I should learn C or Pascal. C familiarity would serve me well as a computer historian. Pascal would make me a better (or at least less-sloppy) programmer. If I try my hand at Pascal, then I know to seek a version of UCSD Pascal for Apple, that's knowledge I picked up as a historian. :) If I try learning C, then I could go directly to K&R or even pick up a modern Dummies book, but for period's sake it would be the former.
On Jan 19, 2017, at 18:46, Evan Koblentz via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
This has been a very educational thread for me.
It sounds like most people agree I should learn C or Pascal. C familiarity would serve me well as a computer historian. Pascal would make me a better (or at least less-sloppy) programmer.
Pascal is also very historically significant.
If I try my hand at Pascal, then I know to seek a version of UCSD Pascal for Apple, that's knowledge I picked up as a historian. :)
Indeed!
If I try learning C, then I could go directly to K&R or even pick up a modern Dummies book, but for period's sake it would be the former.
K&R is a very good intro to C, hands down. It was the first, and it's still the best. - Dave
I know you hate the beige boxes, but there is no better IDE for Pascal than Turbo Pascal for MS-DOS. I'm pretty sure I first ran it on an XT class machine, but I'm sure someone here knows better than I do the most appropriate vintage configuration. I'd also consider Turbo C for MS-DOS. Or, if you want to go a different period direction, use cc on your Linux box and force yourself to use a command line editor (vi or Emacs). Further period enhance it by hooking up a period appropriate serial terminal (or your Apple IIe!) to your Linux box and give up the GUI entirely. Not so different having your terminal connect to a modern x86 Linux box than having your terminal connect to an IBM mainframe back in the 70s. -Adam On 1/19/2017 6:46 PM, Evan Koblentz via vcf-midatlantic wrote:
This has been a very educational thread for me.
It sounds like most people agree I should learn C or Pascal. C familiarity would serve me well as a computer historian. Pascal would make me a better (or at least less-sloppy) programmer.
If I try my hand at Pascal, then I know to seek a version of UCSD Pascal for Apple, that's knowledge I picked up as a historian. :)
If I try learning C, then I could go directly to K&R or even pick up a modern Dummies book, but for period's sake it would be the former.
I know you hate the beige boxes, but there is no better IDE for Pascal than Turbo Pascal for MS-DOS.
Yeah I'm familiar with that. I had a 486 in college (mid-90s) and my suitemate had me install Turbo Pascal so he didn't have to schlep across campus to the computer lab to do his homework.
I'd also consider Turbo C for MS-DOS. Or, if you want to go a different period direction, use cc on your Linux box and force yourself to use a command line editor (vi or Emacs).
What's a good graphical C for Linux? I'd rather avoid the command line. I know how to use it modestly enough, but I don't enjoy it.
On Jan 19, 2017, at 8:38 PM, Evan Koblentz via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
What's a good graphical C for Linux? I'd rather avoid the command line. I know how to use it modestly enough, but I don't enjoy it.
Well, there's Eclipse, but if you're going to be doing C, you might as well do it properly. :-) The command-line isn't really that hard, you may find you actually prefer it once you get used to it. Programming is 99% typing and reading; you'll probably find yourself more efficient if you never have to take your fingers off the home keys. Or, in short, "F5 is not a build system." - Dave
On 01/19/2017 08:46 PM, David Riley via vcf-midatlantic wrote:
Or, in short, "F5 is not a build system."
No that's refresh a page (in IE) because it no longer accepts ^R. ;-) -- Linux Home Automation Neil Cherry ncherry@linuxha.com http://www.linuxha.com/ Main site http://linuxha.blogspot.com/ My HA Blog Author of: Linux Smart Homes For Dummies
On 01/19/2017 08:38 PM, Evan Koblentz via vcf-midatlantic wrote:
I know you hate the beige boxes, but there is no better IDE for Pascal than Turbo Pascal for MS-DOS.
Yeah I'm familiar with that. I had a 486 in college (mid-90s) and my suitemate had me install Turbo Pascal so he didn't have to schlep across campus to the computer lab to do his homework.
I'd also consider Turbo C for MS-DOS. Or, if you want to go a different period direction, use cc on your Linux box and force yourself to use a command line editor (vi or Emacs).
What's a good graphical C for Linux? I'd rather avoid the command line. I know how to use it modestly enough, but I don't enjoy it.
Here are my opinions, first skip the Pascal, other than Turbo Pascal (which was great) I don't see a lot of use for it. It was meant as a teaching language and I think Python is used for that now (good language though the indentation brings me back to my Assembly Language days, yes with 4 char labels). C is good, learn that and you are part way to Assembly Language and part way to a high level language. It's enough to handle most of the Arduino stuff. The problem with Pascal anc C in the museum is that you need to have a complex env. setup and running, machine and software. This is a bit high maintenance though we probably should have something that can run in the museum so my argument may not be valid. As far an IDE is concerned, I'm the wrong person to ask I live in emacs. But I hear nice things about Eclipse but I don't like the env. Sorry I've been using emacs since 1978 and I know the key strokes without thought. Does give me some trouble when I'm using MS Word. -- Linux Home Automation Neil Cherry ncherry@linuxha.com http://www.linuxha.com/ Main site http://linuxha.blogspot.com/ My HA Blog Author of: Linux Smart Homes For Dummies
On 01/19/2017 08:51 PM, Neil Cherry via vcf-midatlantic wrote:
As far an IDE is concerned, I'm the wrong person to ask I live in emacs. But I hear nice things about Eclipse but I don't like the env. Sorry I've been using emacs since 1978 and I know the key strokes without thought. Does give me some trouble when I'm using MS Word.
Right there with you on that, emacs since 1986, and all day/every day since then. I don't touch MS Word, though. ;) -Dave -- Dave McGuire, AK4HZ New Kensington, PA
On Thu, 19 Jan 2017, Evan Koblentz via vcf-midatlantic wrote:
I'd also consider Turbo C for MS-DOS. Or, if you want to go a different period direction, use cc on your Linux box and force yourself to use a command line editor (vi or Emacs).
What's a good graphical C for Linux? I'd rather avoid the command line. I know how to use it modestly enough, but I don't enjoy it.
A lot of us old-school C programmers prefer the command line. My personal preference (on *nix) is: 1. Terminal window open for editing with 'vim'. 2. Another terminal window for running 'make'. 3. A third terminal for reading 'man' pages. :-) If I'm writing a web-based application, a web browser is open on a second monitor. 'gdb' (debugger) is another handy tool. Mike Loewen mloewen@cpumagic.scol.pa.us Old Technology http://q7.neurotica.com/Oldtech/
On Jan 19, 2017, at 9:21 PM, Mike Loewen via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On Thu, 19 Jan 2017, Evan Koblentz via vcf-midatlantic wrote:
I'd also consider Turbo C for MS-DOS. Or, if you want to go a different period direction, use cc on your Linux box and force yourself to use a command line editor (vi or Emacs).
What's a good graphical C for Linux? I'd rather avoid the command line. I know how to use it modestly enough, but I don't enjoy it.
A lot of us old-school C programmers prefer the command line. My personal preference (on *nix) is:
1. Terminal window open for editing with 'vim'.
2. Another terminal window for running 'make'.
3. A third terminal for reading 'man' pages. :-)
Personally, my favorite is juggling jobs with ^Z and 'fg %x', since it means one less thing to have to click on (also, I got my start in command-line programming on single-window terminals, so jobs juggling was the only option). If possible, I like to avoid mouse use entirely; it entails a high context-switch overhead.
If I'm writing a web-based application, a web browser is open on a second monitor.
Well, yeah, no way around that. - Dave
On 1/19/2017 9:28 PM, Evan Koblentz via vcf-midatlantic wrote:
What's a good graphical C for Linux? I'd rather avoid the command line. I know how to use it modestly enough, but I don't enjoy it.
A lot of us old-school C programmers prefer the command line.
I know that. It's not what I asked. :)
I downloaded and installed Eclipse. Woh! Impressive! Now follow someones helloworld C example and you are on your way!
I downloaded and installed Eclipse. Woh! Impressive!
Nah, it's just like installing any other program, a couple of mouse clicks and you are done. But I appreciate your moral support!
Now follow someones helloworld C example and you are on your way!
I have to learn to use the IDE. As someone else said (sorry I forget who) -- it's probably best to own K&R * and * a modern C for Dummies. ________________________________ Evan Koblentz, director Vintage Computer Federation a 501(c)3 educational non-profit evan@vcfed.org (646) 546-9999 www.vcfed.org facebook.com/vcfederation twitter.com/vcfederation
On 1/19/2017 11:19 PM, Evan Koblentz via vcf-midatlantic wrote:
I downloaded and installed Eclipse. Woh! Impressive!
Nah, it's just like installing any other program, a couple of mouse clicks and you are done. But I appreciate your moral support!
The choice, and move forward is impressive.
Now follow someones helloworld C example and you are on your way!
I have to learn to use the IDE. As someone else said (sorry I forget who) -- it's probably best to own K&R * and * a modern C for Dummies.
Yes you do, really. However the exercise of someone's eclipse helloworld.c example, even if you don't understand the mechanics (yet), is very satisfying and a really huge moral booster. (as long as its a good example that works!)
________________________________ Evan Koblentz, director Vintage Computer Federation a 501(c)3 educational non-profit
evan@vcfed.org (646) 546-9999
www.vcfed.org facebook.com/vcfederation twitter.com/vcfederation
On 01/19/2017 11:27 PM, Douglas Crawford via vcf-midatlantic wrote:
Now follow someones helloworld C example and you are on your way!
I have to learn to use the IDE. As someone else said (sorry I forget who) -- it's probably best to own K&R * and * a modern C for Dummies.
Yes you do, really. However the exercise of someone's eclipse helloworld.c example, even if you don't understand the mechanics (yet), is very satisfying and a really huge moral booster. (as long as its a good example that works!)
And please, for the love of all that's holy, AFTER getting that running, at least LOOK at what's going on with the compiler to actually do what you told the IDE to do. If you ever want to be a truly effective programmer you'll need at least a passing understanding of what the IDE is preventing you from seeing and controlling. Even just knowing the magnitude of what's there will do you a lot of good. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
On Jan 19, 2017, at 9:28 PM, Evan Koblentz via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
I downloaded and installed Eclipse.
Good choice. I’ve made my living for the past 15 years working with Eclipse. It’s not the flashiest or coolest kid on the block, but it gets the job done.
On 01/19/2017 08:38 PM, Evan Koblentz via vcf-midatlantic wrote:
What's a good graphical C for Linux? I'd rather avoid the command line. I know how to use it modestly enough, but I don't enjoy it.
Nearly all of the world's C compilers, past and current, are command line systems. And nearly all of them are actually GCC under the covers, for everything even remotely modern. I've gotten pushback from lots of people in the past after having made those statements, and they point to stuff like Eclipse, MPLab, etc. Those, and nearly all others, are just GUIs wrapped around standard command-line GCC. So in your case it boils down to finding an IDE that you like. I personally recommend avoiding them entirely, as they deprive you of most of the flexibility and control. (they also tend to be huge lumbering pigs resource-wise) IDEs are very generally for the lazy folks who ask questions like "What do I click to make a program?" Unfortunately that's 95% of the developers out there today. Some say there's nothing wrong with that, but there actually is quite a lot wrong with it. I cut the size of the resultant binary down by almost 80% by ditching an IDE in a product whose firmware I inherited several years ago. The code size was important not only because the program memory space on the processor was nearly full and they wanted additional features, but also because the firmware updates were (and are) sent out via the cellular data network. Until I fixed it, a global firmware update cost about $20,000 to $22,000. Now it's about $3,500 due to the reduced binary size. Why? The IDE isolated the programmers from full control of the compiler and its code generation options. In other words, they discovered "what to click to make a program", and clicked it. Without learning a damn thing about what they were actually doing. But I digress. You get the point. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
But I digress. You get the point.
Indeed I do. Even in plain old HTML4, I work with nothing but a text editor. I know plenty of "smart" people who insist on using a bloated development program. My pages are small and tight, theirs aren't. Right now I probably shouldn't be making big decisions. Planning all the details for VCF East XII, working on the Lego project, writing a whole other BASIC program for a museum demo, doing a bunch of other cool VCFed stuff I can't yet reveal :), and (oh yeah) doing actual work for my daytime job. Learn a new programming language at the same time? That's something only an E... errr fool would do.
On 01/20/2017 12:42 AM, Evan Koblentz via vcf-midatlantic wrote:
But I digress. You get the point.
Indeed I do. Even in plain old HTML4, I work with nothing but a text editor. I know plenty of "smart" people who insist on using a bloated development program. My pages are small and tight, theirs aren't.
EXACTLY. So you have an understanding of the problem from another direction. It's far, far worse with an IDE wrapped around a compiler, but it's for exactly the same reasons.
Right now I probably shouldn't be making big decisions. Planning all the details for VCF East XII, working on the Lego project, writing a whole other BASIC program for a museum demo, doing a bunch of other cool VCFed stuff I can't yet reveal :), and (oh yeah) doing actual work for my daytime job. Learn a new programming language at the same time? That's something only an E... errr fool would do.
And yet many fools do. :) I'm sure you can do this. Just go do it. You'll be fine. And if you're not, you know where to get help. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
Pascal with an IDE -- I'm getting college flashbacks to the Delphi 7variant of Object Pascal. It was so integrated with its IDE that finding a good starting point to learn the syntax was insurmountable within the short time I was given. However, I did manged to accomplish the task at hand by sheer luck and educating guessing. But that was years ago, and I hope to never touch Object Pascal again. At the same time I was wrestling that, I did a historical paper onPascal. In the process of researching it, I think that was the first timeI was exposed to the concept of writing out a program by hand withpencil and paper before entering it onto a computer. That blew mymind, seeing as never thought of a time before text editors and glassterminals. I'm so used to instant gratification of finding syntacticalerrors and compiling at the drop of a hat. Then again, that dates meas an individual... I should really give the alternative a try some time for the sake ofperspective. -Alexander 'Z' Pierson On Friday, January 20, 2017 12:46 AM, Dave McGuire via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote: On 01/20/2017 12:42 AM, Evan Koblentz via vcf-midatlantic wrote:
But I digress. You get the point.
Indeed I do. Even in plain old HTML4, I work with nothing but a text editor. I know plenty of "smart" people who insist on using a bloated development program. My pages are small and tight, theirs aren't.
EXACTLY. So you have an understanding of the problem from another direction. It's far, far worse with an IDE wrapped around a compiler, but it's for exactly the same reasons.
Right now I probably shouldn't be making big decisions. Planning all the details for VCF East XII, working on the Lego project, writing a whole other BASIC program for a museum demo, doing a bunch of other cool VCFed stuff I can't yet reveal :), and (oh yeah) doing actual work for my daytime job. Learn a new programming language at the same time? That's something only an E... errr fool would do.
And yet many fools do. :) I'm sure you can do this. Just go do it. You'll be fine. And if you're not, you know where to get help. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
Why is an IDE needed or even useful for this process? cat >hello.c #include <stdio.h> void main (void) { printf("hello world\n"); } ^D gcc -o hello hello.c ./hello hello world In the next iteration, to debug your program, replace "cat >hello.c" with "vi hello.c" or "emacs hello.c" Bill Dudley This email is free of malware because I run Linux. On Fri, Jan 20, 2017 at 12:46 AM, Dave McGuire via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
On 01/20/2017 12:42 AM, Evan Koblentz via vcf-midatlantic wrote:
But I digress. You get the point.
Indeed I do. Even in plain old HTML4, I work with nothing but a text editor. I know plenty of "smart" people who insist on using a bloated development program. My pages are small and tight, theirs aren't.
EXACTLY. So you have an understanding of the problem from another direction. It's far, far worse with an IDE wrapped around a compiler, but it's for exactly the same reasons.
Right now I probably shouldn't be making big decisions. Planning all the
details for VCF East XII, working on the Lego project, writing a whole other BASIC program for a museum demo, doing a bunch of other cool VCFed stuff I can't yet reveal :), and (oh yeah) doing actual work for my daytime job. Learn a new programming language at the same time? That's something only an E... errr fool would do.
And yet many fools do. :) I'm sure you can do this. Just go do it. You'll be fine. And if you're not, you know where to get help.
-Dave
-- Dave McGuire, AK4HZ New Kensington, PA
On 01/20/2017 09:21 AM, William Dudley via vcf-midatlantic wrote:
Why is an IDE needed or even useful for this process?
A lot of people go the IDE route because that's what they're told to do as beginners...frequently by other beginners. "Here, this is how you write software." People can't really be faulted for that approach if they have no way of knowing of the existence of any other approach. Some of this stems from the very common assumption that anything involving touching the keyboard is automatically "hard", and anything involving using the mouse is automatically "easy" and automatically "newer". (with "newer" being automatically "better", of course) An IDE can be great when effectively used as a tool. It causes big problems when used as a crutch. In my experience, it's most frequently used as a crutch. That's why (and that's the only reason why) I strongly recommend against them. I personally don't use them at all, but that's only a matter of personal preference and is thus irrelevant to any of this. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
I personally don't use them at all, but that's only a matter of personal preference and is thus irrelevant to any of this.
-Dave
-- Dave McGuire, AK4HZ New Kensington, PA
Benefits Primarily because it reduces the amount of key and clicks I make, on my fingers I use something simple like Notepad++ or Eclipse in a basic mode. I still write code within, but it's nice to get the color codiing, etc. Why not? 1) syntax checker saves time 2) shortcut keys to perform various tasks (open a comment) 3) linking libraries and stuff like that, things I did not code but need to include 4) compile shortcuts. My fingers and wrists can get worn out after a week of heavy coding, and I am more about the thinking / logic than the typing exercise. My guess Dave is you have a lot of personal little short cuts and processes that you use for your own personalized IDE. Probably IDE's show you down, which I can understand. Bill
On 01/20/2017 12:51 PM, william degnan via vcf-midatlantic wrote:
I personally don't use them at all, but that's only a matter of personal preference and is thus irrelevant to any of this.
Benefits
Primarily because it reduces the amount of key and clicks I make, on my fingers I use something simple like Notepad++ or Eclipse in a basic mode. I still write code within, but it's nice to get the color codiing, etc. Why not?
1) syntax checker saves time 2) shortcut keys to perform various tasks (open a comment) 3) linking libraries and stuff like that, things I did not code but need to include 4) compile shortcuts.
All very good points. However, I will point out that 1, 3, and 4 above are functionalities that are not exclusive to IDEs. I use all three of those every day, without an IDE. Number 3 is handled in the Makefile...I might add a library or two, or three or ten, across the development phase of a project, but that really just consists of pulling the Makefile into an editor and adding the new library to the list. Note well that I am not even coming close to arguing that YOU should not use an IDE.
My fingers and wrists can get worn out after a week of heavy coding, and I am more about the thinking / logic than the typing exercise. My guess Dave is you have a lot of personal little short cuts and processes that you use for your own personalized IDE. Probably IDE's show you down, which I can understand.
IDEs very much slow me down. That may not be the case for other people, and that's ok of course. I've been using emacs for text editing for nearly my whole life, to the point where I can't really tell you what the command keys I use every day are, I just DO them. I think it boils down to muscle memory or something like that. They say "emacs becomes an extension of your mind", but I think that applies to any tool (text editor, pair of pliers..) that remains consistent and that a person uses for a long time, and I think what they're really saying is "it becomes automatic", probably due to muscle memory. Psychologists would probably be better equipped to explain how all that works. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
On 01/20/2017 12:38 PM, Dave McGuire via vcf-midatlantic wrote:
On 01/20/2017 09:21 AM, William Dudley via vcf-midatlantic wrote:
Why is an IDE needed or even useful for this process?
A lot of people go the IDE route because that's what they're told to do as beginners...frequently by other beginners. "Here, this is how you write software."
Or as a standardize work environment. I see this a lot in the automated testing being done. Fortunately for me I wrote/write the backend scripts. All I have vi. I really wish I had a VCS though. There's one thing I loved about Apple Mac applications, I could use both the mouse and the keyboard at the same time. The mouse didn't interfere with me using the keyboard. I agree with the incredible amount of bloat we see. It's one of the problems I see the current Linux distros have. I need the latest processor and the most ram to run an X shell, a browser, email and an editor.
People can't really be faulted for that approach if they have no way of knowing of the existence of any other approach.
Some of this stems from the very common assumption that anything involving touching the keyboard is automatically "hard", and anything involving using the mouse is automatically "easy" and automatically "newer". (with "newer" being automatically "better", of course)
This new is better is what got Wellfeet/Baynetworks in trouble. Instead of providing an ASCII interface to the command line they went menu (not terrible) or snmp commands (ARGH!). Later they dropped the menu and went full Windows GUI. Which was useless when the network as down. This is not to say that the GUI doesn't have it's place. I'm now using Node-Red to do home automation. Very cool, quick easy to use, editor's okay (it ain't emacs ;-) ). I also use MQTT (pub/sub broker) no GUI though I can through together some Broswer JS to display it there. I can also manipulate it quite easily from scripts, cron, node-red, etc. Love the new stuff we have today, love the old on which the new stole ideas and is built on. :-) -- Linux Home Automation Neil Cherry ncherry@linuxha.com http://www.linuxha.com/ Main site http://linuxha.blogspot.com/ My HA Blog Author of: Linux Smart Homes For Dummies
Why is an IDE needed or even useful for this process?
A lot of people go the IDE route because that's what they're told to do as beginners...frequently by other beginners. "Here, this is how you write software." People can't really be faulted for that approach if they have no way of knowing of the existence of any other approach.
I've worked in development environments for 20+ years. All kinds of industries, all kinds of operating systems and platforms, embedded, server, desktop, all the way up the stack from hardware. I've seen great code, I've seen ugly code, I've written my share of both. I've written and maintained extremely large projects with and without IDEs, many languages. If you are trying to learn a language and can barely get two lines together - or if you want to write a 20 line program you don't need an IDE, but its helpful. You'll need books, web. If you're writing a large software stack, need to integrate with other frameworks or libraries, an IDE is the way to go. Don't discount using an IDE. They're a great accelerator. -- Steven Toth - Kernel Labs http://www.kernellabs.com
On 01/20/2017 01:35 PM, Steven Toth wrote:
Why is an IDE needed or even useful for this process?
A lot of people go the IDE route because that's what they're told to do as beginners...frequently by other beginners. "Here, this is how you write software." People can't really be faulted for that approach if they have no way of knowing of the existence of any other approach.
I've worked in development environments for 20+ years. All kinds of industries, all kinds of operating systems and platforms, embedded, server, desktop, all the way up the stack from hardware. I've seen great code, I've seen ugly code, I've written my share of both. I've written and maintained extremely large projects with and without IDEs, many languages.
If you are trying to learn a language and can barely get two lines together - or if you want to write a 20 line program you don't need an IDE, but its helpful. You'll need books, web.
If you're writing a large software stack, need to integrate with other frameworks or libraries, an IDE is the way to go.
That's personal preference, not "the way to go". I do all of the above, daily, ~35 years, and don't use an IDE. Our experience base seems very similar, close to identical in fact, but our development methodologies are different. And that's ok. I'm willing to bet that YOU, with your base of experience, know how to do things like tell the compiler to generate separate object sections for link-time removal of uncalled functions. Most IDE users can and do write code all their lives and not even know what that sentence means. (and generate huge binaries as a result!)
Don't discount using an IDE. They're a great accelerator.
You didn't read what else I typed. ;) When used as a tool, they can be very useful, and at that point it boils down to personal preference. When used as a crutch ("Where do I click to make a program?"), the result is, all too frequently, a mess to be cleaned up by people like you and I. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
On Fri, Jan 20, 2017 at 1:47 PM, Dave McGuire via vcf-midatlantic < vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
I'm willing to bet that YOU, with your base of experience, know how to do things like tell the compiler to generate separate object sections for link-time removal of uncalled functions. Most IDE users can and do write code all their lives and not even know what that sentence means. (and generate huge binaries as a result!)
hey ! ....even I know that and I'm just another grey beard hardware grunt ;)
On 01/20/2017 02:09 PM, Dan Roganti wrote:
I'm willing to bet that YOU, with your base of experience, know how to do things like tell the compiler to generate separate object sections for link-time removal of uncalled functions. Most IDE users can and do write code all their lives and not even know what that sentence means. (and generate huge binaries as a result!)
hey ! ....even I know that and I'm just another grey beard hardware grunt ;)
Hey, I resemble that remark! ;) -Dave -- Dave McGuire, AK4HZ New Kensington, PA
On 01/20/2017 01:47 PM, Dave McGuire via vcf-midatlantic wrote:
On 01/20/2017 01:35 PM, Steven Toth wrote:
If you're writing a large software stack, need to integrate with other frameworks or libraries, an IDE is the way to go.
Not picking on Steven, but on the dislike of most IDEs. One more thing, and it's really at the top of my list since I tend to be very OCD on engineering related things ... it makes a @#$!%^& mess of the code indentation. I almost always know when someone uses an IDE because the code will end up getting some weird identation that no programmer could ever come up with. You can generally tell a programmers preference for the way they code but only an IDE can mess up indentation like that. if(blah) { if (!red) { sub_function(); subfunct2(); } } else { subfunct2(); } (Wow that was painful to type and look at) -- Linux Home Automation Neil Cherry ncherry@linuxha.com http://www.linuxha.com/ Main site http://linuxha.blogspot.com/ My HA Blog Author of: Linux Smart Homes For Dummies
On 01/20/2017 07:58 PM, Neil Cherry wrote:
On 01/20/2017 01:47 PM, Dave McGuire via vcf-midatlantic wrote:
On 01/20/2017 01:35 PM, Steven Toth wrote:
If you're writing a large software stack, need to integrate with other frameworks or libraries, an IDE is the way to go.
Not picking on Steven, but on the dislike of most IDEs. One more thing, and it's really at the top of my list since I tend to be very OCD on engineering related things ... it makes a @#$!%^& mess of the code indentation. I almost always know when someone uses an IDE because the code will end up getting some weird identation that no programmer could ever come up with. You can generally tell a programmers preference for the way they code but only an IDE can mess up indentation like that.
if(blah) { if (!red) { sub_function(); subfunct2(); } } else { subfunct2(); }
(Wow that was painful to type and look at)
Ugh, I couldn't agree more. Readability is important. Someone else might inherit your code! My source code ALWAYS has perfect and consistent formatting and indentation, and NEVER has dangling whitespace at the ends of lines. And I don't ever even have to think about it; my editor, emacs (which is, among other things, a true programming editor, not just a half-assed "text widget" thrown into an IDE) does all of that for me, automatically. Neatness is important. Pride in workmanship is important. Not that I said "important"...which is very different from "popular" or "common". ;) -Dave -- Dave McGuire, AK4HZ New Kensington, PA
On Jan 19, 2017, at 7:18 PM, Adam Michlin via vcf-midatlantic <vcf-midatlantic@lists.vintagecomputerfederation.org> wrote:
I know you hate the beige boxes, but there is no better IDE for Pascal than Turbo Pascal for MS-DOS. I'm pretty sure I first ran it on an XT class machine, but I'm sure someone here knows better than I do the most appropriate vintage configuration.
Apostasy! MPW (classic Mac OS) is objectively the best Pascal IDE! *hides* - Dave
On 01/19/2017 06:46 PM, Evan Koblentz via vcf-midatlantic wrote:
This has been a very educational thread for me.
It sounds like most people agree I should learn C or Pascal. C familiarity would serve me well as a computer historian. Pascal would make me a better (or at least less-sloppy) programmer.
If I try my hand at Pascal, then I know to seek a version of UCSD Pascal for Apple, that's knowledge I picked up as a historian. :)
If I try learning C, then I could go directly to K&R or even pick up a modern Dummies book, but for period's sake it would be the former.
"Modern" vs "period" is irrelevant here. The K&R book (2nd edition...that part IS relevant) is by far the easiest book from which to learn C. Yes, it's decades old, but that doesn't matter. The language is the language. More stuff has been added to the ANSI C standard, even relatively recently, but none of it is anything that's relevant to what you want to do, and it's nearly all stuff that nobody ever uses. C is a very, very tiny language. The key to learning it is to slow down and pay attention. Don't rush through it, or you'll get stuck on pointers, which are just about the simplest concept in all of computing, but people who rush too much and don't pay attention don't wrap their brains around them. And it's a marketable job skill. In these uncertain times, an additional job skill is a good insurance policy. Further, the use of C is growing exponentially with the new focus on simpler, low-power processors in the embedded space. Pascal is a nice language but it's not marketable at all. It's used a bit here and there, but not much. (unfortunately) It's also a much higher-level language than C. That's neither here nor there, but it's something you should (and probably already do) know. -Dave -- Dave McGuire, AK4HZ New Kensington, PA
This has been a very educational thread for me.
It sounds like most people agree I should learn C or Pascal. C familiarity would serve me well as a computer historian. Pascal would make me a better (or at least less-sloppy) programmer.
If I try my hand at Pascal, then I know to seek a version of UCSD Pascal for Apple, that's knowledge I picked up as a historian. :)
If I try learning C, then I could go directly to K&R or even pick up a modern Dummies book, but for period's sake it would be the former.
"Modern" vs "period" is irrelevant here. The K&R book (2nd edition...that part IS relevant) is by far the easiest book from which to learn C.
Noted.
C is a very, very tiny language. The key to learning it is to slow down and pay attention. Don't rush through it, or you'll get stuck on pointers, which are just about the simplest concept in all of computing, but people who rush too much and don't pay attention don't wrap their brains around them.
Oh I NEVER rush nor skip details. Right Jeff B.? :)
And it's a marketable job skill. In these uncertain times, an additional job skill is a good insurance policy. Further, the use of C is growing exponentially with the new focus on simpler, low-power processors in the embedded space.
Pascal is a nice language but it's not marketable at all. It's used a bit here and there, but not much. (unfortunately) It's also a much higher-level language than C. That's neither here nor there, but it's something you should (and probably already do) know.
Got it.
On Thu, 19 Jan 2017, Dave McGuire via vcf-midatlantic wrote:
On 01/19/2017 06:50 AM, Bob Flanders via vcf-midatlantic wrote:
Agreed. I wrote a system in FORTH that monitored equipment at various sites around the USA for MCI. It was used for about 15 year. ('85-'00).
Quick trivia question. Why was it named FORTH, not FOURTH?
A five-letter filename limitation, if memory serves.
-Dave
From "The Evolution of FORTH": "The name FORTH was intended to suggest software for the fourth (next) generation computers, which Moore saw as being characterized by distributed small computers. The operating system he used at the time restricted file names to five characters, so the 'U' was discarded. FORTH was spelled in upper case until the late 1970s because of the prevalence of upper-case-only I/O devices. The usage 'Forth' was generally adopted when lower case became widely available, because the word was not an acronym." https://www.forth.com/resources/forth-programming-language/#1_Chuck_Moore821... Mike Loewen mloewen@cpumagic.scol.pa.us Old Technology http://q7.neurotica.com/Oldtech/
On 01/19/2017 11:57 PM, Douglas Crawford via vcf-midatlantic wrote:
Another possibility for a natural 80s style progression which I would recommend is Forth. Still a great language and was designed to run easily on hardware from that era. Get a copy of fig-Forth and download a free PDF of "Starting Forth" by Leo Brodie from https://www.forth.com/starting-forth/ and you will begin an incredibly rewarding journey.
Forth is a really mind-bending language, but man, it sure is powerful. I love it.
I found it fascinating to learn of a modern and prominent use of Forth: Sun did boot firmware (Open Firmware / Open Boot) in Forth which was used, among other places, for a period of time by Apple on PowerPC PowerMacs. Wow!
All non-PC Sun systems past the sun4 (as opposed to sun4c/sun4m) kernel architectures use OpenBoot as their firmware. Also, a great many RS/6000 models. OpenBoot was the only systems firmware that was (but is no longer) an IEEE standard. If you want a really nice Forth workstation, pick up a nice SPARCstation-IPC or -IPX and just don't boot it! ;) -Dave -- Dave McGuire, AK4HZ New Kensington, PA
participants (31)
-
Adam Michlin -
Alan Hightower -
Alexander Pierson -
Bob Flanders -
Chris Fala -
Chris Leyon -
Dan Roganti -
Dave McGuire -
Dave Wade -
David Gesswein -
David Riley -
Dean Notarnicola -
Derrik Walker v2.0 -
Devin Heitmueller -
Douglas Crawford -
Evan Koblentz -
Evan Koblentz -
Jason Perkins -
Jeffrey Brace -
Joseph S. Barrera III -
jsalzman@gmail.com -
Mike Loewen -
murphnj -
Neil Cherry -
Peter Cetinski -
RETRO Innovations -
Steven Toth -
Systems Glitch -
Todd George -
william degnan -
William Dudley