link about Disciple and +D

ZX80, ZX 81, ZX Spectrum, TS2068 and other clones
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

link about Disciple and +D

Post by cborn »

Hi
i just found this developpe link about Disciple and +D
https://www.z88dk.org/forum/viewtopic.p ... +type#p502

and wanted to add this other link ,but i aint a developper. probably the site of Rudy is known already, but its good to metion it, i guess.
https://www.biehold.nl/rudy/index.htm
stefano
Well known member
Posts: 2137
Joined: Mon Jul 16, 2007 7:39 pm

Re: link about Disciple and +D

Post by stefano »

thankyou for reminding it! I didn't remember that post.
Enrico is now a pro developer which began on the Spectrum. He did interesting stuff (now lost) on the microdrive, then moved on the Disciple. He designed a serial interface for the Spectrum and wrote interesting software for it: a good terminal to be used in the nineties with the BBS systems, a remote drive system to host the Specrum files in a PC, and recently an interesting tool to dump the Opus Discovery disks.
He wrote the old (now not working anymore) tool to convert the REL files into z88dk object files.

I recently barely succeeded in fixing the microdrive support, thus I'm a bit sick of this kind of stuff, but it also depends on how much people is really interested in it.
User avatar
dom
Well known member
Posts: 2072
Joined: Sun Jul 15, 2007 10:01 pm

Re: link about Disciple and +D

Post by dom »

The ramsoft document is much better at describing the hook codes: http://ramsoft.bbk.org.omegahg.com/tech/mgt_tech.txt

Every few years I get tempted into adding an fcntl library - the most recent time was a couple of months ago when I was working on the SAM target - and every time I re-remember that the hook code API isn't that great. It's okay for loading files into memory, but random file access just doesn't exist in GDOS (it may well do in Unidos). Given that there's the zxbasic fcntl driver I'd recommend using that instead.

If you were hinting at creating MGT format discs, then appmake has a +mgt option which can create +zx discs (untested) which with a small addition in zx.cfg could be used.
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

Hi, so there are 4 or 5 different formats on 1 disctype of 800Kb MGT
DISCiPLE
+D
Unidisc
BDos ??
SAM
they al have some different items to be handled and a DISCIPLE disc can be formated with eg 84 tracks, i did it on a real disc.

Between DISCiPLE and +D the directory format is the most importend difference.
I am writing my own mgt READ routine (in gcc) from a BASIC program on "disciple nieuwsbrief" which is probably a file from FORMATmagazine
http://www.cborn.nl/zxfiles/readMGT_053.c
it only does the main parts, no filetypes yet etc , i have 2 discimages used as testfile
http://www.cborn.nl/zxfiles/banddump193-221.IMG an DISCiPLE disc
http://www.cborn.nl/zxfiles/000HI_C_Work.MGT an +D disc
if you try you see the EMPTY entries, but those are just the wrong tracks, i have to switch side for a correct output =(

Meanwhwile i found mgtman from Dan Doore, great !
https://github.com/dandoore/mgtman
it does the OPPOSITE of my aproach, it switches sides for +D , and errors on DISCIPLE by still doing that :/
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

Hi, i did a shamefull "update" :rolleyes:
i had disc images from disciple on my site
those where zip file, but apparently made with the wrong interface installed. sorry,...
i did find the original IMAGE like in *.IMG from realspectrum and now those are online.
http://www.cborn.nl/zxfiles
these are the DISCIPLE discs from "Disciple nieuwsbrief"
that took a kind off long appearently, but now they are avilable. issue 21 is still missing, its a propped disk for which you need TWO other disks to unprop. those faulty images are still available.... hmmmmmm
Hopefully they are a good source.
cheers :O

eg
http://www.cborn.nl/zxfiles/DDISC-M1.IMG
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

I made some progess from which i have a good feeling.
http://www.cborn.nl/zxfiles/mgtDD_096.c

and i made a TEST DISK
http://www.cborn.nl/zxfiles/test_sys_erased009.IMG

with a BASIC routine that makes 9 off 11 DISCiPLE file types
http://www.cborn.nl/zxfiles/testfiles3_0029.txt

i still miss type 6, MDR microdrive ON Disciple
and type 8, the SPECIAL which i found on the TW3 disks
http://www.cborn.nl/zxfiles/TW3-WERK.IMG

i used FUSE emulator with DISiPLE but Fuse , erhem, REfuses to work in 128k mode so i could only MAKE this test-disk in 48k mode.
there for the 128k SAVE d*"name"K is a faulty one
meanwhile the NMI+key4 gives a different SIZE
the NMI+key5 does NOT WORK and is there for not saved
maybe REalSpectrum or an other emulator with DISCiPLE can do a better job.
oja,
finally i ERASED half off the saved test files so there are erased file to be found aswell!
and i HAD to do that as a last command else the erased files are overwritten....
normaly a good thing but today its a test disk for DISCIPLE ONLY, although, the make-file is in BASIC and just MIGHT work on an +D disk aswell ?
i did NOT make that testdik for the +d...

cheers, i hope it all helps, reactions are very welcome!!
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

ps,
the file for the testdisk has to start with
1 LET x$="1": CLOSE #*
but it overwrites itself to a 2... i was to quick, now its the good one with the start value "1".
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

My last working source seems a "real " commandline by now
http://www.cborn.nl/zxfiles/mgtDD_100_34.zip

gcc mgtDDX100_34.c -o mgtDDX100_34 2> mgtDDX100_34.log
./mgtDDX100_34 MKdiskDD_0034.IMG

Code: Select all

./mgtDDX100  MKdiskDD_0034.IMG

This diskimage reader is for MGT DISCiPLE DISC formatted disks only , version: ./mgtDDX100
Number of files passed: 1
- 1- MKdiskDD_0034.IMG

Found: MKdiskDD_0034.IMG
filesize 819200 

No | Filename   | Track | Sector>Amount | Block | Type | LOAD@ | blocklen | proglen+VarLeng | autoLine | Erased |
 1   MKdiskDD1 M      4       1      68   0BAS    1BAS   23755     34489      1449 + 33040     65535           
 2   data  x 1 d     10       9      50   1D.AR   2D.AR  33217     25003     65432 +     0     65535           
 3   data  z$1 d     15       9      16   2$.AR   3$.AR  25211      8003     65498 +     0     65535           
 4   Screen  1 S     17       5      14   3CODE   4CODE  16384      6912     65535 +     0         0           
 5   snap 48k1 s     18       9     129   255     5SN48  65535     65535     65535 +     0     65535           
 6   Screen$ 1 S     31       8      14   3CODE   7SCR$  16384      6912     65535 +     0     65535           
 7   snap128k1 s     33       2     129   255     9SN28  65535     65535     65535 +     0     65535           
 8   Test.OUT.1T     46       1       1   0BAS   10OPEN      0        25         0 +     0         0           
 9   NOT exec1 N     46       2       1   0BAS   11EXEC      0         0         0 +     0         0           
10   MKdiskDDL1M     46       3      68   0BAS    1BAS   23755     34608      1449 + 33159         1           
11   MKdiskDD2 M     53       1      68   0BAS    0      23755     34645      1449 +     0     65535     ERASED
12   data  x 2 d     59       9      50   1D.AR   0      33213     25003     65432 +     0     65535     ERASED
13   data  z$2 d     64       9      16   2$.AR   0      25207      8003     65498 +     0     65535     ERASED
14   Screen  2 S     66       5      14   3CODE   0      16384      6912     65535 +     0         0     ERASED
15   snap 48k2 s     67       9     129   255     0      65535     65535     65535 +     0     65535     ERASED
16   Screen$ 2 S    128       8      14   3CODE   0      16384      6912     65535 +     0     65535     ERASED
17   snap128k2 s    130       2     129   255     0      65535     65535     65535 +     0     65535     ERASED
18   Test.OUT.2T    143       1       1   0BAS   10OPEN      0        25         0 +     0         0           
19   NOT exec2 N    143       2       1   0BAS    0          0         0         0 +     0         0     ERASED
20   MKdiskDDL2M    143       3      68   0BAS    0      23755     34645      1449 +     0         1     ERASED
21   MKdiskDD3 M    150       1       3   0BAS    1BAS   23755      1449      1449 +     0     65535           
22   MKdiskDD4 M    150       4       3   0BAS    1BAS   23755      1449      1449 +     0      9999           
23   Snap1C    S    150       7      97   0BAS    5SN48      0         0         0 +     0         0           
this routine is much to large for ZX. AFAI understand it make a full copy of the disk of 800kb while zx has 48 or 114kb free mem and even a Next will have problems with it, i guess..
so i need to reform it in reading blocks off the image. the //for(x is the old one, in version 100, its working
this is version 106 with a rude "read()" but i obviously have to try different and better
i have to change more so sector reading is the base, perhaps then perhaps, one day, it might be usable for a real disk... some day

question, does read() increases by use? meaning that severall read() on the same file will read the next part???
since i think that what the man page says... but this is NOT working since it misses the file bytes them selves

Code: Select all

while (last==0){
// from disc next part has to be an ' LOAD @ ' instead off the bytecount loop
    for (bytecount=0 ; bytecount < directorylength ; bytecount=bytecount+direntry )
       {
//https://man7.org/linux/man-pages/man2/read.2.html
    read( (fd+bytecount) , dirstring , 256 ) ;

//        for (x = 0 ; x < direntry+1 ; x++ )
//           {
//            dirstring[x] = file_contents[x+bytecount] ;
//                                                    /*readbinfileinc_017.c: In function ‘main’:
//                                                      readbinfileinc_017.c:81:22: warning: assignment to ‘char *’ from ‘char’ makes pointer from integer without a cast [-Wint-conversion]
//                                                      dirstring[x] = file_contents[x+bytecount] ;
//                                                                ^
//                                                    */
//           }

Code: Select all

 ./mgtDDX106  MKdiskDD_0034.IMG

This diskimage reader is for MGT DISCiPLE DISC formatted disks only , version: ./mgtDDX106It prints the directory with (almost) full attribrutes
Number of files passed: 1
 1: MKdiskDD_0034.IMG

Found: MKdiskDD_0034.IMG
filesize 819200 

No | Filename   | Track | Sector>Amount | Block | Type | LOAD@ | blocklen | proglen+VarLeng | autoLine | Erased |
 1   D�D1       0       0       0   305423540       1682656513          2     1261367296         0 +     0         0           
 2   D�D1       0       0       0   305423540       1682656513          2     1261367296         0 +     0         0           
 3   D�D1       0       0       0   305423540       1682656513          2     1261367296         0 +     0         0           
 4   D�D1       0       0       0   305423540       1682656513          2     1261367296         0 +     0         0           
 5   D�D1       0       0       0   305423540       1682656513          2     1261367296         0 +     0         0           

cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

last attempt =D
http://www.cborn.nl/zxfiles/mgtDD-155_YES.c.zip
it has a decent variable printing AND has a sector-map with a single CHR$ per sector with as marker 'number+32'
using chr$ 32+1 to 32+80 as separate filemarkers within the sectormap.
still only viewing the directory!!

actualy
what is better for cq in zcc
open() or fopen() ??
fopen() seems prefered as 'original'
but i dont get it working yet , with fopen
http://www.cborn.nl/zxfiles/mgtDD-164.c

i t try to make the impact smaller by reading only parts of the already exsisting file. probably i can do that with open() aswell.
but i decided to use fopen now for 'commonsake' or something alike.
155(yes) still does read() an 800kb copy in 'file_contens'
164 uses a fread() of 512+1, but fails to read complete

Code: Select all

./mgtDD-164  MKdiskDD_0034.IMG
This diskimage reader is for MGT DISCiPLE DISC formatted disks only , version: ./mgtDD-164
reading the Directory only:
Number of files passed: 1
- 1- MKdiskDD_0034.IMG

819200Found: MKdiskDD_0034.IMG
filesize 819200 
 No |Filename   |Track |Sector>Amount |Block |Type |DT | LOAD@|blocklen|proglen+VarLeng|@Line|Erased|
  1  D�              0      0      0   0BAS  1682656513              0      0        0 +     0     0        
  2  D�              0      0      0   0BAS  1682656513              0      0        0 +     0     0        
free(): invalid size
Aborted
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

http://www.cborn.nl/zxfiles/mgtDD212.c.zip

wel, almost, since the sector counting seems not working
and probably severall other things can be done better.
meanwhile i copied some info from the basic prog "E_cat.4" from probably Disk_01_08
it now hs an auto run code AND and extra large OPENtype file. the SPECIAL end the MDR have yet to come... but the list of unic files on the disk is getting longer =D (still using 'open' instead of 'fopen' )

Code: Select all

This diskimage reader is for MGT DISCiPLE DISC formatted disks only , version: ./mgtDD212
reading the Directory only:
Number of files passed: 1
- 1- MKdiskDD_0037.IMG

Found: MKdiskDD_0037.IMG
filesize 819200 

 No |Filename   |Track |Sector>Amount |Block |Type | LOAD@|blocklen|param1 |param2 |param3 |Erased|
  1  Sys 3b          4      1     14   3CODE  4CODE      0    6656 |       |       |               
  2  Loader          5      5     11   0BAS   1BAS   23755    5286 |  5267 +    19  LINE  500        
  3  Mover           6      6      1   3CODE  4CODE  49000      60 |       |       |               
  4  Music           6      7      4   3CODE  4CODE  40300    1750 |       |       |               
  5  Copysys 3b      7      1     14   3CODE  4CODE  42240    6656 |       |       |               
  6  MKdiskDD_1      9      3     64   0BAS   1BAS   24542   32233 |  2482 + 29751                 
  7  data x  _1     16      5     50   1D.AR  2D.AR  31747   25003 | DATA X()        
  8  data z$ _1     22      3      8   2$.AR  3$.AR  27709    4035 | DATA Z$()        
  9  Screen  _1     23      9     14   3CODE  4CODE  16384    6912 |       |       |               
 10  self_RUN_1     26      1      1   3CODE  4CODE  16384       1 | autostart 16384         
 11  snap 48k_1     26     10    129   255    5SN48  65535   65535 |       |       |               
   REGISTERS: reg_hl      0  reg_de      0  reg_bc      0  reg_if      0  reg_ix     0  reg_iy    0
              reg_hl2     0  reg_de2     0  reg_bc2     0  reg_if2     0  reg_sp     0
 12  Screen$ _1     41      5     14   3CODE  7SCR$  16384    6912 |       |       |               
 13  snap128k_1     44      5    129   255    9SN28  65535   65535 |       |       |               
   REGISTERS: reg_hl      0  reg_de      0  reg_bc      0  reg_if      0  reg_ix     0  reg_iy    0
              reg_hl2     0  reg_de2     0  reg_bc2     0  reg_if2     0  reg_sp     0
 14  Test.OUT.1     58      2      5   0BAS  10OPEN      0    2135 |   2135        
 15  NOT exec_1     59      5      1   0BAS  11EXEC      0       0 |       |       |               
 16  MKdiskDDL1     60      4     64   0BAS   1BAS   24542   32389 |  2482 + 29907  LINE    1        
 17E MKdiskDD_2     68      3     64   0BAS   0      24542   32428 |       |       |         ERASED
 18E data x  _2     75      5     50   1D.AR  0      31743   25003 |       |       |         ERASED
 19E data z$ _2    129      3      8   2$.AR  0      27705    4035 |       |       |         ERASED
 20E Screen  _2    130      9     14   3CODE  0      16384    6912 |       |       |         ERASED
 21E self_RUN_2    133      1      1   3CODE  0      16384       1 |       |       |         ERASED
 22E snap 48k_2    133     10    129   255    0      65535   65535 |       |       |         ERASED
 23E Screen$ _2    148      5     14   3CODE  0      16384    6912 |       |       |         ERASED
 24E snap128k_2    151      5    129   255    0      65535   65535 |       |       |         ERASED
 25  Test.OUT.2    165      2      5   0BAS  10OPEN      0    2135 |   2135        
 26  NOT exec_2    166      5      1   0BAS  11EXEC      0       0 |       |       |               
 27E MKdiskDDL2    167      4     64   0BAS   0      24542   32428 |       |       |         ERASED
 28  DisK#15         8      5    223   0BAS  10OPEN      0  113238 | 113238        
 29  MKdiskDD3     174      6      5   0BAS   1BAS   23755    2482 |  2482 +     0                 
 30  MKdiskDD4     175      1      5   0BAS   1BAS   23755    2482 |  2482 +     0  LINE 9999        
 31  Snap1K        175      6     14   3CODE  7SCR$  16384    6912 |       |       |               
 32  Snap1L        176     10     97   0BAS   5SN48      0       0 |       |       |               
   REGISTERS: reg_hl  26255  reg_de  26260  reg_bc      0  reg_if  16169  reg_ix   979  reg_iy23610
              reg_hl2  4223  reg_de2 13979  reg_bc2  5665  reg_if2 16169  reg_sp 65522
 33                  0      0      0   0BAS   0          0       0 |       |       |               
 34                  0      0      0   0BAS   0          0       0 |       |       |               
 35                  0      0      0   0BAS   0          0       0 |       |       |               
 36                  0      0      0   0BAS   0          0       0 |       |       |               
 37                  0      0      0   0BAS   0          0       0 |       |       |               
 38                  0      0      0   0BAS   0          0       0 |       |       |               
 39                  0      0      0   0BAS   0          0       0 |       |       |               
 40                  0      0      0   0BAS   0          0       0 |       |       |               
 41                  0      0      0   0BAS   0          0       0 |       |       |               
 42                  0      0      0   0BAS   0          0       0 |       |       |               
 43                  0      0      0   0BAS   0          0       0 |       |       |               
 44                  0      0      0   0BAS   0          0       0 |       |       |               
 45                  0      0      0   0BAS   0          0       0 |       |       |               
 46                  0      0      0   0BAS   0          0       0 |       |       |               
 47                  0      0      0   0BAS   0          0       0 |       |       |               
 48                  0      0      0   0BAS   0          0       0 |       |       |               
 49                  0      0      0   0BAS   0          0       0 |       |       |               
 50                  0      0      0   0BAS   0          0       0 |       |       |               
 51                  0      0      0   0BAS   0          0       0 |       |       |               
 52                  0      0      0   0BAS   0          0       0 |       |       |               
 53                  0      0      0   0BAS   0          0       0 |       |       |               
 54                  0      0      0   0BAS   0          0       0 |       |       |               
 55                  0      0      0   0BAS   0          0       0 |       |       |               
 56                  0      0      0   0BAS   0          0       0 |       |       |               
 57                  0      0      0   0BAS   0          0       0 |       |       |               
 58                  0      0      0   0BAS   0          0       0 |       |       |               
 59                  0      0      0   0BAS   0          0       0 |       |       |               
 60                  0      0      0   0BAS   0          0       0 |       |       |               
 61                  0      0      0   0BAS   0          0       0 |       |       |               
 62                  0      0      0   0BAS   0          0       0 |       |       |               
 63                  0      0      0   0BAS   0          0       0 |       |       |               
 64                  0      0      0   0BAS   0          0       0 |       |       |               
 65                  0      0      0   0BAS   0          0       0 |       |       |               
 66                  0      0      0   0BAS   0          0       0 |       |       |               
 67                  0      0      0   0BAS   0          0       0 |       |       |               
 68                  0      0      0   0BAS   0          0       0 |       |       |               
 69                  0      0      0   0BAS   0          0       0 |       |       |               
 70                  0      0      0   0BAS   0          0       0 |       |       |               
 71                  0      0      0   0BAS   0          0       0 |       |       |               
 72                  0      0      0   0BAS   0          0       0 |       |       |               
 73                  0      0      0   0BAS   0          0       0 |       |       |               
 74                  0      0      0   0BAS   0          0       0 |       |       |               
 75                  0      0      0   0BAS   0          0       0 |       |       |               
 76                  0      0      0   0BAS   0          0       0 |       |       |               
 77                  0      0      0   0BAS   0          0       0 |       |       |               
 78                  0      0      0   0BAS   0          0       0 |       |       |               
 79                  0      0      0   0BAS   0          0       0 |       |       |               
 80                  0      0      0   0BAS   0          0       0 |       |       |               
80 files on disk.
-1056561582 sectors used

!!!!!!!!!!!!!!"""""""""""#$$$$%%%%%%%%%%
%%%%<<<<<<<<&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&<<<<
<<<<''''''''''''''''''''''''''''''''''''
''''''''''''''<<<<<<<<((((((((<<<<<<<<))
))))))))))))<<<<<<<<*<<<<<<<<+++++++++++
++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++<<
<<<<<<<<<<<<<<,,,,,,,,,,,,,,<<<<<<<<<<<<
<<<<------------------------------------
----------------------------------------
----------------------------------------
-------------<<<<<<<<.....<<<<<<<</<<<<<
<<<0000000000000000000000000000000000000
000000000000000000000000000<<<<<<<<<<<<<
<<11111111111111111111111111111111111111
11111111111111111111111111<<<<<<<<222222
2222222222222222222222222222222222222222
2222<<<<<<<<33333333<<<<<<<<444444444444
44<<<<<<<<5<<<<<<<<666666666666666666666
6666666666666666666666666666666666666666
6666666666666666666666666666666666666666
6666666666666666666666666666<<<<<<<<<<<<
<<<<77777777777777<<<<<<<<<<<<<<<<888888
8888888888888888888888888888888888888888
8888888888888888888888888888888888888888
8888888888888888888888888888888888888888
888<<<<<<<<99999<<<<<<<<:<<<<<<<<;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;<<<<<<<<=====>>>>>?????
?????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@~~~~~~~@~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

http://www.cborn.nl/zxfiles/mgtDD244.zip
the file itself is not yet smaller, but i think i made it use less memory by reading per sector... at least thats the aim and my hope...
is it usefull?
is it readable?
can it help mgt.c or mgtMAN.c ???
i can have alook at my own database now. :cool:

Code: Select all

 ./mgtDD244  MKdiskDD_0037.IMG leeg_DISCiPLE_80.IMG

This diskimage reader is for MGT DISCiPLE DISC formatted disks only , version: ./mgtDD244
reading the Directory only:
Number of files passed: 2
- 1- MKdiskDD_0037.IMG
- 2- leeg_DISCiPLE_80.IMG

Found: MKdiskDD_0037.IMG
filesize 819200 

.)No |Filename   |Track |Sector>Amount |Block |Type | LOAD@|blocklen|param1 |param2 |param3 |Erased|
!) 1  Sys 3b          4      1     14   3CODE  4CODE      0    6656                                 
") 2  Loader          5      5     11   0BAS   1BAS   23755    5286 |  5267 +    19  LINE  500        
#) 3  Mover           6      6      1   3CODE  4CODE  49000      60                                 
$) 4  Music           6      7      4   3CODE  4CODE  40300    1750                                 
%) 5  Copysys 3b      7      1     14   3CODE  4CODE  42240    6656                                 
&) 6  MKdiskDD_1      9      3     64   0BAS   1BAS   24542   32233 |  2482 + 29751                 
') 7  data x  _1     16      5     50   1D.AR  2D.AR  31747   25003 | DATA X()                        
() 8  data z$ _1     22      3      8   2$.AR  3$.AR  27709    4035 | DATA Z$()                        
)) 9  Screen  _1     23      9     14   3CODE  4CODE  16384    6912                                 
*)10  self_RUN_1     26      1      1   3CODE  4CODE  16384       1 | autostart 16384                         
+)11  snap 48k_1     26     10    129   255 ?  5SN48  65535   65535                                 
   REGISTERS: reg_hl      0  reg_de      0  reg_bc      0  reg_if      0  reg_ix     0  reg_iy    0
              reg_hl2     0  reg_de2     0  reg_bc2     0  reg_if2     0  reg_sp     0
,)12  Screen$ _1     41      5     14   3CODE  7SCR$  16384    6912                                 
-)13  snap128k_1     44      5    129   255 ?  9SN28  65535   65535                                 
   REGISTERS: reg_hl      0  reg_de      0  reg_bc      0  reg_if      0  reg_ix     0  reg_iy    0
              reg_hl2     0  reg_de2     0  reg_bc2     0  reg_if2     0  reg_sp     0
.)14  Test.OUT.1     58      2      5   0BAS  10OPEN      0    2135 |   2135                        
/)15  NOT exec_1     59      5      1   0BAS  11EXEC      0       0                                 
0)16  MKdiskDDL1     60      4     64   0BAS   1BAS   24542   32389 |  2482 + 29907  LINE    1        
1)17E MKdiskDD_2     68      3     64   0BAS   0NONE  24542   32428                           ERASED
2)18E data x  _2     75      5     50   1D.AR  0NONE  31743   25003                           ERASED
3)19E data z$ _2    129      3      8   2$.AR  0NONE  27705    4035                           ERASED
4)20E Screen  _2    130      9     14   3CODE  0NONE  16384    6912                           ERASED
5)21E self_RUN_2    133      1      1   3CODE  0NONE  16384       1                           ERASED
6)22E snap 48k_2    133     10    129   255 ?  0NONE  65535   65535                           ERASED
7)23E Screen$ _2    148      5     14   3CODE  0NONE  16384    6912                           ERASED
8)24E snap128k_2    151      5    129   255 ?  0NONE  65535   65535                           ERASED
9)25  Test.OUT.2    165      2      5   0BAS  10OPEN      0    2135 |   2135                        
:)26  NOT exec_2    166      5      1   0BAS  11EXEC      0       0                                 
;)27E MKdiskDDL2    167      4     64   0BAS   0NONE  24542   32428                           ERASED
<)28  DisK#15         8      5    223   0BAS  10OPEN      0  113238 | 113238                        
=)29  MKdiskDD3     174      6      5   0BAS   1BAS   23755    2482 |  2482 +     0                 
>)30  MKdiskDD4     175      1      5   0BAS   1BAS   23755    2482 |  2482 +     0  LINE 9999        
?)31  Snap1K        175      6     14   3CODE  7SCR$  16384    6912                                 
@)32  Snap1L        176     10     97   0BAS   5SN48      0       0                                 
   REGISTERS: reg_hl  26255  reg_de  26260  reg_bc      0  reg_if  16169  reg_ix   979  reg_iy23610
              reg_hl2  4223  reg_de2 13979  reg_bc2  5665  reg_if2 16169  reg_sp 65522
A)33                  0      0      0   0----  0NONE      0       0                                 
B)34                  0      0      0   0----  0NONE      0       0                                 
C)35                  0      0      0   0----  0NONE      0       0                                 
D)36                  0      0      0   0----  0NONE      0       0                                 
E)37                  0      0      0   0----  0NONE      0       0                                 
F)38                  0      0      0   0----  0NONE      0       0                                 
G)39                  0      0      0   0----  0NONE      0       0                                 
H)40                  0      0      0   0----  0NONE      0       0                                 
I)41                  0      0      0   0----  0NONE      0       0                                 
J)42                  0      0      0   0----  0NONE      0       0                                 
K)43                  0      0      0   0----  0NONE      0       0                                 
L)44                  0      0      0   0----  0NONE      0       0                                 
M)45                  0      0      0   0----  0NONE      0       0                                 
N)46                  0      0      0   0----  0NONE      0       0                                 
O)47                  0      0      0   0----  0NONE      0       0                                 
P)48                  0      0      0   0----  0NONE      0       0                                 
Q)49                  0      0      0   0----  0NONE      0       0                                 
R)50                  0      0      0   0----  0NONE      0       0                                 
S)51                  0      0      0   0----  0NONE      0       0                                 
T)52                  0      0      0   0----  0NONE      0       0                                 
U)53                  0      0      0   0----  0NONE      0       0                                 
V)54                  0      0      0   0----  0NONE      0       0                                 
W)55                  0      0      0   0----  0NONE      0       0                                 
X)56                  0      0      0   0----  0NONE      0       0                                 
Y)57                  0      0      0   0----  0NONE      0       0                                 
Z)58                  0      0      0   0----  0NONE      0       0                                 
[)59                  0      0      0   0----  0NONE      0       0                                 
\)60                  0      0      0   0----  0NONE      0       0                                 
])61                  0      0      0   0----  0NONE      0       0                                 
^)62                  0      0      0   0----  0NONE      0       0                                 
_)63                  0      0      0   0----  0NONE      0       0                                 
`)64                  0      0      0   0----  0NONE      0       0                                 
a)65                  0      0      0   0----  0NONE      0       0                                 
b)66                  0      0      0   0----  0NONE      0       0                                 
c)67                  0      0      0   0----  0NONE      0       0                                 
d)68                  0      0      0   0----  0NONE      0       0                                 
e)69                  0      0      0   0----  0NONE      0       0                                 
f)70                  0      0      0   0----  0NONE      0       0                                 
g)71                  0      0      0   0----  0NONE      0       0                                 
h)72                  0      0      0   0----  0NONE      0       0                                 
i)73                  0      0      0   0----  0NONE      0       0                                 
j)74                  0      0      0   0----  0NONE      0       0                                 
k)75                  0      0      0   0----  0NONE      0       0                                 
l)76                  0      0      0   0----  0NONE      0       0                                 
m)77                  0      0      0   0----  0NONE      0       0                                 
n)78                  0      0      0   0----  0NONE      0       0                                 
o)79                  0      0      0   0----  0NONE      0       0                                 
p)80                  0      0      0   0----  0NONE      0       0                                 
80 files on disk.
1346 sectors used

!!!!!!!!!!!!!!"""""""""""#$$$$%%%%%%%%%%
%%%%<<<<<<<<&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&<<<<
<<<<''''''''''''''''''''''''''''''''''''
''''''''''''''<<<<<<<<((((((((<<<<<<<<))
))))))))))))<<<<<<<<*<<<<<<<<+++++++++++
++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++<<
<<<<<<<<<<<<<<,,,,,,,,,,,,,,<<<<<<<<<<<<
<<<<------------------------------------
----------------------------------------
----------------------------------------
-------------<<<<<<<<.....<<<<<<<</<<<<<
<<<0000000000000000000000000000000000000
000000000000000000000000000<<<<<<<<<<<<<
<<11111111111111111111111111111111111111
11111111111111111111111111<<<<<<<<222222
2222222222222222222222222222222222222222
2222<<<<<<<<33333333<<<<<<<<444444444444
44<<<<<<<<5<<<<<<<<666666666666666666666
6666666666666666666666666666666666666666
6666666666666666666666666666666666666666
6666666666666666666666666666<<<<<<<<<<<<
<<<<77777777777777<<<<<<<<<<<<<<<<888888
8888888888888888888888888888888888888888
8888888888888888888888888888888888888888
8888888888888888888888888888888888888888
888<<<<<<<<99999<<<<<<<<:<<<<<<<<;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;<<<<<<<<=====>>>>>?????
?????????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@|||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||


nuc1e0n
Member
Posts: 49
Joined: Wed Jun 10, 2020 12:34 am

Re: link about Disciple and +D

Post by nuc1e0n »

This program has piqued my interest today. I've downloaded the code and I've been able to compile this code with z88dk and have run it on a real zx spectrum tonight after making a few changes:

1. Using -ndos would link in the fake file io, so no .dsk images would ever open successfully. If swapped that param for -esxdos instead, so I can test on my real spectrum with a divmmc interface and esxdos
2. In the code there were some mixups between char pointers, char arrays and arrays of char pointers. I changed those also (plus any other warnings gcc or zcc gave me)
3. The zcc command didn't specify how much memory to use for the heap, so _heap wasn't defined. I added a command param of -DAMALLOC2 to give the program half the available ram for the heap.
4. As far as I know creating .tap files for the zx spectrum, you can't pass args to main. I've added some code to prompt for the name of the file to load at startup.

The .tap output runs successfully from esxdos on my +3, but the list of output files read from the disk image seems wrong. Maybe there's some integer size mismatch comparing gcc to zcc that affects the output?

Here's a link to my updated files in .zip form: https://github.com/pjshumphreys/files/b ... p?raw=true
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

Hi, first thank you for making those changes, although some are to much or to soon.
I wondered myself if i would be able to use it on a real ZX and you just have proven that. cheers, and the size is only half of the PC version.

First remark is that its aimed on DISCiPLE images and YOU WONT FIND THEM as dsk images, those are PLUS -D only, that is a pitty. and i am pretty sure about it becouse severall years ago, on wos-forum, i asked about it. probably your test.dsk will not be accurate on a SAM or +D.
the difference between DISCiPLE and PLUS-D are the directory placement and this is a realy big problem after all.
on PC aka crossover disk format a common *.IMG is used for the DISCiPLE
track side 1 track side 2
0 directory 128 free
1 directory 129 free
2 directory 130 free
3 directory 131 free
4 free 132 free
5 free 133 free
. .. . ..
79 free 207 free
number gab to side 2 by adding bit 7

while images with *.MGT or *.DSK are the +D and Sam Coupe format.
while the directory IS AT 2 SIDES ??
is the track NUMBER identical ???
track side 1 track side 2
0 directory 128 directory
1 directory 129 directory
2 free 130 free
3 free 131 free
. .. . ..
79 free 207 free
// number gab to side 2 by adding bit 7

// or does the track +D/SAM numbering flips side ASWELL ??
// track side 1 track side 2
// 0 directory 1 directory
// 2 directory 3 directory
// 4 free 5 free
// 6 free 7 free
// . .. . ..
// 78 free 79 free
// number gab bit7 number gab bit7
//128 free 129 free
// . .. . ..
//206 free 207 free
But on my PC version off mgtDD243 'test.dsk' works good!
btw, i have to REname your effort to 'zxmgtDD243' else i will overwrite my own file!
and you binary is a realy z80 file aswell like the tap, then its better to give them clear distinctive names, i supose.

Further you do/show some small changes which i have to rechew a few times,eg open file "rb", read Binary?
its that why you removed those 'unsigned' markings? And you remove FILE* at the second(+) file opening.

the original DISCiPLE handle 1 sided disks, thats why i have made the part with Doublesided and Doubledensity defined,
not very good yet, but for the future. i concider using the same variable names as in included by mgt.d in z88dk/src/appmake/mgt.c
my vars

Code: Select all

const int DDensity = 2         ; // single density=1 double density =2
const int DSides = 2           ; // singleside=1   doubleside=2
const int direntry=256         ; // LENGTH of 1 directory entry is 256 bytes, DD=512= 2 entries on 1 sector
const int sector_ln=256                       ; // standard length ??  3_1/2 =256     5_1/4 =128
const int sectorsize=sector_ln * DDensity     ; // 1 sector=512 bytes max
const int tracksize=10                        ; // 1 track = 10 sectors
const int dirlen=DDensity*DSides ;
const int directorysize=DDensity*dirlen*tracksize   ; // amount off tracks 4 tracks = 4 * 10 * DDensity
const int disc_DsDD=40 * DDensity * DSides    ; // 80 tracks Double Sided Double Density=160tracks
// tracks are numbered side 1=0-79 and with bit 7 SET side 2=128-207
Actualy the 5-1/2 disk was used aswell, i think with mgt-rom1

and about all those pointers you removed? some where it worked like that. i still dont realy have that understanding when why what.
thats the whole pointer... still chewing a bit on that.


btw, what a huge map that is
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

to late to edit (10 minutes?)
you migth like
https://github.com/dandoore/mgtman/
aswell
nuc1e0n
Member
Posts: 49
Joined: Wed Jun 10, 2020 12:34 am

Re: link about Disciple and +D

Post by nuc1e0n »

As far as I know, the .dsk file extension is used by lots of different file formats for many different computer systems. The only commonality between these different formats is the file contents always represent the bytes that would be present on a real disk somehow.

I just coped and renamed one of your disk images to test.dsk so it would be easier for me to type on the speccy.

I removed the 'unsigned' markings as according to the C standard char can either be signed or unsigned. Whether they are signed or not is left up to the authors of the compiler you're using. All the standard library functions are specified to work in terms of just 'char' so if you were to make your variables unsigned char you would have to typecast them or you might get undefined behaviour otherwise. The only times when it matters whether they're signed of not is when you use them with the operators <, >, <= or >= so I prefer to just cast them to unsigned char at those times specifically.

Also, I've had a little trouble in the past with z88dk evaluating expressions at compile time. Therefore I try to calculate them myself and put the resultant value into the source code directly.

Finally, I removed the second FILE * as you've already defined the variable further up in the function. The second occurrence you only need to set its value with a second fopen.
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

nuc1e0n wrote: Sun Feb 13, 2022 12:53 pm As far as I know, the .dsk file extension is used by lots of different file formats for many different computer systems. The only commonality between these different formats is the file contents always represent the bytes that would be present on a real disk somehow.
(..)
excluding the DISCiPLE variant which is original an disk IMaGe aswell, but i think the *.img is captured as picture image nowadays.
my linux, deb10, mentions the *.IMG as a "Raw disc image"

btw does the exsdos has to do with TRD, since is a different disk type as well, although close to MGT afaik.
https://worldofspectrum.org/forums/disc ... ent_975892
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

DISCIPLE *.img
VERSUS
+D plusD *.mgt *.dsk

THEY READ EACH OTHER [YES]

THEY WRITE EACH OTHER [NO]

THEY CAN NOT
i repeat
THEY CAN NOT WRITE EACH OTHER
NO NO NO
the bitmap differs AND the use of the sides DIFFER

if you WRITE YOU DESTROY THE FILES
some will disapear for HALF since they will be overwritten

WRITING IS DESTROYING FOR REAL !!
Last edited by cborn on Sun Feb 13, 2022 2:08 pm, edited 1 time in total.
nuc1e0n
Member
Posts: 49
Joined: Wed Jun 10, 2020 12:34 am

Re: link about Disciple and +D

Post by nuc1e0n »

Sorry I'm not really familiar with these disk formats. Sorry if I mixed them up.

esxdos is a modern system that allows the speccy to directly read and write files on a fat32 formatted sd card, provided you have a supported sd card reader plugged into the expansion slot of the speccy (such a a divmmc interface).

z88dk has facilities to compile programs for the speccy where the standard stdio functions (fopen, fprintf et al) are routed through to call the esxdos equivalents internally. z88dk also can hook the stdio functions to other filesystem interfaces instead, such as the dos on a spectrum +3 (plus3dos), or the zx microdrive. The name of this interface used internally by z88dk is fcntl.

esxdos does provide some emulation of .trd disk images, which was the disk format used by the tr-dos system used by the beta disk interface. tr-dos was popular with spectrum clone computers in former soviet countries in the 1990s.

I don't think esxdos provides emulation of mgt or disciple format disk images. Hence why I thought something like that was the goal of your current project.
Stefan
Member
Posts: 19
Joined: Fri Nov 29, 2013 10:21 pm

Re: link about Disciple and +D

Post by Stefan »

The DISCiPLE, +D and SAM Coupé all use the same format for their default DOS, tracks 0 - 3 of side 0. They are interchangeable.

- DISCiPLE disassembly
- samdos disassembly

The DISCiPLE was MGT's first disk interface for the ZX Spectrum, you could use any disk drive with, single sided, double sided, 40 tracks per side, 80 tracks per side, 5.25" or 3.5". So without complicating the directory handling to deal with the disk geometry, it made sense to keep things simple, first 4 tracks on side 0 works for all.

How an img / mgt / dsk / whatever format handles the layout of any disk internally is another matter.
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

Stefan wrote: Sun Feb 13, 2022 4:02 pm The DISCiPLE, +D and SAM Coupé all use the same format for their default DOS, tracks 0 - 3 of side 0. They are interchangeable.
NOPE, i disagree fully.
DISCiPLE 0-3
http://www.cborn.nl/zxfiles/MKdisk_DD_0037.IMG

Code: Select all

./mgtDD243 mkdisk+d_0037.mgt

This diskimage reader is for MGT DISCiPLE DISC formatted disks only , version: ./mgtDD243
reading the Directory only:
Number of files passed: 1
- 1- mkdisk+d_0037.mgt

Found: mkdisk+d_0037.mgt
filesize 819200 

.)No |Filename   |Track |Sector>Amount |Block |Type | LOAD@|blocklen|param1 |param2 |param3 |Erased|
!) 1  +SYS 2a         4      1     14   3CODE  4 4CODE   8192    6656                                 
") 2  CONFIG          5      5     32   0BAS   1 1BAS   23755   15975 | 15552 +   423  LINE 9100        
#) 3  CONFIG1_C       8      7      4   3CODE  4 4CODE  40300    1750                                 
$) 4  CONFIG2_C       9      1     14   3CODE  4 4CODE  42240    6656                                 
%) 5  CONFIG3_C      10      5      1   3CODE  4 4CODE  49000      60                                 
&) 6  MKdiskDD_1     11      4     64   0BAS   1 1BAS   24542   32233 |  2482 + 29751                 
') 7  data x  _1     18      6     50   1D.AR  2 2D.AR  31747   25003 | DATA X()                        
() 8  data z$ _1     24      4      8   2$.AR  3 3$.AR  27709    4035 | DATA Z$()                        
)) 9  Screen  _1     25     10     14   3CODE  4 4CODE  16384    6912                                 
*)10  self_RUN_1     28      2      1   3CODE  4 4CODE  16384       1 | autostart 16384                         
+)11  snap 48k_1     29      1    129   255 ?  5 5SN48  65535   65535                                 
   REGISTERS: reg_hl      0  reg_de      0  reg_bc      0  reg_if      0  reg_ix     0  reg_iy    0
              reg_hl2     0  reg_de2     0  reg_bc2     0  reg_if2     0  reg_sp     0
,)12  Screen$ _1     43      6     14   3CODE  7 7SCR$  16384    6912                                 
-)13  snap128k_1     46      6    129   255 ?  9 9SN28  65535   65535                                 
   REGISTERS: reg_hl      0  reg_de      0  reg_bc      0  reg_if      0  reg_ix     0  reg_iy    0
              reg_hl2     0  reg_de2     0  reg_bc2     0  reg_if2     0  reg_sp     0
.)14  Test.OUT.1     60      3      5   0BAS  1010OPEN      0    2135 |   2135                        
/)15  NOT exec_1     61      6      1   0BAS  1111EXEC      0       0                                 
0)16  MKdiskDDL1     62      5     64   0BAS   1 1BAS   24542   32389 |  2482 + 29907  LINE    1        
1)17E MKdiskDD_2     70      4     64   0BAS   0 0NONE  24542   32428                           ERASED
2)18E data x  _2     77      6     50   1D.AR  0 0NONE  31743   25003                           ERASED
3)19E data z$ _2    131      4      8   2$.AR  0 0NONE  27705    4035                           ERASED
4)20E Screen  _2    132     10     14   3CODE  0 0NONE  16384    6912                           ERASED
5)21                  0      0      0   0----  0 0NONE      0       0                                 
6)22                  0      0      0   0----  0 0NONE      0       0                                 
7)23                  0      0      0   0----  0 0NONE      0       0                                 
8)24                  0      0      0   0----  0 0NONE      0       0                                 
9)25                  0      0      0   0----  0 0NONE      0       0                                 
:)26                  0      0      0   0----  0 0NONE      0       0                                 
;)27                  0      0      0   0----  0 0NONE      0       0                                 
<)28                  0      0      0   0----  0 0NONE      0       0                                 
=)29                  0      0      0   0----  0 0NONE      0       0                                 
>)30                  0      0      0   0----  0 0NONE      0       0                                 
?)31                  0      0      0   0----  0 0NONE      0       0                                 
@)32                  0      0      0   0----  0 0NONE      0       0                                 
A)33                  0      0      0   0----  0 0NONE      0       0                                 
B)34                  0      0      0   0----  0 0NONE      0       0                                 
C)35                  0      0      0   0----  0 0NONE      0       0                                 
D)36                  0      0      0   0----  0 0NONE      0       0                                 
E)37                  0      0      0   0----  0 0NONE      0       0                                 
F)38                  0      0      0   0----  0 0NONE      0       0                                 
G)39                  0      0      0   0----  0 0NONE      0       0                                 
H)40                  0      0      0   0----  0 0NONE      0       0                                 
I)41E self_RUN_2    135      2      1   3CODE  0 0NONE  16384       1                           ERASED
J)42E snap 48k_2    136      1    129   255 ?  0 0NONE  65535   65535                           ERASED
K)43E Screen$ _2    150      6     14   3CODE  0 0NONE  16384    6912                           ERASED
L)44E snap128k_2    153      6    129   255 ?  0 0NONE  65535   65535                           ERASED
M)45  Test.OUT.2    167      3      5   0BAS  1010OPEN      0    2135 |   2135                        
N)46  NOT exec_2    168      6      1   0BAS  1111EXEC      0       0                                 
O)47E MKdiskDDL2    169      5     64   0BAS   0 0NONE  24542   32428                           ERASED
P)48  DisK#15        10      6    223   0BAS  1010OPEN      0  113238 | 113238                        
Q)49  MKdiskDD3     176      7      5   0BAS   1 1BAS   23755    2482 |  2482 +     0                 
R)50  MKdiskDD4     177      2      5   0BAS   1 1BAS   23755    2482 |  2482 +     0  LINE 9999        
S)51  Snap1K        177      7     14   3CODE  7 7SCR$  16384    6912                                 
T)52  Snap1L        179      1     97   0BAS   5 5SN48      0       0                                 
   REGISTERS: reg_hl  26255  reg_de  26260  reg_bc      0  reg_if     68  reg_ix   979  reg_iy23610
              reg_hl2  4223  reg_de2 13979  reg_bc2  5665  reg_if2    65  reg_sp 65520
U)53                  0      0      0   0----  0 0NONE      0       0                                 
V)54                  0      0      0   0----  0 0NONE      0       0                                 
W)55                  0      0      0   0----  0 0NONE      0       0                                 
X)56                  0      0      0   0----  0 0NONE      0       0                                 
Y)57                  0      0      0   0----  0 0NONE      0       0                                 
Z)58                  0      0      0   0----  0 0NONE      0       0                                 
[)59                  0      0      0   0----  0 0NONE      0       0                                 
\)60                  0      0      0   0----  0 0NONE      0       0                                 
])61                  0      0      0   0----  0 0NONE      0       0                                 
^)62                  0      0      0   0----  0 0NONE      0       0                                 
_)63                  0      0      0   0----  0 0NONE      0       0                                 
`)64                  0      0      0   0----  0 0NONE      0       0                                 
a)65                  0      0      0   0----  0 0NONE      0       0                                 
b)66                  0      0      0   0----  0 0NONE      0       0                                 
c)67                  0      0      0   0----  0 0NONE      0       0                                 
d)68                  0      0      0   0----  0 0NONE      0       0                                 
e)69                  0      0      0   0----  0 0NONE      0       0                                 
f)70                  0      0      0   0----  0 0NONE      0       0                                 
g)71                  0      0      0   0----  0 0NONE      0       0                                 
h)72                  0      0      0   0----  0 0NONE      0       0                                 
i)73                  0      0      0   0----  0 0NONE      0       0                                 
j)74                  0      0      0   0----  0 0NONE      0       0                                 
k)75                  0      0      0   0----  0 0NONE      0       0                                 
l)76                  0      0      0   0----  0 0NONE      0       0                                 
m)77                  0      0      0   0----  0 0NONE      0       0                                 
n)78                  0      0      0   0----  0 0NONE      0       0                                 
o)79                  0      0      0   0----  0 0NONE      0       0                                 
p)80                  0      0      0   0----  0 0NONE      0       0                                 
80 files on disk.
1367 sectors used

!!!!!!!!!!!!!!""""""""""""""""""""""""""
""""""####$$$$$$$$$$$$$$%PPPPPPPP&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&PPPPPPPP'''''''''''''''
'''''''''''''''''''''''''''''''''''PPPPP
PPP((((((((PPPPPPPP))))))))))))))PPPPPPP
P*PPPPPPPP++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++PPPPPPPPPPPPPPPP,,,,,
,,,,,,,,,PPPPPPPPPPPPPPPP---------------
----------------------------------------
----------------------------------------
----------------------------------PPPPPP
PP.....PPPPPPPP/PPPPPPPP0000000000000000
0000000000000000000000000000000000000000
00000000PPPPPPPPPPPPPPP11111111111111111
1111111111111111111111111111111111111111
1111111PPPPPPPP2222222222222222222222222
2222222222222222222222222PPPPPPPP3333333
3PPPPPPPP44444444444444PPPPPPPPIPPPPPPPP
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
JJJJJJJJJPPPPPPPPPPPPPPPPKKKKKKKKKKKKKKP
PPPPPPPPPPPPPPPLLLLLLLLLLLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLLLLLLLLLLPPPPPPPPMMMMMPPP
PPPPPNPPPPPPPPOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPP
PPPPPPQQQQQRRRRRSSSSSSSSSSSSSSTTTTTTTTTT
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
TTTTTTTTTTTTTTTTTTTTT|||||||T|||T|||||||
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||







Plus D 0+1, 128+129
http://www.cborn.nl/zxfiles/mkdisk_+d_0037.mgt

Code: Select all

./mgtDD243 mkdisk+d_0037.mgt

This diskimage reader is for MGT DISCiPLE DISC formatted disks only , version: ./mgtDD243
reading the Directory only:
Number of files passed: 1
- 1- mkdisk+d_0037.mgt

Found: mkdisk+d_0037.mgt
filesize 819200 

.)No |Filename   |Track |Sector>Amount |Block |Type | LOAD@|blocklen|param1 |param2 |param3 |Erased|
!) 1  +SYS 2a         4      1     14   3CODE  4 4CODE   8192    6656                                 
") 2  CONFIG          5      5     32   0BAS   1 1BAS   23755   15975 | 15552 +   423  LINE 9100        
#) 3  CONFIG1_C       8      7      4   3CODE  4 4CODE  40300    1750                                 
$) 4  CONFIG2_C       9      1     14   3CODE  4 4CODE  42240    6656                                 
%) 5  CONFIG3_C      10      5      1   3CODE  4 4CODE  49000      60                                 
&) 6  MKdiskDD_1     11      4     64   0BAS   1 1BAS   24542   32233 |  2482 + 29751                 
') 7  data x  _1     18      6     50   1D.AR  2 2D.AR  31747   25003 | DATA X()                        
() 8  data z$ _1     24      4      8   2$.AR  3 3$.AR  27709    4035 | DATA Z$()                        
)) 9  Screen  _1     25     10     14   3CODE  4 4CODE  16384    6912                                 
*)10  self_RUN_1     28      2      1   3CODE  4 4CODE  16384       1 | autostart 16384                         
+)11  snap 48k_1     29      1    129   255 ?  5 5SN48  65535   65535                                 
   REGISTERS: reg_hl      0  reg_de      0  reg_bc      0  reg_if      0  reg_ix     0  reg_iy    0
              reg_hl2     0  reg_de2     0  reg_bc2     0  reg_if2     0  reg_sp     0
,)12  Screen$ _1     43      6     14   3CODE  7 7SCR$  16384    6912                                 
-)13  snap128k_1     46      6    129   255 ?  9 9SN28  65535   65535                                 
   REGISTERS: reg_hl      0  reg_de      0  reg_bc      0  reg_if      0  reg_ix     0  reg_iy    0
              reg_hl2     0  reg_de2     0  reg_bc2     0  reg_if2     0  reg_sp     0
.)14  Test.OUT.1     60      3      5   0BAS  1010OPEN      0    2135 |   2135                        
/)15  NOT exec_1     61      6      1   0BAS  1111EXEC      0       0                                 
0)16  MKdiskDDL1     62      5     64   0BAS   1 1BAS   24542   32389 |  2482 + 29907  LINE    1        
1)17E MKdiskDD_2     70      4     64   0BAS   0 0NONE  24542   32428                           ERASED
2)18E data x  _2     77      6     50   1D.AR  0 0NONE  31743   25003                           ERASED
3)19E data z$ _2    131      4      8   2$.AR  0 0NONE  27705    4035                           ERASED
4)20E Screen  _2    132     10     14   3CODE  0 0NONE  16384    6912                           ERASED
5)21                  0      0      0   0----  0 0NONE      0       0                                 
6)22                  0      0      0   0----  0 0NONE      0       0                                 
7)23                  0      0      0   0----  0 0NONE      0       0                                 
8)24                  0      0      0   0----  0 0NONE      0       0                                 
9)25                  0      0      0   0----  0 0NONE      0       0                                 
:)26                  0      0      0   0----  0 0NONE      0       0                                 
;)27                  0      0      0   0----  0 0NONE      0       0                                 
<)28                  0      0      0   0----  0 0NONE      0       0                                 
=)29                  0      0      0   0----  0 0NONE      0       0                                 
>)30                  0      0      0   0----  0 0NONE      0       0                                 
?)31                  0      0      0   0----  0 0NONE      0       0                                 
@)32                  0      0      0   0----  0 0NONE      0       0                                 
A)33                  0      0      0   0----  0 0NONE      0       0                                 
B)34                  0      0      0   0----  0 0NONE      0       0                                 
C)35                  0      0      0   0----  0 0NONE      0       0                                 
D)36                  0      0      0   0----  0 0NONE      0       0                                 
E)37                  0      0      0   0----  0 0NONE      0       0                                 
F)38                  0      0      0   0----  0 0NONE      0       0                                 
G)39                  0      0      0   0----  0 0NONE      0       0                                 
H)40                  0      0      0   0----  0 0NONE      0       0                                 
I)41E self_RUN_2    135      2      1   3CODE  0 0NONE  16384       1                           ERASED
J)42E snap 48k_2    136      1    129   255 ?  0 0NONE  65535   65535                           ERASED
K)43E Screen$ _2    150      6     14   3CODE  0 0NONE  16384    6912                           ERASED
L)44E snap128k_2    153      6    129   255 ?  0 0NONE  65535   65535                           ERASED
M)45  Test.OUT.2    167      3      5   0BAS  1010OPEN      0    2135 |   2135                        
N)46  NOT exec_2    168      6      1   0BAS  1111EXEC      0       0                                 
O)47E MKdiskDDL2    169      5     64   0BAS   0 0NONE  24542   32428                           ERASED
P)48  DisK#15        10      6    223   0BAS  1010OPEN      0  113238 | 113238                        
Q)49  MKdiskDD3     176      7      5   0BAS   1 1BAS   23755    2482 |  2482 +     0                 
R)50  MKdiskDD4     177      2      5   0BAS   1 1BAS   23755    2482 |  2482 +     0  LINE 9999        
S)51  Snap1K        177      7     14   3CODE  7 7SCR$  16384    6912                                 
T)52  Snap1L        179      1     97   0BAS   5 5SN48      0       0                                 
   REGISTERS: reg_hl  26255  reg_de  26260  reg_bc      0  reg_if     68  reg_ix   979  reg_iy23610
              reg_hl2  4223  reg_de2 13979  reg_bc2  5665  reg_if2    65  reg_sp 65520
U)53                  0      0      0   0----  0 0NONE      0       0                                 
V)54                  0      0      0   0----  0 0NONE      0       0                                 
W)55                  0      0      0   0----  0 0NONE      0       0                                 
X)56                  0      0      0   0----  0 0NONE      0       0                                 
Y)57                  0      0      0   0----  0 0NONE      0       0                                 
Z)58                  0      0      0   0----  0 0NONE      0       0                                 
[)59                  0      0      0   0----  0 0NONE      0       0                                 
\)60                  0      0      0   0----  0 0NONE      0       0                                 
])61                  0      0      0   0----  0 0NONE      0       0                                 
^)62                  0      0      0   0----  0 0NONE      0       0                                 
_)63                  0      0      0   0----  0 0NONE      0       0                                 
`)64                  0      0      0   0----  0 0NONE      0       0                                 
a)65                  0      0      0   0----  0 0NONE      0       0                                 
b)66                  0      0      0   0----  0 0NONE      0       0                                 
c)67                  0      0      0   0----  0 0NONE      0       0                                 
d)68                  0      0      0   0----  0 0NONE      0       0                                 
e)69                  0      0      0   0----  0 0NONE      0       0                                 
f)70                  0      0      0   0----  0 0NONE      0       0                                 
g)71                  0      0      0   0----  0 0NONE      0       0                                 
h)72                  0      0      0   0----  0 0NONE      0       0                                 
i)73                  0      0      0   0----  0 0NONE      0       0                                 
j)74                  0      0      0   0----  0 0NONE      0       0                                 
k)75                  0      0      0   0----  0 0NONE      0       0                                 
l)76                  0      0      0   0----  0 0NONE      0       0                                 
m)77                  0      0      0   0----  0 0NONE      0       0                                 
n)78                  0      0      0   0----  0 0NONE      0       0                                 
o)79                  0      0      0   0----  0 0NONE      0       0                                 
p)80                  0      0      0   0----  0 0NONE      0       0                                 
80 files on disk.
1367 sectors used

!!!!!!!!!!!!!!""""""""""""""""""""""""""
""""""####$$$$$$$$$$$$$$%PPPPPPPP&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&PPPPPPPP'''''''''''''''
'''''''''''''''''''''''''''''''''''PPPPP
PPP((((((((PPPPPPPP))))))))))))))PPPPPPP
P*PPPPPPPP++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++PPPPPPPPPPPPPPPP,,,,,
,,,,,,,,,PPPPPPPPPPPPPPPP---------------
----------------------------------------
----------------------------------------
----------------------------------PPPPPP
PP.....PPPPPPPP/PPPPPPPP0000000000000000
0000000000000000000000000000000000000000
00000000PPPPPPPPPPPPPPP11111111111111111
1111111111111111111111111111111111111111
1111111PPPPPPPP2222222222222222222222222
2222222222222222222222222PPPPPPPP3333333
3PPPPPPPP44444444444444PPPPPPPPIPPPPPPPP
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
JJJJJJJJJPPPPPPPPPPPPPPPPKKKKKKKKKKKKKKP
PPPPPPPPPPPPPPPLLLLLLLLLLLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL
LLLLLLLLLLLLLLLLLLLLLLLLPPPPPPPPMMMMMPPP
PPPPPNPPPPPPPPOOOOOOOOOOOOOOOOOOOOOOOOOO
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPP
PPPPPPQQQQQRRRRRSSSSSSSSSSSSSSTTTTTTTTTT
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
TTTTTTTTTTTTTTTTTTTTT|||||||T|||T|||||||
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||||

cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

that edit time is to short for me, i made a txt file from both type:

fuse emulator : DISCiPLE track 0-3
http://www.cborn.nl/zxfiles/MKdisk_DD_0037.IMG
http://www.cborn.nl/zxfiles/MKdisk_DD_0037.TXT

fuse emulator: PlusD track 0+1, 128+129
http://www.cborn.nl/zxfiles/mkdisk_+d_0037.mgt
http://www.cborn.nl/zxfiles/mkdisk_+d_0037.txt

test them both in mgt, mgtman and mgtDD please

in ABOVE post i did MIX UP THE TXT FILES, now they are in correct order

PS
my file counting is still not correct! hmmmmm
cborn
Well known member
Posts: 267
Joined: Tue Oct 06, 2020 7:45 pm

Re: link about Disciple and +D

Post by cborn »

For a realy correct check up actualy a REAL +D and a REAL DISCiPLE disk should be copied with a real 720k drive with eg the linux command 'dd' to duplicate those discs. (hmm disc or disk ?? another mystery)
now i see a little danger since 'dd' is very powerfull and the common abbreviation for DisipleDisk is DD agianst +D or PD
slim chance something will happen with it, yet its good to know.
Stefan
Member
Posts: 19
Joined: Fri Nov 29, 2013 10:21 pm

Re: link about Disciple and +D

Post by Stefan »

Just checked the plus d disassembly, it is also using tracks 0 to 3 of the first side for the directory.

unidos also uses tracks 0 to 3 of the first side for the directory.

If you open your mgt image with Fuse with +D connected and boot (G+DOS2A), CAT 1 shows:
files 1 - 16
files 25 - 26
files 28 - 32

This is identical to what SimCoupe shows and also to what SCADM shows and also mgtman will only read tracks 0-3 of the first side. If I view the contents of tracks 0-3 they contain the directory. Tracks 128-131 do not contain anything that looks like a directory.

If I open your img file which is supposedly a sys3b DISCiPLE disk, that has sectors that look like directory entries on side 2, but :
  1. where did you get this image?
  2. with which DOS was it created?
Since any exotic DOS can choose where to write what. MS-DOS / PC-DOS / FAT12 can use a sector / head / track scheme in which all sectors are addressed logically, so the sector after side 0, track 0, sector 10 (track 0 sector 10), is side 1, track 0, sector 1 (track 128 sector 1)
User avatar
dom
Well known member
Posts: 2072
Joined: Sun Jul 15, 2007 10:01 pm

Re: link about Disciple and +D

Post by dom »

From experience I agree with Stefan. I had a DISCiPLE (well still have, whether it works is another matter) and never had any issues reading +D discs and no one had any issues reading the discs that I wrote.

Likewise, the discs produced with DiSCDOS could be read without issues by both +D and DISCiPLE
nuc1e0n
Member
Posts: 49
Joined: Wed Jun 10, 2020 12:34 am

Re: link about Disciple and +D

Post by nuc1e0n »

Perhaps the order the tracks and sides are stored in is different comparing one file type to another? Even if the layout on the original disks is still the same?
Post Reply