Shop OBEX P1 Docs P2 Docs Learn Events
The binary programmable Interface based on a prop " 70s wire wrap micro throw back". — Parallax Forums

The binary programmable Interface based on a prop " 70s wire wrap micro throw back".

rwgast_logicdesignrwgast_logicdesign Posts: 1,464
edited 2012-04-13 18:50 in Robotics
I started programming at the age of 12 with QBasic (Acually GW-Basic on an 8088 for the first few months) on a hand me down 386. A few years later I got a job programming with Visual Basic and SQL on Windows 2000 p3 setup. Being 17 in the very early 2000’s with a coding job I thought I was hot stuff. My friends and I decided we wanted to make a mod for Quake 3, so I bought a couple C books and got to work. This is about the time I realized all my really High-Level programming experience and Windows trouble shooting hadn’t amounted to squat! I Still didn’t know how a computer worked or what was going on in the beige box when I ran that VB or C code. To me it was all magic, I knew computers worked in binary but how in the world does an if statement in a high level language get turned into all those 0s and 1s, and even more confusing to me was how do those off and on voltage signals equate to what im seeing on the screen. I mean staring at a web page or changing the contrast of a picture in photoshop is so far abstracted from the hardware its overwhelming.

I hear all the time that theres no reason to learn or ASM and it useless. Well that may be true if you want to build web sites, or iphone apps. If you look at the greats most of them started out in the 70s/80s when you had to wire wrap a micro or you brought you sinclar home and had to learn assembly language to do anything cool. The guys who had to flip toggle switches on there Altair or Elf are the people today who have developed major operating systems or crazy 3D Game engines. Maybe Tim Sweeny didn’t write the Unreal Engine in assembly Language but I garuntee it would run like junk if he didn’t know assembly and how to write good C code that produces less machine instructions. Also the better you are at ASM the more your going to be able to get jobs in the embedded market. Someone has to boot strap that consumer router or dvd player!
There is a problem today though. The same problem I had growing up. Most people are scared or Ignorant when it comes to machine language. The thought of learning on a quad core x64 bit processor is daunting, especially since you cant even see any results without knowing all your OS Interrupts or Bios Interrupts, Im pretty sure you cant even use bios interrupts on modern machines to do a Hello World program now.
I would like to produce an interface to the propeller which always you to enter binary op-codes and send them to the cpu to run, and you can see results on LEDs with alot less knowledge than x86 Hello World. I want to design this as a module to plug into the dev board Im going to start selling soon, or any prop dev board. Now this hardware is all realtively un special to those of us that understand micros. But I am going to keep the project open source and sell it in kit form. I have a friend who is an EE student also intrested in helping. The kit is not about the hardware its about building the hardware with clear directions and explanations of what your building.

Im not sure how to approach the software side yet. I think doing something like an 8088/86 emulator is best. That way the opcodes stay 8 bit and it provides a jumping point to move to Intel ASM with a simple platform. I have always wanted to write an OS but Ive had to work from the sky down to learn the low level side of things. This gives people a way to learn from the ground up, without having to worry about the segmented model or other Arcane things that are frusterating in the Intel world and needless. The hope is when you move to a real computer you will feel confident enough to write a boot loader and not get stuck on the a20 gate becuase you have a good foundation which kept you interested and not frustrated. I have just recently started learning electronics but Im working at it 8 hours a day and Im movin at a decent speed. I do understand the hardware side of this is much simpler the building you own computer based on an acual micro processor with all the supporting chips (lets face it the prop is slick, I mean a resistor DAC and you got VGA, thats still pretty hi level and abstracted from building a VGA circuit) but once again looking at a schematic of a home brew z80 is a bit over most peoples head and taking a uController approach will keep people intrested and not frustrated.

The next plus is when you start learning you have a prop set up, you can plug in a monitor if you want and learn real PASM build something cool and understand what your building! Like I said this is going to be open source hardware and software. But i will be selling in commercial kits. Im developing an overclockable small dev-board kind of like the mikronaughts CPU-Module but not a direct competitor. Its point is to have a simple interface that is clockable through good pcb design. It is more of a simple prop brain than a dev board. I have alot of other products I would like to develop, but this one is an ongoing product. Id love to keep developing the kit in educational steps. Adding ram at some point, maybe building actual video hardware with an xmos cpu, interfacing with an arm cpu for more power. Basically its the smallest step to the end of a very cool multi chip based hobby computer to write embedded software on. This dip interface and manuals is the lowest common denominator to teach people assembly without a bunch of frustration a trip ups over dead technology!

I know this is definately something I would have bought up in a heart beat when I first learning ASM, I cursed myself for chucking that old 8088 (Still using the Keyboard with my prop though!). My EE buddy like the idea, but I talked to a kid just starting CS in a VB class and I donnt think he even understood what the hell I was trying to do. Im just curious on your guys feedback and suggestions!!! I hope you all feel as strongly and excited about the cause as I do!

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2012-04-13 17:33
    Be sure to have a good look at some of the emulators that run on PCs. There's a nice Altair emulator that looks like the original front panel and you can enter switch settings. I've seen a PDP-8 emulator, also with a front panel and indicator lights. This'll give you an idea of what's doable and how it might feel.

    With the Propeller, you could use one Prop to emulate one of these front panels, maybe using the VGA output or even running a real front panel with lights and switches. A second Prop could emulate the processor you want. There are already emulators for a 6502 and an 8080 or Z80. The 8080 and Z80 emulator can run CP/M at original speed or better, but there's no front panel. You'd need a 2nd Prop for that.
  • mindrobotsmindrobots Posts: 6,506
    edited 2012-04-13 18:50
    I responded on your other thread but it probably fit here as well.

    Way back when I was paid to bend bits and crunch bytes, I was an Operating Systems Internalist and Developer for one of the BUNCH (interesting GOOGLE search if you don't know who the BUNCH are). We were writing in assembler and removed from the hardware by one layer of abstraction when or at the most 2 layers for those OS portions that could run as a "user" process. A single person could actually understand, maintain and modify code for the entire OS if need be. Today, this can't happen except in very, very rare cases. If you are writing any business application you are removed from the hardware by many, many layers of abstraction. Even to the point now where the hardware you think you are running on could very well be an abstraction on top of another stack of software - you never know unless you can touch it.

    There aren't many reasons to take the deep dive down to the hardware level any more. It's even getting harder and harder to get down to the true hardware level. Things are becoming blocks, abstractions of real hardware, plug them together and code to them in a higher level language. The Propeller is a sophisticated architecture using advanced designs that are still mostly understandable....much beyond the propeller and I think you reach an area where there just isn't a need to know things at the machine level (just my opinion).

    I do this for fun. I like to code in assembler, I like to play at the hardware level, it's nostalgic and therapeutic. I can control the entire show and build my little propeller machine to do whatever I want - I don't think I'd be able to do that or get the same rewards writing assembler code for an I7 or some high powered ARM processor.
Sign In or Register to comment.