Shop OBEX P1 Docs P2 Docs Learn Events
Dracblade SBC with Catalina C, PropBasic, CP/M, MP/M, TRS80, wireless network, - Page 21 — Parallax Forums

Dracblade SBC with Catalina C, PropBasic, CP/M, MP/M, TRS80, wireless network,

1181921232429

Comments

  • MaxSMaxS Posts: 19
    edited 2010-04-14 23:30
    pullmoll: It looks like the simh version of mp/m has common memory starting at B000H is that going to be a problem to support?
  • pullmollpullmoll Posts: 817
    edited 2010-04-14 23:34
    MaxS said...
    pullmoll: It looks like the simh version of mp/m has common memory starting at B000H is that going to be a problem to support?
    No, it's just a constant that needs to change. I'm looking into mpmxios.mac from Dr_A's archive. There are some things left to do, if we want to use this.
    Edit: I think I have all required SIMH ports and their functions in qz80's io.spin now.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 4/15/2010 2:27:01 PM GMT
  • hairymnstrhairymnstr Posts: 107
    edited 2010-04-15 10:17
    Juergen: I think I see how your code is meant to work, I can't see how bank_offset is actually assigned, it only seems to be referenced in the ram_address routine where it is read.

    The bank number needs to be fetched from HUB at some point, unless you are intercepting the I/O write to the bank select port? We need the bank number in hub so the DMA can respect the current bank setting as well since we may have to switch to bank 0 and back again.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nathan

    "Free as in freedom, beer gratefully accepted though."
  • pullmollpullmoll Posts: 817
    edited 2010-04-15 14:14
    hairymnstr said...
    Juergen: I think I see how your code is meant to work, I can't see how bank_offset is actually assigned, it only seems to be referenced in the ram_address routine where it is read.

    The bank number needs to be fetched from HUB at some point, unless you are intercepting the I/O write to the bank select port? We need the bank number in hub so the DMA can respect the current bank setting as well since we may have to switch to bank 0 and back again.

    There is a long bankbase after the long io_command in io.spin which is written to by the banking code in io.spin and which is fetched by the qz80 code after every write to any port. I'm talking about the latest qz80, which changed several times since you may have downloaded it.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 4/15/2010 2:25:09 PM GMT
  • pullmollpullmoll Posts: 817
    edited 2010-04-15 14:22
    heater said...

    To get MP/M running you will need to create a new LDRBIOS for it so as to get it working from the HD only systems.
    (I assume you are still running the ZiCog CP/M that has no floppy support)
    The LDRBIOS supplied with SIMH Altairz80 only understands floppy drives. Take a look at the CBIOSX.MAC that is on the ZiCog CP/M 2 disks to see how I modified it, removing all Altair floppy driver code and using the HD drivers only.

    You will also need to modify MPMXIOS so as to get it to use the hard drives for disks A:, B: ...instead of floppies. Again look at CBIOSX to se how I did that.

    For the banked memory, that was already inthe ZiCog emulator albeit with a wee bug. Looks like Pullmoll has that sorted anyway.

    I think I have all required things in place now, including the timer interrupt with programmable interval and interrupt address.
    Would you look into LDRBIOS and MPMXIOS for us? I think I could also do it, while you have already done it once and won't probably miss as much things as I would...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • heaterheater Posts: 3,370
    edited 2010-04-15 14:29
    I can have a go at LDRBIOS and MPMXIOS. The changes "should" be quite similar to those I made in CBIOSX for CP/M 2.

    BUT I have no time until Sunday at the earliest.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • pullmollpullmoll Posts: 817
    edited 2010-04-15 14:34
    heater said...
    I can have a go at LDRBIOS and MPMXIOS. The changes "should" be quite similar to those I made in CBIOSX for CP/M 2.

    BUT I have no time until Sunday at the earliest.

    Ok, then I will try it myself. I guess you compiled the changes using SIMH and copied the resulting binary into the disk image's booted sector range?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • heaterheater Posts: 3,370
    edited 2010-04-15 16:04
    OK then.

    I did not do any manual copying of boot sectors to create the CP/M 2 boot disks for ZiCog.

    I used the batch file SYSCPM2.SUB to build CP/M 2 and lay down the boot tracks with BOOTGEN.

    However both SYSCPM2 and BOOTGEN were modified (from SIMH versions) in ways I cannot remember off hand.

    You should find that doing a SYSCPM2 on CP/M running on the Prop (at least under ZiCog) will rebuild and CP/M 2 and lay down ZiCog bootable tracks on the A: drive. It's a long time since I tried it.

    Anyway, is it not the case that MP/M is built and started from a working CP/M 2 command line? So at least initially you don't have to worry about boot sectors for MP/M.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • pullmollpullmoll Posts: 817
    edited 2010-04-15 16:33
    It seems to be loading, while the hard disk access is not yet working (doesn't find any file and dir is an unknown command):
    MP/M II V2.1 Loader   
    Copyright (C) 1981, Digital Research
    Nmb of consoles     =  4
    Breakpoint RST #    =  6
    Memory Segment Table:
    SYSTEM  DAT  FE00H  0100H
    TMPD    DAT  FD00H  0100H
    USERSYS STK  FB00H  0200H
    XIOSJMP TBL  FA00H  0100H
    RESBDOS SPR  EE00H  0C00H
    XDOS    SPR  CC00H  2200H
    BNKXIOS SPR  BF00H  0D00H
    BNKBDOS SPR  9C00H  2300H
    BNKXDOS SPR  9A00H  0200H
    TMP     SPR  9600H  0400H
    LCKLSTS DAT  9300H  0300H
    CONSOLE DAT  8F00H  0400H
    -------------------------
    MP/M II Sys  8F00H  7100H  Bank 0
    Memseg  Usr  0000H  B000H  Bank 1
    Memseg  Usr  0000H  B000H  Bank 2
    Memseg  Usr  0000H  B000H  Bank 3
    Memseg  Usr  0000H  B000H  Bank 4
    Memseg  Usr  0000H  B000H  Bank 5
    Memseg  Usr  0000H  B000H  Bank 6
    Memseg  Usr  0000H  B000H  Bank 7
    
    MP/M XIOS (qZ80, V1.11, 8 HD, Banked, 15-Apr-10)
    
    
    MP/M II V2.1
    Copyright (C) 1982, Digital Research
    
    0A>
    
    



    I attach the A.DSK with most of Dr_A's system files as well as the MP/M files, so you can DO SYSMPM to build a new one. It still doesn't work, even after trying to switch to the user bank before doing the DMA. I ran out of ideas now.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 4/16/2010 10:04:53 AM GMT
  • MaxSMaxS Posts: 19
    edited 2010-04-16 01:34
    Hi Pullmoll, that is a fantastic start. One thing I can think of that might need to be looked at is that the SIMH implementation supports up to 4 consoles. The XIOS is probably banging away on some unknown ports. A quick fix for that is to re-gen (mpmgen) the the system and specify 1 console. Once I get home tonight, I will see if I can fire it up.
  • pullmollpullmoll Posts: 817
    edited 2010-04-16 04:05
    MaxS said...
    Hi Pullmoll, that is a fantastic start. One thing I can think of that might need to be looked at is that the SIMH implementation supports up to 4 consoles. The XIOS is probably banging away on some unknown ports. A quick fix for that is to re-gen (mpmgen) the the system and specify 1 console. Once I get home tonight, I will see if I can fire it up.

    I did it the other way round: add support for 4 console ports to my io.spin and just made three of them dummies which return a 0 status. We have a console on sio #0 and punch/reader on sio #1. We could try to add keyboard/tv|vga instead of one dummy sio, and/or we could remove support for punch/reader and turn it into a console instead.

    One thing I want to try is to leave the common memory DMA buffer there and ldir transfers to the user bank, as the original SIMH code did. This is of course slower and I would love to have gotten around it, but perhaps this is the reason why my code changes don't work.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 4/16/2010 4:12:01 AM GMT
  • pullmollpullmoll Posts: 817
    edited 2010-04-16 10:27
    Just FYI: Letting all DMA transfers go to an intermediate buffer and LDIRing its contents to/from the user bank doesn't help either.
    Since MP/M doesn't recognize any command it more looks like one of the SPR files is broken. MPMGEN is not on the disk, so I haven't rebuilt those files.
    Edit: now changed mpm startup file to listen on port 10023 and after telnetting to it and running MPM on SIMH, it also doesn't recognize commands. It works with the unmodified LDRBIOS.MAC and MPMXIOS.MAC, so something in switching to hard disks only is the cause of the problem.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 4/16/2010 11:06:52 AM GMT
  • heaterheater Posts: 3,370
    edited 2010-04-16 12:03
    You cannot boot/run CP/M with a BIOS modified for a ZiCog style 8M hard disk only system on SIMH.

    SIMH assumes the first 8 drive numbers are floppy disks. A: to H:. From then there can be a configurable number of hard drives I: J: ...

    That is: When BDOS request drive 0 the SIMH BIOSs see that as a request for floppy drive A: and use their Altair floppy driver code which then interfaces to the SIMH Altair floppy emulation.

    When you get to drive 7 the BIOSs see that as a request for a hard drive and use their SIMH HD driver which then interfaces to the SIMH hard drive emulation.

    That drive number gets passed along to SIMH hard drive emulation and is of course all wrong if you have removed all the floppy drives from the BIOS and expect it to be an HD,

    At least that is how I remember it. I may be off by one in the drive numbering.

    In ZiCog style the first drive number (0 or 1? I forget) is a 8MB hard disk.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-04-16 12:16
    Heater (and Cluso) are the resident experts on the drive changes. There was lots of discussion many months ago about changing from floppy to hard drives for all drives and there were many good reasons for only emulating 8mb hard drives.

    But the SIMH expects floppy drives? (The unaltered SIMH is drives A to H are floppy and I J K L are hard drives. But the prop code we are all using has all hard drives. Who was the clever person who did that?)

    Heater, where do those settings reside? Is it in the CP/M source or in the small Boot.dsk file or in the Spin code near the beginning?

    This is the one bit of CP/M I don't understand but I think it is the missing link to getting MPM running. Heater, your help would be most valuable here.

    @pullmoll, can you post your code you are using. I presume you have something working with this complete rewrite. Even if it is not vga and keyboard, something via one of the serial ports will be enough.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller

    Post Edited (Dr_Acula) : 4/16/2010 12:22:19 PM GMT
  • heaterheater Posts: 3,370
    edited 2010-04-16 12:37
    I'm no expert on creating CP/M BIOSs. I consider it a minor miracle that I figured out how to remove all floppy drive support from CP/M's CBIOSX and get it to work with the ZiCog HD only set up.

    As I said the SIMH BIOS's assume the first 8 drives are floppies and use then uses it's crappy and slow Altair floppy drive code. The rest are HDs and then it talks to the SIMH defined hard drive interface.

    The ZiCog code has no floppy support anymore. I think Cluso is still maintaining aversion with it in though.

    "Who was the clever person who did that". That would be me[noparse]:)[/noparse]. At the time there was some consensus that the Altair floppy drive support was almost useless on ZiCog. It's complicated, it's slow, it wastes code space in HUB etc. It's a pain to have to massage the images to work in that old ZiCog set up.

    By contrast the 8Mb HD images just drop into ZiCog and are readable immediately without any massaging.

    Except that the BIOSs have to be modified to live with HD only it's a very good plan. Fixing the BIOSs for CP/M 3 and MP/M was always on my TODO list but PullMoll is steaming ahead with that.

    "Where do the settings reside?" No where. The decision about a particular drive number being floppy or HD is hard coded into the BIOSs. 0 to 7 is floppy, 8 up is HD. EXCEPT the LDRBIOS of CP/M 3 does not have any HD support at all. Neither does the loader for MP/M. That surprised me when I first discovered it.

    By the way: The ZIBOOT boot loader I made is a rewrite of the SIMH DSKBOOT such that it boots from an HD, as drive A:, rather than a floppy.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-04-16 13:01
    Heater is talking on another plane. I am not worthy!

    Ok, my little contribution is to make the recompilation process easier. Attached is a file cpm.zip. Unzip it to a new folder and run SIMH.BAT and it should boot into CPM with those files needed to recompile CPM. If you use
    W SYSCPM2.SUB
    it will move that file out into the PC directory and you can read it with notepad and see the entire recompilation process.

    This is using the standard simh format. I've not included the other 7 floppy drives nor the 3 other hard drives but they can be attached in the .ini file

    But this is different to the propeller emulation. The prop has 8 hard drives that start at A and go to H. The SIMH has 8 floppy drives A to H and then only 4 hard drives I to L and that setup can't be changed in the SIMH. So that setting has to be stored somewhere?? Heater, how did you manage to persuade it to boot to a hard drive A as the first drive, not the 9th one?

    Heater, if you can find that code I wonder if I might ask Peter Schorn to host it as a Propeller version in the same way he hosts the N8VEM version. Ideally with the standard that Peter uses where he includes the files needed to rebuild the version on the disk image itself. Then it won't get lost in the mists of time...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller

    Post Edited (Dr_Acula) : 4/16/2010 1:07:51 PM GMT
    zip
    693K
    cpm.zip 693.1K
  • pullmollpullmoll Posts: 817
    edited 2010-04-16 13:55
    Dr_Acula said...
    @pullmoll, can you post your code you are using. I presume you have something working with this complete rewrite. Even if it is not vga and keyboard, something via one of the serial ports will be enough.

    I did this two posts above. The disk image contains the original files and my modified LDRBIOS.MAC and MPMXIOS.MAC files. The LDRBIOS.MAC obviously works all right, because it is responsible for loading the other *.SPR files into memory. What does not work for some not so obvious reason is the code that does what CCP does for CP/M 2. No command you enter is known.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 4/16/2010 2:12:15 PM GMT
  • pullmollpullmoll Posts: 817
    edited 2010-04-16 14:00
    heater said...
    You cannot boot/run CP/M with a BIOS modified for a ZiCog style 8M hard disk only system on SIMH.

    I understand. The drive number sent in the hdskParam and hdskRead/Write commands would have to be 8 or higher. There are 8 floppy drives defined in the original MPMXIOS.MAC and drives above 0..7 are hard disks, whereas we - ZiCog and qZ80 - see drives 0..7 as hard disks. I could try to add 8 to the drive number in hdsk I/O to run the changed MPMXIOS in SIMH. Did that: SIMH crashes with a segfault [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 4/16/2010 2:06:17 PM GMT
  • pullmollpullmoll Posts: 817
    edited 2010-04-16 14:30
    DUH! I found one bug in the code. The DMA address sent to the emulation was twice the LSB instead of LSB, MSB. Unfortunately that doesn't fix the problem. Attached is a disk with fixed source code.

    Here's a link to the MPM/II sources http://www.cpm.z80.de/download/mpm2dist.zip. They may be required to generate MPM from scratch.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 4/16/2010 7:11:01 PM GMT
  • MaxSMaxS Posts: 19
    edited 2010-04-16 22:02
    I think heater is right. You need to modify the LDRBIOS to use talk to the disk as a hard disk, this would require a hard disk driver and a different DPB. Once LDRBIOS is assembled and linked you need to change the XIOS and remove the floppy code. The SELDSK routine will control which DPB is selected and this must be a hard disk DPB. Also the read and write routines need to be changed so that the hard disk drivers are called for all drives under mp/m. Once that has beed done and assembled the MP/M image needs to be built using MPMGEN.

    The reason that the cli doesn't recognise any command is that is doesn't have any built-in commands like the cp/m 2.2 ccp. Everything is a program on disk. I think you can make mpmstat resident but it uses a lot of memory.

    Pullmoll: Is there somewhere where I can download the updated spinfiles? I'd like to have a bash at getting this working.
  • pullmollpullmoll Posts: 817
    edited 2010-04-16 23:03
    MaxS said...
    I think heater is right. You need to modify the LDRBIOS to use talk to the disk as a hard disk, this would require a hard disk driver and a different DPB. Once LDRBIOS is assembled and linked you need to change the XIOS and remove the floppy code. The SELDSK routine will control which DPB is selected and this must be a hard disk DPB. Also the read and write routines need to be changed so that the hard disk drivers are called for all drives under mp/m. Once that has beed done and assembled the MP/M image needs to be built using MPMGEN.

    The reason that the cli doesn't recognise any command is that is doesn't have any built-in commands like the cp/m 2.2 ccp. Everything is a program on disk. I think you can make mpmstat resident but it uses a lot of memory.

    Pullmoll: Is there somewhere where I can download the updated spinfiles? I'd like to have a bash at getting this working.

    You probably didn't look at the disk files, since what you suggest is what I have done.
    You can find the most recent qz80 in this thread and the hard disk image with the modified LDRBIOS.MAC and MPMXIOS.MAC is attached above your post.

    FWIW it looks like the commands are in *.PRL files (page relocatable!?) and have bit 7 of the 2nd extension character set, which IIRC means some kind of attribute. I can see that when I look at mpm.dsk with a hex editor. These files are invisible on the mpm.dsk and thus can't be copied to the hard disk image. My tries to gensys a new MPM image with just 2 consoles did not succeed. It boots, but running dir (a DIR.PRL is in the original mpm2dist.zip) results in some strange output and running the next command, e.g. stat, crashes the emulation.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 4/17/2010 8:39:21 AM GMT
  • pullmollpullmoll Posts: 817
    edited 2010-04-17 12:24
    Ok, I now got MP/M working on SIMH with the hard disk only LDRBIOS.MAC and MPMXIOS.MAC. What was missing was a switch to the user bank before doing the actual hard disk transfer, i.e. before the final in a,(hdskPort) and after that switching back to the system bank. There are two entry points swtuser and swtsys to accomplish the switching. With this the MP/M drive A: under SIMH is the former hard disk drive I: and DIR, STAT etc. work as expected.
    Unfortunately I can't test this now with the DracBlade, because my accus are empty again and I can't write the SD card.

    Now the question remains: how do we allocate consoles? Suggestion:
    • first console on SIO #0
    • second console on Keyboard/VGA or Keyboard/TV80
    • third console on SIO #1
    • punch to LCD, no reader device

    What do you think?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-04-17 12:31
    In a moment of extreme silliness I've made a bootup screen in ascii art. Courtesy of Paintshop Pro, screen capture of the logo on a propeller chip (with some image processing) and www.glassgiant.com/ascii/ and then change the autoexec.sub file to TYPE CPM.TXT

    Files attached. Only a propellerhead would do such a nerdy thing.

    Ok, back to work - I need to download Juergen's latest files and see if I can get MPM to do something.

    Any help from heater would be most appreciated - how exactly did you create the BOOT.DSK image and what changes (if any) to the SIMH files?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller

    Post Edited (Dr_Acula) : 4/17/2010 12:46:23 PM GMT
    484 x 456 - 55K
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-04-17 12:49
    Well done Pullmoll!!!!!


    Now the question remains: how do we allocate consoles? Suggestion:


    * first console on SIO #0
    * second console on Keyboard/VGA or Keyboard/TV80
    * third console on SIO #1
    * punch to LCD, no reader device


    That would be perfect.

    Do you have some code? What else needs doing? Are we getting close to releasing your code as the 'new and improved' version of the official dracblade code?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller

    Post Edited (Dr_Acula) : 4/17/2010 12:54:47 PM GMT
  • pullmollpullmoll Posts: 817
    edited 2010-04-17 12:53
    Dr_Acula said...
    Well done Pullmoll!!!!!

    That sounds fine. If those settings are somewhere easy to find we can change them as needed.

    There's a list of output_port, function as well as input_port, function, so you can swap these later on. However I will have to get rid of the coupling of console 0 and keyboard/TV for this, so CP/M will run just on the serial console, unless you somehow patch the BIOS to use the other set of ports.
    Dr_Acula said...
    Later, I might swap first and second console for a 'standalone' board but mostly I use first console as SIO #0 as it accepts xmodem file transfers so your suggestion is fine.

    Do you have some code? What else needs doing? Are we getting close to releasing your code as the 'new and improved' version of the official dracblade code?

    Code is in the works, be patient. You can try the attached LDRBIOS.MAC and MPMXIOS.MAC with SIMH and/or the DracBlade and qz80.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-04-17 13:22
    I'm so excited!

    Ok, I'm getting a "signal out of range" on the vga screen on the latest version, but the version from 13th April compiles fine.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • pullmollpullmoll Posts: 817
    edited 2010-04-17 13:38
    Dr_Acula said...
    I'm so excited!

    Ok, I'm getting a "signal out of range" on the vga screen on the latest version, but the version from 13th April compiles fine.

    Did you change to #define VGA and disable #define TV in cpm.spin? I'll try it here later and see what's wrong. Edit: It's working for me, so perhaps you forgot to change it.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects

    Post Edited (pullmoll) : 4/17/2010 1:46:40 PM GMT
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-04-17 13:50
    Getting close. I removed
    '#define HAVE_TV

    and now it boots and gives the A> prompt.

    The keyboard is giving ^@ though

    ? a baud rate problem. brb

    For reasons unique to me I can only use slower baud rates
    ' baud = 115200 ' baud rate
    baud = 19200

    in io.spin

    but as the screenshot shows, typing anything on the local keyboard gives ^@

    Addit: but the serial io is working perfectly, so I can use port#0 to talk to the board.

    text capture on a terminal program:
    SIO initialized, 5 cogs free.
    KBD initialized, 4 cogs free.
    qZ80 I/O starting...
    Volume serial #3939-6338, label NO NAME    
    BOOT.DSK, sector 00C280, size 256, 2010-04-10 18:15:06
    A.DSK, sector 000280, size 8.0MB, 2010-04-10 18:14:58 contiguous - okay.
    B.DSK, sector 004280, size 8.0MB, 2010-04-10 18:15:00 contiguous - okay.
    C.DSK, sector 00C2A0, size 8.0MB, 2010-04-10 18:15:06 contiguous - okay.
    D.DSK, sector 0102A0, size 8.0MB, 2010-04-10 18:15:08 contiguous - okay.
    E.DSK, sector 0142A0, size 8.0MB, 2010-04-10 18:15:10 contiguous - okay.
    F.DSK, sector 0182A0, size 8.0MB, 2010-04-10 18:15:12 contiguous - okay.
    G.DSK, sector 01C2A0, size 8.0MB, 2010-04-10 18:15:14 contiguous - okay.
    H.DSK, sector 0202A0, size 8.0MB, 2010-04-10 18:15:18 contiguous - okay.
    I/O initialized, 1 cogs free.
    Going to start qz80. Goodbye Spin!
    
    64K CP/M Version 2.2 (ZiCog, BIOS V1.27_Zi04, 8 HD, 10-Sep-2009)
    
    SuperSUB V1.1
    
    A>TYPE CPM.TXT
    
    
    
                                                           ,,:~~~=++????IIIIII+=~   
      ,:~===~~:::,,,                            ,,::~=+?II77$ZZOO888DD8888888888O?~,
    ,~7$OOOOOOOOZ$$7II??++====~~~~~~~~~:~+?I??===+??I7$$$$ZZZZZOOO888888DDDDDD888I+~
    =?O8DDDDDDDDDDDD8888888888OZZ77I++~~:=?7?~,               ,,,:~~+?II7777$$77?:, 
    ,:I7ZOOO888888OOZZ$$$7II?+=~:,,,     :+7?=                           ,,,,, ,    
       ,:~~========~~:,,                 =IZ7?,                                     
                                        ,7$OO$:                                     
                               , ,:::,,,:7Z8Z7~,,,,:::,,                            
                            :~+?I==~, :=?ZO8OO?+~  ,~~?II+=:,                       
                        ,~?IZ$7+=     =I$88D88Z$I,    ,:+7$$7+~,                    
                      ~=7$OZ7+,      :IZODDDDD8OZ=:      ,=?OZZ7I,,                 
                    =?ZOOOI+,       ,=$ODDDDDDD8OI+,       ,=7ZO8Z$?:               
                 =IZ8D88?=          ~I88DDDDDDDDDO7+          ~7$D88Z$=,            
              ,~=OO8DD$7:          ,?788DDDDDDD8DO$I,          ~=OO8D8$I=,          
             ,+$Z8DD8O=:           ,I$88DDDDDDD8D8Z$:,           I7O8D8O$?:         
            ,+$88DD8$7,            :7Z8DDDDDDDDDD8OZ=:           ~=7ODDD8Z?~        
            =$ODD88OI+             ~$ODDDDDDDDDDD88O+=            ,+Z88D88$I,       
           =I8DDD8OZ=,             ~Z8DDDDDDD8DDDD88?+             ~7O8DDD8Z~,      
          :7ODDD88Z7,            ,,=O8DDDDDDDDDDDD88I?             ,+$O8DD88I?      
         ~+Z88DDD8$?, , ,,::~~~~~?I7O8DDDDDDDDDDDD88Z$??====~~:::,,:+7ODDD88$7,     
         =?Z8DDDD8O$7I777$ZZZOOOOOOOOZOOOOOOOOOOZZZZZZZOO88OZZZ$$$$$ZO8DD8DDO$~,    
         +IZ88D88888OOZZ$7II?++++=+=~~~~~::::::::~~~~~~~~~==+???I777$O88888D8O=:,   
         +IO8OZ$7++=~:,,,                                            ,:~?Z888O=:,   
         =?Z88$I?::,,,                                          ,,,,:~++I$Z8$7:     
           ,~+I$$ZOO8OOOZZ$ZZZZ$$777IIIIII77IIIIII7777$$ZOOOOOOOOZZZZZ$7I+=:        
                ,,::==+??III77$$$$ZZ$$$ZZ$ZZZZZZZZ$77$$$$777???++=~~,:              
                          ,,     ,,,,,,,,,,,,,,,,,,   ,,                            
                                                                                    
                ,ZMMMMMMN,   7MMMMMMMM?,         ZMM      =MMMM?    MMMMM           
               7MMZ,  :OMM$  IMM=   =MMM         MM?      ~MMDMM:  +MMMMM           
              OMM            IMM?::~7MMN        =MI       =MMIMMM ?MM,MMM           
              OMM,           IMMMMNMND~        ,M8        =MMIOMM:MMI MMM           
              :MM8     ,NN8, 7MM~              OM:        ~MMI,MMMMM  MMM           
                7MMNZZNMM$,  IMM~             ?MM         ~MMI ?MMMM  MNM           
                  :?ZZ7=     =$Z:             7Z$         :ZZ+  IZZ?  ZZ$           
                
    A>
    
    



    ? something wrong with the keyboard object?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller

    Post Edited (Dr_Acula) : 4/17/2010 2:01:49 PM GMT
    1280 x 960 - 312K
  • pullmollpullmoll Posts: 817
    edited 2010-04-17 14:08
    Dr_Acula said...
    Getting close. I removed
    '#define HAVE_TV

    and now it boots and gives the A> prompt.

    The keyboard is giving ^@ though

    Uh, forgot to tell this. There was a bug in the keyboard input that would make it always return 0.
    This is fixed now.
    Dr_Acula said...
    something wrong with the keyboard object?

    Yes, there was. Now it's separated to console #1 anyways, but _should_ be working.
    Unfortunately I destroyed my MP/M hard disk image by copying all MP/M files over. I think I will start from scratch, building CP/M first and then copy MP/M on top of that, but just the files that are required. It looks like I can't just copy everything. Or perhaps I start from your A.DSK again, move all the non-CP/M files to the 3rd HD and then build + copy MP/M over.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Pullmoll's Propeller Projects
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-04-17 14:29
    Ok, it is getting close.

    Hmm - CP/M disk vs MP/M disk

    Firstly, my A.DSK is a bit of a mess. It has some junk files on there. It is similar to the standard SIMH CP/M2 disk. But there was a brief moment when heater released a version that had AUTOEXEC.SUB working and I grabbed that copy and have used it ever since. One day there will be a use for autoexec, and even though it is annoying and reports an error message on bootup if there is no autoexec command to run, I see two things the AUTOEXEC.SUB could do - print out my silly startup screen, and also run MP/M

    Peter Schorn has adopted a very good standard where each disk contains its own source files.

    So - do we use a CP/M2 disk on drive A and MP/M on drive B and the autoexec.sub changes to drive B then runs MP/M?

    Or, do we combine the MP/M files onto the CP/M2 disk image? (with hopefully no overlap of files)

    I'm not sure of the best answer. Thouhts and advice would be most appreciated.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
Sign In or Register to comment.