[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 21:55:31 LOG - LS-DOS 6.2 Page 00001 00001 ;LOG/ASM - Optional Disk Log Program 00003 ; 000D 00004 CR EQU 13 000A 00005 LF EQU 10 000E 00006 CRSON EQU 14 00007 ; 0000 00008 *GET SVCMAC:3 ;SVC Macro equivalents 00009 ;SVCMAC/ASM - LS-DOS Version VI 00010 *LIST OFF 00402 *LIST ON 0000 00404 *GET COPYCOM:3 ;Copyright message 00405 ; COPYCOM - File for Copyright COMment block 00406 ; 0000 00407 *GET BUILDVER/ASM:3 00408 ; 00409 ; Buildver/asm is a bit of a kludge since not all utilities can load 00410 ; equates from LDOS60 and still compile. LOWCORE and everybody else 00411 ; relies on this setting, and it eventually ends up in LDOS60/EQU 00412 ; for programs that can use that. 00413 ; FFFF 00414 @BLD631 EQU -1 ;<631>Build 631 distribution (LEVEL 1B) 00415 ; These switches activate patches made since the 1B release. 00416 ; It is important that all earlier patches be enabled when a higher 00417 ; patch is enabled. 00418 ; Patches C thru F were published in TMQ IV.iv, page 32 (NOTE: the 00419 ; patch addresses listed for SPOOL in SPOOL1/FIX are 19H high.) FFFF 00420 @BLD631C EQU -1 ;<631>Apply 1C patches (SETKI) FFFF 00421 @BLD631D EQU -1 ;<631>Apply 1D patches (DIR) FFFF 00422 @BLD631E EQU -1 ;<631>Apply 1E patches (DIR & MEMDISK/DCT) FFFF 00423 @BLD631F EQU -1 ;<631>Apply 1F patches (SPOOL) 00424 ; Patches G and H were published in TMQ V.i, pages 10 and 18/19. FFFF 00425 @BLD631G EQU -1 ;<631>Apply 1G patches (//KEYIN,DIR,DO *) FFFF 00426 @BLD631H EQU -1 ;<631>Apply 1H patches (MEMORY) 00427 ; 00428 ;End of BUILDVER/ASM 00429 IF @BLD631 00431 ELSE 00432 COM '<*(C) 1982,3,4,6 by LSI*>' 00433 ENDIF 00434 ; 2600 00435 ORG 2600H 00436 ; 00437 LOG 2600 00438 @@CKBRKC ;Check for break 2600+3E6A 00439 LD A,106 2602+EF 00440 RST 40 2603 2804 00441 JR Z,LOGA ;Go if not 2605 21FFFF 00442 LD HL,-1 ; else abort 2608 C9 00443 RET 00444 ; 00445 LOGA 2609 ED738326 00446 LD (STACK),SP ;Save entry SP 260D E5 00447 PUSH HL ;Save cmdline ptr 260E 00448 @@DSPLY HELLO$ ;Display the signon msg 00449 IFEQ 01H,1 260E+219626 00450 LD HL,HELLO$ 00451 ENDIF 2611+3E0A 00452 LD A,10 2613+EF 00453 RST 40 2614 E1 00454 POP HL ;Recover cmdline ptr 00455 ; 00456 ; Start of main module code 00457 ; 2615 0E00 00458 START LD C,0 ;Default drive 0 2617 7E 00459 SKIPSP LD A,(HL) ;Scan command line 2618 23 00460 INC HL 2619 FE20 00461 CP ' ' ;Skip spaces 261B 28FA 00462 JR Z,SKIPSP 261D FE3A 00463 CP ':' ;Look for colon 261F 200C 00464 JR NZ,DEFALT ;End of line if not found 2621 7E 00465 LD A,(HL) ;Get drive # 2622 D630 00466 SUB 30H ;Make a number 2624 DA8926 00467 JP C,ILLDRV ;# too low 2627 FE08 00468 CP 7+1 2629 D28926 00469 JP NC,ILLDRV ;# too hi 262C 4F 00470 LD C,A ;Save in C 262D 79 00471 DEFALT LD A,C ;Drive 0? 262E A7 00472 AND A 262F 2018 00473 JR NZ,NOWAIT ;Go if not 2631 00474 @@DSPLY WAIT$ ;Display "Switch disks 00475 IFEQ 01H,1 2631+211E27 00476 LD HL,WAIT$ 00477 ENDIF 2634+3E0A 00478 LD A,10 2636+EF 00479 RST 40 2637 2052 00480 JR NZ,IOERR 2639 00481 @@KEY ;Wait for a key 2639+3E01 00482 LD A,1 263B+EF 00483 RST 40 263C 204D 00484 JR NZ,IOERR 263E C5 00485 PUSH BC ;Save the drive # 263F 0E0D 00486 LD C,CR ;Output a new line 2641 00487 @@DSP 2641+3E02 00488 LD A,2 2643+EF 00489 RST 40 2644 C1 00490 POP BC ;Recover drive # 2645 2044 00491 JR NZ,IOERR 2647 1807 00492 JR NOCHK ;Can't call CKDRV if :0 00493 ; 2649 00494 NOWAIT @@CKDRV ;Drive ready? 2649+3E21 00495 LD A,33 264B+EF 00496 RST 40 264C 3E20 00497 LD A,32 ;"Illegal drive number" 264E 203B 00498 JR NZ,IOERR ;Go if not ready 2650 210028 00499 NOCHK LD HL,BUFFER ;Sector buffer 2653 110000 00500 LD DE,0 ;Read boot sector 2656 00501 @@RDSEC 2656+3E31 00502 LD A,49 2658+EF 00503 RST 40 2659 2030 00504 JR NZ,IOERR ;Go if error 265B 00505 @@GTDCT ;Point IY to DCT 265B+3E51 00506 LD A,81 265D+EF 00507 RST 40 265E 23 00508 INC HL ;Point HL to byte 2 265F 23 00509 INC HL 2660 7E 00510 LD A,(HL) ;Get dir cyl # 2661 FD7709 00511 LD (IY+9),A ; and put in DCT 00512 ; 2664 57 00513 LD D,A ;Now read GAT 2665 210028 00514 LD HL,BUFFER ;Disk sector buffer 2668 5D 00515 LD E,L ;Set to 0 2669 00516 @@RDSEC 2669+3E31 00517 LD A,49 266B+EF 00518 RST 40 266C FE06 00519 CP 6 ;Must be sys sector 266E 201B 00520 JR NZ,IOERR ;Go if error 00521 ; 2670 2ECD 00522 LD L,0CDH ;Offset to disk type 2672 7E 00523 LD A,(HL) ;P/U disk type 2673 E620 00524 AND 20H ;Check # of sides bit 2675 47 00525 LD B,A ;Save in B 2676 FD7E04 00526 LD A,(IY+4) ;P/U byte in DCT 2679 E6DF 00527 AND 0DFH ;Mask out old value 267B B0 00528 OR B ;Put in new value 267C FD7704 00529 LD (IY+4),A ;Put back in DCT 00530 ; 267F 210000 00531 LD HL,0 ;Set no error 2682 310000 00532 $QUIT LD SP,$-$ ;P/u original stack 2683 00533 STACK EQU $-2 2685 00534 @@CKBRKC ;Clear any break 2685+3E6A 00535 LD A,106 2687+EF 00536 RST 40 2688 C9 00537 RET ;Back to the user 00538 ; 2689 3E20 00539 ILLDRV LD A,32 ;Init "illegal drv" 268B 6F 00540 IOERR LD L,A ;Put error # into HL 268C 2600 00541 LD H,0 268E F6C0 00542 OR 0C0H ;Abbrev, return 2690 4F 00543 LD C,A ;Error code to C 2691 00544 @@ERROR ; for error display 2691+3E1A 00545 LD A,26 2693+EF 00546 RST 40 2694 18EC 00547 JR $QUIT 00548 ; 2696 4C 00549 HELLO$ DB 'LOG Drive' 4F 47 20 44 72 69 76 65 269F 00550 *GET CLIENT:3 00551 ;CLIENT/ASM - File to establish sign-on headers 00552 ; and version numbers. 00553 ; 00554 ; EACH STRING SHOULD CONTAIN ONLY 63 CHARACTERS !! 00555 ; 00556 IF @BLD631 00557 ; 12345678901234567890123456789012345678901234567890 269F 20 00558 DB ' - 6.3.1 - Copyright 1982/83/84/86/90 by MISOSYS, ';<631> 2D 20 36 2E 33 2E 31 20 2D 20 43 6F 70 79 72 69 67 68 74 20 31 39 38 32 2F 38 33 2F 38 34 2F 38 36 2F 39 30 20 62 79 20 4D 49 53 4F 53 59 53 2C 20 26D1 49 00559 DB 'Inc., ',10 ;<631> 6E 63 2E 2C 20 20 20 20 20 20 20 0A 00560 ELSE 00561 DB ' - 6.3.0 - Copyright 1982/83/84/86 by Logical Syst' 00562 DB 'ems, Inc. ',10 00563 ENDIF 00564 ; 00565 ; DB 'All Rights Reserved. Licensed 1982/83/84 to Tandy ' 00566 ; DB 'Corporation.',10,13 00567 ; 00568 ; DB 'All Rights Reserved. Beta-TEST Level/AD, DO NOT DI' 00569 ; DB 'STRIBUTE !! ',10,13 00570 ; DB 'All Rights reserved by LSI, 8970 N. 55th St. Milwa' 00571 ; DB 'ukee, Wisc. ',10,13 26DE 41 00572 DB 'All Rights Reserved. Unauthorized duplication is p' 6C 6C 20 52 69 67 68 74 73 20 52 65 73 65 72 76 65 64 2E 20 55 6E 61 75 74 68 6F 72 69 7A 65 64 20 64 75 70 6C 69 63 61 74 69 6F 6E 20 69 73 20 70 2710 72 00573 DB 'rohibited. ',10,13 6F 68 69 62 69 74 65 64 2E 20 20 0A 0D 271E 45 00574 WAIT$ DB 'Exchange disks and depress',3 78 63 68 61 6E 67 65 20 64 69 73 6B 73 20 61 6E 64 20 64 65 70 72 65 73 73 20 3C 45 4E 54 45 52 3E 20 03 2800 00575 ORG $<-8+1<8 2800 00576 BUFFER EQU $ 00577 ; 2600 00578 END LOG 2600 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]