On Thu, 26 Jun 2003 22:08:13 -0700, you wrote: >Hey man, I should take some blame for those phrases like that to begin >with. Sorry about that. Hehe. Yes, it was you I got that phrase from. Andrew has my apology for it, for what it's worth. I honestly had no nefarious intent, though. And I am honestly confused by his reaction. But I accept that he had one and I do apologize for my part in that. >Jonathan, business decision is obviously a complex process. Whether a >vendor decides to work with another supporter or not depends on a great >number of factors. In this example, if we were to get involved with Andrew, >obviously it will be because we think it makes sense for us to do so. Completely agreed. >Whether Andrew uses his income to "feed his children" or to buy a nice >fancy sports car, or whatever, is immaterial. hehe. Abolutely. I was only a metaphor to me. Not a real thing. >IOW, my decision will solely >be based on its beneficial factors to me, and not to him. Obviously he will >make his decision in similar vein. An agreement will only come about when >both parties think it is beneficial to them in their own ways. Nothing more >and nothing less. Indeed. Nothing I said disagrees with this. I was just exploring it, myself -- thinking out loud, so to speak. And I think I've a right to do that much and neither of you are obligated in any way to clarify anything to me. But I can still talk out loud. Anyway, apologies to Andrew. No slights were intended. Jon
Why no Multitasker in C compilers?
Started by ●June 24, 2003
Reply by ●June 27, 20032003-06-27
Reply by ●June 27, 20032003-06-27
--- In msp430@msp4..., Jonathan Kirwan <jkirwan@e...> wrote:
> Anyway, apologies to Andrew. No slights were
intended.
Apology accepted.
--Andrew
Reply by ●June 27, 20032003-06-27
Hi John, It feels like 35 years ! I woke up this morning, read your post. This got me thinking about the history - dates -etc. I can now be a bit more precise. The first system I got involved in for embedded use was an Intel SBC, a great big PCB, complete with an ICE. I don't remember if the ICE was part of the SBC or a seperate box. - This was the period that I used the telex machine for HMI. Later we purchased STD bus parts, adopted the Z80, bought another ICE, upgraded to a VT100 terminal and floppies,I suspect that this was the time that CPM came into the picture. This all happened while I was in Great Yarmouth - UK, when I was involved in the oil business. The equipment was used to do underwater internal pipe profile measurements. I was there for 1969-1977. So this fits in with what you said. I wish I had the money (with compound interest) that we spent then! Graham. > 35 years ago? I don't think CP/M was around in 1968. More like late 1975, > early 1976, based on the CPM 1.0 manuals I'm familiar with. CP/M 2.2 was > 1978, IIRC. http://sneezy.usu.edu/~ivie/cpm2 > > --John
Reply by ●June 27, 20032003-06-27
Hi Jonathan, Gosh you make me feel bad now. At the time I was in the then fledgling UK oil business and money wasn't really the issue. This is the first time for many years that I have tried to recall the events. I have just made another post with a bit more stuff that I remembered. It was 34 years ago, but as a couple of people point out the Z80 didn't come along till later. I just remember that latter part of the history better! I only wish that I had kept some of the hardware, especially the early parts. I remember we used Mostek too. Anyway back to reality - I have to do some quotes. Graham.
Reply by ●June 27, 20032003-06-27
Tim, Here is some nonsense code and the disassembler output. If you want the results of some real code post it and I will compile - return. Note. R7 top of data stack, R5 is data stack pointer Graham. : add3 ( n n n - n ) + + ; : give3 ( - n ) $11 $22 $33 add3 ; : Mult ( - n ) give3 give3 * ; [ ADD3 ] E000 ADD @+R5 , R7 E002 ADD @+R5 , R7 E004 RET ok [ GIVE3 ] E006 SUB #2 , R5 E008 MOV R7 , 0000(R5) E00C MOV #0011 , R7 E010 SUB #2 , R5 E012 MOV R7 , 0000(R5) E016 MOV #0022 , R7 E01A SUB #2 , R5 E01C MOV R7 , 0000(R5) E020 MOV #0033 , R7 E024 CALL #[ ADD3 ] E028 RET ok see mult [ MULT ] E02A CALL #[ GIVE3 ] E02E CALL #[ GIVE3 ] E032 CALL #[ * ] E036 RET ok
Reply by ●June 27, 20032003-06-27
Jonathan Kirwan wrote:
>
> On Thu, 26 Jun 2003 17:23:56 -0000, you wrote:
>
> >I will keep you guessing agewise! (for now anyway)
>
> Younger than me, it looks.
>
> >The 1st micro that
> >I got involved with was a CPM machine,
>
> My first micro was the one I soldered and assembled myself, my
> Altair 8800. My recollection is that I couldn't think of
> anything else when I first read the article in Popular
> Electronics -- memory tells me that this was in December of
> 1974. (I got a new job which started Jan 6th, 1975, which I
> expected to have pay for this.) I think it was a two-parter
> article, with the 2nd installation in January, 1975 -- the month
> I ordered my about $400 kit.
>
> However, prior to that, I'd been using such computers as the
> PDP-8 and the IBM 1130.
>
> My very first computer was the Bell Labs Cardiac, developed in
> 1969. It was a "paper computer" and you moved a little
"bug"
> around from slot to slot and executed the instructions manually.
> My first exposure to the Cardaic was in 1971.
>
> >It had 32k ram
>
> Egads. It wasn't for many years before I ever got to see
> anything with that darned much memory -- my Altair came with 256
> bytes (exactly one static ram chip) and the front panel board
> had four sockets for them, so three were empty. I think it was
> almost another year before I purchased two 4K dynamic ram cards
> from Altair -- and they didn't even work, after building them.
> Getting them to work took me more than another month and a lot
> of learning. Just about in time for Altair to send me a nice
> little notice telling me about their bad design and the
> "patches" I needed to make. Downside was that I'd already
> figured them out and it cost me a lot of time. Upside was that
> I had figured them out and I'd learned a lot about electronics
> which would help me.
>
> I think it wasn't until 1979 before I actually owned something
> with 32k ram. And it was "high cotton," to me, believe you me.
>
> >a Z80 (don't remember clock speed),
>
> Yeah, you lucky slob. You have *no* idea how much easier it was
> to design a circuit with the Z80 in it, as compared with the
> 8080A (or even the 8085. And the extra instructions were nice.
I hated the Z80, I liked the 8080/5, I loved the 6800, and the 6502 but
i LURVVVED the 6809. Back in the UK, in my Mums attic I've got a neat
collection opf unused 4004's and 8008's. One of my first
'computers' was
built with discrete logic RTL, and a small magnetic core memory.
(courtesy of the ARMY) It's most useful task was as a foot warmer. One
of the most fun programs I wrote was Star Wars tacked onto the end of a
ladder logic program running the Cat regen tower on the worlds largest
gas processing plant in Saudi (1981). There was space, and the stupid
thing actually ran through the whole core anyway (yes CORE 8X briefcase
sized chunks of magnetic core memory). It amused the operators on long
boring shifts. The most compact high level language program was probably
an ACOL bidding system in 128 words on a CASIO pocket programmable. IIRC
that was stack oriented reverse polish style.
In 1981 it was the closest thing around to a truly portable computer, I
actually had a version in a watch, picked up in Bahrain, and never seen
since. I mourn their passing. They were simple devices without the PDA
crap you don't need, and great for simple programs. Yes, I know I could
get an HP, but I don't know why, I've never liked HP.
Al
Reply by ●June 27, 20032003-06-27
Tim, a bit more info, This is the GIVE3 word dissembly from another compiler, ( ADD3 and MULT are very similar so I leave them out ). With optimisation on, it gets smarter, and doesn't bother calling ADD3. G. : give3 ( --n) $11 $22 $33 add3 ; Optimiser = OFF dis give3 GIVE3 ( 0000.8BB8 34800600 ) SUB # 0006 R4 ( 0000.8BBC B44022000000 ) MOV # 0022 0000 (R4) ( 0000.8BC2 B44011000200 ) MOV # 0011 0002 (R4) ( 0000.8BC8 84450400 ) MOV R5 0004 (R4) ( 0000.8BCC 35403300 ) MOV # 0033 R5 ( 0000.8BD0 B012AE8B ) CALL # 8BAE ADD3 ( 0000.8BD4 3041 ) RET/NEXT 30 bytes, 7 instructions. OPTIMISER = ON dis give3 GIVE3 ( 0000.8BAE 2483 ) SUB # 2 R4 ( 0000.8BB0 84450000 ) MOV R5 0000 (R4) ( 0000.8BB4 35406600 ) MOV # 0066 R5 ( 0000.8BB8 3041 ) RET/NEXT 12 bytes, 4 instructions. ok