ImageInfo

ImageInfo is currently only a parser/validator for some emulator image files used by emulators of the Radio Shack TRS-80 model 1, 3, 4 line of computers.

The goal is one day to make it a complete image management tool, capable of directory listing, reading and writing files. When you have a large collection of images, it whould be nice to see what they contain by creating an archiving index.

There is no shortage is tools doing the same, see trs-80.com dsk-and-dmk-image-utilities. But it is fun to build this in c.

The image contains the source and a Windows executable, but development is done with Linux with NetBeans. Compilation on Windows XP with the MSYS environment.

Example output of version 0.7 (command was: imageInfo -f NewDos80v2_sddb.dmk -v2 -d):

JV1 check:
Size of 261136 bytes does not match a standard JV1 image
JV3 check:
Image does not match a JV3 profile
DMK check:
Write Enabled Image is a DMK image
Image has 40 tracks, 1 sides.
Track 0: 10 sectors, Single density.
Track 1: 10 sectors, Single density.
Boot sector looks like TRSDOS 2.x or similar DOS
GAT (# = used, _ = free):
 0 (FF)##  1 (FF)##  2 (FF)##  3 (FF)##  4 (FF)##
 5 (FF)##  6 (FF)##  7 (FF)##  8 (FF)##  9 (FF)##
10 (FF)## 11 (FF)## 12 (FF)## 13 (FF)## 14 (FF)##
15 (FF)## 16 (FF)## 17 (FF)## 18 (FF)## 19 (FF)##
20 (FF)## 21 (FF)## 22 (FF)## 23 (FF)## 24 (FF)##
25 (FF)## 26 (FF)## 27 (FF)## 28 (FF)## 29 (FF)##
30 (FF)## 31 (FF)## 32 (FF)## 33 (FF)## 34 (FF)##
35 (FF)## 36 (FF)## 37 (FF)## 38 (FC)__ 39 (FC)__
40 (FF)## 41 (FF)## 42 (FF)## 43 (FF)## 44 (FF)##
45 (FF)## 46 (FF)## 47 (FF)## 48 (FF)## 49 (FF)##
50 (FF)## 51 (FF)## 52 (FF)## 53 (FF)## 54 (FF)##
55 (FF)## 56 (FF)## 57 (FF)## 58 (FF)## 59 (FF)##
60 (FF)## 61 (FF)## 62 (FF)## 63 (FF)## 64 (FF)##
65 (FF)## 66 (FF)## 67 (FF)## 68 (FF)## 69 (FF)##
70 (FF)## 71 (FF)## 72 (FF)## 73 (FF)## 74 (FF)##
75 (FF)## 76 (FF)## 77 (FF)## 78 (FF)## 79 (FF)##

Free Disk space: 5120 bytes
Granule lockout table (# = locked out, _ = usable):
 0 (FC)__  1 (FC)__  2 (FC)__  3 (FC)__  4 (FC)__
 5 (FC)__  6 (FC)__  7 (FC)__  8 (FC)__  9 (FC)__
10 (FC)__ 11 (FC)__ 12 (FC)__ 13 (FC)__ 14 (FC)__
15 (FC)__ 16 (FC)__ 17 (FC)__ 18 (FC)__ 19 (FC)__
20 (FC)__ 21 (FC)__ 22 (FC)__ 23 (FC)__ 24 (FC)__
25 (FC)__ 26 (FC)__ 27 (FC)__ 28 (FC)__ 29 (FC)__
30 (FC)__ 31 (FC)__ 32 (FC)__ 33 (FC)__ 34 (FC)__
35 (FC)__ 36 (FC)__ 37 (FC)__ 38 (FC)__ 39 (FC)__
40 (FF)## 41 (FF)## 42 (FF)## 43 (FF)## 44 (FF)##
45 (FF)## 46 (FF)## 47 (FF)## 48 (FF)## 49 (FF)##
50 (FF)## 51 (FF)## 52 (FF)## 53 (FF)## 54 (FF)##
55 (FF)## 56 (FF)## 57 (FF)## 58 (FF)## 59 (FF)##
60 (FF)## 61 (FF)## 62 (FF)## 63 (FF)## 64 (FF)##
65 (FF)## 66 (FF)## 67 (FF)## 68 (FF)## 69 (FF)##
70 (FF)## 71 (FF)## 72 (FF)## 73 (FF)## 74 (FF)##
75 (FF)## 76 (FF)## 77 (FF)## 78 (FF)## 79 (FF)##

Disk label & date: MINNWDOS 04/24/87
HIT file hashes:
 2  3  4  5  6  7  8  9 
A2 C4 2E 2F 2C 2D 2A 2B 
28 29 26 27 27 A7 26 A6 
25 A5 24 A4 23 A3 24 A4 
00 00 00 00 D4 00 26 00 
F0 00 00 D3 00 00 00 1F 
00 29 00 3B 00 00 46 00 
00 00 2A 00 00 00 EE 00 
00 00 A1 00 32 00 89 00 
Ac          Ov Ef Rl  Filename/Ext Hash UpPw AcPw EOFs   G1    G2    G3    G4  FXDE
Sector 2:
.sui -----X 00 00 00  BOOT    /SYS (A2) 607F 1FB2 0005  0  0 
.sui ------ 20 00 00  SYS6    /SYS (28) 5678 1234 0023 20 38 
.sui ------ 20 00 00  SYS14   /SYS (25) 5678 1234 0005 12 32 
...i -----X 20 00 00  BASIC   /CMD (F0) 5678 9642 0012  2  3 
Sector 3:
.sui ---R-X 00 00 00  DIR     /SYS (C4) A71D F9E5 000A 17  1 
.sui ------ 20 00 00  SYS7    /SYS (29) 5678 1234 0005 13  0 
.sui ------ 20 00 00  SYS15   /SYS (A5) 5678 1234 0005 12  0 
.... KCNRWX 20 36 00  NWD80V2 /XLF (29) 9642 9642 0003  4  0 
Sector 4:
.sui ------ 20 00 00  SYS0    /SYS (2E) 5678 1234 000F  0 34 
.sui ------ 20 00 00  SYS8    /SYS (26) 5678 1234 0005 19  0 
.sui ------ 20 00 00  SYS16   /SYS (24) 5678 1234 0005 11  0 
.... KCNRWX 20 00 00  SPURGE1 /CMD (52) 9642 9642 0020  4  6 
.... KCNRWX 20 32 00  CHAINTST/JCL (2A) 9642 9642 0002  7 32 
.... KCNRWX 20 02 00  NWD80V2 /ILF (A1) 9642 9642 0003  4 32 
Sector 5:
.sui ------ 20 00 00  SYS1    /SYS (2F) 5678 1234 0005 16  0 
.sui ------ 20 00 00  SYS9    /SYS (27) 5678 1234 0005 19 32 
.sui ------ 20 00 00  SYS17   /SYS (A4) 5678 1234 0005 10 32 
.... KCNRWX 20 00 00  ASPOOL  /MAS (D3) 9642 9642 000A  5  1 
.... KCNRWX 20 3F 00  CHAINBLD/BAS (3B) 9642 9642 0014  8  3 
Sector 6:
.sui ------ 20 00 00  SYS2    /SYS (2C) 5678 1234 0005 16 32 
.sui ------ 20 00 00  SYS10   /SYS (27) 5678 1234 0005 15  0 
.sui ------ 20 00 00  SYS18   /SYS (23) 5678 1234 0005 14  0 
.... KCNRWX 20 A9 00  COMPARE /CMD (D4) 9642 9642 0007  6  1 
.... KCNRWX 20 00 00  LMOFFSET/CMD (32) 9642 9642 000A  7  0 10  0 
Sector 7:
.sui ------ 20 00 00  SYS3    /SYS (2D) 5678 1234 0005 18  0 
.sui ------ 20 00 00  SYS11   /SYS (A7) 5678 1234 0005 11 32 
.sui ------ 20 00 00  SYS19   /SYS (A3) 5678 1234 0005 13 32 
Sector 8:
.sui ------ 20 00 00  SYS4    /SYS (2A) 5678 1234 0005 18 32 
.sui ------ 20 00 00  SYS12   /SYS (26) 5678 1234 0005 24  0 
.sui ------ 20 00 00  SYS20   /SYS (24) 5678 1234 0005 15 32 
.... KCNRWX 20 00 00  HELP    /CMD (26) 9642 9642 0019 25  4 
.... KCNRWX 20 00 00  DISASSEM/CMD (46) 9642 9642 0019 27 36 
.... KCNRWX 20 00 00  DIRCHECK/CMD (EE) 9642 9642 000F 30  2 
.... KCNRWX 20 00 00  EDTASM  /CMD (89) 9642 9642 0023 31 38 
Sector 9:
.sui ------ 20 00 00  SYS5    /SYS (2B) 5678 1234 0005 20  0 
.sui ------ 20 00 00  SYS13   /SYS (A6) 5678 1234 0005 14 32 
.sui ------ 20 00 00  SYS21   /SYS (A4) 5678 1234 0005 24 32 
.... KCNRWX 20 00 00  SUPERZAP/CMD (1F) 9642 9642 001E 35  5 

License is 3-clause BSD.


Last updated: 2014-04-04

e-mail