Here's correspondence from Bruce Jones for software fixes to his Dec 2003 SD System software. Check my SD Systems page to obtain the software mentioned here and related software, and any SD Systems hardware I may have available. If you have questions on these fixes, please identify the specific software AND the specific fix by date and title, but no guarantees for a technical response.
This page last updated Jan 6 2004.
To return to my S-100 home page, follow this link. Material on this page (c) copyright Herb Johnson 2003, except for material provided by Bruce Jones with his permission, for which he retains copyright. Herb Johnson
From: "Bruce Jones"Dec 28th 2003 #1To: Subject: Bug Fix Note Date: Fri, 26 Dec 2003 11:50:09 -0500 Two simple code fixes & one temporary user note: TYPE - USER ACTION FILE - V2FORMAT.COM When creating an image to save format options, the user is prompted for a file name. A full 8 characters must be typed in. If a name length less than 8 is used, the program loops back & asks for a name again: Temporary Fix- Type in 8 character names - You can use trailing spaces if needed, for a name that has less than 8 alpha-numeric characters *** avoid typing spaces between characters *** I'll fix the routine in the New Year. I never checked it back in 1980, it looks like. But I also recall, from looking at old disketes, that I used 8 character names, like FORM1024 and MPM2FORM, so by chance I missed this! TYPE - SOURCE CODE FIX FILE - V2XIOS60.ASM AND V2MPMLDR.ASM Testing under MP/M 1.1, which I had not done until Dec 23,uncovered the following: - # 1 FILE - V2XIOS60.ASM At some time in the past I had removed the MP/M 1.X System Data Page Adrress request. In the source go to the routine SYSNIT:, found in the block HSTBUF: Move down in the code until you reach the following comment: ; PLACE SYSTEM INFO INTO MEMORY BANKS LHLD SYSDTA ; MP/M II GETS IT RIGTH AWAY ======================================================== Snip out the code line shown above and paste in the following: ======================================================== ; PLACE SYSTEM INFO INTO MEMORY BANKS .IFE MPM1,[ MVI C,SYSDAT; REQUEST SYSTEM DATA ADDRESS. CALL XDOS SHLD SYSDTA ; SAVE ADDRESS LOCALLY ][ LHLD SYSDTA ; MP/M II GETS IT RIGTH AWAY ] - # 2 FILE - V2MPMLDR.ASM Move to the end of the file where you will find the sector & directory buffers, plus the allocation and checksum vectors. Add one pseudo-op to relocate them higher up as shown. This is needed to move this area out of the MP/M 1.X loader work area. Originally, when 512 byte sectors were used, this was not a problem, but 1024 byte sectors pushed the DIRBUF and following ALV0 etc. into the loader workspace, which DRI had set low, at 2000H. Later, in MP/M 2.X it was moved further up. This fix has been tested to work for both MP/M 1.X and 2.X. system loaders, so the one fixed loader will be OK. Add the followng line. . . .LOC 5000H ;<- gets buffers & vectors out ; of harms way to 5000H Code that follows is this . . . . ;**************************************************** ; SECTOR READ AND WRITE BUFFERS. ;**************************************************** HSTBUF: RDBUFF: WRBUFF: .BLKB 1024 ;**************************************************** ; CP/M WORK AREA. USED BY CP/M FOR DIRECTORY ; OPERATIONS, FLOPPY DISK ALLOCATION VECTORS, ; AND FLOPPY DISK CHANGED DISK CHECKSUMS. ;**************************************************** DIRBUF: .BLKB 128 ;DIRECTORY OPERATION BUFFER ALV0: .BLKB 108 ;ALLOCATION VECTOR CSV0: .BLKB 68 ;CHECKSUM VECTOR ALV1: .BLKB 1 CSV1: .BLKB 1 .END When making an MP/M Loader the SAVE value is still 29, since these buffers are just referances, thus the working loader image does not grow in size. ---that is all ---
Subject: RE: Format Program Fix
Date: Sun, 28 Dec 2003 11:25:54 -0500
Here is the fix for the V2FORMAT Save function
Look past SAVEIT: to the start of SAVSYS:
Remove the code from SAVSYS: to just before the start of
DMATCH: and insert the following:
SAVSYS:
GO0:
MVI C,PRINTS ;TELL USER WE WANT FILE NAME INFO
LXI D,MESS5
CALL BDOS
SINP:
LXI D,INBUFF ;POINT TO NAME BUFFER
MVI C,GBUF ;LOAD READ BUFFER FUNCTION
CALL BDOS
; TEST IF A NAME WAS ENTERED
LDA INBUFF+1
CPI 0
JZ SAVEIT
MOV B,A ;SAVE FOR COUNT
UPCASE:
LXI H,INBUFF+2 ;POINT TO NAME IN BUFFER
NXTCHR:
MOV A,M
CPI 20H ;SEE IF SPACE
JRZ FIXSP ;IF SO FIX IT
JMP CHEKBC
FIXSP:
MVI A,'-'
JMP NOUP
CHEKBC:
CPI '0' ;TEST INVALID CHARACTER
JRC SAVEIT ;WE DON'T WANT THIS NAME
CPI 40H
JRC NOUP
ANI 0DFH ;MAKE UPPER CASE
NOUP:
MOV M,A
INX H
DCR B
JRNZ NXTCHR
;************************************************************
;* PUT NAME IN FCB & SAVE THE IMAGE NEXT
;************************************************************
FILFCB:
LXI H,INBUFF+2 ;POINT TO SAVE NAME
LXI D,FCBG+1 ;POINT TO FCB NAME LOC
FILOK:
LXI B,8 ;ZERO BC
LDIR ;MOVE NAME INTO FCB
;**********************************************************
;* TEST TO SEE IF FILE EXISTS
;**********************************************************
- DMATCH: starts here
-=NOTE=-
You may want to add Upper Case conversion for
the console input routine as well.
It was common to run utilities with "CAP LOCK"
set, but this is likely to be ignored now, so
this will fix that problem.
You can add this fix to all source that uses
the CI: routine, such as
V2SASG.ASM
V2BOOT1.ASM TO V2BOOT4.ASM
V2SYSGEN.ASM
V2COPY.ASM
V2SASG5.ASM
CI: PUSH B
PUSH D
PUSH H
MVI C,1 ;CONSOLE INPUT
CALL BDOS ;GET THE CHARACTER
CPI 40H
JC OKCHAR
ANI 0DFH ;MAKE U.C.
OKCHAR:
POP H
POP D
POP B
RET
Dec 28 2003 #2
Subject: V2XIOS60.ASM NOTE Date: Sun, 28 Dec 2003 11:48:59 -0500 In the source for the V2XIOS60 the following note needs a corerection: is now: ;THE MPM1 VAR IS HERE SET FOR BANKED MP/M 2.X OPERATION ;NOTE: SAFE TO KEEP, EVEN IF MP/M 2.X IS RUN UNBANKED ;IF RUNNING MP/M 1.X, WITH UNBANKED BDOS, SET TO 0 <== WRONG!!!! MPM1 == 1 .IFE MPM1,[ BNKIOS == 1 ][ BNKIOS == 0 ] should be: ;THE MPM1 VAR IS HERE SET FOR BANKED MP/M 2.X OPERATION ;NOTE: SAFE TO KEEP, EVEN IF MP/M 2.X IS RUN UNBANKED ;IF RUNNING MP/M 1.X, ALWAYS SET TO 0 <=== CHANGE TO THIS MPM1 == 1 .IFE MPM1,[ BNKIOS == 1 ][ BNKIOS == 0 ]Jan 4 2004
On Mon, 5 Jan 2004 12:56:08 -0500, "Bruce Jones" wrote: ** Small Hardware Change Note for VF-II ** I just received [a Versafloppy II controller card]. This should be the last change note. I prepared the VF-II for operation, and it would not boot. I had to add a jumper to get it operational. Here is the change: On U15 solder a jumper wire from pin 11 to Ground. This is the RDY* (negative true) signal from pin 22 on the 8" drive connector. 5.25" and 3.5" drives don't have a connection for this, so, it will always make the drives look busy. In addition, I wrote the BIOS, XIOS and BOOT code to work with this always grounded. Since this line is a pull-up on the VF-II board, and since it is driven by an open-collector device from the floppy drive, shorting to ground is OK. I learned back in 1980 that setting this always true for 8" drives was not only OK, but necessary. Myself and some of the applications programmers noted that 'false' drive-not-ready errors would randomly pop up, depending upon the drive brand and model, and the seek pattern, if the RDY line was kept 'normal'. The commands used by the BIOS, XIOS and format software work just fine without the floppy drive controlling this line. I have now run the [new] VF-II in the following modes: - PIO only, no interrupts - DMA with interrupts I have run it so under CP/M and MP/M, just fine. I have also run the disk format software OK as well, so that covers all the functionality. One other thing is the strange cross-jumpering of E8-E9. I guess that was an SD Systems mod for their OS driver. I do straight-thru jumpers (E7-E8 & E9-E10) for FDC end-of-operation interrupt and DMA DRQ signals. But it would only be an issue, which I would explain, if anyone runs MP/M or the BIOS with a Z80-DMA and interrupts. The BIOS code for DMA use is not issued, since we decided to just make a BIOS that worked with the VF-II and most CPUs, but anyone looking at the [MP/M] XIOS would see the conditional assembly for it, however I see you have not posted that code. Best regards, Bruce Jones [note from Herb: XIOS code is available from my SD Systems distribution disk or by special request.]