TABLE OF CONTENTS CHAPTER 1 INTRODUCTION 1.1 PATCHING SOURCE CODE ......................... 1-1 1.2 PATCHING BINARY CODE ......................... 1-1 CHAPTER 2 ASSEMBLER 2.1 CALLS ........................................ 2-1 2.1.1 TIMER ................................. 2-1 CHAPTER 3 BASIC 3.1 ALPHA ACCOUNTING SUBROUTINES ................. 3-1 3.2 INDEXED SEQUENTIAL FILES ..................... 3-1 3.2.1 ISAM.SYS .............................. 3-1 3.2.1.1 ALPHA PATCH #1 ................. 3-1 3.2.2 ISMBLD ................................ 3-2 3.2.2.1 ALPHA PATCH #1 ................. 3-2 3.2.3 ISMDMP.LIT ............................ 3-3 3.2.3.1 ALPHA PATCH #1 ................. 3-3 3.3 RUN .......................................... 3-3 3.3.1 ALPHA PATCH #2 ........................ 3-3 3.3.2 ULTRA PATCH #3 ........................ 3-4 CHAPTER 4 DRIVERS 4.1 AM100L.IDV (ULTRA PATCHES FOR M68) ........... 4-1 4.2 AM6X.TDV ..................................... 4-3 4.2.1 ALPHA PATCH #1 ........................ 4-3 4.3 LPR.DVR ...................................... 4-5 4.3.1 ALPHA PATCH #1 ........................ 4-5 CHAPTER 5 EDITORS 5.1 TXTFMT ....................................... 5-1 5.1.1 BAR ................................... 5-1 5.1.2 BOLD .................................. 5-1 5.1.3 CHAPTER ............................... 5-1 5.1.4 FOOTER ................................ 5-2 5.1.5 HEADER ................................ 5-2 5.1.6 INDEX ................................. 5-2 5.1.7 NUMBERING ............................. 5-2 5.1.8 NXB ................................... 5-2 5.1.9 PARAGRAPH ............................. 5-3 5.1.10 TABLE OF CONTENTS .................... 5-3 5.1.11 TITLE ................................ 5-3 5.1.12 UNDERSCORE ........................... 5-3 5.1.13 ULTRA PATCH #1 ....................... 5-3 5.2 VUE .......................................... 5-10 5.2.1 HELP .................................. 5-10 5.2.2 INSERT ................................ 5-10 5.2.3 PUSH / POP ............................ 5-10 5.2.4 WILDCARD .............................. 5-10 CHAPTER 6 UTILITIES (GENERAL) 6.1 DIRSEQ.LIT ................................... 6-1 6.1.1 ULTRA PATCH #1 ........................ 6-1 6.2 FIX.LIT ...................................... 6-2 6.2.1 BUG #1 ................................ 6-2 6.2.2 BUG #2 ................................ 6-3 6.2.3 ...................................... 6-3 ULTRASCIENCE / ALPHA MICRO 1.2 BUG LIST ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) Ultrascience is assisting AMUS and Alpha Micro in an effort to identify, organize, and stamp out bugs in the Alpha Micro system. When time and resources permit, we will develop patches for the bugs and provide them to the AMUS network. All other users are encouraged to do the same. When source code is available, the patches can be made directly to the source and the source reassembled. To install a binary patch, create and log into a patch account. 10,0 is recommended. Copy the program (.LIT) that is to be patched into the account, and copy or create the patch .M68 in the account as well. Next run "PATCH" as follows: PATCH program.LIT WITH patch.M68 The patch.M68 file will be automatically assembled. When the patch is complete the hash total of the resulting patched.LIT will be checked. If the hash total does not match, there was an error; recheck the hash total of the unpatched.LIT and the patch.M68. If the new hash total is correct, the upatched.LIT should be renamed to upatched.OLD, and the new patched.LIT should be copied into the same account and erased from 10,0. If any other patches become available from Alpha Micro, these patches must be made on unpatched.OLD, unless Alpha Micro has accepted the patches described ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) in these pages. Ultrascience will make an effort to keep an updated version its patches on the AMUS network in the event that any of the unpatched programs are Modified by Alpha Micro without including the patch described here. ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) The TIMER call can cause other parts of the operating system that use the timer stacks to get into trouble. The system may slow to the point where response time seems infinitely long (the system will appear to lock). This call should be used with great caution until more is known about its bugs. ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) OLD HASH 265-412-760-065 / NEW HASH 554-151-435-725 ISAM cannot handle more than 32K blocks of data. ; Patch #1 to SYS:ISAM.SYS Version 1.1(116) (AMOS/L Version 1.2) ; ; Copyright (C) 1984 - Alpha Microsystems COPY PATCH OHASH 265,412,760,065 NHASH 554,151,435,725 OVER 1,1,0,116.,0 NVER 1,1,0,116.,1 .= 10070 CALL AAA NOP ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) .= 10536 CALL AAA NOP .= 11534 AAA: AND # H0FFFF,D0 SWAP D1 AND # H0FFFF,D1 RTN END OLD HASH 353-602-664-017 / NEW HASH 420-217-367-750 ISMBLD cannot handle more than 32K blocks of data. ; Patch #1 to SYS:ISMBLD.LIT Version 1.1(116) (AMOS/L Version 1.2) ; ; Copyright (C) 1984 - Alpha Microsystems COPY PATCH OHASH 353,602,664,017 NHASH 420,217,367,750 OVER 1,1,0,116.,0 NVER 1,1,0,116.,1 .= 14662 CALL AAA NOP .= 15330 CALL AAA NOP .= 20166 AAA: AND # H0FFFF,D0 SWAP D1 AND # H0FFFF,D1 RTN END ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) OLD HASH 152-264-560-051 / NEW HASH 656-115-276-262 ISMDMP cannot handle more than 32K blocks of data. ; Patch #1 to SYS:ISMDMP.LIT Version 1.1(116) (AMOS/L Version 1.2) ; ; Copyright (C) 1984 - Alpha Microsystems COPY PATCH OHASH 152,264,560,051 NHASH 6556,115,276,262 OVER 1,1,0,116.,0 NVER 1,1,0,116.,1 .=14144 CALL AAA NOP .=14612 CALL AAA NOP .= 15610 AAA: AND # H0FFFF,D0 SWAP D1 AND # H0FFFF,D1 RTN END OLD HASH 070-110-541-455 / NEW HASH 340-054-425-537 This patch corrects a problem while running BASIC using SIN, and field over-flow problems. ; Patch #2 to SYS:RUN.LIT Version 1.2(176)-1 (AMOSL/L Version 1.2) ; ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) ; Copyright (C) 1984 - Alpha Microsystems BASE: COPY PATCH OVER 1,2,0,176.,1 NVER 1,2,0,176.,2 OHASH 070,110,541,455 NHASH 340,054,425,537 PAREA = H38E6 P0 = 0 P1 = 6 .= H364C JMP BASE+PAREA+P0 .= H3872 JMP BASE+PAREA+P1 .=PAREA+P0 REST A0,A4,D4 BR PAREA+P1+2 .=PAREA+P1 POP A4 CMPW @A5,#100000 BNE 10$ CLRW @A5 10$: RTN END OLD HASH 340-054-425-537 / NEW HASH 174-376-146-250 RUN03.M68 is a patch which will allow BASIC programs to input data from the keyboard even when running under control of a command file. Normally, a program running in a command file takes all input from the command file itself until the command is exhausted or the program ends. With RUN03 installed an optional switch will be active. Usage: RUN/n basic program Where: `n' is the number of lines to be entered from the command file. After `n' lines have been read from the command file or the command file has been exhausted, all input will be read from the keyboard. Comments: If the switch is not used or the program is not run from a command file, RUN will operate as before. The switch default is ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) "0", which prevents any command file input to basic. Note that this patch eliminates the need for using :K to force keyboard input in a BASIC program so it is recommended that :K not be used in conjunction with the run switch. Using both the :K and the run switch will cause the command program to wait for keyboard entry when the basic program exits. By using this patch in conjunction with CHOICE*, it is easy to develop interactive, menu driven command files. * For more information on CHOICE refer to CHOICE.LST (available on the AMUS network). ; Patch #3 to SYS:RUN.LIT Ver. 1.2(176)-2 (AMOS/L Ver. 1.2) ; ; HASH TOTALS MUST MATCH: ; INPUT RUN.LIT - 340-054-425-537 ; PATCHED RUN.LIT - 174-376-146-250 ; ; Developed by Ultrascience (REV. 5.01) COPY PATCH OHASH 340,054,425,537 NHASH 174,376,146,250 OVER 1,2,0,176.,2 NVER 1,2,0,176.,3 .=34 LWORD 1054 .=140 CALL 10$ .=11470 CALL 40$ .=34370 10$: BYP CLRW 1052(A0) CMPB (A2)+,#'/ BNE 20$ GTDEC MOVW D1,1052(A0) BR 30$ 20$: SETW 1052(A0) SUB #1,A2 30$: MOV A1,1016(A0) RTN 40$: TSTW 1052(A0) BEQ 50$ DECW 1052(A0) ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) BR 60$ 50$: ORW #C.KIN,JOBCMS(A1) 60$: ANDW #-4,@A3 RTN END ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) The AM100L and AM1000 have suffered lock-up problems on the 68000 board ports which results in locking all but one port for output. Entering a character through the one port that is not locked releases the system. The AM100L.M68 can be found in 10,2 and it is easily fixed. NOTE: Revison "A" or "B" AM100L's, also require an update. Replace U42 with an SN74S373. This hardware fix is also necessary in order to prevent random lock-ups. Two patches are needed and both have to do with clearing the status register of the 6850. The interrupt status must be cleared in the false interrupt routine and during the output routine. The two patches are marked with comments. Note: A user advised us that making these changes for his AM1000 system caused serious character dropping problems. This will be checked with other AM1000 users. AM100L.IDV ........ ........ ........ ;INFI False Interrupt Routine ; ;Come here when interrupt was caused by neither transmitter or receiver. ;The interrupt is either DCD change or spurious. In either case, we just ;ignore the interrupt. ; ;Inputs: D1 6850 Status Register ; A4 I/O register base address ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) ; All registers SAVEd on stack ; ;Outputs: None ; ;Modifies: Restores registers ; INFI: DEBUG F3 ; [01/05/84] Lock-up fix: the data register must be read in order ; to clear out the 6850's interrupt. MOVB P.RCV(A4),D1 ; clear out the 6850 interrupt REST A0-A6,D0-D7 ; restore registers RTE ; return PAGE ;OUTPR Transmitter Interrupt Routine ; ;Come here on a transmitter interrupt. If another character is available ;for output, grab it and send it to the 6850. ;Otherwise, clear the OIP flag and dismiss interrupt. ; ;Inputs: D1 6850 Status Register ; A4 I/O register base address ; A5 Terminal definition index ; All registers SAVEd on the stack ; ;Outputs: Only to AM-100/L ; ;Modifies: Registers restored ; OUTPR: DEBUG F4 TRMOCP ; get next output character from TRMSER DEBUG F5 ; [02/10/84] Lock-up fix: the data register must be read in order ; to clear out the 6850's interrupt. MOVB P.RCV(A4),D7 ; clear out the 6850 interrupt TST D1 ; data available? BPL OPRG ; yes - ANDW # C,@A5 ; no - clear the OIP flag MOVB #CM$16!CM$1STP!CM$TXD!CM$RCE,D7 CMPW T.BAU(A5),#2 ; is terminal set for 110 baud? BNE 10$ ; no - MOVB #CM$16!CM$2STP!CM$TXD!CM$RCE,D7 10$: MOVB D7,@A4 ; set mode bits OPRD: BR INTX ; return ....... ....... ....... ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) Both of these patches are necessary and both patches are effective. In the output routine the driver clears the IRQ (interrupt requested) flag by writing to the output register on the 6850 chip. However, if TRMSER does not have a character for output, the driver bypasses the section where the output register is written, thereby leaving the IRQ flag set. The second patch resets the IRQ flag whether TRMSER has an output character or not by reading the 6850 data register before TRMSER is called. OLD HASH 071-454-527-473 / NEW HASH 275-700-456-353 This patch creates a driver for support of enhanced capabilities for the AM-62 (80 column) terminal. ; Patch #1 to AM6X.TDV Program: AM6X.TDV (AMOS/L Version 1.2) ; ; Copyright (C) 1984 - Alpha Microsystems COPY PATCH OHASH 071,454,527,473 NHASH 275,700,456,353 .=637 10$: .=1122 20$: .=1134 30$: .=2162 40$: .=0 WORD 6000 .=20 LWORD 3377764 .=476 MOV #3,D3 .=520 MOV #44.,D3 NOP NOP ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) LEA A6,10$ .=536 NOP NOP NOP .=544 MOV #6,D3 NOP NOP .=612 NOP NOP NOP NOP .=634 BYTE 33,'x,'0 BYTE 33,'G,'2,0 ASCII /System booting - please wait . . ./ BYTE 33,'G,'0,0 BYTE 15,12 .=713 BYTE 177 BYTE 33,43 BYTE 33,'z,'! .=764 CALL 40$ .=1062 CMPB D1,#82. .=1070 CMPB D1,#83. BEQ 30$ .=1120 BYTE 24,0 SLEEP #5000. RTN TTYI BYTE 30,0 JMP 20$ .=2162 MOVB 17(A2),D6 MOVW D6,6(A1) RTN ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) END OLD HASH 652-005-245-450 / NEW HASH 371-624-050-054 This patch corrects a problem which caused registers D2 and D3 to be trashed in module LPCH0: by the operating system when used by BASIC. The patch must be made directly in the LPR.M68 located on DSK0:[10,2]. VUE LPR.M68 and go into VUE command mode. Search for 'LPCH0:'. Replace all occurences of 'D2' with 'D6' and all occurences of 'D3' with 'D7' until reaching label 'LPXIT'. Reassemble the driver by executing 'G' in VUE command mode. After the driver is assembled check the hash total of LPR.DVR. It should be 371-624-050-054. If the hash total is correct, copy the LPR.DVR into DSK0:[1,6]. ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) When BAR is enabled, header levels of 3 or higher are indented an extra two spaces and overshoot the right hand margin by two spaces. The /BOLD command set the high bit for whatever character follows up to the next /NO BOLD command. The high bit can be checked by the printer driver and converted to a method that can be handled by the printer. However, many printers do not have the "bold" feature. The /HEADER BOLD command properly sets the headers to bold, but the /TITLE commands then use the bold header title and a normal print for "page" and the page number. There is no command for setting chapter, appendix, and index titles to bold. The /CHAPTER command centers "CHAPTER XX" one space too far to the left for convenient centering. Setting a chapter number and title to be printed in bold will result in a bold top of page title. ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) This is not desirable. FOOTER should take the margin into account, so that NXB's do not have to be used to keep an even left hand margin. Three blank lines are supposed to be inserted before each new header. If the Header begins on line 4 of a page which does not use a TITLE or page numbering, TXTFMT acts as though the Header is at the top of the page and does not insert the blank lines. The index uses the title from the last chapter or header for its top-of-page title. Also, the "INDEX" title is in lower case and there is no provision for printing "INDEX" bold. Page numbering is not properly justified to the right unless the LINESIZE is designated prior to MARGIN; however, MARGIN must be specified first in order that MOST centering work properly. NUMBER BOTTOM does not take the MARGIN into account whether it is set first or not! The NXB will break at the end of a line, so that using an NXB to prevent the separation of "Mr." and "Jones" will not work at the end of a line. ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) If selected, blank lines are supposed to be inserted before each new paragraph. If the paragraph begins on line 4 of a page which does not use a TITLE or page numbering, TXTFMT acts as though the paragraph is at the top of the page and does not insert the blank lines. The table of contents feature does not properly justify the printing of chapter numbers with one and two digits. The title is lower case and there is no feature for obtaining a bold title. TITLE should take that margin into account, so that NXB's would not have to be used to keep an even right hand margin. Also, when TITLE assumes the chapter title, it is not possible to obtain an even right hand margin. CENTERED TITLE attempts to correct for a ragged right hand margin by subtracting 3 positions for the left of the title; however, the correction does not work reliably and other centering functions such as CENTER, CHAPTER, etc. are not corrected, so the total effect is uneven. Either the adjustment should work uniformly or it should not be used. TITLE also mixes bold and non-bold type in a non-uniform fashion, so the title might be bold and "Page 2-3" non-bold. UNDERSCORE should not underline normal blank spaces and should underline NXB's. This change makes the output look much better and solves a problem with right justification. Underscore flags are counted as characters in calculating right justification. OLD HASH 203-474-611-473 / NEW HASH 717-611-132-076 This patch fixes all of the above bugs with the exception of those related to BAR. Refer to TXTFMT.HLV for information on using ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) the patched TXTFMT program. COPY PATCH OVER 1,0,0,107.,0 NVER 1,0,0,107.,3 OHASH 203,474,611,473 NHASH 767,745,562,127 .=1360 WORD -1 .=2324 CALL 320$ .=2634 2634$: .=3314 CALL 20$ .=5236 JMP 100$ .=5246 5246$: .=5324 5324$: .=6264 6264$: .=6756 1$: .=7116 7116$: .=10572 WORD 203 .=10700 10700$: .=11304 JMP 110$ .=11316 11316$: .=11410 11410$: .=11414 11414$: CALL 150$ .=11614 CALL 10$ .=12114 NOP .=12136 CALL 206$ .=12272 NOP .=12454 CALL 10$ .=12550 ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) CALL 160$ .=13150 CALL 50$ .=13204 CALL 250$ .=13224 CALL 260$ .=13240 NOP NOP CALL 40$ .=14442 CALL 230$ NOP .=14612 CALL 240$ BR 14650$ .=14650 14650$: .=16144 16144$: .=16442 ASCII /TABLE OF CONTENTS/ .=17006 DEC D0 .=20200 WORD 130$-. .=20212 20212$: .=21216 WORD 310$-. .=21244 21244$: .=22332 WORD 140$-. .=22342 22342$: .=33042 10$: LEA A6,70$ MOVW @A6,6406(A0) RTN 20$: MOVW D1,6406(A0) LEA A6,70$ MOVW D1,@A6 RTN 40$: PUSHW 6430(A0) ANDW #-401,6430(A0) CALL 1$ POPW 6430(A0) RTN ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) 50$: CMPW D1,#9. BHI 60$ MOVB #40,(A2)+ 60$: MOVW #14000,D6 RTN 70$: WORD 0 75$: WORD 0 76$: WORD 0 77$: WORD 0 100$: CMPW 6440(A0),#3 JNE 5246$ MOV 6430(A0),D7 AND #61,D7 BTST #5,D7 JNE 5324$ CMP D7,#1 JEQ 5324$ JMP 5246$ 110$: CMP D1,#201 BNE 111$ MOV #40,D1 111$: CMP D1,#40 JEQ 11410$ CMP D1,#240 JEQ 11410$ CMP D1,#203 JEQ 11316$ SAVE D0,D1,D2 BTST #7,D1 BEQ 115$ LEA A6,75$ MOVW @A6,D0 BEQ 115$ 112$: CALL 11414$ MOV D1,D2 MOV #10,D1 CALL 11414$ MOV D2,D1 SOBW D0,112$ 115$: REST D0,D1,D2 JMP 11316$ 120$: BYP PUSH D1 GTDEC LEA A6,75$ MOVW D1,@A6 POP D1 RTN ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) WORD 7116$-. 130$: WORD 135$-. ASCII /BOLDSET/ BYTE 0 EVEN WORD 120$-. 135$: WORD 20212$-. ASCII /BOLDSET/ BYTE 0 EVEN WORD 120$-. WORD 16144$-. 140$: WORD 145$-. ASCII /TOP%BOLD/ BYTE 0 EVEN WORD 200$-. 145$: WORD 146$-. ASCII /TOP%NO%BOLD/ BYTE 0 EVEN WORD 205$-. 146$: WORD 22342$-. ASCII /TOP%NO%BOLD/ BYTE 0 EVEN WORD 205$-. 150$: CMPB D1,#203 BNE 155$ MOVB #40,D1 155$: LEA A6,150(A0) RTN 157$: WORD 0 160$: PUSH A3 LEA A3,157$ BR 207$ 200$: LEA A6,76$ SETW @A6 RTN 205$: LEA A6,76$ CLRW @A6 RTN 206$: PUSH A3 LEA A3,76$ 207$: CALL 210$ POP A3 CALL 224$ RTN ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) 210$: SAVE A2,D1 212$: MOVB @A2,D1 BEQ 220$ CMPB D1,#240 BLOS 214$ ANDB #177,D1 214$: MOVB D1,(A2)+ BR 212$ 220$: REST A2,D1 PUSH A2 TSTW @A3 BEQ 222$ 221$: TSTB @A2 BEQ 222$ CMPB (A2)+,#40 BLO 221$ ORB #200,-1(A2) BR 221$ 222$: POP A2 RTN 224$: PUSHW 6430(A0) ANDW # C400,6430(A0) CALL 10700$ POPW 6430(A0) RTN 230$: SAVE A2,D0 LEA A2,4112(A0) MOVW 6516(A0),D0 BEQ 237$ 235$: CLRB (A2)+ SOBW D0,235$ 237$: REST A2,D0 AND #1,D7 RTN 240$: MOVB #'I,(A2)+ MOVB #'N,(A2)+ MOVB #'D,(A2)+ MOVB #'E,(A2)+ MOVB #'X,(A2)+ CLRB @A2 LEA A2,1374(A0) PUSH A3 LEA A3,77$ CALL 210$ POP A3 CALL 224$ RTN 250$: PUSH A3 LEA A3,77$ ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) CALL 210$ POP A3 CALL 224$ RTN 260$: PUSH A3 LEA A3,77$ CALL 210$ POP A3 PUSHW 6430(A0) ANDW # C400,6430(A0) CALL 2634$ POPW 6430(A0) RTN 270$: LEA A6,77$ SETW @A6 RTN 300$: LEA A6,77$ CLRW @A6 RTN WORD 6264$-. 310$: WORD 312$-. ASCII /HEADING%BOLD/ BYTE 0 EVEN WORD 270$-. 312$: WORD 314$-. ASCII /HEADING%NO%BOLD/ BYTE 0 EVEN WORD 300$-. 314$: WORD 21244$-. ASCII /HEADING%NO%BOLD/ BYTE 0 EVEN WORD 300$-. 320$: PFILE CRLF CRLF TYPECR <**Ultrascience Patch 5.1 - For Help See ...append next line TXTFMT.HLV[7,1] (VUE-Help TXTFMT)**> RTN END ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) When closing files less than 1 block long the system does not detect a "write protect" condition on the disk, and it appears that short files may occasionally cross-link when several users close vue files at the same time and one of the files is short. If vue uses an EXIT call instead of a CLOSE call this might explain some of the difficulty. HELP adds an unwanted last blank page to a menu. When INSERT is turned on and TEXT is turned on a carriage return on a blank line inserts a line, but gives an additional carriage return. POP misses the PUSH line when lines are added or deleted. The multiple character wildcard, usually "*", does not work regardless of what character is set. ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) OLD HASH 075-576-443-707 / NEW HASH 262-304-227-442 This is a patch which eliminates a disk lock-up problem that is present in DIRSEQ.LIT. The unpatched version of DIRSEQ.LIT will abort when sequencing a PPN on a write protected disk, but the disk will remain locked in such a manner that accessing files on the disk will lock out other jobs. The only way of unlocking such jobs is to reset the system. This patch will cause DIRSEQ to unlock the device when an abnormal exit (i.e., a write protected disk) is encountered. ; Patch #1 to SYS:DIRSEQ.LIT AMOS/L 1.2 ; Patch for disk lockup occuring when sequencing directories on protected ; disks. ; ; Developed by Ultrascience (REV. 5.1) COPY PATCH OVER 1,0,0,104.,0 NVER 1,0,0,104.,1 OHASH 075,576,443,707 NHASH 262,304,227,442 DEFINE OP TYP,ADDR,FLG TYP ADDR BNE P8 IF NB,FLG,RTN ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) ENDM .=666 CALL P1 NOP .=700 CALL P2 NOP .=720 CALL P3 NOP .=1324 CALL P4 BR 1344$ .=1344 1344$: .=1412 CALL P5 .=1424 CALL P6 .=1500 CALL P7 NOP .=2440 P1: ORB #1,321(A5) OP DSKDRL,320(A5),1 P2: OP READ,320(A5),1 P3: OP CHGMEM,470(A5),1 P4: OP DSKDEA,@A5 OP DSKBMW,@A5 CLRW @A4 OP WRITE,150(A5),1 P5: OP DSKDEA,@A5,1 P6: OP DSKBMW,@A5,1 P7: OP WRITE,320(A5),1 P8: POP DSKDRU 320(A5) EXIT END ANDW Dx,@Ay gets disassembled by FIX into: XCH Dx,Dy ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) where x & y are register numbers 0-7. When executing a program step-by-step with CR in screen disassembly mode, some SVCA's do not operate properly when going through them fast (holding down CR). For example, going through a FETCH too fast will often result in the file not being loaded or located even though the same FETCH will operate properly when going through it slowly (pauses between CRs). Under certain un-determined conditions the PC address in screen disassembly mode displays a large number for the address even though the page displayed is still part of the program being fixed at the time (not (ABS) section). For example: 000010(PRG) ; This example is not a literal copy of the problem. 000012(PRG) ; The file which originally caused this problem has been 337562(PRG) ; misplaced and the numbers may have been different. 337564(PRG) ; Possibly caused in FIX by not clearing D1 before 000014(PRG) ; displaying the address, thereby showing high bits as 000016(PRG) ; part of the address. ULTRASCIENCE, 1824 WILMETTE AVE., WILMETTE, IL 60091 (01/20/85) .