[Copyright 1999,2002 Frank Durda IV, All Rights Reserved. Mirroring of any material on this page in any form is expressly prohibited. The official web site for this material is: http://nemesis.lonestar.org Contact this address for use clearances: clearance at nemesis.lonestar.org Comments and queries to this address: web_software_2011 at nemesis.lonestar.org]
MISOSYS EDAS-4.3 04/19/99 01:27:38 SYSGEN - LS-DOS 6.2 Page 00001
00001 ;LBSYSGEN/ASM - SYSGEN Command
00003 ;
002C 00004 PAR_ERR EQU 44 ;Parameter Error
000D 00005 CR EQU 13
4300 00006 MOD3BUF EQU 4300H
0028 00007 RST28 EQU 28H
00008 ;
0000 00009 *GET SVCMAC:3 ;SVC Macro equivalents
00010 ;SVCMAC/ASM - LS-DOS Version VI
00011 *LIST OFF
00403 *LIST ON
00405 *LIST OFF ;Get SYS0/EQU
00858 *LIST ON
00859 ;
2400 00860 ORG 2400H
00861 ;
00862 IF @BLD631
2400 ED731B24 00863 SYSGEN LD (SAVESP+1),SP ;<631>Save the stack pointer
2404 E5 00864 PUSH HL ;<631>
2405 217C00 00865 LD HL,SFLAG$ ;<631>
2408 7E 00866 LD A,(HL) ;<631>
2409 CBAE 00867 RES 5,(HL) ;<631>JCL is not active, even if it is
240B 326D25 00868 LD (L256D),A ;<631>Save original state
240E E1 00869 POP HL ;<631>
240F 00870 @@CKBRKC ;<631>Break key down?
240F+3E6A 00871 LD A,106
2411+EF 00872 RST 40
2412 2037 00873 JR NZ,ABORT ;<631>abort
00874 ELSE
00875 SYSGEN @@CKBRKC ;Break key down?
00876 JR Z,BEGINA ;Ok if not
00877 LD HL,-1 ; else abort
00878 RET
00879 ;
00880 ; Save stack & call the sysgen routine
00881 ;
00882 BEGINA LD (SAVESP+1),SP ;Save the stack pointer
00883 ENDIF
2414 CD5024 00884 CALL SYSGEN1 ;Do the SYSGEN
2417 210000 00885 EXIT LD HL,0 ;Set for no error
241A 310000 00886 SAVESP LD SP,$-$ ;P/u original SP
00887 IF @BLD631
241D CD6825 00888 CALL L2568 ;<631>
00889 ENDIF
2420 00890 @@CKBRKC ;Clear pending
2420+3E6A 00891 LD A,106
2422+EF 00892 RST 40
2423 C9 00893 RET ;Back to DOS
00894 ;
00895 ; I/O Error Handler
00896 ;
2424 3E2C 00897 PRMERR LD A,PAR_ERR ;Parameter Error
2426 6F 00898 IOERR LD L,A ;Error # to HL
2427 2600 00899 LD H,0
2429 F6C0 00900 OR 0C0H ;Abbrev, return
242B 4F 00901 LD C,A
242C 00902 @@ERROR ;Display error
242C+3E1A 00903 LD A,26
242E+EF 00904 RST 40
242F 18E9 00905 JR SAVESP ;Exit
00906 ;
00907 ; Internal Error Message Handler
00908 ;
2431 214D27 00909 NOMDSK LD HL,NOMDSK$ ;"Memdisk active
2434 DD 00910 DB 0DDH
2435 216B27 00911 NORTES LD HL,NORTES$ ;"File routes active
2438 DD 00912 DB 0DDH
2439 21A526 00913 NOTFND LD HL,NOTFND$ ;"No config found
243C DD 00914 DB 0DDH
243D 213127 00915 NOSPL LD HL,NOSPL$ ;"Spooler active
2440 DD 00916 DB 0DDH
00917 IF @BLD631
2441 21EA26 00918 ISWP: LD HL,ISWP$ ;<631>Drive is write protected
00919 ELSE
00920 NOINDO LD HL,NOINDO$ ;"JCL active
00921 ENDIF
2444 DD 00922 DB 0DDH
2445 210D27 00923 NOCANDO LD HL,NOCANDO$ ;"Sysgen inhibit set
2448 CD0005 00924 CALL @LOGOT
00925 IF @BLD631
00926 ABORT
00927 ENDIF
244B 21FFFF 00928 LD HL,-1 ;Set abort code
244E 18CA 00929 JR SAVESP ;Exit
00930 ;
00931 ; SYSGEN1 - Save the state of the system
00932 ;
2450 118F27 00933 SYSGEN1 LD DE,PRMTBL$ ;Check for user parameters
2453 00934 @@PARAM
2453+3E11 00935 LD A,17
2455+EF 00936 RST 40
2456 C22424 00937 JP NZ,PRMERR ;Quit on parm error
2459 00938 @@FLAGS
2459+3E65 00939 LD A,101
245B+EF 00940 RST 40
00941 ;
00942 ; Routine to process DRIVE parameter
00943 ;
245C 010000 00944 DRIVE LD BC,0 ;Drive parm response
245F 79 00945 LD A,C
2460 FE08 00946 CP 8 ;Drive in range?
2462 D22424 00947 JP NC,PRMERR ;Go if > 7
2465 F630 00948 OR '0' ;Make it ASCII
2467 323E26 00949 LD (CFGSPEC),A ; & stuff drive spec
246A 328426 00950 LD (ATRSPEC),A
00951 IF @BLD631
246D 00952 @@CKDRV ;<631>
246D+3E21 00953 LD A,33
246F+EF 00954 RST 40
2470 DA4124 00955 JP C,ISWP ;<631>
00956 ENDIF
2473 CDFF25 00957 CALL NPARM ;Ck on yes or no entry
2476 CACC25 00958 JP Z,CFGOFF ;Jump if SYSGEN=OFF
00959 IF @BLD631
00960 ELSE
00961 BIT 5,(IY+'S'-'A') ;Can't sysgen during DO
00962 JP NZ,NOINDO
00963 ENDIF
2479 FDCB0346 00964 BIT 0,(IY+'D'-'A') ;Can't sysgen if spooler
247D C23D24 00965 JP NZ,NOSPL ; is active
2480 FDCB0366 00966 BIT 4,(IY+'D'-'A') ;Can't sysgen if memdisk
2484 C23124 00967 JP NZ,NOMDSK ; is active
2487 FDCB026E 00968 BIT 5,(IY+'C'-'A') ;CK user sysgen inhibit
248B C24524 00969 JP NZ,NOCANDO ;Quit if set
248E CD0926 00970 CALL CKRTES ;Ck if any route to file
2491 C23524 00971 JP NZ,NORTES ;Can't if so
00972 ;
00973 ; Initialize a CONFIG file on disk 0, or user spec'ed drive
00974 ;
2494 112F26 00975 LD DE,GENDCB ;"CONFIG/SYS.CCC
2497 210029 00976 LD HL,GENBUF ;Config I/O buffer
249A 0600 00977 LD B,0 ;Set LRL=256
249C 00978 @@INIT ;Create config file
249C+3E3A 00979 LD A,58
249E+EF 00980 RST 40
249F C22624 00981 JP NZ,IOERR ;Quit on init error
00982 ;
00983 ; Generate the file header block
00984 ;
24A2 3E05 00985 LD A,5 ;Put file header
24A4 CD2726 00986 CALL PUTOUT
24A7 3E06 00987 LD A,6 ;Put header length
24A9 CD2726 00988 CALL PUTOUT
24AC 0606 00989 LD B,6 ;Put header name
24AE 214F26 00990 LD HL,CFGNAM$ ;"CONFIG"
24B1 7E 00991 WRNAM LD A,(HL) ;Write name to
24B2 23 00992 INC HL ; config file header
24B3 CD2726 00993 CALL PUTOUT
24B6 10F9 00994 DJNZ WRNAM
00995 ;
00996 ; Generate disabling of all interrupts
00997 ;
24B8 0601 00998 LD B,1 ;Set block length
24BA 113800 00999 LD DE,@RST38 ;Set load address
24BD 21A825 01000 LD HL,C9FLD ;Point to block (X'C9')
24C0 CDAA25 01001 CALL WRBLCK ;Write the block
01002 ;
01003 ; Dump memory from (DVRHI$) to DVREND$
01004 ;
24C3 2A0602 01005 LD HL,(DVRHI$) ;Point to max memory
24C6 11F40F 01006 LD DE,DVREND$ ;Point to start
24C9 AF 01007 XOR A
24CA ED52 01008 SBC HL,DE ;How much to save
24CC 44 01009 LD B,H ; into BC
24CD 4D 01010 LD C,L
24CE C47025 01011 CALL NZ,DUMP ;File DVREND$ to top
01012 ;
01013 ; Dump memory from HIGH$ to top-of-memory FIRST
01014 ;
24D1 ED5B1C00 01015 LD DE,(PHIGH$) ;Point to max memory
24D5 210000 01016 LD HL,0 ;Set up to get current
24D8 45 01017 LD B,L ; HIGH$
24D9 01018 @@HIGH$
24D9+3E64 01019 LD A,100
24DB+EF 01020 RST 40
24DC EB 01021 EX DE,HL ;HIGH$ to DE,
24DD AF 01022 XOR A ; PHIGH to HL
24DE ED52 01023 SBC HL,DE ;How much to save?
24E0 44 01024 LD B,H
24E1 4D 01025 LD C,L
24E2 13 01026 INC DE ;First byte in use
24E3 C47025 01027 CALL NZ,DUMP ;File HIGH$+1 to top
01028 ;
01029 ; Generate all data from address table
01030 ;
24E6 21B427 01031 LD HL,ADRTBL$ ;Point to grab table
24E9 4E 01032 WRTBL LD C,(HL) ;P/u lo order length
24EA 23 01033 INC HL
24EB 46 01034 LD B,(HL) ;P/u hi order length
24EC 23 01035 INC HL
24ED 78 01036 LD A,B
24EE B1 01037 OR C
24EF 280B 01038 JR Z,GENDCT ;Exit on zero length
24F1 5E 01039 LD E,(HL) ;P/u lo order address
24F2 23 01040 INC HL
24F3 56 01041 LD D,(HL) ;P/u hi order address
24F4 23 01042 INC HL
24F5 E5 01043 PUSH HL ;Save table pointer
24F6 CD7025 01044 CALL DUMP ;P/u the code & file it
24F9 E1 01045 POP HL ;Restore table pointer
24FA 18ED 01046 JR WRTBL
01047 ;
01048 ; Generate the DCT$ (offset)
01049 ;
24FC 0650 01050 GENDCT LD B,80 ;Table is 80 bytes
24FE 110043 01051 LD DE,MOD3BUF ;Place to stuff DCT$
2501 0E00 01052 LD C,0
2503 01053 @@GTDCT ;Write out the DCTs
2503+3E51 01054 LD A,81
2505+EF 01055 RST 40
2506 FDE5 01056 PUSH IY ; handled by SYS0
2508 E1 01057 POP HL
2509 CDAA25 01058 CALL WRBLCK
01059 ;
01060 ; Generate the original interrupt vector JP
01061 ;
250C 0601 01062 INTVEC LD B,1 ;File the interrupt
250E 113800 01063 LD DE,@RST38 ; vector address
2511 21A925 01064 LD HL,JPINST ; with a JP
2514 CDAA25 01065 CALL WRBLCK ;Write the block
01066 ;
01067 ; Generate the transfer address
01068 ;
2517 3E02 01069 LD A,2 ;Transfer address
2519 CD2726 01070 CALL PUTOUT
251C 3E02 01071 LD A,2
251E CD2726 01072 CALL PUTOUT
2521 AF 01073 XOR A ;Xfer address is 0000
2522 CD2726 01074 CALL PUTOUT
2525 AF 01075 XOR A
2526 CD2726 01076 CALL PUTOUT
2529 01077 @@CLOSE ;Close config file
2529+3E3C 01078 LD A,60
252B+EF 01079 RST 40
252C C22624 01080 JP NZ,IOERR ;Quit on close error
01081 ;
01082 ; Let the config sector know there's a CONFIG/SYS
01083 ;
01084 IF @MOD2
01085 ;
01086 LD A,(DRIVE+1) ;Drive #
01087 LD C,A ;Pass drive #
01088 LD HL,SBUFF$ ;I/O buffer
01089 @@GTDCT ;Fetch DCT
01090 ;
01091 LD A,(IY+3) ;Get DCT data
01092 AND 28H ;Bit 5/3
01093 CP 20H ;8" floppy?
01094 JR NZ,SETSYS1 ;Go if not
01095 LD A,(IY+4) ;Get DCT data
01096 AND 50H ;Bit 6/4
01097 CP 40H ;DD and not alien?
01098 JR NZ,SETSYS1 ;Go if not
01099 ;
01100 LD D,(IY+9) ;Get GAT address
01101 LD E,0 ;DE=>gat
01102 @@RDSEC ;Read sector
01103 CP 6 ;Directory?
01104 JP NZ,IOERR ;Go on disk error
01105 LD A,(SBUFF$+0CDH) ;Get gat data byte
01106 BIT 7,A ;Data disk?
01107 SETSYS1 LD D,0 ;Init sys info sector
01108 JR NZ,$+3 ;Go if not 8" floppy sys
01109 INC D ; else sysinfo on cyl 1
01110 LD E,2 ;Sysinfo sector
01111 ;
01112 ENDIF
01113 ;
252F 21001D 01114 LD HL,SBUFF$ ;Use this as disk buffer
01115 ;
01116 IF @MOD4
2532 110200 01117 LD DE,0<8+2 ;Trk 0, sect 2 (SIS)
01118 ENDIF
01119 ;
2535 3A5D24 01120 LD A,(DRIVE+1) ;P/u logical drive #
2538 4F 01121 LD C,A ; of drive (DRIVE)
2539 01122 @@RDSEC ;Read System Info Sector
2539+3E31 01123 LD A,49
253B+EF 01124 RST 40
253C C22624 01125 JP NZ,IOERR ;Quit on read error
253F AF 01126 XOR A ;Turn on standard config
2540 32011D 01127 LD (SBUFF$+1),A
2543 01128 @@WRSEC ;Write it back
2543+3E35 01129 LD A,53
2545+EF 01130 RST 40
2546 C22624 01131 JP NZ,IOERR ;Quit on write error
2549 2EC0 01132 LD L,0C0H ;Pt to SYS/DATA byte
254B B6 01133 OR (HL) ;Check if System disk
254C 21C126 01134 LD HL,WARN$ ; and inform in not
254F 2003 01135 JR NZ,$+5
2551 01136 @@LOGOT
01137 IFEQ 00H,1
01138 LD HL,
01139 ENDIF
2551+3E0C 01140 LD A,12
2553+EF 01141 RST 40
01142 ;
01143 ; Let user know it's done
01144 ;
2554 01145 @@LOGOT CFGBLT ;Log completion
01146 IFEQ 01H,1
2554+215526 01147 LD HL,CFGBLT
01148 ENDIF
2557+3E0C 01149 LD A,12
2559+EF 01150 RST 40
01151 IF @BLD631
255A CD6825 01152 CALL L2568 ;<631>
01153 ENDIF
255D 216E26 01154 LD HL,ATRBIT ;Make CONFIG invisible
2560 3E18 01155 LD A,24 ;Init for CMNDI
2562 C32800 01156 JP RST28 ; & execute
2565 01157 @@CMNDI
2565+3E18 01158 LD A,24
2567+EF 01159 RST 40
01160 IF @BLD631
2568 E5 01161 L2568: PUSH HL ;<631>Restore previous SFLAG$
2569 217C00 01162 LD HL,SFLAG$ ;<631>setting, including
256D 01163 L256D: EQU $+1 ;<631>turning JCL back on if
256C 3600 01164 LD (HL),0 ;<631>it was on before.
256E E1 01165 POP HL ;<631>
256F C9 01166 RET ;<631>
01167 ENDIF
01168 ;
01169 ; Routine to DUMP core
01170 ;
2570 EB 01171 DUMP EX DE,HL ;Load address to HL
2571 112F26 01172 LD DE,GENDCB ;Config/sys FCB
2574 E5 01173 DUMP1 PUSH HL
2575 C5 01174 PUSH BC ;Save block length
2576 60 01175 LD H,B ;Length of this block
2577 69 01176 LD L,C ; to HL
2578 01FE00 01177 LD BC,254 ;Write block in groups
257B AF 01178 XOR A ;Of 254 bytes max
257C ED42 01179 SBC HL,BC ;Sub blk len fm dump len
257E 3006 01180 JR NC,DUMP2 ;Go if write len > 254
2580 C1 01181 POP BC ;Recover block len
2581 210000 01182 LD HL,0 ;Show block written
2584 1801 01183 JR DUMP3
2586 F1 01184 DUMP2 POP AF ;Remove old len from stack
2587 E3 01185 DUMP3 EX (SP),HL ;Xchg len w/address
2588 41 01186 LD B,C
2589 3E01 01187 LD A,1 ;Start of block
258B CD2726 01188 CALL PUTOUT
258E 78 01189 LD A,B
258F C602 01190 ADD A,2 ;Add for address
2591 CD2726 01191 CALL PUTOUT ;Write block length
2594 7D 01192 LD A,L
2595 CD2726 01193 CALL PUTOUT ;Write lo order address
2598 7C 01194 LD A,H
2599 CD2726 01195 CALL PUTOUT ;Write hi order address
259C 7E 01196 DUMP4 LD A,(HL)
259D 23 01197 INC HL
259E CD2726 01198 CALL PUTOUT ;Write the block
25A1 10F9 01199 DJNZ DUMP4
25A3 C1 01200 POP BC ;Get remaining length
25A4 78 01201 LD A,B
25A5 B1 01202 OR C
25A6 20CC 01203 JR NZ,DUMP1 ;Loop if block not done
25A8 C9 01204 C9FLD RET ; else go back
01205 ;
01206 ; Routine to write an offset block
01207 ;
25A9 C3 01208 JPINST DB 0C3H ;JP instruction
25AA E5 01209 WRBLCK PUSH HL ;Save real load address
25AB 62 01210 LD H,D ;HL = offset address
25AC 6B 01211 LD L,E
25AD 112F26 01212 LD DE,GENDCB ;Config/sys FCB
25B0 3E01 01213 LD A,1 ;Start of block
25B2 CD2726 01214 CALL PUTOUT
25B5 78 01215 LD A,B
25B6 C602 01216 ADD A,2 ;Adj for address
25B8 CD2726 01217 CALL PUTOUT ;Write block length
25BB 7D 01218 LD A,L
25BC CD2726 01219 CALL PUTOUT ;Write lo order load
25BF 7C 01220 LD A,H
25C0 CD2726 01221 CALL PUTOUT ;Write hi order load
25C3 E1 01222 POP HL ;Recover real address
25C4 7E 01223 WRBLK1 LD A,(HL) ; and p/u data from there
25C5 23 01224 INC HL
25C6 CD2726 01225 CALL PUTOUT ;Write the block
25C9 10F9 01226 DJNZ WRBLK1
25CB C9 01227 RET
01228 ;
01229 ; Perform SYSGEN OFF
01230 ;
25CC 21001D 01231 CFGOFF LD HL,SBUFF$ ;Set disk I/O buffer
01232 ;
01233 IF @MOD2
01234 ;
01235 LD A,(DRIVE+1) ;Get drive
01236 LD C,A ;Pass to C
01237 @@GTDCT ;Fetch DCT
01238 LD D,(IY+9) ;Dir cylinder
01239 ;
01240 LD A,(IY+3) ;Get dct data
01241 AND 28H ;Bit 5/3
01242 CP 20H ;8" floppy?
01243 JR NZ,SETSYS2 ;Go if not
01244 LD A,(IY+4) ;Get data
01245 AND 50H ;Bit 6/4
01246 CP 40H ;DD not alien?
01247 JR NZ,SETSYS2 ;Go if not
01248 ;
01249 LD E,0 ;GAT table
01250 @@RDSEC ;Read sector
01251 CP 6 ;Directory read?
01252 JP NZ,IOERR ;Go if not
01253 LD A,(SBUFF$+0CDH) ;Get gat data byte
01254 BIT 7,A ;System disk?
01255 SETSYS2 LD D,0 ;Cyl 0 if not
01256 JR NZ,$+3 ;Go if not
01257 INC D ;Else on cyl 1
01258 LD E,2 ;Sysinfo sector
01259 ;
01260 ENDIF
01261 ;
01262 IF @MOD4
25CF 110200 01263 LD DE,0<8+2 ;Trk 0, sect 2 (SIS)
01264 ENDIF
01265 ;
25D2 3A5D24 01266 LD A,(DRIVE+1) ;P/u drive number
25D5 4F 01267 LD C,A ; & note
25D6 01268 @@RDSEC ; that no config is
25D6+3E31 01269 LD A,49
25D8+EF 01270 RST 40
25D9 C22624 01271 JP NZ,IOERR ; on the disk
25DC 3EC9 01272 LD A,0C9H
25DE 32011D 01273 LD (SBUFF$+1),A ;A X'C9' indicates
25E1 01274 @@WRSEC ; no config
25E1+3E35 01275 LD A,53
25E3+EF 01276 RST 40
25E4 C22624 01277 JP NZ,IOERR ;Quit if write error
01278 ;
01279 ; Now that none is shown, kill the CONFIG/SYS
01280 ;
25E7 112F26 01281 LD DE,GENDCB ;Pt to FCB
25EA 0600 01282 LD B,0
25EC 01283 @@OPEN ;Try to open the config
25EC+3E3B 01284 LD A,59
25EE+EF 01285 RST 40
25EF C23924 01286 JP NZ,NOTFND ;Jump if not there
25F2 01287 @@REMOV ;Kill the config/sys
25F2+3E39 01288 LD A,57
25F4+EF 01289 RST 40
25F5 C22624 01290 JP NZ,IOERR ;Quit if can't be killed
25F8 01291 @@LOGOT CFGDEL$ ;"config deleted..
01292 IFEQ 01H,1
25F8+218A26 01293 LD HL,CFGDEL$
01294 ENDIF
25FB+3E0C 01295 LD A,12
25FD+EF 01296 RST 40
25FE C9 01297 RET ;Done - return
01298 ;
01299 ; Parameter parsing of yes/no
01300 ;
25FF 010000 01301 NPARM LD BC,0 ;P/u "no" parm entry
2602 78 01302 LD A,B
2603 B1 01303 OR C ;If NO, make Z
2604 EEFF 01304 XOR 0FFH
2606 C9 01305 RET
2607 0000 01306 YPARM DW 0
01307 ;
01308 ; Any devices routed to files?
01309 ;
2609 114B49 01310 CKRTES LD DE,'IK' ;Point to begin of area
260C 01311 @@GTDCB
260C+3E52 01312 LD A,82
260E+EF 01313 RST 40
260F E5 01314 CKRT0 PUSH HL ;Save pointer
2610 CB66 01315 CKRT1 BIT 4,(HL) ;Routed device?
2612 280B 01316 JR Z,CKRT2 ;Jump if not
2614 2C 01317 INC L ;Bypass TYPE code
2615 7E 01318 LD A,(HL) ;P/u route vector
2616 2C 01319 INC L ; lo-order
2617 66 01320 LD H,(HL) ;P/u vector hi-order
2618 6F 01321 LD L,A
2619 CB7E 01322 BIT 7,(HL) ;Routed to a file?
261B 28F3 01323 JR Z,CKRT1 ;Ck further route if not
261D E1 01324 POP HL ; else exit with NZ
261E C9 01325 RET
01326 ;
01327 ; Point to next device
01328 ;
261F E1 01329 CKRT2 POP HL ;Recover DCB pointer
2620 7D 01330 LD A,L ;Advance to next DCB area
2621 C608 01331 ADD A,8 ;Loop through all
2623 6F 01332 LD L,A ; devices while checking
2624 20E9 01333 JR NZ,CKRT0 ;Loop until table end
2626 C9 01334 RET
01335 ;
2627 4F 01336 PUTOUT LD C,A ;Byte into C
2628 01337 @@PUT ;Do the put
2628+3E04 01338 LD A,4
262A+EF 01339 RST 40
262B C8 01340 RET Z ;Back if good
262C C32624 01341 JP IOERR ; else abort
01342 ;
262F 43 01343 GENDCB DB 'CONFIG/SYS.CCC:0',0
4F 4E 46 49 47 2F 53 59
53 2E 43 43 43 3A 30 00
263E 01344 CFGSPEC EQU $-2
2640 01345 DS 32-$+GENDCB
264F 43 01346 CFGNAM$ DB 'CONFIG'
4F 4E 46 49 47
2655 55 01347 CFGBLT DB 'User configuration built',CR
73 65 72 20 63 6F 6E 66
69 67 75 72 61 74 69 6F
6E 20 62 75 69 6C 74 0D
266E 41 01348 ATRBIT DB 'Attrib CONFIG/SYS.CCC:d (I)',CR
74 74 72 69 62 20 43 4F
4E 46 49 47 2F 53 59 53
2E 43 43 43 3A 64 20 28
49 29 0D
2684 01349 ATRSPEC EQU $-6
268A 55 01350 CFGDEL$ DB 'User configuration deleted',CR
73 65 72 20 63 6F 6E 66
69 67 75 72 61 74 69 6F
6E 20 64 65 6C 65 74 65
64 0D
26A5 4E 01351 NOTFND$ DB 'No user configuration found',CR
6F 20 75 73 65 72 20 63
6F 6E 66 69 67 75 72 61
74 69 6F 6E 20 66 6F 75
6E 64 0D
26C1 57 01352 WARN$ DB 'Warning: Target drive contains no system',CR
61 72 6E 69 6E 67 3A 20
54 61 72 67 65 74 20 64
72 69 76 65 20 63 6F 6E
74 61 69 6E 73 20 6E 6F
20 73 79 73 74 65 6D 0D
01353 IF @BLD631
26EA 53 01354 ISWP$ DB 'Specified drive is write protected',CR
70 65 63 69 66 69 65 64
20 64 72 69 76 65 20 69
73 20 77 72 69 74 65 20
70 72 6F 74 65 63 74 65
64 0D
01355 ELSE
01356 NOINDO$ DB 'Command invalid during processing',CR
01357 ENDIF
270D 2A 01358 NOCANDO$ DB '** SYSGEN inhibited at this time **',CR
2A 20 53 59 53 47 45 4E
20 69 6E 68 69 62 69 74
65 64 20 61 74 20 74 68
69 73 20 74 69 6D 65 20
2A 2A 0D
2731 43 01359 NOSPL$ DB 'Can''t while SPOOL is active',CR
61 6E 27 74 20 77 68 69
6C 65 20 53 50 4F 4F 4C
20 69 73 20 61 63 74 69
76 65 0D
274D 43 01360 NOMDSK$ DB 'Can''t while MEMDISK is active',CR
61 6E 27 74 20 77 68 69
6C 65 20 4D 45 4D 44 49
53 4B 20 69 73 20 61 63
74 69 76 65 0D
276B 43 01361 NORTES$ DB 'Can''t while route-to-file is active',CR
61 6E 27 74 20 77 68 69
6C 65 20 72 6F 75 74 65
2D 74 6F 2D 66 69 6C 65
20 69 73 20 61 63 74 69
76 65 0D
01362 ;
278F 80 01363 PRMTBL$ DB 80H,42H,'ON',0
42 4F 4E 00
2794 0726 01364 DW YPARM
2796 43 01365 DB 43H,'OFF',0
4F 46 46 00
279B 0026 01366 DW NPARM+1
279D 53 01367 DB 53H,'YES',0
59 45 53 00
27A2 0726 01368 DW YPARM
27A4 52 01369 DB 52H,'NO',0
4E 4F 00
27A8 0026 01370 DW NPARM+1
27AA 95 01371 DB 95H,'DRIVE',0
44 52 49 56 45 00
27B1 5D24 01372 DW DRIVE+1
27B3 00 01373 NOP
01374 ;
01375 ; Table of regions to sysgen
01376 ;
27B4 0200 01377 ADRTBL$ DW 2,HIGH$ ;Save HIGH$
0E04
27B8 0200 01378 DW 2,LOW$ ;Lowest user address
1E00
27BC 0100 01379 DW 1,TIMSL$ ;Time slice
2B00
27C0 FA00 01380 DW 250,DVRHI$ ;Save primary DCBs
0602
27C4 0300 01381 DW 3,EXTDBG$ ;Ext DEBUG vector & DBGHK
A419
27C8 3200 01382 DW 50,INTIM$ ;Table & TCBs
3C00
27CC 2200 01383 DW 34,FLGTAB$ ;Flag table & assorted
6A00
27D0 0200 01384 DW 2,75*2+SVCTAB$ ;Save WRITE vector
9601
27D4 0300 01385 DW 3,HKRES$ ;Sys overlay hook
6C1A
27D8 0200 01386 DW 2,KIDATA$+2
FE08
27DC 0100 01387 DW 1,DODATA$
940B
27E0 0200 01388 DW 2,DODATA$+3
970B
27E4 1000 01389 DW 16,240+SVCTAB$ ;SVCs 120 - 127
F001
27E8 1000 01390 DW 16,@RST08 ;RST zones 8 and 10
0800
27EC 0100 01391 DW 1,HERTZ$ ;Hertz rate for timer
5007
01392 IF @BLD631
27F0 0100 01393 DW 1,@PRTIMO ;<631>Printer time-out patch addr
290E
01394 ENDIF
01395 ;
01396 IF @MOD2
01397 DW 3,$CRSCHAR ;Cursor char + column siz
01398 ENDIF
01399 IF @MOD4
27F4 0000 01400 DW 0,0
0000
01401 ENDIF
01402 ;
27F8 0000 01403 DW 0,0
0000
27FC 0000 01404 DW 0,0
0000
2800 0000 01405 DW 0,0
0000
2804 0000 01406 DW 0,0
0000
2808 0000 01407 DW 0,0
0000
280C 0000 01408 DW 0,0
0000
2810 0000 01409 DW 0,0
0000
2814 0000 01410 DW 0 ;End of table
2816 00 01411 DC 20,0 ;Patch space
00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00
00 00 00
01412 ;
2900 01413 ORG $<-8+1<+8
2900 01414 GENBUF EQU $
01415 ;
2400 01416 END SYSGEN
2400 is the transfer address
00000 Total errors
[Copyright 1999,2002 Frank Durda IV, All Rights Reserved. Mirroring of any material on this page in any form is expressly prohibited. The official web site for this material is: http://nemesis.lonestar.org Contact this address for use clearances: clearance at nemesis.lonestar.org Comments and queries to this address: web_software_2011 at nemesis.lonestar.org]