cpmtools format of MM000.img dumped by KryoFlux

All questions regarding the dumping of media go here.
Post Reply
ldkraemer
Posts: 21
Joined: Sat Apr 20, 2013 3:54 am

cpmtools format of MM000.img dumped by KryoFlux

Post by ldkraemer » Fri Aug 08, 2014 1:18 pm

I've dumped several CP/M SS/DD 360K Floppy's as -i0 STREAM (.RAW) and -i4 MFM (.IMG) types. I am wanting to extract all the
files contained in the MM000.img file and view a document. The Floppy that I created the .RAW & .IMG files from was "TRSI" SS/DD
170K Sectors (18, 256) format from 22DISK.

What is the floppy format for cpmtools after the conversion to .IMG? If I use the format of "TRSI" in cpmtools I get garbage in .asm
and .doc files. (I've added the definitions I use in the cpmtools definition file and also the libdsk definition file)

larry@debian:~/z80pack/z80pack-1.23/cpmsim/disks/library/xfer$ cpmls -f trsi -T raw,trsi -d MM000.img
APNOTE08 DOC : ASM COM : CONFIG COM : CPM64 COM
DDT COM : DISK FDF : DUMP ASM : DUMP COM
DUP COM : ED COM : EXBIOS COM : KEYDEF COM
LOAD COM : MDIR COM : MDIR DOC : MDM730 COM
MDM730 DOC : MOVCPM COM : PIP COM : REPORT BUG
STAT COM : SUBMIT COM : SYSGEN COM : XSUB COM
User 10
Which appears to be correct, but the DUMP.ASM file contains some garbage
ions 1.42 & 1.44 (40T, DS, DD, 342K)
36,4,15,1,170,127,192,0,32,4,18,1,40,192
1,3,5,7,9,11,13,15,17,2,4,6,8,10,12,14,16,18
*Montezuma Micro CP/M version 1.32 (40T/256S, DS, DD, 342K, *)
36,4,15,1,170,127,192,0,32,4,18,1,40,194
1,3,5,7,9,11,13,15,17,2,EA (RESTORED AT FINIS)
LXI SP,STKTOP
; READ AND PRINT SUCCESSIVE BUFFERS
CALL SETUP ;SET UP INPUT FILE
CPI 255 ;255 IF FILE NOT PRESENT
JNZ OPENOK ;SKIP IF OPEN IS OK
;
; FILE NOT THERE, GIVE ERROR MESSAGE AND RETURN
LXI D,OPNMSG
CALL ERR
4,6,8,10,12,14,16,18
ontezuma Micro CP/M version 1.32 (40T/256S, DS, DD, 342K, *)
36,4,15,1,170,127,192,0,32,4,18,1,40,194
1,3,5,7,9,11,13,15,17,2,JMP FINIS ;TO RETURN
;
OPENOK: ;OPEN OPERATION OK, SET BUFFER INDEX TO END
MVI A,80H
STA IBP ;SET BUFFER POINTER TO 80H
; HL CONTAINS NEXT ADDRESS TO PRINT
LXI H,0 ;START WITH 0000
;
GLOOP:
PUSH H ;SAVE LINE POSITION
CALL GNB
POP H ;RECALLåååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå LINE POSITION
JC FINIS ;CARRY SET BY GNB IF END FILE
MOV B,A
; PRINT HEX VALUES
; CHECK FOR LINE FOLD
MOV A,L
ANI 0FH ;CHECK LOW 4 BITS
JNZ NONUM
; PRINT LINE NUMBER
CALL CRLF
;
; CHECK FOR BREAK KEY
CALL BREAK
; ACCUM LSB = 1 IF CHARAååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååCTER READY
RRC ;INTO CARRY
JC FINIS ;DON'T PRINT ANY MORE
;
MOV A,H
CALL PHEX
MOV A,L
CALL PHEX
NONUM:
INX H ;TO NEXT LINE NUMBER
MVI A,' '
CALL PCHAR
MOV A,B
CALL PHEX
JMP GLOOP
;
FINIS:
; END OF DUMP, RETURN TO CCP
; (NOTE THAT A JMP TO 0000H REBOOTS)
CALL CRLF
LHLD OLDSP
SPHL
; STACK POINTER CONTAINS CCP'S STACK LOCATION
RET ;TO THE CCP
;
;
; SUBROUTINES
;
BREAK: ;CHECK BREAK KEY (ACTUALLY ANY KEY WILL DO)
PUSH H! PUSH D! PUSH B; ENVIRONMENT SAVED
MVI C,BååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååRKF
CALL BDOS
POP B! POP D! POP H; ENVIRONMENT RESTORED
RET
;
PCHAR: ;PRINT A CHARACTER
PUSH H! PUSH D! PUSH B; SAVED
MVI C,TYPEF
MOV E,A
CALL BDOS
POP B! POP D! POP H; RESTORED
RET
;
CRLF:
MVI A,CR
CALL PCHAR
MVI A,LF
CALL PCååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååHAR
RET
;
;
PNIB: ;PRINT NIBBLE IN REG A
ANI 0FH ;LOW 4 BITS
CPI 10
JNC P10
; LESS THAN OR EQUAL TO 9
ADI '0'
JMP PRN
;
; GREATER OR EQUAL TO 10
P10: ADI 'A' - 10
PRN: CALL PCHAR
RET
;
PHEX: ;PRINT HEX CHAR IN REG A
PUSH PSW
RRCåååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå
RRC
RRC
RRC
CALL PNIB ;PRINT NIBBLE
POP PSW
CALL PNIB
RET
;
ERR: ;PRINT ERROR MESSAGE
; D,E ADDRESSES MESSAGE ENDING WITH "$"
MVI C,PRINTF ;PRINT BUFFER FUNCTION
CALL BDOS
RET
;
;
GNB: ;GET NEXT BYTE
LDA IBP
CPI 80H
JNZ G0
åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå
; READ ANOTHER BUFFER
;
;
CALL DISKR
ORA A ;ZERO VALUE IF READ OK
JZ G0 ;FOR ANOTHER BYTE
; END OF DATA, RETURN WITH CARRY SET FOR EOF
STC
RET
;
G0: ;READ THE BYTE AT BUFF+REG A
MOV E,A ;LS BYTE OF BUFFER INDEX
MVI D,0 ;DOUBLE PRECISION
Thanks.

Larry

ldkraemer
Posts: 21
Joined: Sat Apr 20, 2013 3:54 am

Re: cpmtools format of MM000.img dumped by KryoFlux

Post by ldkraemer » Fri Aug 08, 2014 4:02 pm

I finally figured it out. I just had to set the skew to 2.

Thanks.

Larry

Post Reply