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