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

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

1131416181929

Comments

  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-03-29 12:37
    Oh, ok.

    I'm busy running the EX program on a real Z80 so while I wait for that...

    Both you and the hairy monster are combining more and more code into less cogs. Ram plus SD etc. That can free up cogs. The VT100 code can do 'pre processing' on an escape sequence with its little 7 byte buffer and that can be done seperate to the VGA driver. Maybe even in a different cog? Maybe combine with the keyboard cog or another cog? Or maybe the LMM idea where you only bring in code when you need it (how often are some VT100 codes really used anyway?).

    So could it be done as a LMM but in a different cog?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • pullmollpullmoll Posts: 817
    edited 2010-03-29 15:26
    Dr_Acula said...
    So could it be done as a LMM but in a different cog?
    Yes, that's possible. I think it will be shorter in Spin, though.
    Attached is my tv80 driver that does abt. 1/3rd of the VT100 escape sequences that a Linux terminal does.

    BTW Wordstar is emitting strange escape sequences. There are cursor positionings with non-numeric characters!? <esc>[noparse][[/noparse]x,yH is the format, but I see <esc>[noparse][[/noparse]1:;1*H and the like. That could be a bug in Z80 arithmetic that isn't detected by EX or that I did not yet see.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    He died at the console of hunger and thirst.
    Next day he was buried. Face down, nine edge first.
  • hairymnstrhairymnstr Posts: 107
    edited 2010-03-29 16:44
    I suspect that Wordstar is doing that on my version as well, using backspace to correct a mistyped filename shifts the rest of the display down one line, very odd. So it may be a bug in wordstar rather than the emulator. Some of my problems are to do with the UK keyboard I'm using which isn't producing the keys I'd expect but backspace or ctrl-H should work, they do in edit mode.

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

    "Free as in freedom, beer gratefully accepted though."
  • pullmollpullmoll Posts: 817
    edited 2010-03-29 16:52
    hairymnstr said...
    I suspect that Wordstar is doing that on my version as well, using backspace to correct a mistyped filename shifts the rest of the display down one line, very odd. So it may be a bug in wordstar rather than the emulator. Some of my problems are to do with the UK keyboard I'm using which isn't producing the keys I'd expect but backspace or ctrl-H should work, they do in edit mode.

    Hmm.. if I remember that correctly from ancient times, then Wordstar had some patch areas where the code to generate e.g. a cursor position string representation could be placed. Since it is set to VT100, it should emit valid VT100 sequences and not the garbage I'm seeing. It looks like it is set to always emit two digits x and y, and since the 1s position is going higher than 9, I suspect that some comparison/subtraction isn't setting a flag right.. or perhaps a flag is lost in another opcode that should really preserve it. I'll have a look at the patch area and how it's done.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    He died at the console of hunger and thirst.
    Next day he was buried. Face down, nine edge first.
  • SapiehaSapieha Posts: 2,964
    edited 2010-03-29 18:16
    Hi pullmoll


    Orginal WordStar on CP/M had one Install file to initialise what terminal type it will emulate.

    Regards

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Nothing is impossible, there are only different degrees of difficulty.
    For every stupid question there is at least one intelligent answer.
    Don't guess - ask instead.
    If you don't ask you won't know.
    If your gonna construct something, make it·as simple as·possible yet as versatile as posible.


    Sapieha
  • pullmollpullmoll Posts: 817
    edited 2010-03-29 19:11
    Sapieha said...

    Orginal WordStar on CP/M had one Install file to initialise what terminal type it will emulate.

    Yep. I/we know, because wschange.com is on Dr_A's disk. I remember you could manually patch it for unknown terminals. I once had to do this for a strange almost VT52 terminal which had minor differences. But it's all so long ago... The patch area seems to begin at $280 and extends until $4xy something in WS.COM. There you can find the various strings to control the cursor etc. but I have not yet found the function that actually generates the cursor address sequence.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    He died at the console of hunger and thirst.
    Next day he was buried. Face down, nine edge first.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-03-29 21:47
    That does not sound right with wordstar. The escape sequences should be numerical. This is a dump of a wordstar startup.
     41 3E 77 73 0D 0D 0A 1B 5B 48 1B 5B 4A 1B 5B 30   A>ws....[noparse][[/noparse]H.[noparse][[/noparse]J.[noparse][[/noparse]0
     6D 0D 0A 57 6F 72 64 53 74 61 72 2C 20 43 50 2F   m..WordStar, CP/
     4D 20 45 64 69 74 69 6F 6E 2C 20 52 65 6C 65 61   M Edition, Relea
     73 65 20 34 2E 30 30 20 20 20 23 32 31 20 20 20   se 4.00   #21   
     20 20 20 20 20 20 20 20 20 20 0D 0A 43 6F 70 79             ..Copy
     72 69 67 68 74 20 28 43 29 20 31 39 37 39 2C 20   right (C) 1979, 
     31 39 38 37 20 4D 69 63 72 6F 50 72 6F 20 49 6E   1987 MicroPro In
     74 65 72 6E 61 74 69 6F 6E 61 6C 20 43 6F 72 70   ternational Corp
     6F 72 61 74 69 6F 6E 0D 0A 41 6C 6C 20 72 69 67   oration..All rig
     68 74 73 20 72 65 73 65 72 76 65 64 2E 0D 0A 0A   hts reserved....
     56 54 20 31 30 30 0D 0A 50 6C 61 69 6E 20 41 53   VT 100..Plain AS
     43 49 49 20 44 6F 63 75 6D 65 6E 74 20 74 6F 20   CII Document to 
     46 69 6C 65 0D 0A 1B 5B 48 1B 5B 4A 1B 5B 30 6D   File...[noparse][[/noparse]H.[noparse][[/noparse]J.[noparse][[/noparse]0m
     20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                   
     20 20 20 20 20 20 57 6F 72 64 53 74 61 72 2C 20         WordStar, 
     43 50 2F 4D 20 45 64 69 74 69 6F 6E 2C 20 52 65   CP/M Edition, Re
     6C 65 61 73 65 20 34 20 20 20 20 20 20 20 20 20   lease 4         
     20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                   
     0D 1B 5B 30 32 3B 30 31 48 1B 5B 30 32 3B 32 37   ..[noparse][[/noparse]02;01H.[noparse][[/noparse]02;27
     48 20 1B 5B 30 3B 31 6D 4F 20 50 20 45 20 4E 20   H .[noparse][[/noparse]0;1mO P E N 
     49 20 4E 20 47 20 20 20 4D 20 45 20 4E 20 55 1B   I N G   M E N U.
     5B 30 6D 1B 5B 30 33 3B 30 31 48 20 20 20 20 20   [noparse][[/noparse]0m.[noparse][[/noparse]03;01H     
     1B 5B 30 3B 31 6D 44 1B 5B 30 6D 20 6F 70 65 6E   .[noparse][[/noparse]0;1mD.[noparse][[/noparse]0m open
     20 61 20 64 6F 63 75 6D 65 6E 74 20 20 20 20 20    a document     
     20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1B                  .
     5B 30 3B 31 6D 4C 1B 5B 30 6D 20 63 68 61 6E 67   [noparse][[/noparse]0;1mL.[noparse][[/noparse]0m chang
     65 20 6C 6F 67 67 65 64 20 64 72 69 76 65 2F 75   e logged drive/u
     73 65 72 1B 5B 30 34 3B 30 31 48 20 20 20 20 20   ser.[noparse][[/noparse]04;01H     
     1B 5B 30 3B 31 6D 4E 1B 5B 30 6D 20 6F 70 65 6E   .[noparse][[/noparse]0;1mN.[noparse][[/noparse]0m open
     20 61 20 6E 6F 6E 64 6F 63 75 6D 65 6E 74 20 20    a nondocument  
     20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1B                  .
     5B 30 3B 31 6D 43 1B 5B 30 6D 20 70 72 6F 74 65   [noparse][[/noparse]0;1mC.[noparse][[/noparse]0m prote
     63 74 20 61 20 66 69 6C 65 1B 5B 30 35 3B 30 31   ct a file.[noparse][[/noparse]05;01
     48 20 20 20 20 20 1B 5B 30 3B 31 6D 50 1B 5B 30   H     .[noparse][[/noparse]0;1mP.[noparse][[/noparse]0
     6D 20 70 72 69 6E 74 20 61 20 66 69 6C 65 20 20   m print a file  
     20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                   
     20 20 20 20 20 1B 5B 30 3B 31 6D 45 1B 5B 30 6D        .[noparse][[/noparse]0;1mE.[noparse][[/noparse]0m
     20 72 65 6E 61 6D 65 20 61 20 66 69 6C 65 1B 5B    rename a file.[noparse][[/noparse]
     30 36 3B 30 31 48 20 20 20 20 20 1B 5B 30 3B 31   06;01H     .[noparse][[/noparse]0;1
     6D 4D 1B 5B 30 6D 20 6D 65 72 67 65 20 70 72 69   mM.[noparse][[/noparse]0m merge pri
     6E 74 20 61 20 66 69 6C 65 20 20 20 20 20 20 20   nt a file       
     20 20 20 20 20 20 20 20 20 20 1B 5B 30 3B 31 6D             .[noparse][[/noparse]0;1m
     4F 1B 5B 30 6D 20 63 6F 70 79 20 61 20 66 69 6C   O.[noparse][[/noparse]0m copy a fil
     65 1B 5B 30 37 3B 30 31 48 20 20 20 20 20 1B 5B   e.[noparse][[/noparse]07;01H     .[noparse][[/noparse]
     30 3B 31 6D 53 1B 5B 30 6D 20 63 68 65 63 6B 20   0;1mS.[noparse][[/noparse]0m check 
     73 70 65 6C 6C 69 6E 67 20 6F 66 20 64 6F 63 75   spelling of docu
     6D 65 6E 74 20 20 20 20 20 20 20 20 20 1B 5B 30   ment         .[noparse][[/noparse]0
     3B 31 6D 59 1B 5B 30 6D 20 64 65 6C 65 74 65 20   ;1mY.[noparse][[/noparse]0m delete 
     61 20 66 69 6C 65 1B 5B 30 38 3B 30 31 48 20 20   a file.[noparse][[/noparse]08;01H  
     20 20 20 1B 5B 30 3B 31 6D 49 1B 5B 30 6D 20 69      .[noparse][[/noparse]0;1mI.[noparse][[/noparse]0m i
     6E 64 65 78 20 61 20 64 6F 63 75 6D 65 6E 74 20   ndex a document 
     20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                   
     20 20 1B 5B 30 3B 31 6D 46 1B 5B 30 6D 20 74 75     .[noparse][[/noparse]0;1mF.[noparse][[/noparse]0m tu
     72 6E 20 64 69 72 65 63 74 6F 72 79 20 1B 5B 30   rn directory .[noparse][[/noparse]0
     39 3B 30 31 48 20 20 20 20 20 1B 5B 30 3B 31 6D   9;01H     .[noparse][[/noparse]0;1m
     54 1B 5B 30 6D 20 74 61 62 6C 65 20 6F 66 20 63   T.[noparse][[/noparse]0m table of c
     6F 6E 74 65 6E 74 73 20 20 20 20 20 20 20 20 20   ontents         
     20 20 20 20 20 20 20 1B 5B 30 3B 31 6D 45 73 63          .[noparse][[/noparse]0;1mEsc
     1B 5B 30 6D 20 73 68 6F 72 74 68 61 6E 64 20 1B   .[noparse][[/noparse]0m shorthand .
     5B 31 30 3B 30 31 48 20 20 20 20 20 1B 5B 30 3B   [noparse][[/noparse]10;01H     .[noparse][[/noparse]0;
     31 6D 58 1B 5B 30 6D 20 65 78 69 74 20 57 6F 72   1mX.[noparse][[/noparse]0m exit Wor
     64 53 74 61 72 20 20 20 20 20 20 20 20 20 20 20   dStar           
     20 20 20 20 20 20 20 20 20 20 20 1B 5B 30 3B 31              .[noparse][[/noparse]0;1
     6D 52 1B 5B 30 6D 20 72 75 6E 20 61 20 70 72 6F   mR.[noparse][[/noparse]0m run a pro
     67 72 61 6D 1B 5B 31 31 3B 30 31 48 20 20 20 20   gram.[noparse][[/noparse]11;01H    
     20 1B 5B 30 3B 31 6D 4A 1B 5B 30 6D 20 68 65 6C    .[noparse][[/noparse]0;1mJ.[noparse][[/noparse]0m hel
     70 1B 5B 31 32 3B 30 31 48 1B 5B 30 38 3B 36 30   p.[noparse][[/noparse]12;01H.[noparse][[/noparse]08;60
     48 6F 66 66 1B 5B 31 32 3B 30 31 48 1B 5B 30 31   Hoff.[noparse][[/noparse]12;01H.[noparse][[/noparse]01
     3B 30 31 48 1B 5B 31 32 3B 30 31 48 1B 5B 30 3B   ;01H.[noparse][[/noparse]12;01H.[noparse][[/noparse]0;
     31 6D 44 49 52 45 43 54 4F 52 59 1B 5B 30 6D 20   1mDIRECTORY.[noparse][[/noparse]0m 
     20 20 44 72 69 76 65 20 1B 5B 31 33 3B 30 31 48     Drive .[noparse][[/noparse]13;01H
     1B 5B 31 32 3B 31 39 48 41 0A 0D 31 32 30 30 2E   .[noparse][[/noparse]12;19H
    
    



    You can see commands like ESC[noparse][[/noparse]02;01H

    See attachment - this is a version patched for a VT100 display. Not all the files are there as some don't change - I think it is ws.ovr and ws.com that are patched. Anyway I've just tested this one.

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

    Post Edited (Dr_Acula) : 3/29/2010 9:59:15 PM GMT
  • hairymnstrhairymnstr Posts: 107
    edited 2010-03-29 22:01
    I've done it!! Finally. It's been a long evening of trying to find particularly confusing and well hidden bugs. However, here is my current version of the DracBlade tree with FSRW2.6

    There's no noticeable speedup in running wordstar etc. as far as I can see, there's a lot of optimisation to be done though.

    This version doesn't do any of the delayed write etc. that we've been discussing, it works exactly as the old one did but with the new FSRW and SPI routines. It's a fair bit bigger but a lot of the FSRW stuff can be trimmed out since it's not being used. It should now support HCSD and FAT32, but it doesn't seem to be working properly yet.

    There are quite a lot of changes in the Main_Dr_Acula.spin to accommodate the new version of FSRW hopefully I've not broken too many of the extra features I can't test (LCD, wireless etc.)

    I've also not bothered with the high latch at all, it's left where ever it is at startup. This shouldn't matter as we'll get a 64KB RAM space on the lower latches whatever it is set to. That's coming in a later version.

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

    "Free as in freedom, beer gratefully accepted though."
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-03-29 22:33
    LCD works
    Xmodem file transfer works
    Mbasic works
    Wordstar works
    Wireless transfers work

    Hey this is great! Well done.

    New code uploaded to page 1 first post. I made just one minor change and commented out this bit
      ' little debugging routines to see if can read a byte back from the sram
      {
      vgatext.hex(long[noparse][[/noparse]buffcog],8) ' this should print C3
      vgatext.out(13)
      vgatext.out(10)
      long[noparse][[/noparse]buffcog]:=1 ' this changes it to 01
      vgatext.hex(long[noparse][[/noparse]buffcog],8) ' this should print 01
      vgatext.out(13)
      vgatext.out(10)
      memm.readram(buffcog, 0, 3) ' read 3 bytes in buff array to address 0
      vgatext.hex(long[noparse][[/noparse]buffcog],8) ' this should print C3 again
      vgatext.out(13)
      vgatext.out(10)
      }
    
    



    as this is now proved and working.

    What are you going to rewrite next?!

    Addit: heater was saying on one of these threads about the minimum files size. I just checked that - it seems to be 2k if the disk image is a floppy image, but 4k if it is a hard drive image like the ones we use.

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

    Post Edited (Dr_Acula) : 3/29/2010 10:56:14 PM GMT
  • hairymnstrhairymnstr Posts: 107
    edited 2010-03-29 23:09
    Yeah, I'd figured the 4K thing when I wrote that disk image browser in Python the other day.

    Scratch what I said about not doing HCSD, looks like it was dirty contacts or something because I've just tried it again and it's working.

    I'm currently running CP/M on my DracBlade on a FAT32 formatted 4GB HCSD card!!

    Next I plan to sleep, then go and do some of the paid research I'm meant to be doing, then maybe start tidying up some of the mess in the PASM that I wrote to get this far.

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

    "Free as in freedom, beer gratefully accepted though."
  • Cluso99Cluso99 Posts: 18,069
    edited 2010-03-30 00:28
    hairymnstr: I disabled the read ahead feature of fsrw2.6 and I cannot recall what I did regarding the writing of 128 bytes. ZiCog was buffering the 512 to 128 byte transfers. You can check my fsrw2.6 code on the RamBlade or TriBlade.
    FAT32 access is slower than FAT16 but once you get into CPM emulation there should be no difference since we are just reading/writing 512 byte sectors directly at the low level.

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

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
    · Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
  • pullmollpullmoll Posts: 817
    edited 2010-03-30 02:13
    hairymnstr said...
    Yeah, I'd figured the 4K thing when I wrote that disk image browser in Python the other day.

    Scratch what I said about not doing HCSD, looks like it was dirty contacts or something because I've just tried it again and it's working.

    I'm currently running CP/M on my DracBlade on a FAT32 formatted 4GB HCSD card!!

    Next I plan to sleep, then go and do some of the paid research I'm meant to be doing, then maybe start tidying up some of the mess in the PASM that I wrote to get this far.

    Congratulations!
    I'll have a look at what you did and will try to incorporate this for the Dracblade.
    One cog saved - hooray! I can use it, because I had none left.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    He died at the console of hunger and thirst.
    Next day he was buried. Face down, nine edge first.
  • pullmollpullmoll Posts: 817
    edited 2010-03-30 04:05
    Dr_Acula said...
    That does not sound right with wordstar. The escape sequences should be numerical. This is a dump of a wordstar startup.[noparse][[/noparse]/code]

    And here's mine running on yaz80:
    <snipped>
    00000350  0a 41 3e 77 73 0d 0d 0a  1b 5b 48 1b 5b 4a 1b 5b  |.A>ws....[noparse][[/noparse]H.[noparse][[/noparse]J.[noparse][[/noparse]|
    00000360  30 6d 0d 0a 57 6f 72 64  53 74 61 72 2c 20 43 50  |0m..WordStar, CP|
    00000370  2f 4d 20 45 64 69 74 69  6f 6e 2c 20 52 65 6c 65  |/M Edition, Rele|
    00000380  61 73 65 20 34 2e 30 30  20 20 20 23 32 31 20 20  |ase 4.00   #21  |
    00000390  20 20 20 20 20 20 20 20  20 20 20 0d 0a 43 6f 70  |           ..Cop|
    000003a0  79 72 69 67 68 74 20 28  43 29 20 31 39 37 39 2c  |yright (C) 1979,|
    000003b0  20 31 39 38 37 20 4d 69  63 72 6f 50 72 6f 20 49  | 1987 MicroPro I|
    000003c0  6e 74 65 72 6e 61 74 69  6f 6e 61 6c 20 43 6f 72  |nternational Cor|
    000003d0  70 6f 72 61 74 69 6f 6e  0d 0a 41 6c 6c 20 72 69  |poration..All ri|
    000003e0  67 68 74 73 20 72 65 73  65 72 76 65 64 2e 0d 0a  |ghts reserved...|
    000003f0  0a 56 54 20 31 30 30 0d  0a 50 6c 61 69 6e 20 41  |.VT 100..Plain A|
    00000400  53 43 49 49 20 44 6f 63  75 6d 65 6e 74 20 74 6f  |SCII Document to|
    00000410  20 46 69 6c 65 0d 0a 1b  5b 48 1b 5b 4a 1b 5b 30  | File...[noparse][[/noparse]H.[noparse][[/noparse]J.[noparse][[/noparse]0|
    00000420  6d 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |m               |
    00000430  20 20 20 20 20 20 20 57  6f 72 64 53 74 61 72 2c  |       WordStar,|
    00000440  20 43 50 2f 4d 20 45 64  69 74 69 6f 6e 2c 20 52  | CP/M Edition, R|
    00000450  65 6c 65 61 73 65 20 34  20 20 20 20 20 20 20 20  |elease 4        |
    00000460  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
    00000470  20 0d 1b 5b 30 32 3b 30  31 48 1b 5b 30 32 3b 31  | ..[noparse][[/noparse]02;01H.[noparse][[/noparse]02;1|
    00000480  41 48 20 1b 5b 30 3b 31  6d 4f 20 50 20 45 20 4e  |AH .[noparse][[/noparse]0;1mO P E N|
    00000490  20 49 20 4e 20 47 20 20  20 4d 20 45 20 4e 20 55  | I N G   M E N U|
    000004a0  1b 5b 30 6d 1b 5b 30 33  3b 30 31 48 20 20 20 20  |.[noparse][[/noparse]0m.[noparse][[/noparse]03;01H    |
    000004b0  20 1b 5b 30 3b 31 6d 44  1b 5b 30 6d 20 6f 70 65  | .[noparse][[/noparse]0;1mD.[noparse][[/noparse]0m ope|
    000004c0  6e 20 61 20 64 6f 63 75  6d 65 6e 74 20 20 20 20  |n a document    |
    000004d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
    000004e0  1b 5b 30 3b 31 6d 4c 1b  5b 30 6d 20 63 68 61 6e  |.[noparse][[/noparse]0;1mL.[noparse][[/noparse]0m chan|
    000004f0  67 65 20 6c 6f 67 67 65  64 20 64 72 69 76 65 2f  |ge logged drive/|
    00000500  75 73 65 72 1b 5b 30 34  3b 30 31 48 20 20 20 20  |user.[noparse][[/noparse]04;01H    |
    00000510  20 1b 5b 30 3b 31 6d 4e  1b 5b 30 6d 20 6f 70 65  | .[noparse][[/noparse]0;1mN.[noparse][[/noparse]0m ope|
    00000520  6e 20 61 20 6e 6f 6e 64  6f 63 75 6d 65 6e 74 20  |n a nondocument |
    00000530  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
    00000540  1b 5b 30 3b 31 6d 43 1b  5b 30 6d 20 70 72 6f 74  |.[noparse][[/noparse]0;1mC.[noparse][[/noparse]0m prot|
    00000550  65 63 74 20 61 20 66 69  6c 65 1b 5b 30 35 3b 30  |ect a file.[noparse][[/noparse]05;0|
    00000560  31 48 20 20 20 20 20 1b  5b 30 3b 31 6d 50 1b 5b  |1H     .[noparse][[/noparse]0;1mP.[noparse][[/noparse]|
    00000570  30 6d 20 70 72 69 6e 74  20 61 20 66 69 6c 65 20  |0m print a file |
    00000580  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
    00000590  20 20 20 20 20 20 1b 5b  30 3b 31 6d 45 1b 5b 30  |      .[noparse][[/noparse]0;1mE.[noparse][[/noparse]0|
    000005a0  6d 20 72 65 6e 61 6d 65  20 61 20 66 69 6c 65 1b  |m rename a file.|
    000005b0  5b 30 36 3b 30 31 48 20  20 20 20 20 1b 5b 30 3b  |[noparse][[/noparse]06;01H     .[noparse][[/noparse]0;|
    000005c0  31 6d 4d 1b 5b 30 6d 20  6d 65 72 67 65 20 70 72  |1mM.[noparse][[/noparse]0m merge pr|
    000005d0  69 6e 74 20 61 20 66 69  6c 65 20 20 20 20 20 20  |int a file      |
    000005e0  20 20 20 20 20 20 20 20  20 20 20 1b 5b 30 3b 31  |           .[noparse][[/noparse]0;1|
    000005f0  6d 4f 1b 5b 30 6d 20 63  6f 70 79 20 61 20 66 69  |mO.[noparse][[/noparse]0m copy a fi|
    00000600  6c 65 1b 5b 30 37 3b 30  31 48 20 20 20 20 20 1b  |le.[noparse][[/noparse]07;01H     .|
    00000610  5b 30 3b 31 6d 53 1b 5b  30 6d 20 63 68 65 63 6b  |[noparse][[/noparse]0;1mS.[noparse][[/noparse]0m check|
    00000620  20 73 70 65 6c 6c 69 6e  67 20 6f 66 20 64 6f 63  | spelling of doc|
    00000630  75 6d 65 6e 74 20 20 20  20 20 20 20 20 20 1b 5b  |ument         .[noparse][[/noparse]|
    00000640  30 3b 31 6d 59 1b 5b 30  6d 20 64 65 6c 65 74 65  |0;1mY.[noparse][[/noparse]0m delete|
    00000650  20 61 20 66 69 6c 65 1b  5b 30 38 3b 30 31 48 20  | a file.[noparse][[/noparse]08;01H |
    00000660  20 20 20 20 1b 5b 30 3b  31 6d 49 1b 5b 30 6d 20  |    .[noparse][[/noparse]0;1mI.[noparse][[/noparse]0m |
    00000670  69 6e 64 65 78 20 61 20  64 6f 63 75 6d 65 6e 74  |index a document|
    00000680  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
    00000690  20 20 20 1b 5b 30 3b 31  6d 46 1b 5b 30 6d 20 74  |   .[noparse][[/noparse]0;1mF.[noparse][[/noparse]0m t|
    000006a0  75 72 6e 20 64 69 72 65  63 74 6f 72 79 20 1b 5b  |urn directory .[noparse][[/noparse]|
    000006b0  30 39 3b 30 31 48 20 20  20 20 20 1b 5b 30 3b 31  |09;01H     .[noparse][[/noparse]0;1|
    000006c0  6d 54 1b 5b 30 6d 20 74  61 62 6c 65 20 6f 66 20  |mT.[noparse][[/noparse]0m table of |
    000006d0  63 6f 6e 74 65 6e 74 73  20 20 20 20 20 20 20 20  |contents        |
    000006e0  20 20 20 20 20 20 20 20  1b 5b 30 3b 31 6d 45 73  |        .[noparse][[/noparse]0;1mEs|
    000006f0  63 1b 5b 30 6d 20 73 68  6f 72 74 68 61 6e 64 20  |c.[noparse][[/noparse]0m shorthand |
    00000700  1b 5b 32 26 3b 30 31 48  20 20 20 20 20 1b 5b 30  |.[noparse][[/noparse]2&;01H     .[noparse][[/noparse]0|
    00000710  3b 31 6d 58 1b 5b 30 6d  20 65 78 69 74 20 57 6f  |;1mX.[noparse][[/noparse]0m exit Wo|
    00000720  72 64 53 74 61 72 20 20  20 20 20 20 20 20 20 20  |rdStar          |
    00000730  20 20 20 20 20 20 20 20  20 20 20 20 1b 5b 30 3b  |            .[noparse][[/noparse]0;|
    00000740  31 6d 52 1b 5b 30 6d 20  72 75 6e 20 61 20 70 72  |1mR.[noparse][[/noparse]0m run a pr|
    00000750  6f 67 72 61 6d 1b 5b 32  27 3b 30 31 48 20 20 20  |ogram.[noparse][[/noparse]2';01H   |
    00000760  20 20 1b 5b 30 3b 31 6d  4a 1b 5b 30 6d 20 68 65  |  .[noparse][[/noparse]0;1mJ.[noparse][[/noparse]0m he|
    00000770  6c 70 1b 5b 32 28 3b 30  31 48 1b 5b 30 38 3b 31  |lp.[noparse][[/noparse]2(;01H.[noparse][[/noparse]08;1|
    00000780  62 48 6f 66 66 1b 5b 32  28 3b 30 31 48 1b 5b 30  |bHoff.[noparse][[/noparse]2(;01H.[noparse][[/noparse]0|
    00000790  31 3b 30 31 48 1b 5b 32  28 3b 30 31 48 1b 5b 30  |1;01H.[noparse][[/noparse]2(;01H.[noparse][[/noparse]0|
    000007a0  3b 31 6d 44 49 52 45 43  54 4f 52 59 1b 5b 30 6d  |;1mDIRECTORY.[noparse][[/noparse]0m|
    000007b0  20 20 20 44 72 69 76 65  20 1b 5b 32 29 3b 30 31  |   Drive .[noparse][[/noparse]2);01|
    000007c0  48 1b 5b 32 28 3b 32 2f  48 41 0a 0d 31 32 30 30  |H.[noparse][[/noparse]2(;2/HA..1200|
    000007d0  2e 41 53 4d 20 20 20 20  20 20 20 41 46 2e 43 52  |.ASM       AF.CR|
    000007e0  46 20 20 20 20 20 20 20  20 20 41 46 2e 4d 41 43  |F         AF.MAC|
    000007f0  20 20 20 20 20 20 20 20  20 41 46 2e 52 45 4c 20  |         AF.REL |
    00000800  20 20 20 20 20 20 20 20  41 53 4d 2e 53 55 42 1b  |        ASM.SUB.|
    00000810  5b 32 2a 3b 30 31 48 41  53 53 45 4d 42 4c 59 2e  |[noparse][[/noparse]2*;01HASSEMBLY.|
    00000820  54 58 54 20 20 20 41 53  53 4d 42 4c 59 4d 2e 54  |TXT   ASSMBLYM.T|
    00000830  58 54 20 20 20 41 55 54  4f 45 58 45 43 2e 42 41  |XT   AUTOEXEC.BA|
    00000840  4b 20 20 20 41 55 54 4f  45 58 45 43 2e 53 55 42  |K   AUTOEXEC.SUB|
    00000850  20 20 20 42 41 53 2e 53  55 42 1b 5b 32 2b 3b 30  |   BAS.SUB.[noparse][[/noparse]2+;0|
    00000860  31 48 42 41 53 49 43 4c  49 42 2e 52 45 4c 20 20  |1HBASICLIB.REL  |
    00000870  20 42 41 53 4c 49 42 2e  52 45 4c 20 20 20 20 20  | BASLIB.REL     |
    00000880  42 43 4c 4f 41 44 20 20  20 20 20 20 20 20 20 42  |BCLOAD         B|
    00000890  44 4f 53 2e 4d 41 43 20  20 20 20 20 20 20 42 44  |DOS.MAC       BD|
    000008a0  4f 53 2e 50 52 4e 1b 5b  32 2c 3b 30 31 48 42 4f  |OS.PRN.[noparse][[/noparse]2,;01HBO|
    000008b0  4f 54 2e 4d 41 43 20 20  20 20 20 20 20 42 4f 4f  |OT.MAC       BOO|
    000008c0  54 47 45 4e 2e 53 50 4c  20 20 20 20 43 2e 43 43  |TGEN.SPL    C.CC|
    000008d0  43 20 20 20 20 20 20 20  20 20 20 43 42 49 4f 53  |C          CBIOS|
    000008e0  58 2e 4d 41 43 20 20 20  20 20 43 42 49 4f 53 58  |X.MAC     CBIOSX|
    000008f0  2e 50 52 4e 1b 5b 32 2d  3b 30 31 48 43 43 50 2e  |.PRN.[noparse][[/noparse]2-;01HCCP.|
    00000900  4d 41 43 20 20 20 20 20  20 20 20 43 43 50 2e 50  |MAC        CCP.P|
    00000910  52 4e 20 20 20 20 20 20  20 20 43 46 47 43 43 50  |RN        CFGCCP|
    00000920  2e 4c 49 42 20 20 20 20  20 44 44 54 5a 2e 43 52  |.LIB     DDTZ.CR|
    00000930  46 20 20 20 20 20 20 20  44 44 54 5a 2e 4d 41 43  |F       DDTZ.MAC|
    00000940  1b 5b 32 2e 3b 30 31 48  44 44 54 5a 2e 52 45 4c  |.[noparse][[/noparse]2.;01HDDTZ.REL|
    00000950  20 20 20 20 20 20 20 44  44 54 5a 32 37 2e 41 52  |       DDTZ27.AR|
    00000960  4b 20 20 20 20 20 44 45  46 46 2e 43 52 4c 20 20  |K     DEFF.CRL  |
    00000970  20 20 20 20 20 44 45 46  46 32 2e 43 52 4c 20 20  |     DEFF2.CRL  |
    00000980  20 20 20 20 44 53 4b 42  4f 4f 54 2e 4d 41 43 1b  |    DSKBOOT.MAC.|
    00000990  5b 32 2f 3b 30 31 48 45  43 38 30 38 30 2e 4c 49  |[noparse][[/noparse]2/;01HEC8080.LI|
    000009a0  42 20 20 20 20 20 45 43  5a 38 30 41 4c 4c 2e 4c  |B     ECZ80ALL.L|
    000009b0  49 42 20 20 20 45 43 5a  38 30 44 4f 43 2e 4c 49  |IB   ECZ80DOC.LI|
    000009c0  42 20 20 20 45 58 2e 43  52 46 20 20 20 20 20 20  |B   EX.CRF      |
    000009d0  20 20 20 45 58 2e 4d 41  43 1b 5b 31 3a 3b 30 31  |   EX.MAC.[noparse][[/noparse]1:;01|
    000009e0  48 45 58 2e 52 45 4c 20  20 20 20 20 20 20 20 20  |HEX.REL         |
    000009f0  45 58 58 2e 43 52 46 20  20 20 20 20 20 20 20 45  |EXX.CRF        E|
    00000a00  58 58 2e 4d 41 43 20 20  20 20 20 20 20 20 45 58  |XX.MAC        EX|
    00000a10  58 2e 52 45 4c 20 20 20  20 20 20 20 20 48 44 53  |X.REL        HDS|
    00000a20  4b 42 4f 4f 54 2e 4d 41  43 1b 5b 31 3b 3b 30 31  |KBOOT.MAC.[noparse][[/noparse]1;;01|
    00000a30  48 48 45 4c 4c 4f 2e 42  41 53 20 20 20 20 20 20  |HHELLO.BAS      |
    00000a40  48 45 4c 4c 4f 2e 43 52  46 20 20 20 20 20 20 48  |HELLO.CRF      H|
    00000a50  45 4c 4c 4f 2e 4d 41 43  20 20 20 20 20 20 48 45  |ELLO.MAC      HE|
    00000a60  4c 4c 4f 2e 52 45 4c 20  20 20 20 20 20 48 45 4c  |LLO.REL      HEL|
    00000a70  4c 4f 2e 54 58 54 1b 5b  31 3c 3b 30 31 48 49 52  |LO.TXT.[noparse][[/noparse]1<;01HIR|
    00000a80  45 47 2e 43 52 46 20 20  20 20 20 20 20 49 52 45  |EG.CRF       IRE|
    00000a90  47 2e 4d 41 43 20 20 20  20 20 20 20 49 52 45 47  |G.MAC       IREG|
    00000aa0  2e 52 45 4c 20 20 20 20  20 20 20 49 58 2e 43 52  |.REL       IX.CR|
    00000ab0  46 20 20 20 20 20 20 20  20 20 49 58 2e 4d 41 43  |F         IX.MAC|
    00000ac0  1b 5b 31 3d 3b 30 31 48  49 58 2e 52 45 4c 20 20  |.[noparse][[/noparse]1=;01HIX.REL  |
    00000ad0  20 20 20 20 20 20 20 4b  45 59 49 2e 41 53 4d 20  |       KEYI.ASM |
    00000ae0  20 20 20 20 20 20 4d 43  2e 53 55 42 20 20 20 20  |      MC.SUB    |
    00000af0  20 20 20 20 20 4d 43 43  2e 53 55 42 20 20 20 20  |     MCC.SUB    |
    00000b00  20 20 20 20 4d 43 43 4c  2e 53 55 42 1b 5b 31 3e  |    MCCL.SUB.[noparse][[/noparse]1>|
    00000b10  3b 30 31 48 4d 4f 56 45  52 2e 4d 41 43 20 20 20  |;01HMOVER.MAC   |
    00000b20  20 20 20 4d 4f 56 45 52  2e 50 52 4e 20 20 20 20  |   MOVER.PRN    |
    00000b30  20 20 4d 59 46 49 4c 45  2e 54 58 54 20 20 20 20  |  MYFILE.TXT    |
    00000b40  20 4d 59 4e 41 4d 45 2e  42 41 53 20 20 20 20 20  | MYNAME.BAS     |
    00000b50  4d 59 4e 41 4d 45 2e 43  52 46 1b 5b 31 3f 3b 30  |MYNAME.CRF.[noparse][[/noparse]1?;0|
    00000b60  31 48 4d 59 4e 41 4d 45  2e 4d 41 43 20 20 20 20  |1HMYNAME.MAC    |
    00000b70  20 4d 59 4e 41 4d 45 2e  52 45 4c 20 20 20 20 20  | MYNAME.REL     |
    00000b80  4e 45 54 32 2e 42 41 53  20 20 20 20 20 20 20 4e  |NET2.BAS       N|
    00000b90  45 54 57 4f 52 4b 2e 42  41 53 20 20 20 20 50 31  |ETWORK.BAS    P1|
    00000ba0  2e 42 41 53 1b 5b 31 40  3b 30 31 48 50 49 43 41  |.BAS.[noparse][[/noparse]1@;01HPICA|
    00000bb0  58 45 32 2e 42 41 53 20  20 20 20 50 4f 50 49 58  |XE2.BAS    POPIX|
    00000bc0  2e 43 52 46 20 20 20 20  20 20 50 4f 50 49 58 2e  |.CRF      POPIX.|
    00000bd0  4d 41 43 20 20 20 20 20  20 50 4f 50 49 58 2e 52  |MAC      POPIX.R|
    00000be0  45 4c 20 20 20 20 20 20  50 4f 52 54 30 2e 42 41  |EL      PORT0.BA|
    00000bf0  53 1b 5b 31 41 3b 30 31  48 50 4f 52 54 31 2e 42  |S.[noparse][[/noparse]1A;01HPORT1.B|
    00000c00  41 53 20 20 20 20 20 20  50 4f 52 54 31 4f 55 54  |AS      PORT1OUT|
    00000c10  2e 42 41 53 20 20 20 50  4f 52 54 32 2e 42 41 53  |.BAS   PORT2.BAS|
    00000c20  20 20 20 20 20 20 50 4f  52 54 32 4f 46 46 2e 43  |      PORT2OFF.C|
    00000c30  52 46 20 20 20 50 4f 52  54 32 4f 46 46 2e 4d 41  |RF   PORT2OFF.MA|
    00000c40  43 1b 5b 31 42 3b 30 31  48 50 4f 52 54 32 4f 46  |C.[noparse][[/noparse]1B;01HPORT2OF|
    00000c50  46 2e 52 45 4c 20 20 20  52 4f 53 53 48 2e 43 20  |F.REL   ROSSH.C |
    00000c60  20 20 20 20 20 20 20 52  4f 53 53 48 2e 43 43 49  |       ROSSH.CCI|
    00000c70  20 20 20 20 20 20 52 4f  53 53 48 2e 43 52 4c 20  |      ROSSH.CRL |
    00000c80  20 20 20 20 20 53 42 45  4e 54 49 52 45 2e 54 58  |     SBENTIRE.TX|
    00000c90  54 1b 5b 31 43 3b 30 31  48 53 44 2e 42 41 4b 20  |T.[noparse][[/noparse]1C;01HSD.BAK |
    00000ca0  20 20 20 20 20 20 20 20  53 44 2e 43 52 46 20 20  |        SD.CRF  |
    00000cb0  20 20 20 20 20 20 20 53  44 2e 4d 41 43 20 20 20  |       SD.MAC   |
    00000cc0  20 20 20 20 20 20 53 44  2e 52 45 4c 20 20 20 20  |      SD.REL    |
    00000cd0  20 20 20 20 20 53 45 52  31 36 2e 42 41 53 1b 5b  |     SER16.BAS.[noparse][[/noparse]|
    00000ce0  31 44 3b 30 31 48 53 48  45 4c 4c 2e 53 55 42 20  |1D;01HSHELL.SUB |
    00000cf0  20 20 20 20 20 53 54 44  49 4f 2e 48 20 20 20 20  |     STDIO.H    |
    00000d00  20 20 20 20 53 55 52 56  45 59 2e 4d 41 43 20 20  |    SURVEY.MAC  |
    00000d10  20 20 20 53 59 53 43 50  4d 32 2e 53 55 42 20 20  |   SYSCPM2.SUB  |
    00000d20  20 20 54 45 52 4d 49 4e  41 4c 2e 41 53 4d 1b 5b  |  TERMINAL.ASM.[noparse][[/noparse]|
    00000d30  31 45 3b 30 31 48 54 45  52 4d 49 4e 41 4c 2e 42  |1E;01HTERMINAL.B|
    00000d40  41 4b 20 20 20 54 45 52  4d 49 4e 41 4c 2e 42 41  |AK   TERMINAL.BA|
    00000d50  53 20 20 20 54 45 52 4d  49 4e 41 4c 2e 43 52 46  |S   TERMINAL.CRF|
    00000d60  20 20 20 54 45 52 4d 49  4e 41 4c 2e 4d 41 43 20  |   TERMINAL.MAC |
    00000d70  20 20 54 45 52 4d 49 4e  41 4c 2e 52 45 4c 1b 5b  |  TERMINAL.REL.[noparse][[/noparse]|
    00000d80  31 46 3b 30 31 48 54 45  53 54 2e 42 41 4b 20 20  |1F;01HTEST.BAK  |
    00000d90  20 20 20 20 20 54 45 53  54 2e 42 41 53 20 20 20  |     TEST.BAS   |
    00000da0  20 20 20 20 54 45 53 54  2e 54 58 54 20 20 20 20  |    TEST.TXT    |
    00000db0  20 20 20 55 43 41 4d 2e  42 41 53 20 20 20 20 20  |   UCAM.BAS     |
    00000dc0  20 20 55 43 41 4d 31 2e  42 41 53 1b 5b 31 47 3b  |  UCAM1.BAS.[noparse][[/noparse]1G;|
    00000dd0  30 31 48 55 43 41 4d 32  2e 42 41 53 20 20 20 20  |01HUCAM2.BAS    |
    00000de0  20 20 55 43 41 4d 33 2e  42 41 53 20 20 20 20 20  |  UCAM3.BAS     |
    00000df0  20 55 43 41 4d 34 2e 42  41 53 20 20 20 20 20 20  | UCAM4.BAS      |
    00000e00  55 43 41 4d 35 2e 42 41  53 20 20 20 20 20 20 55  |UCAM5.BAS      U|
    00000e10  43 41 4d 36 2e 42 41 53  1b 5b 31 48 3b 30 31 48  |CAM6.BAS.[noparse][[/noparse]1H;01H|
    00000e20  55 43 41 4d 37 2e 42 41  53 20 20 20 20 20 20 55  |UCAM7.BAS      U|
    00000e30  4e 41 52 43 2e 54 58 54  20 20 20 20 20 20 55 4e  |NARC.TXT      UN|
    00000e40  45 52 41 2e 4d 41 43 20  20 20 20 20 20 55 53 45  |ERA.MAC      USE|
    00000e50  52 4c 49 42 2e 52 45 4c  20 20 20 20 57 53 2e 42  |RLIB.REL    WS.B|
    00000e60  49 4e 1b 5b 31 49 3b 30  31 48 57 53 50 52 49 4e  |IN.[noparse][[/noparse]1I;01HWSPRIN|
    00000e70  54 2e 54 53 54 20 20 20  20 57 53 52 45 41 44 4d  |T.TST    WSREADM|
    00000e80  45 2e 54 58 54 20 20 20  58 4d 4f 44 45 4d 2e 54  |E.TXT   XMODEM.T|
    00000e90  58 54 20 20 20 20 20 5a  41 53 4d 2e 53 55 42 20  |XT     ZASM.SUB |
    00000ea0  20 20 20 20 20 20 5a 49  42 4f 4f 54 2e 4d 41 43  |      ZIBOOT.MAC|
    00000eb0  1b 5b 31 4a 3b 30 31 48  1b 5b 4a 1b 5b 30 31 3b  |.[noparse][[/noparse]1J;01H.[noparse][[/noparse]J.[noparse][[/noparse]01;|
    00000ec0  30 31 48                                          |01H|
    00000ec3
    
    



    You see the <esc>[noparse][[/noparse]2<strange character>;01H and similar codes? This has to be another yaz80 bug.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    He died at the console of hunger and thirst.
    Next day he was buried. Face down, nine edge first.

    Post Edited (pullmoll) : 3/30/2010 4:11:22 AM GMT

  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-03-30 06:08
    The first [noparse][[/noparse]2 on yours comes just after 'shorthand'

    On mine the data is
     72 74 68 61 6E 64 20 1B 5B 31 30 3B 30 31 48 20   rthand .[noparse][[/noparse]10;01H 
     20 20 20 20 1B 5B 30 3B 31 6D 58 1B 5B 30 6D 20       .[noparse][[/noparse]0;1mX.[noparse][[/noparse]0m 
    
    


    Yours is
    000006f0  63 1b 5b 30 6d 20 73 68  6f 72 74 68 61 6e 64 20  |c.[noparse][[/noparse]0m shorthand |
    00000700  1b 5b 32 26 3b 30 31 48  20 20 20 20 20 1b 5b 30  |.[noparse][[/noparse]2&;01H     .[noparse][[/noparse]0|
    
    



    hope this helps

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • hairymnstrhairymnstr Posts: 107
    edited 2010-03-30 08:45
    I've been doing some thinking about bugs on the bus this morning. I have come to two realisations:

    1) The reason HCSD was not working was that I hadn't burned the EEPROM and was letting the old sdspi routines try and initialise the card then using F10 to run the new version from RAM. This meant that the HC card was not getting the right startup sequence for a high capacity capable host initially and it turns out this locks the card in "busy" mode until you power-cycle it rather than until the next reset CMD0. Once I've bothered to press F11 this bug should be fixed.

    2) The reason it appears slower is because I've inadvertently broken the read-ahead feature (I'll have to double check my code on that). By accessing the RAM inbetween card reads the last command flag is changed which marks the cache as dirty even though I've been careful not to actually alter it. This basically means that it's fetching two blocks every time (and blocking access to the RAM while it fetches the second as the RAM control cog is busy) and since the next command is always a write RAM it is throwing away the pre-cached block when it is needed. I'm guessing it was something along these lines that got you to disable it Cluso? It would block access to your RAM as well while you waited for a "z" command to complete I guess.

    I'll do a couple of experiments on this tonight and see if I can preserve the cache, I think it might be faster if we can use it, otherwise I'll disable it and stop hammering the card so much. Hopefully I'll get the LED access back tonight too. Have to see.

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

    "Free as in freedom, beer gratefully accepted though."
  • Cluso99Cluso99 Posts: 18,069
    edited 2010-03-30 08:58
    hairymnstr: Your comment reminded me that there is another change I made to the fsrw routine. Normally when the SD card is deselected it does not release the DO line and this causes a corruption of the bus. lonesock put a commented set of instructions (labelled cluso's mod or similar) that force the release of DO.

    My reasoning for disabling the read-ahead is that firstly we are accessing 128 bytes records so it is buffered anyway and any further buffering I thought may indeed slow the access. I also thought that later I would check to see if writes actually changed the sector and if not, do not performa write. However, you guys are out of memory so maybe you cannot do this.

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

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
    · Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
  • hairymnstrhairymnstr Posts: 107
    edited 2010-03-30 09:21
    Yes, SD cards aren't fully SPI compliant devices, you have to give them a few clocks after you've release CS before they tristate DO. I saw some code to do this in the old sdspiFemto with your name on to do this, but I don't think I've spotted it in ms_small_spi that I've been working on. Maybe I just haven't noticed it.

    To be honest I think it would be good practice to do this whatever the hardware layout there's not a lot of point in only half tristating the SPI bus.

    I'm not quite sure about what you mean about whether the sector was changed and not doing a write. Are you suggesting checking the sector number or is this a byte-wise comparison of the whole data block before and after the write?

    I think the DracBlade has more RAM spare than it might at first appear I can see at least another kilobyte I can free up with a little careful tweaking.

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

    "Free as in freedom, beer gratefully accepted though."
  • Cluso99Cluso99 Posts: 18,069
    edited 2010-03-30 16:49
    I was thinking of doing a compare before write to see if it was required.

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

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
    · Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
  • hairymnstrhairymnstr Posts: 107
    edited 2010-03-30 18:32
    Here's the latest. I've taken Cluso's approach and disabled read-ahead caching for now, it was not helping really as it is sharing the cog with the RAM control on the DracBlade (and the bus on other blades) concurrent access to RAM and SD isn't possible so doing a read ahead while we're off doing something else doesn't work.

    Also included:
    - I've added access to the high latch again. (Now with flashy LED on disk access again [noparse]:D[/noparse])
    - I've put #ifdef DracbladeProp around all the dracblade specific code, basically the high latch bits and the readbyte/writebyte RAM functions, if someone with one of the other platforms wants to try a port then feel free (I have no particular interest in seeing it ported as I don't have any other Blades and have no idea what their cog/hub/spin memory/processing restrictions and bottlenecks are.)

    Next (after eating some sort of food) I plan to take a meat cleaver to the FSRW code. It's very feature rich, and we simply don't need all of it. Hopefully I can cut several hundred longs (aiming at 300!!) without removing any functionality that I just added (i.e. the FAT32 support etc.)

    Just out of curiosity I tried the FAT32 HCSD card and it runs at exactly the same speed as the 1GB FAT16 once ZiCOG is running (as you'd expect really) so an extra few milliseconds while it finds the disk images is a small price compared with the hassle of getting hold of small SD cards these days.

    Cluso: I see, is that really going to be much quicker? I guess hub ram operations are still a lot quicker than SD access.

    EDIT: Some idiot forgot the attachment. It's been a long week tongue.gif

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

    "Free as in freedom, beer gratefully accepted though."

    Post Edited (hairymnstr) : 3/30/2010 6:38:05 PM GMT
  • pullmollpullmoll Posts: 817
    edited 2010-03-30 19:00
    hairymnstr said...

    - I've put #ifdef DracbladeProp around all the dracblade specific code, basically the high latch bits and the readbyte/writebyte RAM functions, if someone with one of the other platforms wants to try a port then feel free (I have no particular interest in seeing it ported as I don't have any other Blades and have no idea what their cog/hub/spin memory/processing restrictions and bottlenecks are.)

    I may try the RamBlade, as Cluso99 sent me one. Only decouraging thing is that I was not yet able to run any of my code on that board - and without help I'm stuck *hint* *hint*
    The code is shorter than that needed for the DracBlade, so it should fit anyway.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    He died at the console of hunger and thirst.
    Next day he was buried. Face down, nine edge first.
  • hairymnstrhairymnstr Posts: 107
    edited 2010-03-30 20:26
    Turns out my target of 300 longs was overly cautious. Here's the latest (and probably last for a while) with just over 500 longs less code.

    I had to remove some of the file reading/writing code to get rid of one of the disk buffers in FSRW. This means that I altered the code for opening/reading MyName.txt I think it's working now gets the right name off the card on mine. Worth testing though.

    So this version has 900+ longs free and a spare cog. There's some more that could be trimmed I think it'll depend on how much we need the extra memory how much extra hassle it's worth.

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

    "Free as in freedom, beer gratefully accepted though."
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-03-30 22:19
    I might have to give up my day job to spend more time on this! Well done, 500 longs is (in the language I speak) 2 kilobytes! And a spare cog. I've been thinking of all the good things we can do with that, and also thinking that it might be good to keep things flexible with #ifdefs on any code for that new cog. So you might have an #ifdef for bell modem code, and an #ifdef for an audio driver etc.

    There is a lot of code Juergen has already written that should save even more code by moving things into pasm. Possibly even with overlays loaded in from the ram chip for infrequntly needed code eg obscure VT100 codes that are only used once in wordstar. If a lot of hub ram is free, one could think about using that for a graphics buffer for vga. I know propbasic can do some cool graphics, and it is a fairly simple equation - more hub ram = more pixels and more colours.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • hairymnstrhairymnstr Posts: 107
    edited 2010-03-30 22:42
    I fear you will start to run out of memory very quickly if you try other things with this. The code I've put together (with all those longs saved) is saving longs by relying on CP/M to do the filesystem stuff. If you're planning on running some other sort of Prop-resident command interpreter/OS then you're probably going to be needing the full FSRW.

    I don't really know what to put in the new cog, there are some addons like you suggest, I'd wondered about strapping a real-time clock piggy-backed onto the EEPROM on my board which would need some I2C drivers but I'm not sure how much value that would be. I think the I/O would be sped up a lot by having a cog monitoring the ZiCOG I/O mail-box address and doing the command dispatching direct to hub mail-boxes for other peripherals.

    I don't know it it is going to be possible to do the no-hub version of the combined SD/RAM driver as there are only about 10 longs free in that cog now, so there's still got to be a whole bunch of hub transfers there.

    I'm going to be away for a bit over the bank-holiday weekend so may get some inspiration when I come back to it.

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

    "Free as in freedom, beer gratefully accepted though."
  • YodaYoda Posts: 132
    edited 2010-03-31 00:48
    @heater: CP/M can have allocations of less than 2K but would be for a small device like old floppy drives. Take a look at the tables on page 34 of the CPM Programmer's Handbook. It is allowed but given the sizes we are using probably not practical.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-03-31 02:18
    Musings regarding networking.

    Now that the hardware is stable (and the software is shrinking - thanks ++ to everyone), I'm working on the problem of networking. Networking seems such a simple idea, but it is only recently that even PCs had easy ways to network (remember conflicts between ethernet and sound cards on windows 95/98?) and even now blue cat6 cables are not that common in homes. So networking is not a simple problem.

    I've got some simple programs that allow remote login via wireless to CP/M boards and file transfer, and a very simple packet protocol for bouncing messages round wirelessly. What would be great is to have this network interface with the wider internet.

    Back last year I had a N8VEM board on the internet and people were able to telnet in from the other side of the world. But the connection was one way - the N8VEM could not connection out to other boards. Partly this was because it only had one serial port, and partly it is because the TCP/IP software is incredibly complicated. We got around the latter problem using Lantronix units that translated cat6 ethernet to RS232 and with dyndns it was possible to create a static IP address anyone could connect to.

    But the propeller now has some of the hardware to do cat6 connections (and possibly some of the software too).

    I'm thinking about this more after receiving an email from Mr Roche in France and I'll reproduce it below:
    [code]


    Hello, James!

    Just received, a few minutes ago, a message from Ralf K
  • Cluso99Cluso99 Posts: 18,069
    edited 2010-03-31 02:24
    hairymnstr: While doing a compare to save writing if no changes were made would save time providing the write was not executed, another gain is ensuring we do not wear out the card. A long time ago it was discovered that a lot of writes by computers actually did not change anything.

    I am not sure I want to use a non-standard (i.e. heavily modified) fsrw driver. This just makes it so much harder to accept updates and this driver will be the basis of SphinxOS (at least my incarnation of it) as the current Sphinx uses 3 cogs for this.

    My aim is to have SphinxOS load the various drivers into cogs, so that ZiCog just uses the drivers without knowing where the data is going. This way we can substitute serial, 1pin TV, 1pin keyboard, vga, or whatever without having ZiCog necessarily being aware of changes. This then permits the off-loading of the I/O to a second prop easily.

    FYI My 1pin TV driver re-uses it's hub code space (which is loaded into the cog) as the screen space.

    pullmoll: I have the hint. If I get a chance I will email you over the Easter w/e although I first have to drive 800km home (I am on the boat interstate) and we have visitors.

    I have discovered a problem that my 1pinTV driver blocks my 1pinKeyboard driver when the TV is on P6/P14/P22/P30 and Kbd is on P7/P15/P23/P31 respectively. Hopefully I can post a stripped down piece of code for other eyes to look at today. Specifically I see the problem on P22 & P23 and can reverse the pins and still have problems. If I disable the TV the keyboard is fine. I need this for my RamBlade to run standalone. Originally I had thought it was just a timing bug for 6.5Hz operation of the keyboard but I have confirmed it is not this :-(

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

    · Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
    · Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
    · Prop Tools under Development or Completed (Index)
    · Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
    · Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
    My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
  • pullmollpullmoll Posts: 817
    edited 2010-03-31 02:56
    I had a thought yesterday that I want to share. In short: cog loading from SD.

    Instead of having the images of all the code that is run in the cogs in hub RAM too, with the image range possibly not re-used as a buffer, wouldn't it be neat to have just one 512 longs (2K) region where the main code that has to be resident to do this could load the remaining cog code from small files? You would need the SPI SD code and some minimal FSR (without W) code to do that. Then you could load e.g. the UART code and start it in a free cog, the VGA object, the Keyboard driver etc. Of course the pre-configuration Spin code for these objects would have to be run to start them, and I don't know if that works out. Most objects have a start method, but also different parameters to that function. If there is a way to get around this, it should in the end leave a lot of contiguous hub RAM one could use as e.g. buffer for VMM pages.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    He died at the console of hunger and thirst.
    Next day he was buried. Face down, nine edge first.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2010-03-31 04:21
    That is an excellent thought pullmoll.

    I tried to do this about 2 months ago and the first step was to condense all the objects into one file in order to find any conflicts between variable names. That took a whole day and I still hadn't made any progress. Indeed, the code now would not run. It is not simple and one thing that is needed is to remove as much of the supporting spin code as possible. Also all variables need to be passed via common locations.

    Cluso is also working on a similar concept with Sphinx - portable objects that can be stored as independent blocks of code and loaded as required. How is progress on that?

    BUT with your new code, and hairmnstr combining pasm objects together, maybe it is time to revisit the idea?

    There is the cog running spin.
    Then you need the cog to load all the other cogs, and for the dracblade this is now the combo ram and sd card cog.
    So - portable keyboard code. Portable vga code (2 cogs). Portable serial port code. TV cog etc. It could save quite a lot of precious hub ram which could be reused in other ways.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    www.smarthome.viviti.com/propeller
  • pullmollpullmoll Posts: 817
    edited 2010-03-31 06:04
    Dr_Acula said...
    So - portable keyboard code. Portable vga code (2 cogs). Portable serial port code. TV cog etc. It could save quite a lot of precious hub ram which could be reused in other ways.

    That was the idea, yes. I look at my own code which fills up the hub RAM and the various pieces of unused cog images. I could modify the objects to return their location, but then I've got fragmented hub space of some 1-2K bytes here and there. With loading from external media the fragmentation would be less.
    I think the spin code for the start method of an object could be loaded and be called somehow using a temporary 2nd interpreter. That means you can't load all 8 cogs, except if you don't have to execute a Spin method for the last cog. This could be done by adding that module's start code to main.

    That would also offer easy flexibility to what modules to load. Just define a list with the names and choose with or without LCD, with or without TV, with or without VGA etc.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    He died at the console of hunger and thirst.
    Next day he was buried. Face down, nine edge first.
  • hairymnstrhairymnstr Posts: 107
    edited 2010-03-31 09:25
    Many interesting thoughts there. I totally agree that there's no point in you using the stripped down FSRW Cluso, since you can offload a lot of the I/O onto a second Propeller, but in the DracBlade every long counts.

    As far as networking is concerned there are some excellent things for the propeller, look at the YBox2 for example. I've got a Microchip ENC28J60 Ethernet chip in big dip format in my parts box but have never got around to using it. I think, however, you need a supplementary processor of some sort there is no way you'll find room in the DracBlade to do all the ethernet stack. I think the new Parallax ethernet/web server app uses an external TCP (or UDP?)/IP controller, not sure what it is though.

    Loading pasm from disk sounds quite reasonable, we need a way to encapsulate the PASM in a single file without any of the spin surrounding it, then it's just a case of allocating a 2K buffer in hub and loading objects up one at a time. Some sort of python script that can strip the PASM out of an eeprom image perhaps?

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

    "Free as in freedom, beer gratefully accepted though."
Sign In or Register to comment.