LS-DOS 6.3.1 - LOG Utility Assembly Listing (HTML format version)

[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]

Valid HTML 4.01!