{"id":92,"date":"2006-09-09T13:39:35","date_gmt":"2006-09-09T20:39:35","guid":{"rendered":"http:\/\/tlindner.macmess.org\/?page_id=92"},"modified":"2020-10-21T23:15:59","modified_gmt":"2020-10-21T23:15:59","slug":"diecom-floppy-disks","status":"publish","type":"page","link":"https:\/\/tlindner.macmess.org\/?page_id=92","title":{"rendered":"Diecom Floppy Disks"},"content":{"rendered":"<b>Imaging your Diecom copy-protected floppy disks<\/b>\n<p>We Color Computer users have a special place in our hearts for Diecom games. They were of the highest quality and very fun to play. But Dave Dies decided to use copy-protection on his program disks to thwart illegal distribution of his games.<\/p>\n<p>I am of the opinion that copy-protection on good, high quality software will increase sales. It will also alienate a few of your customers. It is a trade-off every publisher has to deal with.<\/p>\n<p>While hardware will cease to operate over time, software should last forever. Twenty years later copy-protection has an unintended consequence of causing software to become non functional along with it&#8217;s hardware.<\/p>\n<p>Best practices for software archival require us to move the data forward onto new media after a certain amount of time. But this is complicated by publisher&#8217;s use of copy-protection. Below I describe a method of &#8220;moving forward&#8221; your Diecom games.<\/p>\n<b>Understanding Diecom&#8217;s method of copy-protection<\/b>\n<p>Diecom&#8217;s disks have a two pronged attack for software thieves. Half the floppy disk is formatted with an unusual sector count and size. Secondly tack zero is formatted with no sectors at all, but a pattern is placed there to be inspected by the game loader.<\/p>\n<p>There is no easy way for Color Disk BASIC to query the disk to determine its physical geometry. So instead the authors of Color Disk BASIC invented a predetermined format. On a normal Color Computer floppy disk every track is formatted the same. Each track has eighteen 256 bytes sectors, numbered 1 to 18. If this standard is deviated from all the Color Disk BASIC utilities (and Disk BASIC itself) will have trouble getting information off the disk.<\/p>\n<p>Here is Diecom&#8217;s format<\/p>\n<table border=\"1\" cellpadding=\"2\"> <tr> <td> Track Number <\/td>\n<td> Sector Coun <\/td>\n<td> Sector Size <\/td>\n<td> Sector IDs <\/td>\n<td> Notes <\/td><\/tr> <tr> <td> 0 <\/td>\n<td> 0 <\/td>\n<td> N\/A <\/td>\n<td> N\/A <\/td>\n<td> Formatted with a pattern, not sectors <\/td><\/tr> <tr> <td> 1 <\/td>\n<td> 1 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 2 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 3 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 4 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 5 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 6 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 7 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 8 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 9 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 10 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 11 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 12 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 13 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 14 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 15 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 16 <\/td>\n<td> 2 <\/td>\n<td> 1024 bytes <\/td>\n<td> 10, 20 <\/td>\n<td> Sector ID field contains the track number zero <\/td><\/tr> <tr> <td> 17 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 18 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 19 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 20 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 21 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 22 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 23 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 24 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 25 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 26 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 27 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 28 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 29 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 30 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 31 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 32 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr> <tr> <td> 33 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td> <\/td><\/tr> <tr> <td> 34 <\/td>\n<td> 18 <\/td>\n<td> 256 bytes <\/td>\n<td> 1-18 <\/td>\n<td><\/td><\/tr><\/table>\n<p>Here is a visual representation of the layout:<\/p>\n<img decoding=\"async\" id=\"image92\" src=\"http:\/\/tlindner.macmess.org\/wp-content\/uploads\/2006\/09\/diecomdisklayout.png\" alt=\"diecomdisklayout.png\" \/>\n<p>The thin red lines represent the ID fields and the dark blue blocks represent the data fields. If you would like more information regarding how data is organized on a floppy disk see the wd179x data sheet.<\/p>\n<p>The Color Computer hardware is capable of reading this disk (as evidenced by the fact the game will play). But Color BASIC is of no help for copying this data. Or is it?<\/p>\n<p>Color Disk BASIC can be modified to help us read this data. So let&#8217;s plan our attack. Tracks 17-34 would normally be copyable by Disk BASIC, but since they are after the non standard tracks, Disk BASIC fails before even attempting them. We can use the DSKI$ command to read these sectors and the DSKO$ comand to write them back out. I then can modify Color Disk BASIC so DSKI$ will read the large 1024 bytes sectors without overwriting any low memory global variables.<\/p>\n<p>We can also modify Disk BASIC&#8217;s ROM DSKCON routine to read entire tracks.<\/p>\n<b>The Object<\/b>\n<p>The object of this exercise to to create a DMK disk image of the original Diecom program disks. These DMK disk images can be used to play the games in emulation on modern hardware. A Catweasel (in addition with Tim Mann&#8217;s excellent DMK2CW software) can be used to write these DMK images back to a real floppy.<\/p>\n<p>If there is enough interest I may be able to write a Color Computer program to write these images back to a real floppy. But this is non trivial.<\/p>\n<b>What you will need<\/b>\n<ul><li>Color Computer\n<\/li><li>Color Computer floppy disk drive\n<\/li><li>Three blank, formatted floppies\n<\/li><li>Your Diecom program disks\n<\/li><li>PC with a 5 1\/4 inch drive\n<\/li><li>David Keil&#8217;s CoCo 2 or CoCo 3 emulator *or* the MESS emulator\n<\/li><li>Your favorite Hex Editor\n<\/li><li>Your favorite PC based &#8216;C&#8217; compiler <\/li><\/ul>\n<b>What you will need to know<\/b>\n<ul><li>How to use your Color Computer floppy disk system.\n<\/li><li>How to image a disk using Jeff Vavasour&#8217;s RETRIEVE and DSKINI programs.\n<\/li><li>How to configure David Keil&#8217;s emulators or the MESS emulator.\n<\/li><li>How to compile a &#8216;C&#8217; program. <\/li><\/ul>\n<b>The Process<\/b>\n<p>I developed these programs and this process using a CoCo 3. But it should also work with a CoCo 1\/2 put into &#8220;All RAM Mode&#8221;. Also, these programs were written for Color Disk BASIC version 1.1. They will not work with version 1.0. If there is any demand I can modify them to work with version 1.0.<\/p>\n<p>On <a href=\"http:\/\/www.macmess.org\/downloads\/DiecomTransfer.zip\">this<\/a> disk image there are two programs: TRANSFER\/BAS and TRACK0\/BAS. The first step is to copy this disk image (using Jeff Vavsour&#8217;s DSKINI program) to a real floppy disk. Then run each of the programs. They both require a newly formatted floppy before they are started.<\/p>\n<p>TRANSFER\/BAS copies tracks 1-34 onto a normally formatted floppy disk. It handles the large 1024 byte sectors by splitting them into 256 bytes chunks and writing them onto four normal sectors. TRANSFER\/BAS ignores track zero.<\/p>\n<p>TRACK0\/BAS issues four &#8220;Track Read&#8221; commands to the CoCo&#8217;s Floppy Disk Controller on track zero. It then writes these four tracks to a normal disk. The track data is split into 256 byte chunks and written on to two tracks worth of sectors. Tracks 0 and 1 contain one copy, Tracks 2 and 3 contain another copy, etc.<\/p>\n<p>The reason I make four copies is because the track read command in the CoCo&#8217;s FDC is really a diagnostic tool and not a data retrieval tool. So we need to compare the tracks returned to ensure we have valid data.<\/p>\n<p>After running those two programs, the next step is to use Jeff Vavasour&#8217;s RETRIEVE program to make an image of the resulting floppies on your PC. Then you need to do some detective work.<\/p>\n<p>Open the disk image that was created by the TRACK0\/BAS program in a Hex Editor. You&#8217;ll need to compare the track zeros contained in that file. The first track starts at the beginning of the file and extends for 0x186A (6,250) bytes. The next track zero starts at 0x2400, then 0x4800 and the last one is at 0x6C00. If they all look similar then you can choose any one of them. If one is totally different then ignore it and pick one of the other three. If all four are different then you may want to rerun TRACK0\/BAS and try again.<\/p>\n<p>After you pick a track you&#8217;ll want to copy the data to its own file. Remember to copy at least 0x186A (6,250) bytes &#8212; no fewer. Now it is time to fix-up some of the data on the track zero you choose. Look over the data and find the sequence &#8216;A1 A1 FB&#8217;. The numbers before this sequence needs to be &#8217;00 00 00 00 00 00 00 A1&#8242;. So it reads: &#8217;00 00 00 00 00 00 00 A1 A1 A1 FB&#8217;. Do not add this data, it needs to replace existing bytes. Don&#8217;t make the file longer! Do this to any other &#8216;A1 A1 FB&#8217; sequences you find on the track. Save your changes and note the name of the file you chose for the track data.<\/p>\n<p>Now it is time to compile a &#8216;C&#8217; program that will take disk image and track zero you created and build a DMK image file. Download <a id=\"p93\" href=\"http:\/\/tlindner.macmess.org\/wp-content\/uploads\/2006\/09\/diecom2dmk.zip\">this<\/a>, and unzip it into it&#8217;s own directory. Here are the command I use to finish this process on my Mac OS X box:<\/p>\n<p><tt>$ cd path\/to\/diecom2dmk\n$ gcc -o diecom2dmk diecom2dmk.c libdmk.c\n$ .\/diecom2dmk diecom_game.dsk track0.data\nCreated: \"diecom_game.dmk\"<br \/>\n<\/tt><\/p>\n<p>The -o option sets the name of the executable. You can name the executable anything you like. The first argument to the &#8220;diecom2dmk&#8221; program is the disk image created by the TRANSFER\/BAS program. The second argument is the name of the 0x186A (6,250) byte file that conatins the track zero data you extracted from the image created by the TRACK0\/BAS program.<\/p>\n<p>The newly created file (&#8220;diecom_game.dmk&#8221; in the example above) will be playable in David Keil&#8217;s or the MESS emulator.<\/p>\n<b>End Notes<\/b>\n<p>MESS versions after 0.61b to 0.87 have a <a href=\"http:\/\/bugzilla.mess.org\/show_bug.cgi?id=606\">bug<\/a> that cause DMK disk images like these not to work. But the bug has been fixed and MESS version 0.88 (to be released) will work fine.<\/p>\n<b>BASIC Program Listings<\/b>\n<p>TRANSFER\/BAS:<\/p>\n<table border=\"1\"><tr><td><tt>\n10 CLEAR 5000, &amp;H5FFF;\n20 ATTR 3,2:WIDTH80\n30 DIM A$(18), B$(18)\n40 POKE &amp;HD540;, &amp;HFF; : REM ADJUST DSKI$\/DSKO$ TO ACCEPT SECTOR IDS GREATER THAN 18\n50 REM COPY PATCH TO UNUSED RAM\n60 FOR X=&amp;HDF59; TO &amp;HDF59;+9\n70 READ A$: POKE X, VAL(\"&amp;H;\"+A$)\n80 NEXT X\n90 DATA 4F, B7, FF, 49, B6, FF, 48, 7E, D8, 3C\n100 PRINT \"THIS PROGRAM WILL COPY THE NON STANDARD SECTORS ON DIECOM DISKS (TRACKS 1-16) AND THE STANDARD SECTORS (TRACKS 17-34) TO A NEW DISK.\"\n110 PRINT \"THE NEW DISK WILL BE A STANDARD RSDOS FLOPPY, AND WILL NOT BE A PLAYABLE DISK\"\n120 PRINT \"MORE PROCESSING WILL BE NEEDED TO TURN THE DISK INTO A PLAYABLE DISK\"\n130 PRINT : PRINT \"BEFORE RUNNING THIS PROGRAM HAVE TWO DISKS READY: THE DIECOM DISK AND A NEWLY FORMATTED BLANK FLOPPY\"\n140 PRINT : PRINT \"THIS PROGRAM REQUIRES 34 DISK SWAPS. PLEASE BE GENTIAL WHEN OPENING AND CLOSING THE FLOPPY DRIVE DOOR. IF THE HEAD MOVES FROM TRACK TO TRACK BETWEEN A DISK SWAP WE'LL NEVER KNOW\"\n150 PRINT:PRINT\"THIS PROGRAM IS COPYRIGHT BY TIM LINDNER (TLINDNER AT MACMESS.ORG) AND IS LICENSED UNDER THE GPL\":PRINT\n160 INPUT \"INSERT THE BLANK FLOPPY AND PRESS ENTER\"; A$\n170 FOR X = 1 TO 16\n180 PRINT \"POSITION HEAD ON TRACK\";X\n190 DSKI$ 0, X, 10, A$, B$\n200 Y=10\n210 D=1\n220 INPUT \"PLACE DIECOM DISK IN DRIVE 0\";A$\n230 PRINT \"TRACK\";X;\"READ SECTOR\";Y\n240 GOSUB 630 : REM INSTALL DSKI$ PATCHES\n250 DSKI$ 0, X, Y, A$, B$\n260 IF X=1 THEN 300 : REM SKIP SECTOR ID 20 ON TRACK 1\n270 POKE &amp;HD590;, &amp;H64; : REM ADVANCE BUFFER POINTER\n280 PRINT \"TRACK\";X;\"READ SECTOR\";Y+10\n290 DSKI$ 0, X, Y+10, A$, B$\n300 GOSUB 690 : REM REMOVE DSKI$ PATCHES\n310 INPUT \"INSERT BLANK DISK IN DRIVE ZERO\";A$\n320 FOR D = 0 TO 1\n330 IF X=1 AND D=1 THEN 410\n340 FOR C = 0 TO 3\n350 Z=&amp;H6000;+(&amp;H100;*((D*4)+C))\n360 A$=\"\":FOR A = Z TO Z+127: A$=A$+CHR$(PEEK(A)): NEXT A\n370 B$=\"\":FOR B = Z+128 TO Z+255: B$=B$+CHR$(PEEK(B)):NEXT B\n380 PRINT \"WRITING TRACK\";X;\"SECTOR\";Y+(D*10);\"PART\";C+1;\"TO BLANK DISK SECTOR\";(D*4)+C+1;\"FROM ADDRESS \";HEX$(Z)\n390 DSKO$ 0, X, (D*4)+C+1, A$, B$\n400 NEXT C\n410 NEXT D\n420 NEXT X\n430 REM ALL DONE WITH TRACKS 1-16\n440 FOR X = 17 TO 34\n450 INPUT \"INSERT DIECOM DISK\";A$\n460 PRINT \"READING ALL SECTORS ON TRACK\";X\n470 FOR Y = 1 TO 18\n480 DSKI$ 0, X, Y, A$(Y), B$(Y)\n490 PRINT Y;\n500 NEXT Y\n510 PRINT\n520 INPUT \"INSERT BLANK DISK\";C$\n530 PRINT \"WRITING ALL SECTORS ON TRACK\";X\n540 FOR Y = 1 TO 18\n550 DSKO$ 0, X, Y, A$(Y), B$(Y)\n560 PRINT Y;\n570 NEXT Y\n580 PRINT\n590 NEXT X\n600 PRINT \"BLANK DISK IS NO LONGER BLANK\"\n610 PRINT \"ALL DONE\"\n620 END\n630 REM INSTALL PATCHES\n640 POKE &amp;HD590;, &amp;H60;\n650 POKE &amp;HD839;, &amp;H7E;\n660 POKE &amp;HD83A;, &amp;HDF;\n670 POKE &amp;HD83B;, &amp;H59;\n680 RETURN\n690 REM REMOVE PATCHES\n700 POKE &amp;HD590;, &amp;H06;\n710 POKE &amp;HD839;, &amp;HB6;\n720 POKE &amp;HD83A;, &amp;HFF;\n730 POKE &amp;HD83B;, &amp;H48;\n740 RETURN\n<\/tt><\/td><\/tr><\/table>\n<p>TRACK0\/BAS:<\/p>\n<table border=\"1\"><tr><td><tt>\n10 CLEAR 500, &amp;H5FFF;\n20 DV=PEEK(&amp;HC006;)*256+PEEK(&amp;HC007;)\n30 DC=PEEK(&amp;HC004;)*256+PEEK(&amp;HC005;)\n40 PRINT \"THIS PROGRAM MODIFIES COLOR DISK BASIC TO ISSUE A READ TRACK COMMAND ON TRACK ZERO OF DRIVE ZERO\"\n50 PRINT \"IT THEN WRITES THAT TRACK TO A BLANK DISK ACROSS TWO TRACKS WORTH OF SECTORS\"\n60 PRINT \"IT DOES THIS FOUR TIMES. FILLING THE FIRST EIGHT TRACKS OF THE BLANK DISK WITH FOUR COPIES OF THE TRACK DATA FROM THE DIECOM DISK\"\n70 PRINT \"THIS PROGRAM IS COPYRIGHT TIM LINDNER (TLINDNER AT IX.NETCOM.COM) AND IS LICENSED UNDER THE GPL\"\n80 PRINT\n90 FOR A = 0 TO 7 STEP 2\n100 INPUT \"INSERT DIECOM PROGRAM DISK\";A$\n110 POKE DV,0 : REM SET COMMAND TO RESTORE TO TRACK ZERO\n120 POKE DV+1,0 : REM SET DRIVE TO DRIVE ZERO\n130 POKE DV+2, 0 : REM SET TRACK TO ZERO\n140 EXEC DC : REM GO DO COMMAND\n150 PRINT \"HEAD POSITIONED ON TRACK ZERO\"\n160 POKE DV, 2 : REM SET COMMAND TO READ SECTOR\n170 POKE DV+4,&amp;H60;\n180 POKE DV+5,&amp;H00; : REM SET BUFFER TO &amp;H6000;\n190 POKE &amp;HD7F9;, &amp;HE0; : REM CHANGE READ SECTOR COMMAND TO READ TRACK COMMAND\n200 POKE &amp;HD856;, &amp;HE0;\n210 POKE &amp;HD762;, 1 : REM SET RETRY COUNT TO ONE\n220 EXEC DC : REM GO DO COMMAND\n230 POKE &amp;HD7F9;, &amp;H80; : REM CHANGE READ SECTOR COMMAND BACK TO READ SECTOR\n240 POKE &amp;HD856;, &amp;H80;\n250 POKE &amp;HD762;, 5 : REM SET RETRY COUNT BACK TO 5\n260 INPUT \"INSERT BLANK DISK\";A$\n270 X=&amp;H6000;\n280 A$=\" \":B$=\" \"\n290 FOR C = 0 TO 1\n300 FOR B = 1 TO 18\n310 PRINT \"WRITING ADDRESS \";HEX$(X);\" TO TRACK\";A+C;\"SECTOR\";B\n320 D=VARPTR(A$):POKE D,128:POKE D+2, X\/256:POKE D+3,(&amp;H8000-X;) AND &amp;H00FF;:X=X+128\n330 D=VARPTR(B$):POKE D,128:POKE D+2, X\/256:POKE D+3,(&amp;H8000-X;) AND &amp;H00FF;:X=X+128\n340 DSKO$ 0, A+C, B, A$, B$\n350 NEXT B\n360 NEXT C\n370 NEXT A\n<\/tt><\/td><\/tr><\/table>\n<hr \/>\n<p>This article was written to help people preserve their old Diecom games. All of the software on this page is licensed under the GPL.<\/p>","protected":false},"excerpt":{"rendered":"<p>Imaging your Diecom copy-protected floppy disks We Color Computer users have a special place in our hearts for Diecom games. They were of the highest quality and very fun to play. But Dave Dies decided to use copy-protection on his &hellip; <a href=\"https:\/\/tlindner.macmess.org\/?page_id=92\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-92","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/pages\/92","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=92"}],"version-history":[{"count":3,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/pages\/92\/revisions"}],"predecessor-version":[{"id":685,"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=\/wp\/v2\/pages\/92\/revisions\/685"}],"wp:attachment":[{"href":"https:\/\/tlindner.macmess.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=92"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}