Parallax Forums
  HomeLog InRegisterCommunity CalendarSearch the ForumHelp
   
Parallax Forums > Public Forums > Propeller Chip > TriBladeProp PCB: Uses 3 Propeller ICs for a Single Board Computer (SBC)  Forum Quick Jump
 
New Topic Post Reply Printable Version
848 posts in this thread.
Viewing Page :
 
[ << Previous Thread | Next Thread >> ] | Show Newest Post First ]

heater
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Feb 2008
Total Posts : 1832
 
   Posted 9/29/2009 10:14 PM (GMT -8)    Quote This PostAlert An Admin About This Post.
BrainDamage, nice to see you are following along here.

ZiCog does not implement all the extra Z80 ops yet and perhaps never will. Especially when it comes to block I/O instructions.

However we do have the block loads in place (LDI, LDD, LDIR and LDDR) and we do set flags like the Z80 rather than 8080. So there should be no problem with BDSC.

Edit: The CBIOSX we use comes from the SIMH project and uses that exact same trick of checking the behaviour of the parity flag to determine CPU type and then using LDIR or not. So I'm doubly sure now that ZiCog should be OK with BDSC. Thanks BrainDamage.

I have not seen it myself as I did not have a system with enough RAM until recently but I believe BDSC has worked on ZiCog previously. We have broken something recently. I suspect it is in my recent hacks to the CBIOSX rather than the actual emulation which has not changed much for a while.

BREAKING NEWS: As I type this my TriBlade has just completed rebuilding CP/M and installing it on A:. This is with our latest "no Altair floppies" CBIOS. It is configured slightly differently to give it a little more memory. I'm not sure yet why this makes a difference as we should be reserving enough space for the 8 hard drives to work in anyway.

When I get a moment I will try BDSC, WS etc.


For me, the past is not over yet.

Post Edited (heater) : 9/30/2009 6:22:03 AM GMT

Back to Top
 

Dr_Acula
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Dec 2008
Total Posts : 606
 
   Posted 9/29/2009 11:18 PM (GMT -8)    Quote This PostAlert An Admin About This Post.
We are all waiting eagerly to see how these experiments go. The programs that don't work now did work ok on the floppy emulation, so something changed in the last few weeks. I don't think the instruction interpreter has changed for a while. First step might be to replicate the problem, but if it can't be replicated, well that would be even better and we can go with that version that works.

There is something really cool about a computer that can recompile its own operating system.

Cluso is in town and we are looking at catching up Sunday to brainstorm the zicog/triblade. Heater, if you have a version that has multiple hard drives and doesn't have bugs, we would eagerly look forward to a posting of the code!


www.smarthome.viviti.com/build

Post Edited (Dr_Acula) : 9/30/2009 7:27:21 AM GMT

Back to Top
 

heater
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Feb 2008
Total Posts : 1832
 
   Posted 9/29/2009 11:57 PM (GMT -8)    Quote This PostAlert An Admin About This Post.
OK I have to run to work and there is no time to experiment here so attached is the boot disk image that at least can rebuild CP/M and appears to not have any problem with PIP B:=A:*.* etc.

I have been running it on my TriBlade using Cluso's release zicog_cpm_rc5.5b_rr123-bst-archive-090923-170907

Only changes I made to Cluso's package was to set up my 6.5536MHz clock and replace "BLANK_I0.DSK" with "ZIPM2Z80.D02".

Note that with this "no Altair floppy" boot disk the "FindDriveBase..." for floppies is not used and the disks I: and J: become A: and B:. If that's not to confusing.

The only change I made in the CP/M was to specify "bioslen equ 1000h" instead of "bioslen equ 0C00h" in CFGCCP.LIB.

Why this makes any difference I don't know yet.


For me, the past is not over yet.



File Attachment :
zipm2z80.d02.zip   255KB (application/x-zip-compressed)
This file has been downloaded 11 time(s).
Back to Top
 

Cluso99
We live onboard



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Apr 2008
Total Posts : 2276
 
   Posted 9/30/2009 12:53 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
Heater: Hopefully I can give this a try tomorrow and let you know the outcome.


Links to other interesting threads:
Back to Top
 

Dr_Acula
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Dec 2008
Total Posts : 606
 
   Posted 9/30/2009 1:45 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
rr123 as I understand it was a re-release of an older version that didn't have the bug.
The more recent one that has 8 hard drives is the one with the bug. That is version 120. I'm going to move to v123 now.

But heater, I gather you have modified rr123 so it boots to a hard drive. I tried this below with drive A as your ZIPM2Z80.D02 and that does have the bug.

But you are booting to a hard drive and don't have the bug so is it possible to describe a bit more what version etc. Maybe we all need to go back and start from the same point again?



#ifdef cpm2
'  FindDriveBase(0, string("ZIPM2   .DSK"))              'set the SD card drive base(s)  8MB CPM2.2
'  FindDriveBase(0, string("ZIPM2_64.DSK"))              'set the SD card drive base(s)  8MB CPM2.2
   FindDriveBase(0, string("ZIPM2Z80.D02"))              'set the SD card drive base(s)  8MB CPM2.2       
#else
  'FindDriveBase(0, string("ZICOG_A3.DSK"))              'set the SD card drive base(s)  8MB CPM3 nonbanked
#endif
  FindDriveBase(1, string("ZICOG_B0.DSK"))              'set the SD card drive base(s)  8MB
  FindDriveBase(2, string("ZICOG_C0.DSK"))              'set the SD card drive base(s)  8MB
  FindDriveBase(3, string("ZICOG_D0.DSK"))              'set the SD card drive base(s)  8MB
  FindDriveBase(4, string("ZICOG_E0.DSK"))              'set the SD card drive base(s)  8MB vedit & pascal
  FindDriveBase(5, string("ZICOG_F0.DSK"))              'set the SD card drive base(s)  8MB supercalc
  FindDriveBase(6, string("ZICOG_G0.DSK"))              'set the SD card drive base(s)  1MB equiv floppy
  FindDriveBase(7, string("ZICOG_H0.DSK"))              'set the SD card drive base(s)  <1MB RamDisk

  'other files Q:,R:
  FindDriveBase(17,string("ZIBOOT  .COM"))              'set the SD card drive base(s)    $FF00 for boot hdisk

#endif



Addit: no bug so far with heaters new code. Stay tuned...


www.smarthome.viviti.com/build

Post Edited (Dr_Acula) : 9/30/2009 10:01:17 AM GMT

Back to Top
 

Cluso99
We live onboard



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Apr 2008
Total Posts : 2276
 
   Posted 9/30/2009 2:33 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
rr123 just had the addition of support for the floppies added back in. Otherwise, it is the same base as rr120.

So, if the bug is not present, then the fix is in the ZIPM2Z80.D01 disk file, which is where I thought the bug was. I will look in the morning.


Links to other interesting threads:
Back to Top
 

Dr_Acula
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Dec 2008
Total Posts : 606
 
   Posted 9/30/2009 2:36 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
Ok, it is all working now!!! I'm testing and retesting trying to break it. All working fine. I'll do a few more tests and then write it up...


#ifdef cpm2
'  FindDriveBase(0, string("ZIPM2   .DSK"))              'set the SD card drive base(s)  8MB CPM2.2 25KB
'  FindDriveBase(0, string("ZIPM2_64.DSK"))              'set the SD card drive base(s)  8MB CPM2.2
  FindDriveBase(0, string("zipm2z80.d02"))              'set the SD card drive base(s)  8MB CPM2.2
#else
  'FindDriveBase(0, string("ZICOG_A3.DSK"))              'set the SD card drive base(s)  8MB CPM3 nonbanked
#endif
  FindDriveBase(1, string("ZICOG_B0.DSK"))              'set the SD card drive base(s)  8MB
  FindDriveBase(2, string("ZICOG_C0.DSK"))              'set the SD card drive base(s)  8MB
  FindDriveBase(2, string("ZICOG_D0.DSK"))              'set the SD card drive base(s)  8MB Dr_A xmodem+
  FindDriveBase(3, string("ZICOG_E0.DSK"))              'set the SD card drive base(s)  8MB
  FindDriveBase(5, string("ZICOG_F0.DSK"))              'set the SD card drive base(s)  8MB
  FindDriveBase(6, string("ZICOG_G0.DSK"))              'set the SD card drive base(s)  1MB equiv floppy
  FindDriveBase(7, string("ZICOG_H0.DSK"))              'set the SD card drive base(s)  <1MB RamDisk
  'other files Q:,R:
  FindDriveBase(17,string("ZIBOOT  .COM"))              'set the SD card drive base(s)    $FF00 for boot hdisk

#endif


ZIPM2Z80.D02 is drive A (heater's new drive)

Just working through some other minor things. I've got xmodem on drive B so I can download things. Skip the 3 sec delay at startup. Wordstar working. Big file transfers working. Compile on the board working.

'#define FloppySupport                                   'Uncomment for Floppy support on TriBlade only 

The above line commented out. No floppy drive needed.

Just purging out some old hard drives that had been corrupted with the old code and replacing with new blank ones.


www.smarthome.viviti.com/build

Post Edited (Dr_Acula) : 9/30/2009 10:45:49 AM GMT

Back to Top
 

heater
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Feb 2008
Total Posts : 1832
 
   Posted 9/30/2009 2:43 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
Just to be clear, I am currently using "zicog_cpm_rc5.5b_rr123-bst-archive-090923-170907".

What I do is use ZIPM2Z80.D02 in place of BLANK_I0.DSK. Oh and I forgot to mention I replaced the ROM boot image file to use ZIBOOT instead. This is important. The old DSKBOOT cannot boot CP/M built for hard drives only as the boot sectors are now non-skewed.

This results in a system that boots from hard disk 0. The ZIPM2Z80.D02 which is then running knows nothing about floppy drives. So the disk I: is now seen as disk A:.

So far everything seems to work. What I want to do now is rebuild CP/M again with the "correct" size in CFGCCP.LIB and try to find out if/why that causes a problem.

By the way I have spotted a potential problem with TriBlade and 64K RAM. Basically there is nothing in zicog.spin that stops Z80 code form writing to the ROM area. There used to be a check against ram_size which is now commented out. I think the check was removed when we were implementing bank switched memory.

Anyway the way ram_size is set up is now wrong as it does not take into account the 256bytes of ROM.

I'm away from my Prop for the rest of the day so this is the best I can offer today.


For me, the past is not over yet.

Back to Top
 

Dr_Acula
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Dec 2008
Total Posts : 606
 
   Posted 9/30/2009 2:58 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
Wordstar running

ZiCog 1.0_rc_5.5b on the TriBladeProp v0.123
Starting Hdisks...
A:zipm2z80.d02 181057 14
B:ZICOG_B0.DSK 33537 14
C:ZICOG_C0.DSK 49921 14
C:ZICOG_D0.DSK 66305 14
D:ZICOG_E0.DSK 82689 14
F:ZICOG_F0.DSK 131841 14
G:ZICOG_G0.DSK 115457 14
H:ZICOG_H0.DSK 164673 14
R:ZIBOOT  .COM <-bootcode 164641 14
Loading SRAM...
Starting 8080 emulation...
Passed, please wait...

64K CP/M Version 2.2 (ZiCog, BIOS V1.27_Zi04, 8 HD, 10-Sep-2009)

A>


Attached zip of working directory with teraterm and bst as a package. I've purged out some old files. For the sd card, copy over the files in the attached screenshot.

To compile, run bst.bat.

I've been using the N8VEM terminal program to do bulk downloads of file packages, eg the mbasic package and the sbasic package. Requires .net but it may be easier for the moment if people want a package for me to make it and upload it.

Heater, is it worth renaming your .D02 file as a .DSK file like the others (and the corresponding change in the spin code)?


www.smarthome.viviti.com/build

Post Edited (Dr_Acula) : 9/30/2009 11:19:34 AM GMT


Image Attachment :
Image Preview
image2.jpg
  105KB (image/jpeg)
This image has been viewed 18 time(s).
Image Attachment :
Image Preview
SD_Card_Files.jpg
  44KB (image/jpeg)
This image has been viewed 16 time(s).

File Attachment :
Drac_30_Sept.zip   1.38Mb (application/zip)
This file has been downloaded 9 time(s).
Back to Top
 

Dr_Acula
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Dec 2008
Total Posts : 606
 
   Posted 9/30/2009 3:20 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
And here is MBASIC running as well as the BASCOM compiler. This is a huge step forward as SUBMIT was not working before, but now it works perfectly. On a previous version there was an autoexec, maybe that could go back in now it is all working?


A>MBASIC 

BASIC-80 Rev. 5.21
[CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
31800 Bytes free
Ok
10 PRINT "Hello World"
list
10 PRINT "Hello World"
Ok
RUN
Hello World
Ok
SAVE "HELLO",A
Ok
SYSTEM

A>TYPE BAS.SUB

BASCOM =$1 /E
L80 $1,$1/N/E

A>SUPERSUB BAS HELLO

SuperSUB V1.1

A>BASCOM =HELLO /E

00000 Fatal Error(s)
24196 Bytes Free

A>L80 HELLO,HELLO/N/E

Link-80  3.44  09-Dec-81  Copyright (c) 1981 Microsoft

Data    4000    4197    <  407>

40207 Bytes Free
[4011   4197       65]

A>hello

Hello World


A>


www.smarthome.viviti.com/build

Back to Top
 

heater
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Feb 2008
Total Posts : 1832
 
   Posted 9/30/2009 3:35 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
Hey this great.

That disk image only picked up an odd name as I was juggling with many different versions here.
Autoexec will go back in. Hopefully later this evening.

We are not totally out of the woods yet. I would really like to know what causes the failure.

I am beginning to see something here, following this train of thought:
1) Things like PIP will do a warm boot when they finish their work. I believe SUBMIT and many others do to.
2) Warm boot is in the CBIOSX but it depends on a byte set in the ROM to tell it what the boot device should be.
3) We don't have any write protection on our ROM code just now.

So if something is a bit wrong somewhere and tramps over the boot ROM code it can corrupt the boot device byte which then causes any subsequent warm boot to crash. i.e. PIP and such fail.

Now in a 25K system if someone is writing off the end of the BIOS data areas it probably does not get into the boot ROM area so all is OK.

So what is it that is writing off the end of the BIOS data areas ?

Perhaps I can try to trap writes to that area and find out....


For me, the past is not over yet.

Back to Top
 

Cluso99
We live onboard



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Apr 2008
Total Posts : 2276
 
   Posted 9/30/2009 4:07 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
Nice work :-)


Links to other interesting threads:
Back to Top
 

Dr_Acula
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Dec 2008
Total Posts : 606
 
   Posted 9/30/2009 4:11 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
Yes, still some minor things with the C compiler too.

But write protecting the ROM code is definitely a priority.


www.smarthome.viviti.com/build

Back to Top
 

Oldbitcollector
Professional Stuntman



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Mar 2007
Total Posts : 3367
 
   Posted 9/30/2009 6:02 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
Nice work guys! Still quietly following your progress..
(and waiting for your 1.0 release. ;)

OBC


New to the Propeller?

Visit the: The Propeller Pages @ Warranty Void.

Back to Top
 

Cluso99
We live onboard



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Apr 2008
Total Posts : 2276
 
   Posted 9/30/2009 4:39 PM (GMT -8)    Quote This PostAlert An Admin About This Post.

A quick comment for thoughts....

I think we should include the option to build with floppy support for the TriBlade. It is fairly easy to distinguish and compile that version with the #define command. I thought I would add an option to select the B: drive file (in spin) so that it is not necessary for anyone to change the source other than the #define. In fact, I will provide a precompiled binary. My idea is that anyone wanting to copy floppy files to the hard drive files could do so easily this way. All files end in ".DSK"

I would also provide hard drive versions of the floppy files we know about, such as wordstar, supercalc, turbo pascal, etc. They do not take much room when compressed.

However, the main version we require (and support) is the one with 8 hard drives and no floppies. The first 6 hard drives being fixed 8MB drives, the 7th maybe a huge one, and the 8th being a small RamDrive. All drives are files (as per SIMH) packed 4x128 per 512 sector, and seperate contiguous files under FAT16.

Does this make sense??? Or would you prefer to strip the floppy support and I just maintain a binary version for this???

Note: I will add the ROM check with a message later today.


Links to other interesting threads:
Back to Top
 

Dr_Acula
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Dec 2008
Total Posts : 606
 
   Posted 9/30/2009 5:31 PM (GMT -8)    Quote This PostAlert An Admin About This Post.
Yes, thinking about this, I've found there is more than enough room on even just one hard drive. So making one of the drives a floppy drive would make it much easier to copy over from a floppy image. Ok, that one drive might be slow, but all the hard drives would still be fast, right?

So ok, drive B is a floppy image. And you could take the entire simh collection and put them all on a sd card, and then rename the one you want in the spin code?

Or.... is it possible to read completely unmodified simh floppy images? That would take more spin code, but if you had a drive that was read-only the code for that would be simpler. Then you would never need a vb6 program.

I'm not sure now which is quicker. We have so many options.

Also, cluso, if you are free Sun, send me an email? The BBQ will be fired up and ready to go. (home phone is 8370 3353)


www.smarthome.viviti.com/build

Post Edited (Dr_Acula) : 10/1/2009 1:44:32 AM GMT

Back to Top
 

heater
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Feb 2008
Total Posts : 1832
 
   Posted 9/30/2009 9:52 PM (GMT -8)    Quote This PostAlert An Admin About This Post.
This gets weirder and weirder. Last night I rebuilt and used a zipm2.dsk like so:

1) bioslen set to 0D00h in CFGCCP.LIB which is the original setting used in the failing version and what should be the correct setting.

3) AUTOEXEC back in again.

2) Using that same Cluso release with floppy support but with the "#define FloppySupport" commented out and a few changes to disk image file names.

Well so far the thing works for me!!!
PIP anywhere to anywhere has worked.
AUTOEXEC seems to work.
The BOOT command works.
Rebuilding CP/M (With DO SYSZIPM2) works.

In fact I have yet to see it crash anyway.

I have attached this disk image for someone to test as I am again short of time today.

Regarding some other comments:

1) I'm quite happy if Altair floppy support stays in as long as it is under a #define. The #define should be renamed AltairFloppyDriveSupport as its the driver model we are enabling here.

2) Reading completely unmodified Altair floppies could be done but would probably require the use of "seek" in FSRW and would be immensely slow.

3) I'd like to see the disk image names in the Spin code as ALTAIR_A.DSK, ALTAIR_B.DSK for any disks requiring the Altair floppy driver. Then HD8M_A.DSK, HD8M_B.DSK ... HD1M_G.DSK, HD440K_H.DSK for our regular drives. Or something like that i.e. the file name indicates the driver and geometry rather than the content. Users can just copy whatever images they have to those names and keep track.

4) We should create 8M hard drive images of all those floppies available form SIMH. And whatever other stuff we find.

I have just destroyed my home made made PropDemo board after 2 years of service :(
So DemoBoard support is not guaranteed until I can make my Blade #1 look like a Demo Board.

P.S. Has anyone noticed the number of files on a disk and bytes used reported by survey is different than that reported by ls? Survey seems to be wrong. Under SIMH as well.


For me, the past is not over yet.



File Attachment :
zipm2-2009-09-30.dsk.zip   257KB (application/x-zip-compressed)
This file has been downloaded 8 time(s).
Back to Top
 

Cluso99
We live onboard



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Apr 2008
Total Posts : 2276
 
   Posted 10/1/2009 1:40 AM (GMT -8)    Quote This PostAlert An Admin About This Post.

re Heater's discussion...

1) I am sorry I must have misled you. I intended a precompiled version be available (although the released code would be able to be recompiled with the floppy #define option) to use 2 floppies A: & B: and 1 hard drive I: purely for use in file transfers from SIMH floppies to hard disks using PIP. Since we will require the A: floppy to be correct for booting, this can remain in our 1x128 per 512 format for speed. However, I suggest the B: floppy be the standard Altair 137 byte format. I will write the code to support this, so we will not require the VB program for any conversion. Therefore, PIP will be used to copy from B: floppy drive (must be called "ALTAIR_B.DSK") to I: (must be called "HD8M_B.DSK" and then it can be the B: drive in the standard 8 Hard Drive version - does this make sense ????). This will make things much easier for everyone. The SIMH B: compatability may not be ready for V1.0 (do not want to hold a release for this).

2)see above - I will write code to suport B: in the SIMH format.

3)Sounds good to me. I can't remember why we had a 1MB drive, so make A:...G: all 8MB for now, and H: the RamDrive so this size will depend on the free RAM available for this. I intend to make this a write-through drive, so anything that writes (and modifies) a disk sector will be written back to the SD drive. This should speed up things nicely. Will probably not be ready for V1.0

4)Absolutely. I have already done Turbo Pascal, SuperCalc, and another. But I combined 2 floppies together, which I now realise was a mistake.

Thinking a little further, if someone (Drac?) can write a simple CPM program to reside on our A: hard drive to write to a specific I/O port, we can trap that, and therefore we could reboot the prop with a binary from the SD card. So we could launch CPM2, CPM3, MPM, the floppy version, PropDos, or anything else for that matter. Sound interesting???? It's certainly doable and not that difficult. smilewinkgrin

James: Looking forward to some interesting discussions Sunday yeah


Links to other interesting threads:
Back to Top
 

heater
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Feb 2008
Total Posts : 1832
 
   Posted 10/1/2009 2:33 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
Hei,

Not much time to think for now but:

1) In a way it's nice to keep the Altair driver code in there, even if never used, permanently hiding under #define. I hate to throw things away! Especially if you have adapted it to handle raw SIMH disks with no preprocessing requirements.

2) Have fun with that :)

3) The 1M hard drive (and 440K) were only put there to show we could configure drives as we like using the HD driver. I suggest that whatever is used as the RAM drive has a DPB adapted to the correct geometry otherwise things will get written off the end of it tripping up unsuspecting users.

4) Is a must.

As for trapping out of the emulation I have been thinking for a long while that we need to be able to do that.
SIMH uses Control-E to do this. Dumps you into a SIMH command mode. From there you can change configuration, attached drives, inspect/set memory etc. Then the GO command starts the emulation again.

So our Spin code rather than hanging in a loop waiting for the emulation to do I/O or break could actively be looking for Control-E from the keyboard. At which point I think the best we can do is stop the emulator COG completely, no chance to resume.

If I remember correctly there is a CP/M HALT.COM command in SIMH which exactly contains a single HALT instruction. This also stops the emulation and gets you to SIMH command line mode. We could trap HALT and do the same.

I'm very jealous of you guys meeting up this weekend. Have a great time, I want to hear all about it. Hmm how much is a flight from Helsinki to Australia now.....


For me, the past is not over yet.

Back to Top
 

Dr_Acula
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Dec 2008
Total Posts : 606
 
   Posted 10/1/2009 3:38 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
Re "Thinking a little further, if someone (Drac?) can write a simple CPM program to reside on our A: hard drive to write to a specific I/O port, we can trap that, and therefore we could reboot the prop with a binary from the SD card. So we could launch CPM2, CPM3, MPM, the floppy version, PropDos, or anything else for that matter. Sound interesting???? It's certainly doable and not that difficult."

I'll do that when I get home. Frantic at work. 31 patients in 3 hours. Will post a more detailed response in 2 hour's time...


www.smarthome.viviti.com/build

Back to Top
 

heater
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Feb 2008
Total Posts : 1832
 
   Posted 10/1/2009 3:50 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
Dr_A: No don't do that, we already have HALT.COM we can trap the halt instruction like SIMH does.


For me, the past is not over yet.

Back to Top
 

Dr_Acula
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Dec 2008
Total Posts : 606
 
   Posted 10/1/2009 5:55 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
What does HALT.COM do?

I saw your message after I did the coding. It was too easy! Let's do it all on the board itself...

Wrote this in Wordstar in N mode. Saved it.



A>type port255.mac

; Send an out to port 255 
; must have a CR/LF after END
; use zasm.sub with supersub
; eg supersub zasm myfile    (where myfile is called myfile.mac but do not put the
;                             mac in the instruction - m80 knows it is implied)
; zasm.sub is the following two lines
;M80 =$1 /Z/C/L/M
;L80 $1,$1/N/E
        
        LD      A,1             ; change value to change version of CP/M
        OUT     (255),A         ; send an OUT to port 255, the Zicog control port
        RET                     ; ret to CP/M though this might reset to a new version
        END                     ; end the program


A>supersub zasm port255.mac

SuperSUB V1.1

A>M80 =PORT255 /Z/C/L/M

No Fatal error(s)

A>L80 PORT255,PORT255/N/E

Link-80  3.44  09-Dec-81  Copyright (c) 1981 Microsoft

Data    0103    0108    <    5>

46133 Bytes Free
[0000   0108        1]

A>port255

Write to unimplemented I/O Port &HFF

A>


Ok, so that is being trapped in the spin code


    n8vem_uart_out:                                     '&H68
      out_n8vem_byte
    hdskport:
      out_hdskport                                      'SIMH style hard disk port
    other:
      UART.str(string("Write to unimplemented I/O Port &H"))
      UART.hex(io_port,2)                               'print the port number for debugging
      crlf


There are lots of I/O ports free, so there are two ways to pass things. Either just call different port numbers and trap them. Or call one port (eg 255) and pass a variable in A. Which in Spin becomes a variable io_data eg
UART.tx(io_data)

Now you can pass all sorts of things. There could be a series of little programs eg in CP/M2 you could have one that reboots to CP/M3. And in CP/M 3 one that goes to CP/M2.

The advantage of that is that you can have one version of the spin code, and change things from within CP/M rather than having to compile all sorts of spin variants. Eg, reboot to a version with 2 floppy drives and 2 hard drives. Reboot to a version with a different baud rate. These can be a list of little CP/M utility programs. Maybe take the program above and print something on the screen to explain what it does. Maybe give the user the option of quitting or continuing. That is easy in assembly.

Is this more flexible than a ^E and a Halt?


www.smarthome.viviti.com/build

Back to Top
 

Cluso99
We live onboard



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Apr 2008
Total Posts : 2276
 
   Posted 10/1/2009 10:40 AM (GMT -8)    Quote This PostAlert An Admin About This Post.

Drac: This is great. We only need to trap one address so 255 sounds great. If we send the port a comand like "RUN BOOTCPM3.BIN +crlf" we could boot that binary from the SD card. I don't think this would be that hard in spin. Likewise we could then expand to "LIST *.* +crlf" and list the files on the SD card. In fact, probably MBASIC could probably even do this for us - is there an OUT type instruction to a specific port???? cool

Thinking a little further, we could add all the functions required for file type access on the SD card while we suspend ZiCog by just loading a spin program in another cog - we have spare cogs :-)

Next, we could switch hard drives on the fly, so to speak  cool

I see V2.0 possibilities coming where we can combine a PropDos and CPM intermixed.smilewinkgrin

Now, we have to see how Ross can get Catalina to compile with only 512KB and SD. Maybe I have to think about some form of memory paging for this. It does not matter if it is slow, just as long as we can do it. I have had it on my list to meet him when I am in Sydney, but somehow I just never get the chance.:p


Links to other interesting threads:
Back to Top
 

heater
Registered Member



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Feb 2008
Total Posts : 1832
 
   Posted 10/1/2009 11:37 AM (GMT -8)    Quote This PostAlert An Admin About This Post.
I'm not sure I understand why you want to be building all these magical commands into CP/M via an I/O trap. Not say it's a bad idea just maybe I'm not on the same page as you guys yet.

A few observations:

1) SIMH gets you out of the emulation into it's command line interface by Control-E.
2) From the command line interface "go" will resume the emulation from where it left off.
3) SIMH drops to it's command line interface whenever a HALT instruction is executed.
4) Typing "go" in this case just restarts the emulation at the HALT instruction so it halts and drops out again. So use "go 0005" to do a warm start, say.
5) The HALT.COM program is just that, a single HALT instruction.
6) From the command line interface you can attach different disks and configure all manner of things. Say if you want to go from CP/M 2 to CP/M 3 or change from Z80 to 8080.
7) SIMH has CP/M programs "r.com" and "w.com" to read and write files from the CP/M file system to the underlying host file system.
8) SIMH has CP/M command HDIR.COM to give a directory listing of the files in the host file system.

Probably there are many other SIMH features I'm not familiar with yet but I always though it would be cool to eventually provide similar features (same command names etc) under ZiCog.

As it happens SIMH defines a port through which these commands (W, R, HDIR etc) are implemented much like you are suggesting.

I'm thinking we should have the same commands even if they are implemented differently with different *.COM programs.

Now Cluso, you have a magical idea. We don't have a command line level to drop down into. So perhaps we just borrow one from PropDOS (or elsewhere). Perhaps adding new commands to it for the simulation, like "go" etc. Having a text editor around would be useful also.

Anyway, can we leave all this for a "version II" because at that point we really leave DemoBoard support behind. I'd really like to get to V1 at least knowing that CP/M 2 and 3 are in good shape (Or perhaps only CP/M 2).


For me, the past is not over yet.

Back to Top
 

Cluso99
We live onboard



Email Address Not AvailablePersonal Homepage Not AvailablePrivate Messaging Not AvailableAIM Not AvailableICQ Not AvailableY! Not AvailableMSN Not Available
Date Joined Apr 2008
Total Posts : 2276
 
   Posted 10/1/2009 1:58 PM (GMT -8)    Quote This PostAlert An Admin About This Post.

Heater: Wow, it's great that a lot of this is already in SIMH, so we can duplicate/use it.

Yes, we can do a lot once we drop into spin. We can do a lot there and then continue back in ZiCog from where we left off. We have cogs available, so we can drop into PropDos and then return to ZiCog. We could even 'hot switch' on the fly between them. Definately want to use the standard SIMH port. yeah

I agree - this is for V2.0

I will try to get the SIMH floppy B: running - I am not aiming for speed as it is just for PIP. If I make it for V1.0 well and good, but if not, then V1.5 will be fine.

I would like to tidy the code some more (before V1.0 release) with comments, etc (the ZiCog CPM section, not your pasm) so let me know when it is an opportune time to do so. I do not expect to have time later next week (funeral with relos coming from oseas and interstate).


Links to other interesting threads:
Back to Top
 
[ << Previous Thread | Next Thread >> ]
New Topic Post Reply Printable Version
848 posts in this thread.
Viewing Page :
 
 
Forum Information
Currently it is Friday, November 20, 2009 10:31 PM (GMT -8)
There are a total of 393,733 posts in 55,521 threads.
In the last 3 days there were 82 new threads and 701 reply posts. View Active Threads
Who's Online
This forum has 17687 registered members. Please welcome our newest member, mark09.
58 Guest(s), 6 Registered Member(s) are currently online.  Details
JRetSapDoog, Chris Savage (Parallax), mpark, Kye, Sal Ammoniac, micromang