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 RETDec 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.]