Shop OBEX P1 Docs P2 Docs Learn Events
ZiCog a Zilog Z80 emulator in 1 Cog - Page 16 — Parallax Forums

ZiCog a Zilog Z80 emulator in 1 Cog

1131416181941

Comments

  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 07:29
    I'm all set. Triblade running. Glass of wine. @heater; cheesy comestibles [noparse];)[/noparse]

    Downloading the new code now...

    And I think it should be 115k - no need for everyone to be slow just coz of my setup.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 07:35
    Yikes, lots of errors on the compile. Cluso's version from 16 hours ago compiled with no errors.


    C:\Propeller\zicog92\Heater 19 08 09>bstc -e -Ox zicog_demo.spin
    Brads Spin Tool Compiler v0.15.3 - Copyright 2008,2009 All rights reserved
    Compiled for i386 Win32 at 08:17:48 on 2009/07/20
    Loading Object zicog_demo
    Loading Object zicog

    zicog - Error at (285,34) Symbol not defined!
    call #read_memory_byte 'Read the instruction
    byte there
    _________________________________^
    zicog - Error at (369,34) Symbol not defined!
    get_memory_addr call #read_memory_byte
    _________________________________^
    zicog - Error at (447,33) Symbol not defined!
    call #read_memory_byte
    ________________________________^
    zicog - Error at (547,34) Symbol not defined!
    call #write_memory_byte
    _________________________________^
    zicog - Error at (552,34) Symbol not defined!
    call #read_memory_byte
    _________________________________^
    zicog - Error at (630,34) Symbol not defined!
    put_memory_addr call #write_memory_byte
    _________________________________^
    zicog - Error at (769,34) Symbol not defined!
    read_memory_word call #read_memory_byte 'Read the low byte
    _________________________________^
    zicog - Error at (773,34) Symbol not defined!
    call #read_memory_byte 'Read the high byte
    _________________________________^
    zicog - Error at (780,34) Symbol not defined!
    call #write_memory_byte 'Write the LOW byte
    _________________________________^
    zicog - Error at (783,34) Symbol not defined!
    call #write_memory_byte
    _________________________________^
    zicog - Error at (1125,35) Expected Spin Method, Unique Name, Assembly Condition
    al, BYTE, WORD, LONG or Assembly Instruction
    long $0[noparse][[/noparse]($ - OVERLAY_START) // 2] 'fill to even nu
    mber of longs (REQUIRED)
    __________________________________^

    Compiled 1474 Lines of Code in 0.25 Seconds

    C:\Propeller\zicog92\Heater 19 08 09>pause
    Press any key to continue . . .


    Addit: Fixed that with
    #define CPU_Z80
    #define TriBladeProp
    and
    #define hdskenable

    Looks like I need 4 hard disks - off to copy drive I to J, K and L...

    Post Edited (Dr_Acula) : 8/19/2009 7:43:49 AM GMT
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-08-19 07:51
    Heater: Here is your code back with a few of my things removed to simplify things. I moved baud to the start of the CON section with both speed options and a comment. I left #define TriBladeProp switched on. I have also put a #ifdef TriBladeProp around the #define diskboot, cpm3 and ramdisk as this is my code specific.

    Great re the 137 bytes. Yes, I just fill them in each time I do a read in case they have been corrupted. I can probably disable this bit then (less code, faster and less clutter). I have put a #define fix137 in to disable code unless selected. James, can you please check this works - if it fails, uncomment #define fix137.

    James: Put a #define Dr_Acula in if you like for baud and to remove the 3 sec delay waiting for the terminal at PUB Start in the demo code. Otherwise this should run for you (except hard disk) - you will need blank files for I,J,K & L - just copy DRIVE__D.DSK although I am only enabling "I" until it works for us. #define hdskenable is commented out - you could try it - only the read would work so we will require a disk image.

    Heater: Perhaps you could post a zipped version of your hard disk 32MB file for us. At least we will know the file is ok.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 07:52
    Yikes, all moving so fast. Ok, working on all that Cluso.

    BTW, the bootup is 10x faster now with CP/M included. I *like* that!

    Getting a hang on drive I (which is a clone of drive D) Working through solutions now...
  • heaterheater Posts: 3,370
    edited 2009-08-19 08:09
    Sorry Dr_A, I commented out most #defines as I set them in the BST project options.

    You don't want that fast boot. It means you are ending up in the 23K RAM CP/M version carried in the zicog_demo.spin and running from HUB memory!!!

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 08:09
    Ok, back into Cluso's code above, still no luck with getting past the hang when type 'I:'
    tried the 137 patch on and off. Maybe my disk image is not right. Using a clone of drive D

    Also, the bootup is much slower than heater's version. Not sure why - checking it out now...
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 08:12
    Crossed posts re the fast boot. Oh darn, I was getting to like that!

    Ok, looks like Cluso and me are stuck getting 'I' working. We are cloning floppy drive images. But they are 128 ones, right?

    Addit: I'm using the program exactly as posted at the beginning of this thread. 20k memory and all. Trying to get into drive I pauses then gives.
    Write to unimplemented I/O Port &H87

    Some things work though. This is the same printout for both heater and cluso's latest version (this crashed for me previously on the I/O). The bytes that are skipped eg 68 are correct ie trapped by the n8vem code. So this little program is very useful.
    A>survey
                    *** System Survey (June 82) ***
    
    Drive A: 480K bytes in 74 files with 392K bytes remaining
    
    Memory map:
    0       8       16      24      32      40      48      56      64
    |       |       |       |       |       |       |       |       |
     TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTCCCBBBB
    T=TPA   C=CPM   B=BIOS or unassigned    R=ROM or bad
    BIOS at F203    iobyte 00       drive 00        BDOS at E406
    
    65535 Bytes RAM         0 Bytes ROM             58374 Bytes in TPA
    0 Bytes Empty           65535 Total Active Bytes
    
    Active I/O ports:Read from unimplemented I/O Port &H00
    Read from unimplemented I/O Port &H01
    
    01 Read from unimplemented I/O Port &H02
    02 Read from unimplemented I/O Port &H03
    03 Read from unimplemented I/O Port &H04
    04 Read from unimplemented I/O Port &H05
    05 Read from unimplemented I/O Port &H06
    06 Read from unimplemented I/O Port &H07
    07 08 09 0A Read from unimplemented I/O Port &H0B
    0B Read from unimplemented I/O Port &H0C
    0C Read from unimplemented I/O Port &H0D
    0D Read from unimplemented I/O Port &H0E
    0E Read from unimplemented I/O Port &H0F
    0F
    10 Read from unimplemented I/O Port &H12
    12 Read from unimplemented I/O Port &H13
    13 Read from unimplemented I/O Port &H14
    14 Read from unimplemented I/O Port &H15
    15 Read from unimplemented I/O Port &H16
    16 Read from unimplemented I/O Port &H17
    17 Read from unimplemented I/O Port &H18
    18 Read from unimplemented I/O Port &H19
    19 Read from unimplemented I/O Port &H1A
    1A Read from unimplemented I/O Port &H1B
    1B Read from unimplemented I/O Port &H1C
    1C Read from unimplemented I/O Port &H1D
    1D Read from unimplemented I/O Port &H1E
    1E Read from unimplemented I/O Port &H1F
    1F Read from unimplemented I/O Port &H20
    
    20 Read from unimplemented I/O Port &H21
    21 Read from unimplemented I/O Port &H22
    22 Read from unimplemented I/O Port &H23
    23 Read from unimplemented I/O Port &H24
    24 Read from unimplemented I/O Port &H25
    25 Read from unimplemented I/O Port &H26
    26 Read from unimplemented I/O Port &H27
    27 Read from unimplemented I/O Port &H28
    28 Read from unimplemented I/O Port &H29
    29 Read from unimplemented I/O Port &H2A
    2A Read from unimplemented I/O Port &H2B
    2B Read from unimplemented I/O Port &H2C
    2C Read from unimplemented I/O Port &H2D
    2D Read from unimplemented I/O Port &H2E
    2E Read from unimplemented I/O Port &H2F
    2F Read from unimplemented I/O Port &H30
    
    30 Read from unimplemented I/O Port &H31
    31 Read from unimplemented I/O Port &H32
    32 Read from unimplemented I/O Port &H33
    33 Read from unimplemented I/O Port &H34
    34 Read from unimplemented I/O Port &H35
    35 Read from unimplemented I/O Port &H36
    36 Read from unimplemented I/O Port &H37
    37 Read from unimplemented I/O Port &H38
    38 Read from unimplemented I/O Port &H39
    39 Read from unimplemented I/O Port &H3A
    3A Read from unimplemented I/O Port &H3B
    3B Read from unimplemented I/O Port &H3C
    3C Read from unimplemented I/O Port &H3D
    3D Read from unimplemented I/O Port &H3E
    3E Read from unimplemented I/O Port &H3F
    3F Read from unimplemented I/O Port &H40
    
    40 Read from unimplemented I/O Port &H41
    41 Read from unimplemented I/O Port &H42
    42 Read from unimplemented I/O Port &H43
    43 Read from unimplemented I/O Port &H44
    44 Read from unimplemented I/O Port &H45
    45 Read from unimplemented I/O Port &H46
    46 Read from unimplemented I/O Port &H47
    47 Read from unimplemented I/O Port &H48
    48 Read from unimplemented I/O Port &H49
    49 Read from unimplemented I/O Port &H4A
    4A Read from unimplemented I/O Port &H4B
    4B Read from unimplemented I/O Port &H4C
    4C Read from unimplemented I/O Port &H4D
    4D Read from unimplemented I/O Port &H4E
    4E Read from unimplemented I/O Port &H4F
    4F Read from unimplemented I/O Port &H50
    
    50 Read from unimplemented I/O Port &H51
    51 Read from unimplemented I/O Port &H52
    52 Read from unimplemented I/O Port &H53
    53 Read from unimplemented I/O Port &H54
    54 Read from unimplemented I/O Port &H55
    55 Read from unimplemented I/O Port &H56
    56 Read from unimplemented I/O Port &H57
    57 Read from unimplemented I/O Port &H58
    58 Read from unimplemented I/O Port &H59
    59 Read from unimplemented I/O Port &H5A
    5A Read from unimplemented I/O Port &H5B
    5B Read from unimplemented I/O Port &H5C
    5C Read from unimplemented I/O Port &H5D
    5D Read from unimplemented I/O Port &H5E
    5E Read from unimplemented I/O Port &H5F
    5F Read from unimplemented I/O Port &H60
    
    60 Read from unimplemented I/O Port &H61
    61 Read from unimplemented I/O Port &H62
    62 Read from unimplemented I/O Port &H63
    63 Read from unimplemented I/O Port &H64
    64 Read from unimplemented I/O Port &H65
    65 Read from unimplemented I/O Port &H66
    66 Read from unimplemented I/O Port &H67
    67 68 Read from unimplemented I/O Port &H69
    69 Read from unimplemented I/O Port &H6A
    6A Read from unimplemented I/O Port &H6B
    6B Read from unimplemented I/O Port &H6C
    6C 6D Read from unimplemented I/O Port &H6E
    6E Read from unimplemented I/O Port &H6F
    6F Read from unimplemented I/O Port &H70
    
    70 Read from unimplemented I/O Port &H71
    71 Read from unimplemented I/O Port &H72
    72 Read from unimplemented I/O Port &H73
    73 Read from unimplemented I/O Port &H74
    74 Read from unimplemented I/O Port &H75
    75 Read from unimplemented I/O Port &H76
    76 Read from unimplemented I/O Port &H77
    77 Read from unimplemented I/O Port &H78
    78 Read from unimplemented I/O Port &H79
    79 Read from unimplemented I/O Port &H7A
    7A Read from unimplemented I/O Port &H7B
    7B Read from unimplemented I/O Port &H7C
    7C Read from unimplemented I/O Port &H7D
    7D Read from unimplemented I/O Port &H7E
    7E Read from unimplemented I/O Port &H7F
    7F Read from unimplemented I/O Port &H80
    
    80 Read from unimplemented I/O Port &H81
    81 Read from unimplemented I/O Port &H82
    82 Read from unimplemented I/O Port &H83
    83 Read from unimplemented I/O Port &H84
    84 Read from unimplemented I/O Port &H85
    85 Read from unimplemented I/O Port &H86
    86 Read from unimplemented I/O Port &H87
    87 Read from unimplemented I/O Port &H88
    88 Read from unimplemented I/O Port &H89
    89 Read from unimplemented I/O Port &H8A
    8A Read from unimplemented I/O Port &H8B
    8B Read from unimplemented I/O Port &H8C
    8C Read from unimplemented I/O Port &H8D
    8D Read from unimplemented I/O Port &H8E
    8E Read from unimplemented I/O Port &H8F
    8F Read from unimplemented I/O Port &H90
    
    90 Read from unimplemented I/O Port &H91
    91 Read from unimplemented I/O Port &H92
    92 Read from unimplemented I/O Port &H93
    93 Read from unimplemented I/O Port &H94
    94 Read from unimplemented I/O Port &H95
    95 Read from unimplemented I/O Port &H96
    96 Read from unimplemented I/O Port &H97
    97 Read from unimplemented I/O Port &H98
    98 Read from unimplemented I/O Port &H99
    99 Read from unimplemented I/O Port &H9A
    9A Read from unimplemented I/O Port &H9B
    9B Read from unimplemented I/O Port &H9C
    9C Read from unimplemented I/O Port &H9D
    9D Read from unimplemented I/O Port &H9E
    9E Read from unimplemented I/O Port &H9F
    9F Read from unimplemented I/O Port &HA0
    
    A0 Read from unimplemented I/O Port &HA1
    A1 Read from unimplemented I/O Port &HA2
    A2 Read from unimplemented I/O Port &HA3
    A3 Read from unimplemented I/O Port &HA4
    A4 Read from unimplemented I/O Port &HA5
    A5 Read from unimplemented I/O Port &HA6
    A6 Read from unimplemented I/O Port &HA7
    A7 Read from unimplemented I/O Port &HA8
    A8 Read from unimplemented I/O Port &HA9
    A9 Read from unimplemented I/O Port &HAA
    AA Read from unimplemented I/O Port &HAB
    AB Read from unimplemented I/O Port &HAC
    AC Read from unimplemented I/O Port &HAD
    AD Read from unimplemented I/O Port &HAE
    AE Read from unimplemented I/O Port &HAF
    AF Read from unimplemented I/O Port &HB0
    
    B0 Read from unimplemented I/O Port &HB1
    B1 Read from unimplemented I/O Port &HB2
    B2 Read from unimplemented I/O Port &HB3
    B3 Read from unimplemented I/O Port &HB4
    B4 Read from unimplemented I/O Port &HB5
    B5 Read from unimplemented I/O Port &HB6
    B6 Read from unimplemented I/O Port &HB7
    B7 Read from unimplemented I/O Port &HB8
    B8 Read from unimplemented I/O Port &HB9
    B9 Read from unimplemented I/O Port &HBA
    BA Read from unimplemented I/O Port &HBB
    BB Read from unimplemented I/O Port &HBC
    BC Read from unimplemented I/O Port &HBD
    BD Read from unimplemented I/O Port &HBE
    BE Read from unimplemented I/O Port &HBF
    BF Read from unimplemented I/O Port &HC0
    
    C0 Read from unimplemented I/O Port &HC1
    C1 Read from unimplemented I/O Port &HC2
    C2 Read from unimplemented I/O Port &HC3
    C3 Read from unimplemented I/O Port &HC4
    C4 Read from unimplemented I/O Port &HC5
    C5 Read from unimplemented I/O Port &HC6
    C6 Read from unimplemented I/O Port &HC7
    C7 Read from unimplemented I/O Port &HC8
    C8 Read from unimplemented I/O Port &HC9
    C9 Read from unimplemented I/O Port &HCA
    CA Read from unimplemented I/O Port &HCB
    CB Read from unimplemented I/O Port &HCC
    CC Read from unimplemented I/O Port &HCD
    CD Read from unimplemented I/O Port &HCE
    CE Read from unimplemented I/O Port &HCF
    CF Read from unimplemented I/O Port &HD0
    
    D0 Read from unimplemented I/O Port &HD1
    D1 Read from unimplemented I/O Port &HD2
    D2 Read from unimplemented I/O Port &HD3
    D3 Read from unimplemented I/O Port &HD4
    D4 Read from unimplemented I/O Port &HD5
    D5 Read from unimplemented I/O Port &HD6
    D6 Read from unimplemented I/O Port &HD7
    D7 Read from unimplemented I/O Port &HD8
    D8 Read from unimplemented I/O Port &HD9
    D9 Read from unimplemented I/O Port &HDA
    DA Read from unimplemented I/O Port &HDB
    DB Read from unimplemented I/O Port &HDC
    DC Read from unimplemented I/O Port &HDD
    DD Read from unimplemented I/O Port &HDE
    DE Read from unimplemented I/O Port &HDF
    DF Read from unimplemented I/O Port &HE0
    
    E0 Read from unimplemented I/O Port &HE1
    E1 Read from unimplemented I/O Port &HE2
    E2 Read from unimplemented I/O Port &HE3
    E3 Read from unimplemented I/O Port &HE4
    E4 Read from unimplemented I/O Port &HE5
    E5 Read from unimplemented I/O Port &HE6
    E6 Read from unimplemented I/O Port &HE7
    E7 Read from unimplemented I/O Port &HE8
    E8 Read from unimplemented I/O Port &HE9
    E9 Read from unimplemented I/O Port &HEA
    EA Read from unimplemented I/O Port &HEB
    EB Read from unimplemented I/O Port &HEC
    EC Read from unimplemented I/O Port &HED
    ED Read from unimplemented I/O Port &HEE
    EE Read from unimplemented I/O Port &HEF
    EF Read from unimplemented I/O Port &HF0
    
    F0 Read from unimplemented I/O Port &HF1
    F1 Read from unimplemented I/O Port &HF2
    F2 Read from unimplemented I/O Port &HF3
    F3 Read from unimplemented I/O Port &HF4
    F4 Read from unimplemented I/O Port &HF5
    F5 Read from unimplemented I/O Port &HF6
    F6 Read from unimplemented I/O Port &HF7
    F7 Read from unimplemented I/O Port &HF8
    F8 Read from unimplemented I/O Port &HF9
    F9 Read from unimplemented I/O Port &HFA
    FA Read from unimplemented I/O Port &HFB
    FB Read from unimplemented I/O Port &HFC
    FC HDSK ERROR 5
    FD FE SR port read
    FF
    254 Ports active
    
    A>
    
    

    Post Edited (Dr_Acula) : 8/19/2009 8:32:20 AM GMT
  • heaterheater Posts: 3,370
    edited 2009-08-19 08:20
    I have a feeling cloning a floppy does not give what we want. Sectors per track is wrong or something.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-08-19 08:28
    James: Our SD is different to heaters. He has no FAT16, just a contiguous clump of data. Secondly, the floppy will be formatted incorrectly so it will not work :-(. Need either heaters formatted file or we need to get it running blind.

    From what I recall (havent had time to check) the code should read the hdisk correctly but writes should be disabled.

    Can you compile with #define hdskenable commented out and see if CPM boots and reads and writes correctly? If so, I know I don't have to worry about the fudging the extra 9 bytes (128 -> 137).

    I will look at the hdisk shortly

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 08:41
    #ifdef TriBladeProp
    #define fix137 'fudge in the pre and post bytes for the 137Byte SIMH sectors
    #define diskboot 'boot using cleared ram and $FF00 dskboot.com
    '#define RamDisk 'use Ram Disk, else SD Card for CPM disk
    '#define cpm3 'Uncomment for CPM3 else CPM2.2
    #endif
    #define hdskenable 'Uncomment for hard disk support

    is my combo at the moment. Working fine with booting and xmodem transfers. What combinations of fix137 and hdskenable would you like tested?

    tried commenting out fix137. That works fine with xmodem too.

    What does the fix137 do? Does it enable reading of disk images without pre-processing by the vb6 program?

    Post Edited (Dr_Acula) : 8/19/2009 8:48:46 AM GMT
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-08-19 08:49
    '#define fix137 ' disable fudge
    '#define hdskenable 'no hard disk
    thanks

    Sorry, fix137 just puts the extra 9 bytes into the sector buffer after a read of a 128 byte sector from the sd card (floppy). I am thinking/hoping this kludge is not required. Previously, it was always done.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm

    Post Edited (Cluso99) : 8/19/2009 8:58:11 AM GMT
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 08:50
    Re heater I have a feeling cloning a floppy does not give what we want. Sectors per track is wrong or something.

    What about getting the file i.dsk that comes up in the simh in many packages? No, wait, that is 8mb and we want 32mb. Hmm, so all files need some sort of pre-processing.

    Yes - this combo works too with xmodem etc
    #ifdef TriBladeProp
    '#define fix137 'fudge in the pre and post bytes for the 137Byte SIMH sectors
    #define diskboot 'boot using cleared ram and $FF00 dskboot.com
    '#define RamDisk 'use Ram Disk, else SD Card for CPM disk
    '#define cpm3 'Uncomment for CPM3 else CPM2.2
    #endif
    '#define hdskenable 'Uncomment for hard disk support

    Post Edited (Dr_Acula) : 8/19/2009 8:56:08 AM GMT
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 08:58
    I'm looking at a simh i.dsk at the moment. Has a few files on it. Seems to be 128 bytes as they all line up neatly when viewed in groups of 16. E5 to 5FFF. Then filenames, then lots of E5s to DFFF. Then the data starts at E000.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-08-19 09:33
    James: You should be able to make a file with the VB6 program I sent. Just remove the section to skip the 9 bytes and all will work fine - IIRC there are 4 at the start and 5 at the end. This will be in the reading section. VB will read any length file < 32MB but outputs a fixed zero filled 32MB file.

    If not email me the file and I will create it.

    What you are seeing is the FAT style structure (whatever they used)

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • heaterheater Posts: 3,370
    edited 2009-08-19 09:34
    You can use a SIMH I: disk.

    You just have to stretch it. 128 bytes into 512. I thought you had some VB program that did that for you.
    Or you can use the mk_zicog_img.py program that is included in the last ZiCog release.
    You would have to hack it a bit as not to put the 8 floppy images into the output file. Python is easy to read.

    I'd make the disk myself for you but I'm away from home at the moment.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-08-19 09:59
    Where is the hard disk file on the SIMH site? I will make it now if I can find it.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 10:02
    Yes, working on that approach. vb6 code to make a blank 32mb file and fill it with E5.

    Private Sub Blank32E5()
    Dim FileNo As Integer
    Dim FileName As String
    Dim FileSize As String
    Dim i, j As Long
    Dim bytes() As Byte
    ' clear the output buffer
        txtStatus.Text = "Clearing 32MB buffer"
        txtStatus.Refresh
        FileSize = 33554432                                     ' 32MBytes
        ReDim bytes(0 To FileSize - 1)
        For j = 0 To FileSize - 1
            bytes(j) = &HE5
        Next j
        FileName = "HARD_E5.DSK"
        txtStatus.Text = "Opening..." & FileName
        txtStatus.Refresh
        FileNo = FreeFile
        Open FileName For Binary As FileNo
        Put FileNo, , bytes                                     ' writes complete binary file
        Close FileNo
        txtStatus.Text = FileName & " Saved"
        txtStatus.Refresh
    End Sub
    
    



    Then rename it as DRIVE__B.DSK, overwrite the old file and indeed it comes up with no files as a floppy drive. Then tried copying MBASIC over with PIP and that works too. It is a bit cheeky just filling a file up with E5 but someone suggested it recently over on the vintage computer forum.

    So, will this work for drive I? So far, no luck. It still just hangs when going to drive I. But that is with Cluso's code. I'm going to try yours in a sec.

    Addit - same result - just hangs. So I guess need to trace what happens when you type I:

    Post Edited (Dr_Acula) : 8/19/2009 10:11:33 AM GMT
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 10:05
    Cluso, drive I
    http://www.schorn.ch/cpm/intro.php

    go down to cpm2.2 get the package, and i.dsk is part of that package.
  • heaterheater Posts: 3,370
    edited 2009-08-19 10:06
    I don't think there is one, or at least there might be an empty one that comes with the cpm2 download.

    But either way, if you don't have one and SIMH is configured to use one, then it will create a blank I: disk for you automatically when you start CP/M 2.
    I forget now if having an I: disk is the default configuration or if you have to tweek the cpm2 command file.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 10:10
    Crossed posts again, heater. Just recheck my last two as I edited them.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-08-19 10:14
    Found I have i.dsk so just making it now. Post shortly smile.gif

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • heaterheater Posts: 3,370
    edited 2009-08-19 10:15
    OK here is a zipped SIMH i.dsk

    Below is the content of my cpm2 command file for altairz80, you need to have the line "attach hdsk0 i.dsk" in yours.
    Probably ignore the rest of it.

    d tracks[noparse][[/noparse]0-7] 254
    attach dsk0 cpm2.dsk
    attach dsk1 app.dsk
    attach hdsk0 i.dsk
    ;demo how to use other disk formats in CP/M 2
    attach hdsk1 appleiicpm.dsk
    set hdsk1 format=apple-d2
    set cpu 19k
    set cpu noitrap
    set cpu z80
    set cpu altairrom
    set cpu nonbanked
    reset cpu
    set sio ansi
    set sio nosleep
    boot dsk
    
    

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • heaterheater Posts: 3,370
    edited 2009-08-19 10:21
    Dr_A: What's that? Is it really possible for CP/M to write a file to an unformatted floppy?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 10:22
    Yes very similar to mine. Just the size of memory is different

    d tracks[noparse][[/noparse]0-7] 254
    attach dsk cpm2.dsk
    attach dsk1 basic.dsk
    attach dsk2 games.dsk
    attach dsk3 sbasic.dsk
    attach dsk4 bdsc160.dsk
    attach dsk5 tools.dsk
    attach dsk6 wordstar.dsk
    attach hdsk i.dsk
    set cpu 64k
    set cpu noitrap
    set cpu z80
    set cpu altairrom
    set cpu nonbanked
    reset cpu
    set sio ansi
    set sio nosleep
    boot dsk
    bye
    
    



    That sits in a program called all and there is no extension
    Then I have a batch file called AltairAll.bat which contains one line
    altairz80 all

    And so you can double click on AltairAll.bat and it runs the emulation.

    I guess it is over to the Great Cluso now?
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 10:26
    re heater Dr_A: What's that? Is it really possible for CP/M to write a file to an unformatted floppy?

    This is from the FORMAT program in the N8VEM:
    ;                   Formatting the ram is simple as clearing the directory area 
    ;                   to a value of E5h (the first 8k of track 1 or the ramdisk).
        LD    HL,$0000        ; starting memory address of track 1, sector 0 in HL
        LD    BC,$1FFF        ; 8K of directory sectors reserved (length in BC)
        LD    A,$E5            ; initializing value in A 
        ld    e,l            ; fill memory
        ld    d,h
        inc    de
        ld    (hl),A
        ldir
    
    



    Even less E5s there, just to the first 8k. But it is simpler to fill the entire thing with E5 as then you don't have to worry about the varying size of the dpb etc.

    'Formatting', in CP/M, means erasing to E5. Easy, huh?

    I can also report from experience that on a N8VEM with a brand new ram chip where all the bytes are zero, you cannot read/write properly. I think E5 is used as the 'end of filename list' marker, so if there is no E5 then it keeps trying to read filenames where they don't exist.

    This is a fragment of CP/M code:
        CALL    FCB2HL        ; YES, GET ITS ADDRESS.
        LD    A,0E5H
        CP    (HL)        ; EMPTY FILE ENTRY?
    
    

    Post Edited (Dr_Acula) : 8/19/2009 10:36:08 AM GMT
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-08-19 10:30
    Heater - you beat me to it, but here it is anyway


    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2009-08-19 10:37
    Yes that looks right Cluso. Viewed that as a binary file. First 128 bytes of 512 are E5. Rest are zero but you never read them, so it is the same as 32mb of E5.

    Ok, so how do we talk to this?
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-08-19 11:14
    I will change computers and see you on skype. Heater, I will also be on msn. I cannot see the problem so we will need some debugging output.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
  • heaterheater Posts: 3,370
    edited 2009-08-19 11:19
    OK see what I can do. I'm somewhat tied up for the next 5 or 6 hours though. Real work and all that...

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Cluso99Cluso99 Posts: 18,069
    edited 2009-08-19 11:21
    I am only reading 128 bytes where I think heater you are reading the 512 bytes. Is it possible that the sectors on your disk is still 137 ??? If so, I need to offset like I do in the floppy reads.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Links to other interesting threads:

    · Home of the MultiBladeProps: TriBladeProp, RamBlade, TwinBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: Micros eg Altair, and Terminals eg VT100 (Index) ZiCog (Z80) , MoCog (6809)
    · Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBladeProp is: www.bluemagic.biz/cluso.htm
Sign In or Register to comment.