Image Map Image Map
Page 1 of 2 12 LastLast
Results 1 to 10 of 17

Thread: Imsai 8080 CP/M install problems..

  1. #1

    Default Imsai 8080 CP/M install problems..

    Hello.

    Iīve got an Imsai 8080 and i rebuilt it last month. It has original 8080 processor card, versafloppy 1 floppy controller, interfacer 1 serial card and 2 salota mixed memory card. It has 64kb memory, but on F000 is floppy firmware and on F800 is a small monitor programm to load intel hex files in 2 2716 eproms.
    I am using a 5,25" floppy drive from IBM XT5160. The versafloppy is adjusted to Shugart SA400. Later, iīll go with 2 8" Shugart 801 Floppy drives, but in the moment, i want to get running CP/M 2.2 on my 5.25" drive.
    Since 1 year, i am learning 6502 and 8080 Assembler. I wrote some routines to get my CP/M running. I wrote routines to clear memory, format a disk in IBM 3740 format, putsys to copy the CCP, BDOS and BIOS to the disk. Also a bootstrap loader and a routine to put it on the disk and anything else for testing and so on. I am in trouble to configure the CP/M correctly. It is the first time, i am working with it.

    So, at the moment is the following sitation. The Imsai boot and read the disk. The bootstrap start and load the CCP, BDOS and BIOS to the correct addresses. After boot up, i see the signon message which i wrote in the bios. Then, it writes :
    BDOS ERR DISK A: bad sector. Sometimes, it also writes BDOS ERR DISK A: select. And sometimes just the signon message without anything else.
    Of course, i have read the CP/M alteration handbook. There is a translation library from logical to physical sectors/tracks. Do i need this library ? I cannot find library for 5.25" Diskdrives.

    For the beginning, i decided me to go with a 20kb version of CP/M. Later, iīll set up to 56k. The adresse are:

    0080h bootstrap loader
    3400h ccp
    3c00h bdos
    4a00h bios


    My CCP,BDOS and BIOS are stored in one file with the correct addresses. I have to say, i have a terrible assembler program. For the beginning, it was fine, but for reality job it has a lot of disadvantages. So, i used the "pretty 8080 online assembler". And i did not find a CCP and BDOS to assemble directly, always with bugs i had to fix. Perhaps, that is the problem ?!

    Please take a look to the file. Iīll share bootstrap and the one listing with ccp,bdos and bios. Please help !


    Thank you !

    Jan


    Bootstrap_Himbert.zip

    CCP BDOS BIOS 3400h.zip

  2. #2
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,364
    Blog Entries
    18

    Default

    I'm a little confused--the 3740 uses an 8" drive in single-density format. Are you trying to use a 5.25" high-density (1.2M) drive? Do you have the correct (HD) media?

  3. #3

    Default

    Yes, it is 3740 IBM format. But it is 5.25" single sided single density. 35 Tracks, 18 Sectors, 128 byte/sector = 80kilobyte. I am using 48tpi disks which i am also using on IBM XT, Commodore 64, PET, Atari 800 and so on.. Of course, i tried different brand new disks.. Always the same problem. I think, there is somethinh with the translate library to make a directory ?! But i donīt know how to make these tables for my disk drive..

    And, i tried with IBM XT 360kb drive and with Shugart SA400 drive.

    Jan

  4. #4
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,364
    Blog Entries
    18

    Default

    Well, I see two things immediately--I don't see any DPBs nor their corresponding DPHs, no CSV areas, etc. Do your sector addresses begin with 1 or 0?

  5. #5

    Default

    One problem I see right away is this in your BIOS:

    Code:
    gocpm	mvi a,0c3h
    	sta 0
    	lxi h,wboot
    	sta 1 <<<<< error
    	sta 5
    	lxi h,bdos
    	shld 6
    This does not properly setup the JMP at location 0000. That "sta 1" needs to be "shld 1". I'm not sure that would cause the problem you see, it depends on what is using that address in your cold boot path.

    I'll continue to look through this as time permits.
    - Doug

  6. #6
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,364
    Blog Entries
    18

    Default

    I saw that one, but first things first--why does he get the BDOS error on boot? I'd verify my suppositions by inserting some debug messages ahead of the read function to see what's actually being passed to the routine.

    From the looks of it, this is for a WD17xx controller, no?

  7. #7

    Default

    If it is crashing, you could easily see messages that are not true BDOS errors but simply stumbling into the BDOS error routines. It happens more often than you might think.
    - Doug

  8. #8
    Join Date
    Jan 2007
    Location
    Pacific Northwest, USA
    Posts
    33,364
    Blog Entries
    18

    Default

    What I don't understand is why a stock precompiled CP/M BDOS/CCP isn't being used. I really don't want to check that code for correctness line-by-line.

  9. #9

    Default

    More importantly, when I try to compile the CCP+BDOS_BIOS code, I get all sorts of "multiple definition" errors. At the very least, the symbol "status" is defined three places, once as a memory address and the other two as an I/O port. Depending on what your assembler does, you could end up with bad code either or both places it is used. You could be accessing incorrect I/O ports or storing data in the wrong memory address. "select" is another one, used for both I/O port and a statement label - so you could end up jumping to the wrong place in memory. The code in "CCP BDOS BIOS 3400h.zip" does not seem to be viable.
    - Doug

  10. #10

    Default

    Thank you very much !

    So, first i changed from sta 1 to shld 1. Then, i cleared memory, wrote CP/M to memory, saved on disk and then i wrote my bootstrap. I started the system and iīve got an "A>" prompt. But i was not able to read directory or anything else. I wasnīt able to type in anything correctly. After restart the imsai, there was written the signon message, but the prompt wonīt come anymore...

    Basically:

    1. I need a good crossassembler which can be used to write my assembler programs on my main pc (win10). This should be a macro assembler which also can be used for if..then...endif in the source. I am able to pay for a good crossassembler, but th only i found costs over 400 $. And of course, thatīs to much money.
    My assembler is a small learning simulator which can be used for small programs for simply procedures. it does not support branches like if..then..else in the code. it has only the basic instruction set. And, for example, definition bytes intruction (db) suports only 8 bytes. So, to write a text with 64 letters i have to write 8 db lines. So, when i load the standard distribution source to my assembler, i īll get nearly 200 errors !
    My assembler does not support labels with more than 6 letters. Thatīs also a big problem.
    So, i decided me to got with this online "pretty 8080 assembler". But i donīt know if i can trust it ?!
    Can you recommend a good assembler ? Like i said, i am able to pay. But in fairly range of course.

    2. After assembler program problems. I was looking for CP/M binary. I found from different systems, but they did not work in cause of different orginate and branches. For example, i had one from xerox. This one jumps to 0000h for bios. Of course, i need a jmp to 4a00.

    3. After binary problem i felt back to assemble by myself with this pretty 8080 online thing.


    So, what i need:

    1. Good macro crossassembler
    2. CP/M standard distribution sources or binary. ccp at 3400h,bdos at 3c00,jmp to bios located on 4a00h
    3. Perhaps you can telle me anything about these floppy drive translate library. How to setup to my system ?!


    THANKS

    Jan

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •