Just gone midnight here, so no time to play. The overheating thing is not the problem I have, they get as much copper as I can spare and that is a lot more than the specs state, and they only get luke warm. You might have noticed that I hate hot electronic bits.
The latched LED flickers when the loading is going well, but comes on and stays on when it deems to "Spacebar ...". Reset button cures it, as always. If you bash out morse code on the reset button the load still completes ok, after the last press!
Tomorrow then.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
Toby Yipppe LOL,, well it turned out for me the fact that I ended up using wire wrap sockets instead of just waiting for my regular IC socket to arrive has come back to haunt me , It tuned out the Prop socket was bad the clock pin was not making contact, and becuase these sockets are so much thicker than regular sockets when I tried to de-solder "I have a de soldering station" I pulled off about half of the lans so I pretty much ruined the board. Its such a shame I was so excited when it booted CPM and worked. I might try to use wire wrap and make the
board connections manually but lets be honest this rarely works plus even if I can pull it off I would think the wires will act like little antennas Well after I am done sulking I will post some pictures Now If I had Toby's skills I would feel a lot better.
So you have wirewrap sockets soldered in, but some of the tracks are damaged?
Well, it ought to be possible to put wire wrap wire in to replace the tracks. No matter about being antennas - they already are anyway with respect to tracks on the board. There is nothing wrong with point to point wiring with wirewrap wire.
Just need to double check the connections are going to the correct pins. My first Z80 board was all done with wirewrap and there were many layers of wire all going every different direction. It worked fine. And some of the very early versions of this board had wirewrap wire on the underside. So it ought to be possible to fix it.
My only claim to art, is the title "Bodge Meister".
99% of all I work with is second/third/fourth hand. If only I could find some scrap Props. The SDRAMs I am going to play with ar steamed off of a DIMM.
Solder on little bits of wire to repair the PCB ( be mindful of the topside stuff underneath things ) and DON'T take any pics (or keep the resolution, and focus down ). Who's to know?
As I can not do Through hole plating, I pit a single hair of wire through the hole before the IC socket is placed. Soldered on the hidden side for 0.2" (ish) along the track and the along with the IC base pin and trimmed. It should be good for a few amps.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
Post Edited (Toby Seckshund) : 1/25/2010 8:42:39 AM GMT
This is crazy esoteric stuff, but tonight I've got a little program running that has a simple menu to login to any propeller dracblade board within wireless range. All boards have a Spin layer sitting under CP/M listening for login commands.
I've built a simple menu system too so you can do file transfers without having to remember which version of xmodem to use and the commands to type.
So - log in to any board, then send a file, receive a file, or run a terminal program where you talk to the remote computer directly. DIR, MBASIC, WORDSTAR all able to be run remotely via wireless.
Enter board number 1 to 24 (0 =auto find): 2
1 - Send a file
2 - Get a file
3 - Terminal
9 - Logoff
Enter your choice: 3
Attempting login...
#BET
~ to exit terminal program
A>
A>mbasic
BASIC-80 Rev. 5.21
[noparse][[/noparse]CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
32824 Bytes free
Ok
system
A>
~
Logging off
A>LOGOFF
A>
I originally had this only working in Z80 Assembler but with 1200 baud radios the link is slow enough to do this in a higher language, so I'm using Sbasic as it is easier to write than assembler (and I know Basic better than C). The only slightly strange thing about sbasic is that it is a one pass compiler, so the MAIN ends up at the end of the program, after all the functions and procedures have been declared. In any case, IMHO it is still a lot easier to read than MBASIC. Though I guess C would be better.
comment
*** Network program for Propeller Dracblade boards ***
call small procedures first then bigger procedures
as can't call/reference a later procedure (one pass compiler)
Dim common variables eg arrays at beginning of program
end
$lines
dim common string greek(26)
rem *** functions and procedures ***
procedure fill_greek_array
greek(1)="ALPHA"
greek(2)="BETA"
greek(3)="GAMMA"
greek(4)="DELTA"
greek(5)="EPSILON"
greek(6)="ZETA"
greek(7)="ETA"
greek(8)="THETA"
greek(9)="IOTA"
greek(10)="KAPPA"
greek(11)="LAMBDA"
greek(12)="MU"
greek(13)="NU"
greek(14)="XI"
greek(15)="OMICRON"
greek(16)="PI"
greek(17)="RHO"
greek(18)="SIGMA"
greek(19)="TAU"
greek(20)="UPSILON"
greek(21)="PHI"
greek(22)="CHI"
greek(23)="PSI"
greek(24)="OMEGA"
end
function ucase(mystring=string) = string
var i=integer
var outstring=string
var ch=byte
outstring = ""
For i = 1 To Len(mystring)
ch = Mid(mystring, i, 1)
if ch>='a' and ch<='z' then ch=ch-32
outstring = outstring + Chr(ch)
Next i
end=outstring
procedure delay(d=integer)
Rem d is in milliseconds for 3.38 Mhz cpu
Rem call with delay 5000 for 5secs
Var r = Real
Var i = Real
r = d
r=r/5 rem code much faster if use $lines
For i = 1 To r
Next i
End
procedure cls
print chr(27);"[noparse][[/noparse]2J";
end
procedure orange_screen
out 072H,0E0H
out 073H,0H
end
procedure green_screen
out 072H,034H
out 073H,0H
end
procedure print_boards
var i,j=integer
for i=1 to 24
print i;"=";greek(i);" ";
j=j+1
if j>7 then
begin
print rem new line
j=0
end
next i
print
end
procedure send_string_port2(lineoftext=string)
rem send lineoftext to port2 and adds carriage return and lf
var i=integer
var a=integer
for i=1 to len(lineoftext)
a=asc(mid(lineoftext,i,1))
print chr(a);
out 078H,a
delay 300
rem 200 is too quick
next i
end
procedure login(a = string)
var lineoftext=string
lineoftext="#"+left(a,3)+chr(13)+chr(10)
send_string_port2 lineoftext
end
procedure logoff
send_string_port2 "LOGOFF"+chr(13)+chr(10)
end
function reply = integer
rem looks for a A> coming back, returns s=0 for fail, 1 for success
var a,b,t,s=integer
cls
orange_screen
delay 1000 rem wait for remote board to wake up
repeat
begin
a=inp(07DH)
if a=33 then
begin
b=inp(078H)
print chr(b);
end
t=t+1
end
until b=asc(">") or t=1000
if t>999 then print "Timeout - no reply"
if t>999 then s=0 else s=1
end =s
procedure clearbuffer
var a,b=integer
repeat
begin
a=inp(07DH) rem test the port
if a=33 then b = inp(078H) rem get the character
end
until a=32
end
function menuoptions = integer
rem small amount of text so fits on LCD display
var a=integer
var menu2 = string
print "1 - Send a file"
print "2 - Receive a file"
print "3 - Terminal"
print "9 - Logoff"
input2 "Enter your choice: ";a
end = a
procedure CommandDIR
var a,b,t=integer
delay 1000
send_string_port2 "DIR"+chr(13)+chr(10) var a,b=integer
repeat
begin
a=inp(07DH)
if a=33 then
begin
b=inp(078H)
print chr(b); rem to local screen
t=0 rem reset the counter
end
t=t+1
end
until t=1000
end
procedure terminal
var a,head,tail,counter=integer
dim integer buffer(16)
print "~ to exit terminal program"
repeat
begin
if inp(07DH)=33 then print chr(inp(078H)); rem port2 to local screen
if inp(074H)=255 then
begin
a=inp(075H) rem get local keyboard character
buffer(head)=a rem store in buffer
head=head+1
if head >15 then head=0
rem if a=13 then counter=1000 rem deleted bytes might be coming back
end
counter=counter+1
if counter>1000 then
begin
while head <> tail do
begin
out 078H,buffer(tail)
tail=tail+1
if tail>15 then tail=0
end
counter=0
end
end
until a=asc("~")
print "Logging off"
end
procedure xmodemsend
var filename,command=string
INPUT2 "Filename to send: ";filename
filename=ucase(filename)
send_string_port2 "ERA "+filename+chr(13)+chr(10)
delay 500
clearbuffer
command="XMODEM2 S "+filename
send_string_port2 "XMODEM2 R "+filename+chr(13)+chr(10)
print "Note this leaves the remote computer still logged in so run again to logoff"
rem maybe do this as a submit file instead then run logoff?
green_screen
execute "STAT.COM",command rem STAT is a dummy command
end
procedure xmodemreceive
rem assumes local file does not exist - ? erase with a submit command
var filename,command=string
INPUT2 "Filename to receive: ";filename
filename=ucase(filename)
command="XMODEM2 R "+filename
send_string_port2 "XMODEM2 S "+filename+chr(13)+chr(10)
print "Note this leaves the remote computer still logged in so run again to logoff"
rem maybe do this as a submit file instead then run logoff?
green_screen
execute "STAT.COM",command rem STAT is a dummy command
end
rem ************ MAIN **************
var a,s,menu1,menu2=integer
print "Welcome to CP/M networking for the Propeller"
clearbuffer rem any characters in the buffer
fill_greek_array rem all the greek alphabet
print_boards
input2 "Enter board number 1 to 24 (0 =auto find): ";menu1
menu2=menuoptions rem print options now logged in
print menu2
print "Attempting login..."
login greek(menu1) rem try to login
s=reply rem wait for something to come back, 1=success
if s=1 then
begin
send_string_port2 chr(13)+chr(10) rem hit enter on remote machine to clear line
if menu2=1 then xmodemsend
if menu2=2 then xmodemreceive
if menu2=3 then terminal rem done internally now as 1200 baud slow enough
delay 300
logoff
cls
end
green_screen
end
Damn Toby that was an excellent idea putting a wire through the hole I wish I read this before I started my repairs I already soldered in another wire wrap socket but left it sticking out of the board half way on each side so I can solder the topside traces that were also damaged. I am attempting repairs right now and will post if I was successful,, DR_A let me knwo when your new boards I ready I would like to order one either way
OK this is for Toby YIPPIE ,, DR_A you are awesome ym friend thank you very much for all you have done and all the help to bad you don't live near by I would be happy to buy you a beer,lol ,, Well I have ben working on my board for a few hours and its working
I have had it running for over an hour now even resetting it keeps right on booting CPM so I guess my next move is to try CPM stuff with it,,lol The pictures are blurry I just do not know how to take good pictures up close
but you get the general idea of what I did
Dr I would actually like to have a few extra boards to build please send me a paypal thing but use the divsilverado@yahoo.com that's how I have my paypal account the only real pain I have had in getting chips I did buy quite a few spares of everything else was the MAX232 I do not have any spares of that chip and when I try to buy it like we discussed there are 12 different versions and I Am still not sure I have the right one since I ended up using the SP232 which seems to be working for now
,,I would love to hear what you guys are running on your systems and does anyone have a version of basic that will run on this I would really like C or ASM but I am assuming memory on the prop would be a problem???
re "so I guess my next move is to try CPM stuff with it"
Yep. He's hooked!
re 'The pictures are blurry". Yes, sometimes I take 10 photos to get the right one. Flash on. Flash off. Lo res close up. High res and move away then use Paintshop to cut and paste the relevant bit. My camera has an autofocus and it focusses on the little bit right at the centre of the screen. So sometimes I have to give it something to focus on. Eg when taking a photo of my vga monitor, I put the centre of the photo on the brand name writing at the top of the monitor. It can focus better on that. Then the screen of course fills only the bottom half of the photo so you have to crop the top bit off.
Re max232 variants, I think most will work just fine. The only main differences are some are 1uF caps and some are 0.1uF caps. I've been using 1uF and it all seems to work ok.
I'll rummage around and see if I can find some more boards.
Re "but I am assuming memory on the prop would be a problem"
Ah - this is the whole point of the exercise. You now have about 60k of ram for your programs (15,000 longs), which is more than the prop has.
Mbasic I think is on the A drive. Sbasic and C and other languages are on the SIMH site, but they are floppy drive images. There is a bit of a trick to getting them into hard drive images - when I get home I might make a few of these as this is a frequent request.
Any more height on that Prop, and it would get a nose bleed.
The reg with a cap might be a bit "un-pretty" but otherwise what are you worrying about ? It works, and if anybody comments just say that it is the experimentation board. My efforts start out as pretty as possible and then get dog ugly with "improvements"
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
No probs, a CP/M system with 64K RAM is quite capable of running MicroSoft Basic. ASM is no problem, you can even rebuild the entire CP/M OS from source code on the DracBlade.
For C, the is the BDS C compiler. Looks like Dr_A is going to get you set up with that.
Then there's Pascal, ADA, Algol, PL/M, Fortran.......
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
This is a work in progress, but attached are the 8mb disk images for Sbasic and C.
These come straight off the Altair SIMH site and it is a matter of creating a new blank i.dsk drive, making the floppy drive B, then doing a PIP I:=B:*.* and then renaming the i.dsk. Then zipped them up which in the case of sbasic shrunk it from 8mb to 95k.
I can do this for any of the drive images on the Altair SIMH site.
These images also work on all of Cluso's boards. Copy the drive in question to the sd card, then rename it (for the dracblade) something like B.DSK or C.DSK or D.DSK (don't use A.DSK as that contains the operating system)
Also a zip of the N8VEM terminal program. This *will* need some setting up, but it does allow very fast compiles as C and Sbasic programs are compiled on the SIMH rather than on the board
Thanks Heater,, Hey Toby if your out there after more testing I am having problems with the 5 volt regulator going into thermal shutdown even with a big heat sink , I committed a design fuba and drove the 3 volt regulator off the 5 and since I only used the TO package the 3 leg
regulator that looks like a transistor , its just to much current draw .. I am wondering what you ended up doing on your boards I am considering using one of the big metal can voltage regulators but I am also considering just running a separate 5 and 3 volts power supply
to my board I really like having everything on the one board but the big metal can type regulator just might not fit.
Oh guys I did get Mbasic and ASM to work I have WS but its been so long since I used it I have forgotten most of it lol
Also DR_A I am having a problem getting my LCD to work is the driver in the basic package or do I need to run separate software
I have used both the SM 5V and 3.3V regs on the little boards, and TO220 types on the larger. The common mains PSU for all of them has been a 9V 2A SMPSU. The regs have all been driven from the 9Volts directly as I suspected the "Spacebar ..." error were due to PSU issues on the first atempt. The 5 V reg only does the KBD (and LCD bits) and has never been above slightly warm. The 3.3V regs get the 100-120mA load of the system, luke to pleasantly warm is what I get. That is with the TO220 sort just being bolted down onto the Fibreglass ( with a bolt through to the earth plain underneath )
So the first question is, what input volts are you using ?? Obviously everything above the 5V dropout will mean unwanted heat.
Second is what current if being used, KBD ?? LCD backlight ??
Here are my layouts, and the second effort at SDRAM prototype bd. The one with the Heatsinks is the Blade2 and PropCMD original which has two props feeding off the rails.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
Regulator going into thermal shutdown is the reason there are switchers on the board. I tried bigger and bigger heatsinks and eventually the heatsink was costing more than the cost of an inductor and switcher. I'm not quite sure why switchers are hard to source. I've yet to find one local supplier that sells all three parts. And also some have a 5 pin version of the 3V reg and some an 8 pin version. I'm getting the regs and diodes from Futurlec and the inductors from Rockby, though I think Future Electronics sell the inductors too.
I'm tempted to make things easier in the future by putting together a kit of parts that include all the harder to get ones?
Try seperate power supply. Or drop the input volts to 7V. Or quite a lot bigger heatsink.
Re the LCD - the software is already there so it is more likely a wiring error.
If I know that I will not be using a lot of current from 3.3V, I use the output of the 5V regulator for the 3.3V regulators input - then the 3.3V regulator stays cool.
Also I usually use 7.5V wall-warts, and have a 1N4007 between the power jack and the input of the 5V regulator - this also helps control the waste heat coming from the 5V regulator.
By doing the above, Morpheus, with a fully populated Mem+, does not even need heat sinks for the voltage regulators!
Hope this helps,
Bill
Dr_Acula said...
Regulator going into thermal shutdown is the reason there are switchers on the board. I tried bigger and bigger heatsinks and eventually the heatsink was costing more than the cost of an inductor and switcher. I'm not quite sure why switchers are hard to source. I've yet to find one local supplier that sells all three parts. And also some have a 5 pin version of the 3V reg and some an 8 pin version. I'm getting the regs and diodes from Futurlec and the inductors from Rockby, though I think Future Electronics sell the inductors too.
I'm tempted to make things easier in the future by putting together a kit of parts that include all the harder to get ones?
Try seperate power supply. Or drop the input volts to 7V. Or quite a lot bigger heatsink.
Re the LCD - the software is already there so it is more likely a wiring error.
Now I'm confused. Either my choice of 9V is good, or there is a whole lot of current I am not using. Clusso agreed with my measurments on the Blade2, of about 100mA and so the DracBlades 120mA seemed about right given its VGA outputs, and KBDs, are additional. My KBD seems to take next to nothing, from the 5V rail, and I only have 20mA going through the LCD's backlight ( just enough to perk it up a bit, as it's only 2x16). I have loads of 12V SMPSUs so perhaps I'll have to try one of those to see if this makes all the difference. Perhaps it is my use of regulated SMPSUs that is sharing the heat, to another place. I hate unregulated "wall warts", the only thing they are useful for is throwing practice ( cats at 30 yards, optional )
I totally hate things to get hot, most of my work is invoked by things being allowed to get too hot, for too long (every cloud ...)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
Keyboards will vary a lot. VGA will be the same as for morpheus. Ditto SD card. LCD backlight is a 1k resistor in series with a led so maybe 5mA. The max232 might be up to 10mA.
Running the Triblade off 12V the regs got very warm. But dropping it back to 7V made a big difference. Using 4001 diodes for voltage drop is a quick and simple fix. Though personally I am still going to recommend switchers, because, like Toby, I don't like things getting hot. I've pulled to bits countless electronics items where components have failed due to heat. You can see the burning on boards and just follow your nose to the source.
Switchers are nice in that you can run them off a huge range of input voltages. 20V or whatever you have. I'm running some of these boards off 12V SLA batteries powered by solar panels and solar electricity is expensive, so I want to use every last little watt.
Personally, I'd try measuring the current being pulled at the 9V input, at 3.3V regulator, at and your 5V regulator. Find out how much current you are actually using.
If you are sure you are drawing less than 1A total, put two or three 1N4004's or 1N4007's in-line, you will drop .7V at each one, thus reducing the voltage differential and heat generated at the voltage regulators.
I strongly suspect that Morpheus with Mem+ draws more power than your setup, and I've never had a thermal shutdown, not even using 9VDC in.
Toby Seckshund said...
Now I'm confused. Either my choice of 9V is good, or there is a whole lot of current I am not using. Clusso agreed with my measurments on the Blade2, of about 100mA and so the DracBlades 120mA seemed about right given its VGA outputs, and KBDs, are additional. My KBD seems to take next to nothing, from the 5V rail, and I only have 20mA going through the LCD's backlight ( just enough to perk it up a bit, as it's only 2x16). I have loads of 12V SMPSUs so perhaps I'll have to try one of those to see if this makes all the difference. Perhaps it is my use of regulated SMPSUs that is sharing the heat, to another place. I hate unregulated "wall warts", the only thing they are useful for is throwing practice ( cats at 30 yards, optional )
I totally hate things to get hot, most of my work is invoked by things being allowed to get too hot, for too long (every cloud ...)
That's interesting becuase while I am driving the 3 volt regulator off the 5 volt regulator the 3 volt runs around 88 degrees while the 5 volt will hit over 100 in a few minutes the board will run this program
Mbasic
10 print"hello mike";
20 goto 10
I only have keyboard , VGA monitor , SD card I do not have the LCD connected ,, you can see in some of my pictures I posted the 5 volt reg has a pretty good size heat sink the 3 volt has none with a temperature gun after 1.8 minutes the 3 volt is 88 degrees the 5 volt 101
in a little more than 2 minutes the 5 volt goes into thermal shut down I get hit space bar for next instruction or something similar on the screen and the board will stop working. I have a DMM on both reg so I can see the 5 volts go away
Oh I do not have the RS-232 cable connected either the part numbers are as follows.
5 volt LM7805C Texas instruments
3 volt LM293/ET 3.3
I am supplying the system with regulated 9 volts I have even tried 7 the power supply is programmable but it does not really change anything after cool down the board will boot CPM and run fine for a few minutes
I tried a Pelitier junction on the 5 volt and it actually worked for around 10 minutes but of course this is not practical at all
Toby DR_A any thoughts , I had to raise the prop chip that high becuase I had to solder underneath it to fix the broken lans I got an order from Digi key today and received 6 max232, 12 74hc374 12 74hc138 and a bunch of the BC547s
I already had 4 of the memory chips I got from the place DR_A sent me to Futurc somehting so I am ready to build a few more boards LOL,,
I am wondering if somehting on my board is drawing excessive current I did pull the inductors and just jumped them out I only used a 1000uf cap for my big cap and double checked all the solder joints for bridges
Its been a long time since I used CPM can anyone tell me how to use the autoexec??? can I just make an autoexec file with ed or ws and use CPM commands like
ED autoexec
Mbasic
run"mike"
so it will run my autoexec file on boot up???? Bill you make a good point I am sure all though DR_A could confirm this board would not draw more than 1 Amp ,, """"DR_A that's why I wanted another board by the way I plan on building the way you designed it and use the right regulators
This is all as would be expected. Anything drawing excessive current would also be hot so you can feel the back of the chips etc but they should all be cold except the prop chip which gets slightly warm. Current is also going off the to the keyboard. Maybe try pulling the keyboard out and see if things are so hot? (The LCD takes hardly anything). Just as an experiment, try pulling the VGA and even the SD card - then the regs should be ok. Mike - I have two boards ready to send you but it might make things a whole lot easier if I send some switching regs as well. I'll have a rummage round in the shed and see what I can find.
Meanwhile, you can always add a bigger heatsink. Just guessing that one looks about 20C/W. Bigger = lower C/W.
If you really want a simple solution while waiting for the new boards, put those regs off-board and bolt each of them to a big lump of metal. Anything will do. (I'm not sure about the pinouts of your regs, but just watch the centre pin is the same as the metal of the TO220 case and you either need an insulating washer or different bits of metal for each reg - unless they are both centre ground like the 7805. Just guessing here as many 3V regs have different pinouts).
Re autoexec the file is autoexec.sub and yes, you can add lines to that with ED. Have you got wordstar working yet?
The TO92 package regulator is only good for 100mA or so. An input voltage 2V above the output is basically the limit. The TO92 regulators should really not be used here.
Your problem is most likely the input to the 5V regulator is too high. An unregulated 9V supply rated for 100mA will give 9V at 100mA, whereas a 9V 1A supply will likely give 12V at 100mA. This is often not understood.
A PS2 keyboard may draw up to 250mA. The newer keyboards will draw a lot less.
For your problem, I suggest you look for a 5V regulated supply for a mobile phone, camera or some other PC peripheral. There are plenty around these days.
I use the LM1117DT which is an smt TO252 package. Provided you have an adequate track ground plane for a heatsink, these are quite effective. Personally, I do not like switchers if I can avoid them. Just choose a suitable power pack.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔ Links to other interesting threads:
Wall warts are quoted at full running current. Full running current is quoted as the point where they can just limp through the warrenty (if any) period before bursting into flames.
They have whoefully inadiquate iron cores and wire so thin that it doubles up as the thermal fuse, if you are lucky. They put out double quoted volts off load and then, by internal resistance and inadiquate smoothing, dive back to the quoted volts as the load approachies the rated value.
They are a pile of poo. (IMHO)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
As I was staring at the rear end of a truck, on the way to work, I thought that I·meant to·have put "Unregulated wall warts .....". Even then the regulated ones are not that much better. The 9 Volts test might have been less distructive if I had used a pathetic PSU, Hey-Ho.
I am spoilt in having easy access to SMPSU ones ( and they are usually too small for their own good, heatwise).
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
*** New Dracblade source code allows access to full 512k ram from within CP/M ****
in Basic you can write
A=PEEK(5000)
with this new code you can write
A=PEEK_EXTENDED(500000)
MBASIC test code is in the main spin code as a comment underneath PRI Peek_RAM but I think this is neater to explain with SBASIC. C code ought to be similar. The biggest problem is a lot of functions in BASIC don't work any higher than 65535 - eg MOD and integer division and bitwise logical AND. So something like splitting a long into bytes takes a lot more lines of code than the equivalent in Spin. Anyway, this is a tiny test program in sbasic which pokes a byte to any location and then reads it back. Use caution with addresses under 255 and between about 50000 and 65535 as these are used by CP/M.
var address=fixed
var value=integer
input "Address value (0-524287): ";address
input "Value (0-255): ";value
print "Poking variable ";value;" to address ";address
Poke_Extended address,value
print "Peeking the location =";Peek_Extended(address)
and the full program with these procedures
procedure Send_Address (address=fixed)
var byte,temp,temp2=fixed
rem mod, integer division and bitwise AND don't work with big numbers
byte=int(address/65536)
poke 082H,byte
temp=byte*65536
temp2=address-temp
byte=int(temp2/256)
poke 081H,byte
temp2=temp2-temp
byte=temp2
poke 080H,byte
rem print address;peek(82H);peek(81H);peek(80H)
end
procedure Poke_Extended (address=fixed;d=integer)
Send_Address address
out 76H,d rem port for high ram
end
function Peek_Extended (address=fixed) = integer
var d=integer
Send_Address address
d=inp(76H)
end=d
rem ************ MAIN **************
var address=fixed
var value=integer
input "Address value (0-524287): ";address
input "Value (0-255): ";value
print "Poking variable ";value;" to address ";address
Poke_Extended address,value
print "Peeking the location =";Peek_Extended(address)
end
Behind the scenes there are a few lines of Spin to recombine the bytes and use the latch driver object.
The above program in MBASIC
10 REM poke then peek a value to ram (0 to 524287 ie to 2^19 minus 1)
20 ADDRESS!=2^19-1
30 PRINT ADDRESS!
40 REM numbers >32768 both bitwise AND, MOD and \ integer division don't work
50 GOSUB 120: REM send out the address
60 OUT &H76,5:REM test byte
70 GOSUB 120: REM resend address
80 A=INP(&H76)
90 PRINT A: REM should print out the value three lines up
100 END: REM end of program
110 REM **********************************************
120 REM pass ADDRESS! up to 2^19 and splits into 3 bytes and puts in DMA
130 BYTE!=INT(ADDRESS!/65536!)
140 POKE &H82,BYTE!
150 TEMP!=BYTE!*65536!
160 TEMP2!=ADDRESS!-TEMP!
170 BYTE!=INT(TEMP2!/256)
180 POKE &H81,BYTE!
190 TEMP!=BYTE!*256
200 TEMP2!=TEMP2!-TEMP!
210 BYTE!=TEMP2!
220 POKE &H80,BYTE!
230 RETURN
Catalina and PropBasic could also use the full 512k but would talk directly to the latch driver object rather than via CP/M.
As soon as I restricted myself to 64KB, by using only two latches, I knew that some swine would go and get past that barrier, Hey-Ho. At least I have the full access on the "Spread out"
Now I am going to have to get the SDRAM running. As in the photo above I have made a board that is easier to work on. I'll have to get a driver sorted out and then bend bit to suit the available pins. This might be as radical as using only 4 pins for vga and shifting the sdcard. If I can suss that lot out then I will have got the hang of this Prop thing.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
I have downloaded a "spec sheet" from Micron which gives a lot more wordy explainations of the workings of SDRAM. I think I see why it isn't peoples' first choise. Blade2 type wiring would be easier but to get the spare pins for Dracblade will be trickier. At least the external latches are defined so well that they can be trusted to do their job and forgotten about.
But the three chip 8, 16 or 32MB "CP/M" does have a ring to it.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
Comments
The latched LED flickers when the loading is going well, but comes on and stays on when it deems to "Spacebar ...". Reset button cures it, as always. If you bash out morse code on the reset button the load still completes ok, after the last press!
Tomorrow then.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
board connections manually but lets be honest this rarely works plus even if I can pull it off I would think the wires will act like little antennas Well after I am done sulking I will post some pictures Now If I had Toby's skills I would feel a lot better.
Well, it ought to be possible to put wire wrap wire in to replace the tracks. No matter about being antennas - they already are anyway with respect to tracks on the board. There is nothing wrong with point to point wiring with wirewrap wire.
Just need to double check the connections are going to the correct pins. My first Z80 board was all done with wirewrap and there were many layers of wire all going every different direction. It worked fine. And some of the very early versions of this board had wirewrap wire on the underside. So it ought to be possible to fix it.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
99% of all I work with is second/third/fourth hand. If only I could find some scrap Props. The SDRAMs I am going to play with ar steamed off of a DIMM.
Solder on little bits of wire to repair the PCB ( be mindful of the topside stuff underneath things ) and DON'T take any pics (or keep the resolution, and focus down ). Who's to know?
As I can not do Through hole plating, I pit a single hair of wire through the hole before the IC socket is placed. Soldered on the hidden side for 0.2" (ish) along the track and the along with the IC base pin and trimmed. It should be good for a few amps.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
Post Edited (Toby Seckshund) : 1/25/2010 8:42:39 AM GMT
I've built a simple menu system too so you can do file transfers without having to remember which version of xmodem to use and the commands to type.
So - log in to any board, then send a file, receive a file, or run a terminal program where you talk to the remote computer directly. DIR, MBASIC, WORDSTAR all able to be run remotely via wireless.
Screen capture of the program running:
A>net4
Welcome to CP/M networking for the Propeller
1=ALPHA 2=BETA 3=GAMMA 4=DELTA 5=EPSILON 6=ZETA 7=ETA 8=THETA
9=IOTA 10=KAPPA 11=LAMBDA 12=MU 13=NU 14=XI 15=OMICRON 16=PI
17=RHO 18=SIGMA 19=TAU 20=UPSILON 21=PHI 22=CHI 23=PSI 24=OMEGA
Enter board number 1 to 24 (0 =auto find): 2
1 - Send a file
2 - Get a file
3 - Terminal
9 - Logoff
Enter your choice: 3
Attempting login...
#BET
~ to exit terminal program
A>
A>mbasic
BASIC-80 Rev. 5.21
[noparse][[/noparse]CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
32824 Bytes free
Ok
system
A>
~
Logging off
A>LOGOFF
A>
I originally had this only working in Z80 Assembler but with 1200 baud radios the link is slow enough to do this in a higher language, so I'm using Sbasic as it is easier to write than assembler (and I know Basic better than C). The only slightly strange thing about sbasic is that it is a one pass compiler, so the MAIN ends up at the end of the program, after all the functions and procedures have been declared. In any case, IMHO it is still a lot easier to read than MBASIC. Though I guess C would be better.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
Post Edited (Dr_Acula) : 1/25/2010 1:53:05 PM GMT
The art of a fantastic project is in the outside 1/1000" that the light bounces off. Stick it in a box.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
I have had it running for over an hour now even resetting it keeps right on booting CPM so I guess my next move is to try CPM stuff with it,,lol The pictures are blurry I just do not know how to take good pictures up close
but you get the general idea of what I did
Dr I would actually like to have a few extra boards to build please send me a paypal thing but use the divsilverado@yahoo.com that's how I have my paypal account the only real pain I have had in getting chips I did buy quite a few spares of everything else was the MAX232 I do not have any spares of that chip and when I try to buy it like we discussed there are 12 different versions and I Am still not sure I have the right one since I ended up using the SP232 which seems to be working for now
,,I would love to hear what you guys are running on your systems and does anyone have a version of basic that will run on this I would really like C or ASM but I am assuming memory on the prop would be a problem???
re "so I guess my next move is to try CPM stuff with it"
Yep. He's hooked!
re 'The pictures are blurry". Yes, sometimes I take 10 photos to get the right one. Flash on. Flash off. Lo res close up. High res and move away then use Paintshop to cut and paste the relevant bit. My camera has an autofocus and it focusses on the little bit right at the centre of the screen. So sometimes I have to give it something to focus on. Eg when taking a photo of my vga monitor, I put the centre of the photo on the brand name writing at the top of the monitor. It can focus better on that. Then the screen of course fills only the bottom half of the photo so you have to crop the top bit off.
Re max232 variants, I think most will work just fine. The only main differences are some are 1uF caps and some are 0.1uF caps. I've been using 1uF and it all seems to work ok.
I'll rummage around and see if I can find some more boards.
Re "but I am assuming memory on the prop would be a problem"
Ah - this is the whole point of the exercise. You now have about 60k of ram for your programs (15,000 longs), which is more than the prop has.
Mbasic I think is on the A drive. Sbasic and C and other languages are on the SIMH site, but they are floppy drive images. There is a bit of a trick to getting them into hard drive images - when I get home I might make a few of these as this is a frequent request.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
Post Edited (Dr_Acula) : 1/26/2010 1:04:10 AM GMT
The reg with a cap might be a bit "un-pretty" but otherwise what are you worrying about ? It works, and if anybody comments just say that it is the experimentation board. My efforts start out as pretty as possible and then get dog ugly with "improvements"
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
No probs, a CP/M system with 64K RAM is quite capable of running MicroSoft Basic. ASM is no problem, you can even rebuild the entire CP/M OS from source code on the DracBlade.
For C, the is the BDS C compiler. Looks like Dr_A is going to get you set up with that.
Then there's Pascal, ADA, Algol, PL/M, Fortran.......
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
This is a work in progress, but attached are the 8mb disk images for Sbasic and C.
These come straight off the Altair SIMH site and it is a matter of creating a new blank i.dsk drive, making the floppy drive B, then doing a PIP I:=B:*.* and then renaming the i.dsk. Then zipped them up which in the case of sbasic shrunk it from 8mb to 95k.
I can do this for any of the drive images on the Altair SIMH site.
These images also work on all of Cluso's boards. Copy the drive in question to the sd card, then rename it (for the dracblade) something like B.DSK or C.DSK or D.DSK (don't use A.DSK as that contains the operating system)
Also a zip of the N8VEM terminal program. This *will* need some setting up, but it does allow very fast compiles as C and Sbasic programs are compiled on the SIMH rather than on the board
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
Post Edited (Dr_Acula) : 1/26/2010 12:18:31 PM GMT
regulator that looks like a transistor , its just to much current draw .. I am wondering what you ended up doing on your boards I am considering using one of the big metal can voltage regulators but I am also considering just running a separate 5 and 3 volts power supply
to my board I really like having everything on the one board but the big metal can type regulator just might not fit.
Oh guys I did get Mbasic and ASM to work I have WS but its been so long since I used it I have forgotten most of it lol
Also DR_A I am having a problem getting my LCD to work is the driver in the basic package or do I need to run separate software
I have used both the SM 5V and 3.3V regs on the little boards, and TO220 types on the larger. The common mains PSU for all of them has been a 9V 2A SMPSU. The regs have all been driven from the 9Volts directly as I suspected the "Spacebar ..." error were due to PSU issues on the first atempt. The 5 V reg only does the KBD (and LCD bits) and has never been above slightly warm. The 3.3V regs get the 100-120mA load of the system, luke to pleasantly warm is what I get. That is with the TO220 sort just being bolted down onto the Fibreglass ( with a bolt through to the earth plain underneath )
So the first question is, what input volts are you using ?? Obviously everything above the 5V dropout will mean unwanted heat.
Second is what current if being used, KBD ?? LCD backlight ??
Here are my layouts, and the second effort at SDRAM prototype bd. The one with the Heatsinks is the Blade2 and PropCMD original which has two props feeding off the rails.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
I'm tempted to make things easier in the future by putting together a kit of parts that include all the harder to get ones?
Try seperate power supply. Or drop the input volts to 7V. Or quite a lot bigger heatsink.
Re the LCD - the software is already there so it is more likely a wiring error.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
If I know that I will not be using a lot of current from 3.3V, I use the output of the 5V regulator for the 3.3V regulators input - then the 3.3V regulator stays cool.
Also I usually use 7.5V wall-warts, and have a 1N4007 between the power jack and the input of the 5V regulator - this also helps control the waste heat coming from the 5V regulator.
By doing the above, Morpheus, with a fully populated Mem+, does not even need heat sinks for the voltage regulators!
Hope this helps,
Bill
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
Las - Large model assembler Largos - upcoming nano operating system
I totally hate things to get hot, most of my work is invoked by things being allowed to get too hot, for too long (every cloud ...)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
Running the Triblade off 12V the regs got very warm. But dropping it back to 7V made a big difference. Using 4001 diodes for voltage drop is a quick and simple fix. Though personally I am still going to recommend switchers, because, like Toby, I don't like things getting hot. I've pulled to bits countless electronics items where components have failed due to heat. You can see the burning on boards and just follow your nose to the source.
Switchers are nice in that you can run them off a huge range of input voltages. 20V or whatever you have. I'm running some of these boards off 12V SLA batteries powered by solar panels and solar electricity is expensive, so I want to use every last little watt.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
If you are sure you are drawing less than 1A total, put two or three 1N4004's or 1N4007's in-line, you will drop .7V at each one, thus reducing the voltage differential and heat generated at the voltage regulators.
I strongly suspect that Morpheus with Mem+ draws more power than your setup, and I've never had a thermal shutdown, not even using 9VDC in.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.mikronauts.com E-mail: mikronauts _at_ gmail _dot_ com 5.0" VGA LCD in stock!
Morpheus dual Prop SBC w/ 512KB kit $119.95, Mem+2MB memory/IO kit $89.95, both kits $189.95 SerPlug $9.95
Propteus and Proteus for Propeller prototyping 6.250MHz custom Crystals run Propellers at 100MHz
Las - Large model assembler Largos - upcoming nano operating system
Mbasic
10 print"hello mike";
20 goto 10
I only have keyboard , VGA monitor , SD card I do not have the LCD connected ,, you can see in some of my pictures I posted the 5 volt reg has a pretty good size heat sink the 3 volt has none with a temperature gun after 1.8 minutes the 3 volt is 88 degrees the 5 volt 101
in a little more than 2 minutes the 5 volt goes into thermal shut down I get hit space bar for next instruction or something similar on the screen and the board will stop working. I have a DMM on both reg so I can see the 5 volts go away
Oh I do not have the RS-232 cable connected either the part numbers are as follows.
5 volt LM7805C Texas instruments
3 volt LM293/ET 3.3
I am supplying the system with regulated 9 volts I have even tried 7 the power supply is programmable but it does not really change anything after cool down the board will boot CPM and run fine for a few minutes
I tried a Pelitier junction on the 5 volt and it actually worked for around 10 minutes but of course this is not practical at all
Toby DR_A any thoughts , I had to raise the prop chip that high becuase I had to solder underneath it to fix the broken lans I got an order from Digi key today and received 6 max232, 12 74hc374 12 74hc138 and a bunch of the BC547s
I already had 4 of the memory chips I got from the place DR_A sent me to Futurc somehting so I am ready to build a few more boards LOL,,
I am wondering if somehting on my board is drawing excessive current I did pull the inductors and just jumped them out I only used a 1000uf cap for my big cap and double checked all the solder joints for bridges
Its been a long time since I used CPM can anyone tell me how to use the autoexec??? can I just make an autoexec file with ed or ws and use CPM commands like
ED autoexec
Mbasic
run"mike"
so it will run my autoexec file on boot up???? Bill you make a good point I am sure all though DR_A could confirm this board would not draw more than 1 Amp ,, """"DR_A that's why I wanted another board by the way I plan on building the way you designed it and use the right regulators
Meanwhile, you can always add a bigger heatsink. Just guessing that one looks about 20C/W. Bigger = lower C/W.
If you really want a simple solution while waiting for the new boards, put those regs off-board and bolt each of them to a big lump of metal. Anything will do. (I'm not sure about the pinouts of your regs, but just watch the centre pin is the same as the metal of the TO220 case and you either need an insulating washer or different bits of metal for each reg - unless they are both centre ground like the 7805. Just guessing here as many 3V regs have different pinouts).
Re autoexec the file is autoexec.sub and yes, you can add lines to that with ED. Have you got wordstar working yet?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
Post Edited (Dr_Acula) : 1/27/2010 3:26:34 AM GMT
Your problem is most likely the input to the 5V regulator is too high. An unregulated 9V supply rated for 100mA will give 9V at 100mA, whereas a 9V 1A supply will likely give 12V at 100mA. This is often not understood.
A PS2 keyboard may draw up to 250mA. The newer keyboards will draw a lot less.
For your problem, I suggest you look for a 5V regulated supply for a mobile phone, camera or some other PC peripheral. There are plenty around these days.
I use the LM1117DT which is an smt TO252 package. Provided you have an adequate track ground plane for a heatsink, these are quite effective. Personally, I do not like switchers if I can avoid them. Just choose a suitable power pack.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
They have whoefully inadiquate iron cores and wire so thin that it doubles up as the thermal fuse, if you are lucky. They put out double quoted volts off load and then, by internal resistance and inadiquate smoothing, dive back to the quoted volts as the load approachies the rated value.
They are a pile of poo. (IMHO)
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
I am spoilt in having easy access to SMPSU ones ( and they are usually too small for their own good, heatwise).
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
in Basic you can write
A=PEEK(5000)
with this new code you can write
A=PEEK_EXTENDED(500000)
MBASIC test code is in the main spin code as a comment underneath PRI Peek_RAM but I think this is neater to explain with SBASIC. C code ought to be similar. The biggest problem is a lot of functions in BASIC don't work any higher than 65535 - eg MOD and integer division and bitwise logical AND. So something like splitting a long into bytes takes a lot more lines of code than the equivalent in Spin. Anyway, this is a tiny test program in sbasic which pokes a byte to any location and then reads it back. Use caution with addresses under 255 and between about 50000 and 65535 as these are used by CP/M.
and the full program with these procedures
Behind the scenes there are a few lines of Spin to recombine the bytes and use the latch driver object.
The above program in MBASIC
Catalina and PropBasic could also use the full 512k but would talk directly to the latch driver object rather than via CP/M.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
www.smarthome.viviti.com/propeller
Now I am going to have to get the SDRAM running. As in the photo above I have made a board that is easier to work on. I'll have to get a driver sorted out and then bend bit to suit the available pins. This might be as radical as using only 4 pins for vga and shifting the sdcard. If I can suss that lot out then I will have got the hang of this Prop thing.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
But the three chip 8, 16 or 32MB "CP/M" does have a ring to it.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point