Shop OBEX P1 Docs P2 Docs Learn Events
TAQOZ and Monitor listing/dump out format — Parallax Forums

TAQOZ and Monitor listing/dump out format

Peter and I are making both our output the same format so that the output can be pasted back into the Monitor (and TAQOZ??) as a download/store string.
Chip has modified pnut too.

Peter includes an extra space between long of 4 bytes which aids readability. I think that's a great idea so will also do that.

Here is the question... We are going to share the header string, so that also needs to be the same. But I fear we are running out of memory so I am thinking on just a single header line instead of two. Here is a sample of the output with a one line header and a two line header. Is the single line header ok?
 addr-  0  1  2  3   4  5  6  7   8  9  A  B   C  D  E  F
---------------------------------------------------------
  000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
  004- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
  008- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
  00C- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
  010- 28 7E 64 FD  FF FF FF FF  00 FE 6F FC  35 82 4C FB  '(~d.......o.5.L.'
  014- 34 C2 4C FB  0A B6 06 F6  33 60 4C FB  2B 7C 4C FC  '4.L.....3`L.+|L.'
  018- 2F 7E 4C FC  28 7E 64 FD  00 60 07 FB  E4 76 4C FB  '/~L.(~d..`...vL.'
  01C- D8 07 90 CD  E2 7A 4C FB  10 00 90 CD  E0 78 4C FB  '.....zL......xL.'
                                             
                                             
 addr- -0--1--2--3  -4--5--6--7  -8--9--A--B  -C--D--E--F
  000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
  004- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
  008- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
  00C- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
  010- 28 7E 64 FD  FF FF FF FF  00 FE 6F FC  35 82 4C FB  '(~d.......o.5.L.'
  014- 34 C2 4C FB  0A B6 06 F6  33 60 4C FB  2B 7C 4C FC  '4.L.....3`L.+|L.'
  018- 2F 7E 4C FC  28 7E 64 FD  00 60 07 FB  E4 76 4C FB  '/~L.(~d..`...vL.'
  01C- D8 07 90 CD  E2 7A 4C FB  10 00 90 CD  E0 78 4C FB  '.....zL......xL.'
«1

Comments

  • Cluso99Cluso99 Posts: 18,069
    This looks a better single line
     addr  0--1--2--3-  4--5--6--7-  8--9--A--B-  C--D--E--F-
      000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
      004- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
      008- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
      00C- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
    
  • I like the second better.
  • TonyB_TonyB_ Posts: 2,120
    edited 2018-05-18 21:08
    How about this?
     addr  -0 -1 -2 -3  -4 -5 -6 -7  -8 -9 -A -B  -C -D -E -F
     0000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
     0004- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
     0008- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
     000C- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
    

    EDIT:
    added leading 0 to addr column
  • Cluso99Cluso99 Posts: 18,069
    Chip just emailed my a new pnut with the listing putting the ascii string within single quotes.
    From the pnut listing (Ctl-M) copy a few lines from the listing (the addr data section) with CTL-C
    Now with TeraTerm (PST doesn't support paste), and a connection to the monitor, do edit | paste. You won't see it all go in because of the cr lf issue, so just hit enter to get a clean prompt. Now list the addresses you pasted in For example. 00000.00030L<cr>
    And you will see the data is now in hub :)
  • jmgjmg Posts: 15,144
    Cluso99 wrote: »
    This looks a better single line
     addr  0--1--2--3-  4--5--6--7-  8--9--A--B-  C--D--E--F-
      000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
      004- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
      008- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
      00C- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
    

    Yes, that is better, but better still surely, is to remove all the chaff that does not convey information ?
    Which gives this, which is easier to visually scan, and now very similar to most Debuggers HEX screens...
     addr   0  1  2  3   4  5  6  7   8  9  A  B   C  D  E  F 
     0000  00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
     0004  40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
     0008  FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
     000C  3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
    
  • cgraceycgracey Posts: 14,133
    Ray, Peter, send me your latest and I'll use it make the FPGA images.
  • jmg wrote: »
    Yes, that is better, but better still surely, is to remove all the chaff that does not convey information ?
    Which gives this, which is easier to visually scan, and now very similar to most Debuggers HEX screens...
     addr   0  1  2  3   4  5  6  7   8  9  A  B   C  D  E  F 
     0000  00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
     0004  40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
     0008  FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
     000C  3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
    

    I had trailing and leading hyphens to help connect the two parts of the address. However, that is not necessary as addr can be read across and down and the addresses cannot be confused with data as they are different sizes. Overall the above is cleaner and clearer and I think 0-F look much better right-aligned.

    There is a space in the first column. Is this left empty deliberately for a possible C, L or H for Cog, LUT or Hub address?
  • cgraceycgracey Posts: 14,133
    edited 2018-05-18 21:49
    hub     0  1  2  3   4  5  6  7   8  9  A  B   C  D  E  F 
    00000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
    00004- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
    00008- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
    0000C- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
    
    cog   0  1  2  3   4  5  6  7   8  9  A  B   C  D  E  F 
    000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
    004- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
    008- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
    00C- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
    

    This look best to me, by far. Simple is often best.

    EDIT: Wait, you'll need those dashes. I'll add them. Okay, I also added 'hub' and 'cog'.
  • Not sure why you need the ' marks around the ascii portion. Never seen that in other hex editors or memory displays.

    In VS, I can have the memory display show hex or dec as well as show bytes, words, dwords, and qwords. It can also display 32bit and 64bit float elements.
    Makes it really nice for inspecting memory/data.

  • cgraceycgracey Posts: 14,133
    edited 2018-05-18 21:51
    Roy Eltham wrote: »
    Not sure why you need the ' marks around the ascii portion. Never seen that in other hex editors or memory displays.

    In VS, I can have the memory display show hex or dec as well as show bytes, words, dwords, and qwords. It can also display 32bit and 64bit float elements.
    Makes it really nice for inspecting memory/data.

    It has to do with being able to copy and paste hex-dump lines back into the monitor to actually write the memory.
  • jmgjmg Posts: 15,144
    cgracey wrote: »
    It has to do with being able to copy and paste hex-dump lines back into the monitor to actually write the memory.

    This is a useful idea.
    Reminds me years ago, I had Atmel change & expand their PLD reporting list files, so they could paste-back into the source code.
    Quite modest changes, but they make the listing more generally useful.

  • TonyB_TonyB_ Posts: 2,120
    edited 2018-05-18 22:20
    cgracey wrote: »
    hub     0  1  2  3   4  5  6  7   8  9  A  B   C  D  E  F 
    00000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
    00004- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
    00008- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
    0000C- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
    
    cog   0  1  2  3   4  5  6  7   8  9  A  B   C  D  E  F 
    000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
    004- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
    008- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
    00C- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
    

    This look best to me, by far. Simple is often best.

    EDIT: Wait, you'll need those dashes. I'll add them. Okay, I also added 'hub' and 'cog'.

    That's six hex digits for the hub address when five is the maximum. Similarly for cog, it's four when it can't be more than three, but only two in the address column would look strange and could be confused with data. Why not have four address digits on the left always?

    If hyphens are back in fashion then I prefer my original idea, especially as "addr" has gone:
     hub   -0 -1 -2 -3  -4 -5 -6 -7  -8 -9 -A -B  -C -D -E -F
     0000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
     0004- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
     0008- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
     000C- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
    

    What about LUT RAM? Does cog RAM flow into LUT and LUT into Hub automatically, or does each wrap around to its own start?
  • jmgjmg Posts: 15,144
    edited 2018-05-18 22:36
    TonyB_ wrote: »
    That's six hex digits for the hub address when five is the maximum. Similarly for cog, it's four when it can't be more than three, but only two in the address column would look strange and could be confused with data. Why not have four address digits on the left always?
    Hmm, I missed that the address seems to be in 32b chunks, but the bytes are shown individually.
    Doing that makes this hex dump unlike all the others I'm used to looking at, where the BYTE address is the left most column, and individual BYTES are shown.

    TonyB_ wrote: »
    What about LUT RAM? Does cog RAM flow into LUT and LUT into Hub automatically, or does each wrap around to its own start?
    It would be cleanest to have lut also as a heading, (even if the address also infers in-lut)
    Makes it easier for new users to know what they are seeing.

  • jmg wrote: »
    TonyB_ wrote: »
    That's six hex digits for the hub address when five is the maximum. Similarly for cog, it's four when it can't be more than three, but only two in the address column would look strange and could be confused with data. Why not have four address digits on the left always?
    Hmm, I missed that the address seems to be in 32b chunks, but the bytes are shown individually.
    Doing that makes this hex dump unlike all the others I'm used to looking at, where the BYTE address is the left most column, and individual BYTES are shown.

    What I said was wrong. 0-F refer to bytes, but addresses on the left refer to longs? Confusing.
  • Cluso99Cluso99 Posts: 18,069
    Cog and LUT addresses are 3 digits (2 leading blanks) and Hub is 5 digits.
    The dash "-" is required as the store/download character for the monitor routine, just like L, G etc.
    Similarly, the single quotes around the ascii is required (first one) is used to terminate the input in store/download. Otherwise you would not be able to cut and paste multiple lines or else that ascii would get stored too.
    You can simply determine cog and lut by the 3 digit addresses. I don't have the space to put cog/lut/Hub in the header.
    I output cog/lut/hub using the same routine, and to be consistent, I output the lot in bytes. So if your program is in hub and copied to cog, the bytes listed will be the same, not reversed.
    My preference is to group each long with dashes in the heading. Shall I put the 0..F on the left or right nibble?
  • Cluso99Cluso99 Posts: 18,069
    Chip, I will just confirm with Peter and we will send you new code shortly.
  • cgraceycgracey Posts: 14,133
    edited 2018-05-18 23:11
    Cluso99 wrote: »
    Chip, I will just confirm with Peter and we will send you new code shortly.

    Roger.

    I assume you got my emails about jumping back to 'try_serial' after SD boot failure. Just constrain your register usage to cog $1C0..$1EF. And no touching the LUT. If your code needs to use the LUT, the reentry will have to change.
  • TonyB_TonyB_ Posts: 2,120
    edited 2018-05-18 23:50
    Cluso99 wrote: »
    Cog and LUT addresses are 3 digits (2 leading blanks) and Hub is 5 digits.
    The dash "-" is required as the store/download character for the monitor routine, just like L, G etc.
    Similarly, the single quotes around the ascii is required (first one) is used to terminate the input in store/download. Otherwise you would not be able to cut and paste multiple lines or else that ascii would get stored too.
    You can simply determine cog and lut by the 3 digit addresses. I don't have the space to put cog/lut/Hub in the header.
    I output cog/lut/hub using the same routine, and to be consistent, I output the lot in bytes. So if your program is in hub and copied to cog, the bytes listed will be the same, not reversed.
    My preference is to group each long with dashes in the heading. Shall I put the 0..F on the left or right nibble?

    I prefer right nibble, but is that the right question to ask?

    I think mixing byte and long addressing is really confusing and users will hate it. Either have one or the other. The heading could be just "addr-" or omit it entirely. The versions of Debug I use don't tell me which of the 16 bytes is which and they are still useful.

    If only the first single quote is required, could you move it so there is a space either side?
     000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC ' ....?...2.......
     004- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD ' @~t.......&...b.
     008- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF ' ..n.?...(.d.....
     00C- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB ' <...)Xe...... ..
    
     addr- -0 -1 -2 -3  -4 -5 -6 -7  -8 -9 -A -B  -C -D -E -F
     0000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC ' ....?...2.......
     0010- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD ' @~t.......&...b.
     0020- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF ' ..n.?...(.d.....
     0030- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB ' <...)Xe...... ..
    
  • kwinnkwinn Posts: 8,697
    edited 2018-05-19 02:53
     hub   -0 -1 -2 -3  -4 -5 -6 -7  -8 -9 -A -B  -C -D -E -F
     0000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC  '....?...2.......'
     0004- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD  '@~t.......&...b.'
     0008- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF  '..n.?...(.d.....'
     000C- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB  '<...)Xe...... ..'
    
    To me this looks like the best format for hub, cog, and lut. A logical layout that is easy to read and interpret. Five nibbles/hex digits for a 20 bit address, the first four being the address of four longs or 16 bytes, and the header with the fifth nibble/digit of the byte address. How much simpler or clearer can it get.
  • I agree. Easy peasy.
  • jmgjmg Posts: 15,144
    edited 2018-05-19 03:52
    kwinn wrote: »
    ... Five nibbles/hex digits for a 20 bit address, the first four being the address of four longs or 16 bytes, and the header with the fifth nibble/digit of the byte address. How much simpler or clearer can it get.

    Given the address is in longs, but the data is in bytes, that's far from simple or clear.
    Hence TonyB_'s suggestion of byte addresses & byte values

    TonyB_ wrote: »
    I think mixing byte and long addressing is really confusing and users will hate it. Either have one or the other.
     addr- -0 -1 -2 -3  -4 -5 -6 -7  -8 -9 -A -B  -C -D -E -F
     0000- 00 08 80 FF  3F 00 0C FC  32 B6 06 F6  1F 04 DC FC ' ....?...2.......
     0010- 40 7E 74 FD  01 B8 A6 F0  1F B8 26 F4  00 B8 62 FD ' @~t.......&...b.
     0020- FA B7 6E FB  3F 00 0C FC  28 B2 64 FD  E0 07 00 FF ' ..n.?...(.d.....
     0030- 3C 01 06 FB  29 58 65 FD  E1 07 00 FF  A4 20 04 FB ' <...)Xe...... ..
    

    I'd scrub the leading '-' on the address line chaff, as that is not needed, but the trailing - is apparently a command, so it can be tolerated..
  • Cluso99Cluso99 Posts: 18,069
    Leading zeros are needed. See why a few pasts back!

    The full address is also required for the same reason. The header provides a reference only. Its not an address.
  • Stick with it Cluso. That it can be pasted right back in is a huge win.

    It's not like these are the only tools. Making these built in bits work well together is most important.

  • I've skipped using a fixed header since it is not unusual to use the address of a Forth word for the starting address. The problem I see with only using 5 digits for the hub address is that my dump code also handles devices such as serial flash which may be larger than 1MB and SD or SD files which are handled as 4GB address space.

    However, here is the format as it is right now:
    00000- 00 00 00 00  00 00 00 00  00 00 00 00  15 00 15 00     '................'
    00010- 1B 1B 0D 0D  0D 2E 53 46  0D 17 30 20  24 34 30 20     '......SF..0 $40 '
    00020- 44 55 4D 50  0D 00 00 00  00 00 00 00  00 00 00 00     'DUMP............'
    00030- 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00     '................' ok
    TAQOZ# 0 $40 DUMPW 
    00000- 0000 0000 0000 0000  0000 0000 0021 0021     '............!.!.'
    00010- 1B1B 0D0D 2E0D 4653  170D 2030 3424 2030     '......SF..0 $40 '
    00020- 5544 504D 300D 2420  3034 4420 4D55 5750     'DUMP.0 $40 DUMPW'
    00030- 000D 0000 0000 0000  0000 0000 0000 0000     '................' ok
    TAQOZ# 0 $40 DUMPL 
    00000- 0000_0000 0000_0000 0000_0000 002D_002D     '............-.-.'
    00010- 0D0D_1B1B 4653_2E0D 2030_170D 2030_3424     '......SF..0 $40 '
    00020- 504D_5544 2420_300D 4420_3034 5750_4D55     'DUMP.0 $40 DUMPW'
    00030- 2420_300D 4420_3034 4C50_4D55 0000_000D     '.0 $40 DUMPL....' ok
    TAQOZ# 0 $40 COG DUMP 
    000- FDAF_E916 FD90_00D0 0000_003C 0000_003B  0000_003A 0000_003D 0000_0000 0000_0000  
    008- 0000_0000 0000_FE00 0000_0000 0000_EB1A  0000_0050 4000_0036 0000_B9BA 0000_4404  
    010- 0000_0000 0000_0001 0000_0021 0000_0032  0000_0042 0000_0001 0000_0000 0000_0000  
    018- 0000_0000 0000_0000 0000_0050 0000_0000  0000_0000 554D_500D 0000_000D 0000_004B  
    020- 0000_003C 0000_E905 0000_FBFF 0000_FCFF  0000_FDFF 0000_0025 DEAD_BEEF DEAD_BEEF  
    028- DEAD_BEEF 0000_0040 0000_002A 0000_0000  0000_0000 0000_D954 0000_0001 0000_01F0  
    030- F603_F025 FD90_00D4 FDB0_00D0 FD60_1A2B  FD90_0008 FD60_162D FAE4_1761 F210_5E0B  
    038- 3D9F_FFF0 F210_420B 3D90_0020 F210_440B  3D9F_FFE0 F210_460B 3D90_0028 F210_480B   ok
    
  • jmgjmg Posts: 15,144
    However, here is the format as it is right now:
    The first 3 look fine, all using byte based HEX address, however the last one seems to jump to long-base address, with no clear indication to the reader
    The problem I see with only using 5 digits for the hub address is that my dump code also handles devices such as serial flash which may be larger than 1MB and SD or SD files which are handled as 4GB address space.
    Does that address field not auto-extend for > 1MB ?


  • jmg wrote: »
    However, here is the format as it is right now:
    The first 3 look fine, all using byte based HEX address, however the last one seems to jump to long-base address, with no clear indication to the reader
    The problem I see with only using 5 digits for the hub address is that my dump code also handles devices such as serial flash which may be larger than 1MB and SD or SD files which are handled as 4GB address space.
    Does that address field not auto-extend for > 1MB ?
    I had forgotten to add two extra spaces to the 3 digit cog address at the time however although I can easily auto-extend the address beyond 5 digits it now makes it incompatible with Cluso's dump but that probably doesn't really matter, we are not going to paste that back in. Or are we?
  • potatoheadpotatohead Posts: 10,253
    edited 2018-05-19 05:20
    Might paste a routine written to high card address, into P2 RAM to run it, or combine it with something else, patch. IMHO, not critical. Nice to have, but time and space and core features are more critical.

    My .02
  • Cluso99Cluso99 Posts: 18,069
    Ok, here is a paste example...
    TAQOZ# $F_C124 $20 dumpl hub ???
    FC124- F40E_8E00 5D64_7A50 5D64_7850 AD65_FE28     '....Pzd]Pxd](.e.'
    FC134- AB04_0000 FD64_7659 FB4C_7603 3D90_0664     '....Yvd..vL.d..=' ok
    
    copied this from TAQOZ (then I cheated and changed the address)

    In the Monitor, list $8000 to show what's there first, then paste with TeraTerm (edit|paste), then list out again to verify.
    *8000.8020l
     addr  -0--1--2--3  -4--5--6--7  -8--9--A--B  -C--D--E--F
    08000- 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00   '................'
    08010- 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00   '................'
    *08000- F40E_8E00 5D64_7A50 5D64_7850 AD65_FE28     '....Pzd]Pxd](.e.'
    *08110- AB04_0000 FD64_7659 FB4C_7603 3D90_0664     '....Yvd..vL.d..=' ok
    *8000.8020l
     addr  -0--1--2--3  -4--5--6--7  -8--9--A--B  -C--D--E--F
    08000- 00 8E 0E F4  50 7A 64 5D  50 78 64 5D  28 FE 65 AD   '....Pzd]Pxd](.e.'
    08010- 00 00 00 00  00 00 00 00  00 00 00 00  00 00 00 00   '................'
    *
    
    All works :)

    Copy also works from pnut listing and monitor listing too.
    Here is the latest version of pnut's listing
    00000- 00 C0 CF FE 61 13 C4 FA 09 0E D0 F8 00 0E 60 FD   '....a.........`.'
    00010- 01 0E 04 F1 FB 11 6C FB FC FF 9F FD 00 00 00 30   '......l........0'
    
  • TonyB_TonyB_ Posts: 2,120
    edited 2018-05-19 13:04
    Cluso99 wrote: »
    Great news.

    As per todays call, the following additions are tested and ready for the next round (more to come)...

    Cmd_X New command "X" identical to "L" except the listing is in longs (hex) instead of bytes. Note endian switch.
    Cmd_G *FC000G<cr> uses hubset ##$1000_0000 to reset the P2 after a delay1ms
    Headings removed
    P2-MONITOR V1.0
    *100.180x
      100- F40E8E00 5D647A50 5D647850 AD65FE28  '....Pzd]Pxd](.e.'
      104- AB040000 FD647659 FB4C7603 3D900664  '....Yvd..vL.d..='
      108- FD90041C FD63EC58 FD643C1F FD63EC50  '....X.c..<d.P.c.'
      10C- FD652C1F 0D73EC40 F607EC08 FD647A59  '.,e.@.s.....Yzd.'
      110- F027EE18 FD647A58 F037EE01 FD64765A  '..'.Xzd...7.Zvd.'
      114- FD647859 FD647858 0B6FEDFB FCDC0808  'Yxd.Xxd...o.....'
    

    A few thoughts:

    1. It is unfortunate that L is not the command for Long data dumps. X is not intuitive. I wonder whether B and L could be used for Byte or Long dumps (or DB and DL perhaps)?

    2. Three digit addresses for cog/LUT and five (or four) digits for hub addresses is a scheme that users should get accustomed to fairly quickly. No headings reduce the confusion. Presumably 200 is the first LUT address?

    3. Does the first single-quote character before the ASCII block in effect signal the start of a comment string? If so, couldn't the second quote at the end be removed? The first quote would be better with a space afterwards in case the first data byte is $27.

    4. Will there be copy & paste of long data between the Monitor and TAQOZ? They don't appear to be compatible at the moment as TAQOZ displays twice the data per line (too much IMO).
    However, here is the format as it is right now:
    ...
    TAQOZ# 0 $40 COG DUMP 
    000- FDAF_E916 FD90_00D0 0000_003C 0000_003B  0000_003A 0000_003D 0000_0000 0000_0000  
    008- 0000_0000 0000_FE00 0000_0000 0000_EB1A  0000_0050 4000_0036 0000_B9BA 0000_4404  
    010- 0000_0000 0000_0001 0000_0021 0000_0032  0000_0042 0000_0001 0000_0000 0000_0000  
    018- 0000_0000 0000_0000 0000_0050 0000_0000  0000_0000 554D_500D 0000_000D 0000_004B  
    020- 0000_003C 0000_E905 0000_FBFF 0000_FCFF  0000_FDFF 0000_0025 DEAD_BEEF DEAD_BEEF  
    028- DEAD_BEEF 0000_0040 0000_002A 0000_0000  0000_0000 0000_D954 0000_0001 0000_01F0  
    030- F603_F025 FD90_00D4 FDB0_00D0 FD60_1A2B  FD90_0008 FD60_162D FAE4_1761 F210_5E0B  
    038- 3D9F_FFF0 F210_420B 3D90_0020 F210_440B  3D9F_FFE0 F210_460B 3D90_0028 F210_480B   ok
    
    Is the underscore necessary?

    5. Is it worthwhile trying to keep to a 80 character limit per display line, for the dump commands at least?
  • Cluso99Cluso99 Posts: 18,069
    1. Commands cannot be A-F. Otherwise how do you know it's not a hex character?
    L= List, X= heX, G= Goto, -= store/download, R= Run

    2. Yes, $000-$1FF is COG, $200-$3FF is LUT, $00000-$FFFFF is HUB.
    3 or less digits are COG/LUT, 4+ digits are HUB. IIRC also any address >$400 will also be HUB. I actually fool the LIST command for HUB by setting bit 20=1 ie $100000 because that address bit is ignored when I do a rdlong.

    3. Yes. In years gone by, the ascii was wrapped in single quotes. There is just as much reasoning to do it one way or the other. This is the way I chose.

    4. Yes. Try this in Monitor
    0- 11 22 33 44 55667788 <cr>
    L<cr>
    No (paste from TAQOZ. I am limited to a buffer of 78 characters, plus zero termination $0.

    5. If I count correctly, I output 78 characters for the long format. TAQOZ exceeds 80 chacters for long dumps but there is no ascii. The underscores do enhance readability. I had to mod my code to allow underscores.

    History: My Monitor was written for the original P2, way before even P2HOT. By design, it would have been a simple job to make it also run on P1, a job I never got time to do. I wrote it using LMM mode (a method used by Bill Henning to run code from HUB before hubexec was thought of. The original Monitor was way more versatile than its cut-down sibling today. Commands had a trailing optional numeric modifier. It also included a complete disassembler listing option. These all needs to be stripped to reduce the footprint in order for TAQOZ to fit.

    By design, I also wanted to utilise as little resources as possible. It does not use PA or PB except in one instance, and here it pushes and pops the original value. It does use the internal stack, and likely almost the full depth - I had traced it a long time ago.
    Other than Hub memory, it uses a 16 long footprint $1E0-$1EF in COG, and no LUT.
    The HUB is all in ROM except for the read buffer of 80 characters. Currently this defaults to Hub $02000[80] but can be user relocated. After discussions with Chip, I intend to shift this into HUB ROM Yes, the ROM is not write protected so we've decided to use it. By removing the list heading, I gained enough space for the buffer. There is also the possibility of overwriting part of Chip's booter.

    I'd like to put back the use of just <cr> to carry on the next List command. This used to work on the original monitor.
Sign In or Register to comment.