LS-DOS 6.3.1 - HELP 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:52:20 'Help 6.2 Source'            Page 00001 

              00001 ;HELP62/ASM - Help display system - 02/16/84
FFFF          00002 CLS     EQU     -1
              00003         IF      CLS
              00005         ELSE
              00006         TITLE   <'Help 6.1 Source'>
              00007         ENDIF
0000          00008 *GET    COPYCOM:3
              00009 ; COPYCOM - File for Copyright COMment block
              00010 ;
0000          00011 *GET BUILDVER/ASM:3
              00012 ;
              00013 ;       Buildver/asm is a bit of a kludge since not all utilities can load
              00014 ;       equates from LDOS60 and still compile.  LOWCORE and everybody else
              00015 ;       relies on this setting, and it eventually ends up in LDOS60/EQU
              00016 ;       for programs that can use that.
              00017 ;
FFFF          00018 @BLD631         EQU     -1      ;<631>Build 631 distribution (LEVEL 1B)
              00019 ;       These switches activate patches made since the 1B release.
              00020 ;       It is important that all earlier patches be enabled when a higher
              00021 ;       patch is enabled.
              00022 ;       Patches C thru F were published in TMQ IV.iv, page 32 (NOTE: the
              00023 ;       patch addresses listed for SPOOL in SPOOL1/FIX are 19H high.)
FFFF          00024 @BLD631C        EQU     -1      ;<631>Apply 1C patches (SETKI)
FFFF          00025 @BLD631D        EQU     -1      ;<631>Apply 1D patches (DIR)
FFFF          00026 @BLD631E        EQU     -1      ;<631>Apply 1E patches (DIR & MEMDISK/DCT)
FFFF          00027 @BLD631F        EQU     -1      ;<631>Apply 1F patches (SPOOL)
              00028 ;       Patches G and H were published in TMQ V.i, pages 10 and 18/19.
FFFF          00029 @BLD631G        EQU     -1      ;<631>Apply 1G patches (//KEYIN,DIR,DO *)
FFFF          00030 @BLD631H        EQU     -1      ;<631>Apply 1H patches (MEMORY)
              00031 ;
              00032 ;End of BUILDVER/ASM
              00033         IF      @BLD631
              00035         ELSE
              00036         COM     '<*(C) 1982,3,4,6 by LSI*>'
              00037         ENDIF
              00038 ;---------------------------------------------
              00039 ;IOFLAG key
              00040 ;7=print on/off
              00041 ;6=video restore
              00042 ;5=reverse
              00043 ;4=search
              00044 ;3=global
              00045 ;2=filespec
              00046 ;1=keyword
              00047 ;0=video in RAM
              00048 ;(IY+1) :
              00049 ;4=reverse video in progress
              00050 ;3=wrap occurred on last screen zone
              00051 ;2=8D in last line
              00052 ;1=space expansion in progress
              00053 ;0=part 1 of space expnsion passed
              00054 ;(IY+2) :
              00055 ;transient directory count
              00056 ;CLS = -1 for @CLS V 6.2: CLS = 0 for V 6.1
              00057 ;************************
0000          00058 *GET    SVCMAC/ASM:3
              00059 ;SVCMAC/ASM - LS-DOS Version VI
              00060 *LIST   OFF
              00452 *LIST   ON
              00454 ;
              00455 ;equates for @@vdct
0001          00456 GETCHA  EQU     1       ;get (HL) to A
0002          00457 PUTCHA  EQU     2       ;put C (HL)
0003          00458 PUTCUR  EQU     3       ;set cursor to HL
0004          00459 GETCUR  EQU     4       ;get cursor to HL
0005          00460 PUTVID  EQU     5       ;move HL block to video
0006          00461 GETVID  EQU     6       ;move video to HL vlock
0007          00462 SCROLL  EQU     7       ;scroll protect
0008          00463 CURSCH  EQU     8       ;cusor char
0084          00464 OPREG@  EQU     84H
0000          00465 @@VDCT  MACRO   #BREG=0,#CREG=0,#HREG,#LREG,#HLREG
0000          00466         IFGT    #BREG,0
0000          00467         LD      B,#BREG
0000          00468         ENDIF
0000          00469         IFGT    #CREG,0
0000          00470         LD      C,#CREG
0000          00471         ENDIF
0000          00472         IFEQ    %#HLREG,0
0000          00473         IFGT    %#HREG,0
0000          00474         LD      H,#HREG
0000          00475         ENDIF
0000          00476         IFGT    %#LREG,0
0000          00477         LD      L,#LREG
0000          00478         ENDIF
0000          00479         ENDIF
0000          00480         IFGT    %#HLREG,0
0000          00481         LD      HL,#HLREG
0000          00482         ENDIF
0000          00483         LD      A,15
0000          00484         RST     40
0000          00485         ENDM
              00486 ;********************
              00487 ;
2600          00488         ORG     2600H
              00489 ;
              00490 BEGIN
2600          00491         @@CKBRKC                ;check for break
2600+3E6A     00492         LD      A,106
2602+EF       00493         RST     40
2603 2804     00494         JR      Z,BEGINA        ; if not continue
2605 21FFFF   00495         LD      HL,-1
2608 C9       00496         RET                     ;else abort
              00497 ;
2609          00498 BEGINA  @@FLAGS                 ;get system flag
2609+3E65     00499         LD      A,101
260B+EF       00500         RST     40
260C FD7E0E   00501         LD      A,(IY+'O'-'A')  ;video status
260F 327A31   00502         LD      (@OPREG),A
2612 FD7E13   00503         LD      A,(IY+'T'-'A')  ;get 'type' flag
2615 0E47     00504         LD      C,47H           ;mod 2/12/16 cursor
2617 FE02     00505         CP      2               ;yes?
2619 280A     00506         JR      Z,MODCUR        ;yes, go!
261B FE0C     00507         CP      12              ;yes?
261D 2806     00508         JR      Z,MODCUR        ;yes, go!
261F FE10     00509         CP      16              ;yes?
2621 2802     00510         JR      Z,MODCUR        ;yes, go!
2623 0E5F     00511         LD      C,5FH           ;else mod 4 cursor
2625 0608     00512 MODCUR  LD      B,8             ;@VDCTL command
2627 3E0F     00513         LD      A,15            ;SVC @VDCTL
2629 EF       00514         RST     28H             ;set cursor, get old
              00515 ;
262A 327B31   00516         LD      (CCHAR),A       ;store user's cursor
262D FD217431 00517         LD      IY,IOFLAG       ;point to IO status
2631 010000   00518         LD      BC,0            ;set counter
2634 7E       00519 PARSER  LD      A,(HL)          ;check for cr
2635 FE0D     00520         CP      0DH
2637 2804     00521         JR      Z,PARS1
2639 0C       00522         INC     C
263A 23       00523         INC     HL
263B 18F7     00524         JR      PARSER
263D 79       00525 PARS1   LD      A,C             ;test for CR first
263E E5       00526         PUSH    HL              ;save pointer
263F FE00     00527         CP      0
2641 CA5427   00528         JP      Z,HELPDIR
2644 E1       00529         POP     HL
2645 AF       00530         XOR     A               ;clear carry
2646 ED42     00531         SBC     HL,BC           ;point hl to start
2648 11A931   00532         LD      DE,CBUFFER
264B EDB0     00533         LDIR                    ;xfer to start
264D 3E0D     00534         LD      A,13
264F 12       00535         LD      (DE),A
2650 21A931   00536 RETRY2  LD      HL,CBUFFER
2653 7E       00537 REMSP   LD      A,(HL)
2654 FE20     00538         CP      20H             ;get 1st non space
2656 2003     00539         JR      NZ,CHECKP
2658 23       00540         INC     HL
2659 18F8     00541         JR      REMSP
265B FE0D     00542 CHECKP  CP      0DH             ;1st char = CR?
265D E5       00543         PUSH    HL
265E CA5427   00544         JP      Z,HELPDIR       ;then get directory
2661 FE2A     00545         CP      '*'             ;global search flag
2663 CA5427   00546         JP      Z,HELPDIR
2666 E1       00547         POP     HL              ;preservation aborted
2667 FE28     00548         CP      '('             ;parms start
2669 205E     00549         JR      NZ,FILES        ;next is FSPEC
266B 23       00550 PARMS   INC     HL              ;point to first parm
266C 7E       00551         LD      A,(HL)
266D FE0D     00552         CP      0DH             ;parms are over
266F CA4D27   00553         JP      Z,HELPDIR1
2672 FE29     00554         CP      ')'
2674 CA4D27   00555         JP      Z,HELPDIR1
2677 CBAF     00556         RES     5,A             ;upper case forced
2679 FE50     00557         CP      'P'             ;test valid P parm
267B 2020     00558         JR      NZ,VPARM
267D CD052D   00559         CALL    VALIDP
2680 C2682D   00560         JP      NZ,PARMERR      ;not valid
2683 E5       00561         PUSH    HL              ;save that quy
2684 115052   00562         LD      DE,'RP'         ; find the PR DCB
2687          00563         @@GTDCB
2687+3E52     00564         LD      A,82
2689+EF       00565         RST     40
268A EB       00566         EX      DE,HL           ;Get DCB in DE
268B E1       00567         POP     HL
268C C2252B   00568         JP      NZ,ERREXIT      ;go on error
268F 0E00     00569         LD      C,0             ;And get the PR status
2691          00570         @@CTL                   ; through @CTL
2691+3E05     00571         LD      A,5
2693+EF       00572         RST     40
2694 3E08     00573         LD      A,8             ;Init device not avail
2696 C2252B   00574         JP      NZ,ERREXIT      ; and exit on error
2699 FDCB00FE 00575         SET     7,(IY)          ;print flag established
269D FE56     00576 VPARM   CP      'V'             ;test valid V parm
269F 200A     00577         JR      NZ,SPARM
26A1 CD052D   00578         CALL    VALIDP
26A4 C2682D   00579         JP      NZ,PARMERR
26A7 FDCB00B6 00580         RES     6,(IY)
26AB FE53     00581 SPARM   CP      'S'             ;test valid S parm
26AD 200A     00582         JR      NZ,BPARM
26AF CD052D   00583         CALL    VALIDP
26B2 C2682D   00584         JP      NZ,PARMERR      ;not valid
26B5 FDCB00E6 00585         SET     4,(IY)          ;search flag established
26B9 FE52     00586 BPARM   CP      'R'             ;test valid B parm
26BB 20AE     00587         JR      NZ,PARMS
26BD CD052D   00588         CALL    VALIDP
26C0 C2682D   00589         JP      NZ,PARMERR
26C3 FDCB00AE 00590         RES     5,(IY)
26C7 18A2     00591         JR      PARMS
26C9 118031   00592 FILES   LD      DE,FCB          ;point to file buffer
26CC          00593         @@FSPEC                 ;move name to buffer
26CC+3E4E     00594         LD      A,78
26CE+EF       00595         RST     40
26CF C24D27   00596         JP      NZ,HELPDIR1     ;if no valid fspec
26D2 FDCB00D6 00597         SET     2,(IY)          ;flag valid filespec
26D6 E5       00598         PUSH    HL              ;save buffer position
26D7 D5       00599         PUSH    DE              ;save fcb pointer
26D8 01A931   00600         LD      BC,CBUFFER
26DB AF       00601         XOR     A
26DC ED42     00602         SBC     HL,BC
26DE E5       00603         PUSH    HL
26DF C1       00604         POP     BC
26E0 3E08     00605         LD      A,8
26E2 B9       00606         CP      C
26E3 3003     00607         JR      NC,XFRFS
26E5 010800   00608         LD      BC,8
26E8 21A031   00609 XFRFS   LD      HL,FSPEC
26EB EB       00610         EX      DE,HL
26EC EDB0     00611         LDIR
26EE 3E0D     00612         LD      A,13
26F0 12       00613         LD      (DE),A
26F1 D1       00614         POP     DE
26F2 E1       00615         POP     HL
26F3 FDCB005E 00616         BIT     3,(IY)          ;global in progress?
26F7 2805     00617         JR      Z,FILOVR
26F9 21FA31   00618         LD      HL,KEYWORD      ;key already in buffer
26FC 1812     00619         JR      FILE1
26FE 7E       00620 FILOVR  LD      A,(HL)
26FF FE0D     00621         CP      13              ;end of comman?
2701 CA5427   00622         JP      Z,HELPDIR       ;dsplay file
2704 FE28     00623         CP      '('             ;start of parms?
2706 CA6B26   00624         JP      Z,PARMS         ;parse 'em
2709 FE20     00625         CP      20H             ;stop at 1st non space
270B 2003     00626         JR      NZ,FILE1
270D 23       00627         INC     HL
270E 18EE     00628         JR      FILOVR
2710 E5       00629 FILE1   PUSH    HL              ;find buffer len
2711 D1       00630         POP     DE
2712 010000   00631         LD      BC,0            ;go till parms or end
2715 1A       00632 KEYS    LD      A,(DE)
2716 FE61     00633         CP      61H             ;convert to upper case
2718 3807     00634         JR      C,NOUPPER
271A FE7B     00635         CP      7BH
271C 3003     00636         JR      NC,NOUPPER
271E CBAF     00637         RES     5,A             ;remove offending bit
2720 12       00638         LD      (DE),A          ;and stuff back
2721 FE0D     00639 NOUPPER CP      13              ;increase count
2723 2808     00640         JR      Z,KEYEND
2725 FE28     00641         CP      '('
2727 2804     00642         JR      Z,KEYEND
2729 0C       00643         INC     C
272A 13       00644         INC     DE
272B 18E8     00645         JR      KEYS
272D 11FA31   00646 KEYEND  LD      DE,KEYWORD
2730 EDB0     00647         LDIR                    ;transfer keyword to buf
2732 1B       00648         DEC     DE              ;check last char
2733 1A       00649         LD      A,(DE)          ;could be a space if parm
2734 FE20     00650         CP      20H
2736 2801     00651         JR      Z,KEYEND2
2738 13       00652         INC     DE
2739 3E0D     00653 KEYEND2 LD      A,13            ;& mark it
273B 12       00654         LD      (DE),A
273C FDCB00CE 00655         SET     1,(IY)          ;flag keyword
2740 7E       00656 KEYEND1 LD      A,(HL)          ;check for command over
2741 FE0D     00657         CP      13
2743 280F     00658         JR      Z,HELPDIR       ;go if no
2745 FE28     00659         CP      '('
2747 CA6B26   00660         JP      Z,PARMS         ;parse parms
274A 23       00661         INC     HL
274B 18F3     00662         JR      KEYEND1
              00663 ;--------------------------------
              00664 ;Store video and determine vector
              00665 ;---------------------------------
274D FDCB0056 00666 HELPDIR1        BIT 2,(IY)      ;test for no/invalid fs
2751 2001     00667         JR      NZ,HELPDIR
2753 E5       00668         PUSH    HL
              00669 HELPDIR:
              00670         IF      @BLD631
              00671         ELSE
              00672         PUSH    IY
              00673         @@FLAGS
              00674 ;       SET     0,(IY+18)       ;stop lrl & read only
              00675         POP     IY
              00676         ENDIF
2754 FDCB0076 00677         BIT     6,(IY)          ;test if video is on
2758 281A     00678         JR      Z,NOVID         ;or skip it
275A FDCB0046 00679         BIT     0,(IY)          ;screen saved once?
275E 2014     00680         JR      NZ,NOVID
2760          00681         @@VDCT GETVID,,,,VIDBUFF;save video to buffer
              00682         IFGT    GETVID,0
2760+0606     00683         LD      B,GETVID
              00684         ENDIF
              00685         IFGT    0,0
              00686         LD      C,0
              00687         ENDIF
              00688         IFEQ    07H,0
              00689         IFGT    00H,0
              00690         LD      H,
              00691         ENDIF
              00692         IFGT    00H,0
              00693         LD      L,
              00694         ENDIF
              00695         ENDIF
              00696         IFGT    07H,0
2762+213F33   00697         LD      HL,VIDBUFF
              00698         ENDIF
2765+3E0F     00699         LD      A,15
2767+EF       00700         RST     40
2768          00701         @@VDCT GETCUR
              00702         IFGT    GETCUR,0
2768+0604     00703         LD      B,GETCUR
              00704         ENDIF
              00705         IFGT    0,0
              00706         LD      C,0
              00707         ENDIF
              00708         IFEQ    00H,0
              00709         IFGT    00H,0
              00710         LD      H,
              00711         ENDIF
              00712         IFGT    00H,0
              00713         LD      L,
              00714         ENDIF
              00715         ENDIF
              00716         IFGT    00H,0
              00717         LD      HL,
              00718         ENDIF
276A+3E0F     00719         LD      A,15
276C+EF       00720         RST     40
276D 227C31   00721         LD      (CURSOR),HL     ;cursor safe
2770 FDCB00C6 00722         SET     0,(IY)          ;screen saved flag
2774 FDCB0056 00723 NOVID   BIT     2,(IY)          ;do we have a filename?
2778 CAB72B   00724         JP      Z,DIRECT        ;go get em a scan
277B 217731   00725         LD      HL,DEXT         ;point to /HLP
277E 118031   00726         LD      DE,FCB          ;FCB
2781          00727         @@FEXT
2781+3E4F     00728         LD      A,79
2783+EF       00729         RST     40
2784 0601     00730         LD      B,1             ;LRL of 1
2786 213D32   00731         LD      HL,SYSBUFF      ;give the OS a path
2789 FDE5     00732         PUSH    IY              ;save
278B          00733         @@FLAGS                 ;system flags
278B+3E65     00734         LD      A,101
278D+EF       00735         RST     40
278E FDCB12C6 00736         SET     0,(IY+'S'-'A')  ;set LRL fault ignore
2792 FDE1     00737         POP     IY              ;restore
2794          00738         @@OPEN                  ;open file
2794+3E3B     00739         LD      A,59
2796+EF       00740         RST     40
2797 C2B72B   00741         JP      NZ,DIRECT
279A          00742 RETRY   @@PEOF                  ;point to last record
279A+3E41     00743         LD      A,65
279C+EF       00744         RST     40
279D FE1C     00745         CP      1CH             ;success?
279F C2752D   00746 ERROR1  JP      NZ,FILERR       ;something's wrong
27A2          00747         @@BKSP
27A2+3E3D     00748         LD      A,61
27A4+EF       00749         RST     40
27A5          00750         @@BKSP
27A5+3E3D     00751         LD      A,61
27A7+EF       00752         RST     40
27A8 20F5     00753         JR      NZ,ERROR1
27AA CD1C2D   00754         CALL    SETUP           ;position alternates
27AD CD252D   00755         CALL    POSN            ;position file
27B0 FDCB004E 00756         BIT     1,(IY)          ;is there a key?
27B4 CA6629   00757         JP      Z,FILEDIR       ;if no display file
27B7 FDCB0066 00758         BIT     4,(IY)          ;has a search been called
27BB C26629   00759         JP      NZ,FILEDIR
              00760 ;-------------------------------
              00761 ;test for keyword match
              00762 ;-------------------------------
27BE 21FA31   00763         LD      HL,KEYWORD      ;convert key to upper
27C1 7E       00764 CLOOP   LD      A,(HL)
27C2 FE0D     00765         CP      13              ;last char in key
27C4 280D     00766         JR      Z,TESTCH1
27C6 FE61     00767         CP      'a'             ;if A < a no need
27C8 3806     00768         JR      C,INCBUF
27CA FE7B     00769         CP      'z'+1           ;if A > z ditto
27CC 3002     00770         JR      NC,INCBUF
27CE CBAE     00771         RES     5,(HL)          ;strip lower case bit
27D0 23       00772 INCBUF  INC     HL
27D1 18EE     00773         JR      CLOOP
27D3 21FA31   00774 TESTCH1 LD      HL,KEYWORD      ;point to keyword
27D6 0E00     00775         LD      C,0             ;flag key start
27D8 CD382D   00776 TESTCH  CALL    GETCHAR         ;first char of indx
27DB FE80     00777         CP      80H             ;end of index?
27DD 3804     00778         JR      C,CHRS
27DF EE80     00779         XOR     80H             ;wipe it
27E1 0E01     00780         LD      C,1             ;flag end of key
27E3 BE       00781 CHRS    CP      (HL)            ;match
27E4 200C     00782         JR      NZ,MORWD                ;seek further
27E6 23       00783         INC     HL              ;next char
27E7 7E       00784         LD      A,(HL)          ;end of key?
27E8 FE0D     00785         CP      13
27EA 2821     00786         JR      Z,MATCH         ;we found it!
27EC 0C       00787         INC     C               ;test if key is over
27ED 0D       00788         DEC     C               ;if C nz then last char
27EE 2015     00789         JR      NZ,TWOMOR
27F0 18E6     00790         JR      TESTCH
27F2 D26629   00791 MORWD   JP      NC,FILEDIR      ;past possible match
27F5 0C       00792         INC     C               ;test if key is over
27F6 0D       00793         DEC     C               ;if C nz then last char
27F7 200C     00794         JR      NZ,TWOMOR
27F9 CD382D   00795 SKIPWD  CALL    GETCHAR         ;find end of parm
27FC FE1C     00796         CP      1CH             ;eof?
27FE CA6629   00797         JP      Z,FILEDIR
2801 FE80     00798         CP      80H
2803 38F4     00799         JR      C,SKIPWD
2805 CD382D   00800 TWOMOR  CALL    GETCHAR
2808 CD382D   00801         CALL    GETCHAR
280B 18C6     00802         JR      TESTCH1
              00803 ;---------------------------------
              00804 ;Display data on screen & printer
              00805 ;----------------------------------
280D 0C       00806 MATCH   INC     C               ;test gor key end
280E 0D       00807         DEC     C
280F 28E8     00808         JR      Z,SKIPWD        ;faked out! try again
2811 CD252D   00809         CALL    POSN            ;position file
              00810         IF      CLS
2814          00811         @@CLS
2814+3E69     00812         LD      A,105
2816+EF       00813         RST     40
              00814         ELSE
              00815         @@DSPLY CLEAR
              00816         ENDIF
2817          00817         @@DSPLY KEYWORD         ;& write it
              00818         IFEQ    01H,1
2817+21FA31   00819         LD      HL,KEYWORD
              00820         ENDIF
281A+3E0A     00821         LD      A,10
281C+EF       00822         RST     40
281D FDCB007E 00823         BIT     7,(IY)          ;print option?
2821 2806     00824         JR      Z,DSPHEL
2823          00825         @@PRINT KEYWORD
              00826         IFEQ    01H,1
2823+21FA31   00827         LD      HL,KEYWORD
              00828         ENDIF
2826+3E0E     00829         LD      A,14
2828+EF       00830         RST     40
2829 CD382D   00831 DSPHEL  CALL    GETCHAR         ;get character
282C 4F       00832         LD      C,A
282D          00833         @@VDCT GETCUR           ;obtain cursor position
              00834         IFGT    GETCUR,0
282D+0604     00835         LD      B,GETCUR
              00836         ENDIF
              00837         IFGT    0,0
              00838         LD      C,0
              00839         ENDIF
              00840         IFEQ    00H,0
              00841         IFGT    00H,0
              00842         LD      H,
              00843         ENDIF
              00844         IFGT    00H,0
              00845         LD      L,
              00846         ENDIF
              00847         ENDIF
              00848         IFGT    00H,0
              00849         LD      HL,
              00850         ENDIF
282F+3E0F     00851         LD      A,15
2831+EF       00852         RST     40
2832 CDE328   00853         CALL    RANGE           ;check for room
2835 79       00854         LD      A,C
2836 FE0C     00855         CP      0CH             ;end of display?
2838 CA1D29   00856         JP      Z,WAIT
283B FE7F     00857         CP      07FH            ;is it to reverse?
283D 200D     00858         JR      NZ,HIREV
283F FDCB006E 00859         BIT     5,(IY)          ;blink allowed?
2843 C4D52C   00860         CALL    NZ,REVERSE      ;reverse video on or off
2846 FDCB0186 00861         RES     0,(IY+1)
284A 18DD     00862         JR      DSPHEL          ;DO NOT display
284C FEFF     00863 HIREV   CP      0FFH            ;reverse with high bit?
284E 200D     00864         JR      NZ,PRT2
2850 FDCB006E 00865         BIT     5,(IY)
2854 C4D52C   00866         CALL    NZ,REVERSE
2857 FDCB01C6 00867         SET     0,(IY+1)
285B 1817     00868         JR      SSPACE
285D FE80     00869 PRT2    CP      80H             ;chk space compression
285F 384D     00870         JR      C,NOSTRIP
2861 EE80     00871         XOR     80H             ;kaboom
2863 FDCB0146 00872         BIT     0,(IY+1)        ;is this second one?
2867 2059     00873         JR      NZ,EXPAND       ;inflate it
2869 FDCB01C6 00874         SET     0,(IY+1)        ;mark 1st one
286D 4F       00875         LD      C,A
286E          00876         @@DSP                   ;print it
286E+3E02     00877         LD      A,2
2870+EF       00878         RST     40
2871 CD8228   00879         CALL    CHKPRT
2874 0E20     00880 SSPACE  LD      C,20H           ;put a space
2876 23       00881         INC     HL
2877 CDE328   00882         CALL    RANGE
287A          00883         @@DSP
287A+3E02     00884         LD      A,2
287C+EF       00885         RST     40
287D CD8228   00886         CALL    CHKPRT
2880 18A7     00887         JR      DSPHEL
2882 FDCB007E 00888 CHKPRT  BIT     7,(IY)
2886 C8       00889         RET     Z
2887 C5       00890         PUSH    BC              ;save char
2888 3A7E31   00891         LD      A,(PWIDE)       ;test for video width
288B FE51     00892         CP      81              ;if less skip it
288D 200A     00893         JR      NZ,CHKP1
288F 0E0D     00894         LD      C,13            ;force a CR
2891          00895         @@PRT
2891+3E06     00896         LD      A,6
2893+EF       00897         RST     40
2894 3E01     00898         LD      A,1             ;reset  pwide
2896 327E31   00899         LD      (PWIDE),A
2899 C1       00900 CHKP1   POP     BC
289A C5       00901         PUSH    BC
289B          00902         @@PRT
289B+3E06     00903         LD      A,6
289D+EF       00904         RST     40
289E C1       00905         POP     BC
289F 79       00906         LD      A,C
28A0 FE0D     00907         CP      13              ;did we pass CR?
28A2 3E01     00908         LD      A,1             ;if yes reset
28A4 2804     00909         JR      Z,CHKP2
28A6 3A7E31   00910         LD      A,(PWIDE)       ;increase count
28A9 3C       00911         INC     A
28AA 327E31   00912 CHKP2   LD      (PWIDE),A
28AD C9       00913         RET
28AE FDCB014E 00914 NOSTRIP BIT     1,(IY+1)
28B2 C4C52C   00915         CALL    NZ,ADDSP
28B5          00916         @@DSP
28B5+3E02     00917         LD      A,2
28B7+EF       00918         RST     40
28B8 FDCB0186 00919         RES     0,(IY+1)        ;scounce flag
28BC CD8228   00920         CALL    CHKPRT
28BF C32928   00921         JP      DSPHEL
28C2 47       00922 EXPAND  LD      B,A             ;number of spaces
28C3 FDCB014E 00923         BIT     1,(IY+1)        ;space abort at EOL?
28C7 2805     00924         JR      Z,EXPAND1
28C9 FDCB018E 00925         RES     1,(IY+1)        ;reset flag
28CD 04       00926         INC     B
28CE 0E20     00927 EXPAND1 LD      C,20H
28D0 23       00928         INC     HL              ;cursor updated
28D1 CDE328   00929         CALL    RANGE
28D4          00930         @@DSP
28D4+3E02     00931         LD      A,2
28D6+EF       00932         RST     40
28D7 CD8228   00933         CALL    CHKPRT
28DA 10F2     00934         DJNZ    EXPAND1
28DC FDCB0186 00935         RES     0,(IY+1)
28E0 C32928   00936         JP      DSPHEL
28E3 7D       00937 RANGE   LD      A,L
28E4 D64F     00938         SUB     79
28E6 3802     00939         JR      C,RANGE3
28E8 6F       00940         LD      L,A
28E9 24       00941         INC     H
28EA 114F16   00942 RANGE3  LD      DE,164FH                ;last line?
28ED B7       00943         OR      A               ;clear flags
28EE E5       00944         PUSH    HL              ;save posit
28EF ED52     00945         SBC     HL,DE
28F1 E1       00946         POP     HL
28F2 D8       00947         RET     C               ;it's OK
28F3 79       00948         LD      A,C
28F4 FE0D     00949         CP      0DH             ;CR?
28F6 281F     00950         JR      Z,PAUSE1        ;do not print CR in last
28F8 FE0A     00951         CP      0AH             ;LF?
28FA 281B     00952         JR      Z,PAUSE1
28FC FE8D     00953         CP      8DH             ;compressed CR?
28FE 2010     00954         JR      NZ,RANGE2
2900 FDCB0146 00955         BIT     0,(IY+1)        ;is it real 8D?
2904 200A     00956         JR      NZ,RANGE2
2906 FDCB01C6 00957         SET     0,(IY+1)        ;1st high
290A FDCB01CE 00958         SET     1,(IY+1)        ;flag expand space
290E 180C     00959         JR      PAUSE
2910 7D       00960 RANGE2  LD      A,L             ;test EOL
2911 FE4F     00961         CP      79
2913 79       00962         LD      A,C
2914 2807     00963         JR      Z,WAIT          ;stop scroll
2916 C9       00964         RET
2917 79       00965 PAUSE1  LD      A,C
2918 FDCB0186 00966         RES     0,(IY+1)        ;CR interrupts compress
291C AF       00967 PAUSE   XOR     A               ;zero char
291D 327F31   00968 WAIT    LD      (STRCHAR),A     ;char to mem
2920 FDCB007E 00969         BIT     7,(IY)          ;are we printing
2924 2010     00970         JR      NZ,BOVER        ;if yes no stopping
2926          00971         @@VDCT GETCUR
              00972         IFGT    GETCUR,0
2926+0604     00973         LD      B,GETCUR
              00974         ENDIF
              00975         IFGT    0,0
              00976         LD      C,0
              00977         ENDIF
              00978         IFEQ    00H,0
              00979         IFGT    00H,0
              00980         LD      H,
              00981         ENDIF
              00982         IFGT    00H,0
              00983         LD      L,
              00984         ENDIF
              00985         ENDIF
              00986         IFGT    00H,0
              00987         LD      HL,
              00988         ENDIF
2928+3E0F     00989         LD      A,15
292A+EF       00990         RST     40
292B AF       00991         XOR     A               ;test for screen not full
292C 114F16   00992         LD      DE,164FH
292F ED52     00993         SBC     HL,DE
2931 3803     00994         JR      C,BOVER
2933          00995         @@KEY
2933+3E01     00996         LD      A,1
2935+EF       00997         RST     40
2936 FE80     00998 BOVER   CP      80H             ;Break?
2938 CA312B   00999         JP      Z,EXIT
293B 0E0D     01000         LD      C,13            ;deliver a kiss to lp
293D CD8228   01001         CALL    CHKPRT
2940 FDCB0196 01002         RES     2,(IY+1)        ;flag file directory
2944 3A7F31   01003         LD      A,(STRCHAR)     ;get calling char
2947 4F       01004         LD      C,A
2948 FE00     01005         CP      0               ;see if nothing
294A 2814     01006         JR      Z,ABORTCH       ;blow charcter
294C FE0C     01007         CP      0CH             ;last?
294E CAD92A   01008         JP      Z,PEXIT
2951 0E1C     01009 CLS1    LD      C,1CH
2953          01010         @@DSP
2953+3E02     01011         LD      A,2
2955+EF       01012         RST     40
2956 0E1F     01013         LD      C,1FH
2958          01014         @@DSP
2958+3E02     01015         LD      A,2
295A+EF       01016         RST     40
295B 3A7F31   01017         LD      A,(STRCHAR)
295E 4F       01018         LD      C,A
295F C9       01019         RET
              01020 ABORTCH:
              01021         IF      @BLD631
2960 212928   01022         LD      HL,DSPHEL       ;<631>
2963 E3       01023         EX      (SP),HL         ;<631>
              01024         ELSE
              01025         POP     HL              ;steal return address
              01026         LD      HL,DSPHEL       ;& replace it
              01027         PUSH    HL
              01028         ENDIF
2964 18EB     01029         JR      CLS1
              01030 ;---------------------------------
              01031 ;directory of a given file
              01032 ;---------------------------------
2966 FDCB005E 01033 FILEDIR BIT     3,(IY)          ;global in progress?
296A C2A42C   01034         JP      NZ,GLOBAL5
296D          01035         @@DSPLY SIGNON          ;greet the masses
              01036         IFEQ    01H,1
296D+217A2D   01037         LD      HL,SIGNON
              01038         ENDIF
2970+3E0A     01039         LD      A,10
2972+EF       01040         RST     40
2973          01041         @@DSPLY FILMESS
              01042         IFEQ    01H,1
2973+214830   01043         LD      HL,FILMESS
              01044         ENDIF
2976+3E0A     01045         LD      A,10
2978+EF       01046         RST     40
2979 FDCB007E 01047         BIT     7,(IY)          ;print toggled?
297D 2803     01048         JR      Z,NOPRNT
297F          01049         @@PRINT
              01050         IFEQ    00H,1
              01051         LD      HL,
              01052         ENDIF
297F+3E0E     01053         LD      A,14
2981+EF       01054         RST     40
2982 21A031   01055 NOPRNT  LD      HL,FSPEC        ;point to filespec
2985 7E       01056 PRTNAME LD      A,(HL)          ;look for end char
2986 FE0D     01057         CP      0DH
2988 280A     01058         JR      Z,EON           ;end of name
298A 4F       01059         LD      C,A
298B          01060         @@DSP
298B+3E02     01061         LD      A,2
298D+EF       01062         RST     40
298E CD8228   01063         CALL    CHKPRT
2991 23       01064         INC     HL
2992 18F1     01065         JR      PRTNAME
2994 0E0D     01066 EON     LD      C,13            ;stuff CR?
2996          01067         @@DSP
2996+3E02     01068         LD      A,2
2998+EF       01069         RST     40
2999 CD8228   01070         CALL    CHKPRT
              01071 ;------------------------------
              01072 ;posn file to directory
              01073 ;------------------------------
299C D9       01074         EXX                     ;the alts
299D          01075         @@PEOF
299D+3E41     01076         LD      A,65
299F+EF       01077         RST     40
29A0 FE1C     01078         CP      1CH
29A2 C2752D   01079         JP      NZ,FILERR
29A5          01080         @@BKSP
29A5+3E3D     01081         LD      A,61
29A7+EF       01082         RST     40
29A8          01083         @@BKSP
29A8+3E3D     01084         LD      A,61
29AA+EF       01085         RST     40
29AB C2752D   01086         JP      NZ,FILERR
29AE D9       01087         EXX                     ;return condition
29AF 11A931   01088         LD      DE,CBUFFER
29B2 CD252D   01089         CALL    POSN            ;point to directory org
29B5 0E00     01090         LD      C,0             ;establish count
29B7 CD382D   01091 ROLL1   CALL    GETCHAR
29BA FE1C     01092         CP      1CH             ;EOF?
29BC CAD92A   01093         JP      Z,PEXIT
29BF FE80     01094 NEXTD   CP      80H             ;last char?
29C1 3804     01095         JR      C,ROLL2         ;else no end
29C3 EE80     01096         XOR     80H             ;reset 7
29C5 1805     01097         JR      PRTDIR          ;end it
29C7 0C       01098 ROLL2   INC     C               ;1 more char
29C8 12       01099         LD      (DE),A          ;install it
29C9 13       01100         INC     DE
29CA 18EB     01101         JR      ROLL1
29CC F5       01102 PRTDIR  PUSH    AF              ;save character
29CD CD382D   01103         CALL    GETCHAR         ;EOF test to stop
29D0 2808     01104         JR      Z,NOEND         ;successful get
29D2 FE1C     01105         CP      1CH             ;printing garbage
29D4 2004     01106         JR      NZ,NOEND        ;for last key
29D6 F1       01107         POP     AF              ;restore stack & blow
29D7 C3D92A   01108         JP      PEXIT
29DA D9       01109 NOEND   EXX                     ;restore file
29DB          01110         @@BKSP
29DB+3E3D     01111         LD      A,61
29DD+EF       01112         RST     40
29DE D9       01113         EXX
29DF 0C       01114         INC     C               ;place last char
29E0          01115         @@VDCT GETCUR
              01116         IFGT    GETCUR,0
29E0+0604     01117         LD      B,GETCUR
              01118         ENDIF
              01119         IFGT    0,0
              01120         LD      C,0
              01121         ENDIF
              01122         IFEQ    00H,0
              01123         IFGT    00H,0
              01124         LD      H,
              01125         ENDIF
              01126         IFGT    00H,0
              01127         LD      L,
              01128         ENDIF
              01129         ENDIF
              01130         IFGT    00H,0
              01131         LD      HL,
              01132         ENDIF
29E2+3E0F     01133         LD      A,15
29E4+EF       01134         RST     40
29E5 F1       01135         POP     AF
29E6 12       01136         LD      (DE),A
29E7 FDCB0066 01137         BIT     4,(IY)          ;is this a search
29EB C4482D   01138         CALL    NZ,SEARCH
29EE 3845     01139         JR      C,NXTDIR        ;skip it if no cmat
29F0 3E13     01140         LD      A,19            ;buffer < 20
29F2 91       01141         SUB     C
29F3 FD7102   01142         LD      (IY+2),C
29F6 3856     01143         JR      C,CHKLIN
29F8 3C       01144         INC     A               ;fill space out
29F9 47       01145         LD      B,A             ;& store result
29FA 3E20     01146         LD      A,20H           ;& puff up buffer
29FC 13       01147 ROLLSP  INC     DE
29FD 12       01148         LD      (DE),A
29FE 10FC     01149         DJNZ    ROLLSP
2A00 0E14     01150         LD      C,20            ;update cursor
2A02 09       01151         ADD     HL,BC
2A03 7C       01152         LD      A,H             ;check for 22-79
2A04 FE16     01153         CP      22
2A06 201E     01154         JR      NZ,CDSP         ;all is ok
2A08 7D       01155         LD      A,L
2A09 FE4F     01156         CP      79
2A0B 3819     01157         JR      C,CDSP          ;still ok
2A0D FDCB01D6 01158         SET     2,(IY+1)        ;inform exit routine
2A11 FD4602   01159         LD      B,(IY+2)
2A14 21A931   01160         LD      HL,CBUFFER      ;reset poiinter
2A17 4E       01161 DSP3    LD      C,(HL)
2A18          01162         @@DSP
2A18+3E02     01163         LD      A,2
2A1A+EF       01164         RST     40
2A1B CD8228   01165         CALL    CHKPRT
2A1E 23       01166         INC     HL
2A1F 10F6     01167         DJNZ    DSP3
2A21 0EFF     01168         LD      C,0FFH          ;set a flag
2A23 C3C72A   01169         JP      HALTVID
2A26 0614     01170 CDSP    LD      B,20            ;buffer len
2A28 21A931   01171         LD      HL,CBUFFER
2A2B 4E       01172 ROLL3   LD      C,(HL)          ;normal path
2A2C          01173         @@DSP
2A2C+3E02     01174         LD      A,2
2A2E+EF       01175         RST     40
2A2F CD8228   01176         CALL    CHKPRT
2A32 23       01177         INC     HL
2A33 10F6     01178         DJNZ    ROLL3
2A35 0603     01179 NXTDIR  LD      B,3
2A37 CD382D   01180 SLIDE   CALL    GETCHAR
2A3A 10FB     01181         DJNZ    SLIDE
2A3C FE1C     01182         CP      1CH
2A3E CAD92A   01183         JP      Z,PEXIT
2A41 FE80     01184         CP      80H
2A43 D2D92A   01185         JP      NC,PEXIT
2A46 11A931   01186         LD      DE,CBUFFER
2A49 0E00     01187         LD      C,0
2A4B C3BF29   01188         JP      NEXTD
2A4E 7D       01189 CHKLIN  LD      A,L             ;lsb cursor
2A4F FD8602   01190         ADD     A,(IY+2)        ;current len + cursor
2A52 FE50     01191         CP      80              ;chk for line wrap
2A54 303F     01192         JR      NC,WRAP
2A56 47       01193         LD      B,A             ;save tab
2A57 AF       01194         XOR     A
2A58 C614     01195 ADDTAB  ADD     A,20            ;inc till A > B
2A5A B8       01196         CP      B
2A5B 38FB     01197         JR      C,ADDTAB
2A5D 28F9     01198         JR      Z,ADDTAB
2A5F 90       01199         SUB     B               ;compute spaces needed
2A60 47       01200         LD      B,A
2A61 FD8602   01201         ADD     A,(IY+2)
2A64 FD7702   01202         LD      (IY+2),A
2A67 3E20     01203         LD      A,20H
2A69 13       01204 PAD2    INC     DE
2A6A 12       01205         LD      (DE),A
2A6B 10FC     01206         DJNZ    PAD2
2A6D          01207         @@VDCT  GETCUR
              01208         IFGT    GETCUR,0
2A6D+0604     01209         LD      B,GETCUR
              01210         ENDIF
              01211         IFGT    0,0
              01212         LD      C,0
              01213         ENDIF
              01214         IFEQ    00H,0
              01215         IFGT    00H,0
              01216         LD      H,
              01217         ENDIF
              01218         IFGT    00H,0
              01219         LD      L,
              01220         ENDIF
              01221         ENDIF
              01222         IFGT    00H,0
              01223         LD      HL,
              01224         ENDIF
2A6F+3E0F     01225         LD      A,15
2A71+EF       01226         RST     40
2A72 09       01227         ADD     HL,BC           ;POSITION
2A73 7C       01228         LD      A,H             ;check for 22/79
2A74 FE16     01229         CP      22
2A76 200B     01230         JR      NZ,CDSP1
2A78 7D       01231         LD      A,L
2A79 FE4F     01232         CP      79
2A7B 3806     01233         JR      C,CDSP1         ;still ok
2A7D FDCB01D6 01234         SET     2,(IY+1)        ;inform exit routine
2A81 1844     01235         JR      HALTVID
2A83 21A931   01236 CDSP1   LD      HL,CBUFFER
2A86 FD4602   01237         LD      B,(IY+2)
2A89 4E       01238 DSP2    LD      C,(HL)
2A8A          01239         @@DSP
2A8A+3E02     01240         LD      A,2
2A8C+EF       01241         RST     40
2A8D CD8228   01242         CALL    CHKPRT
2A90 23       01243         INC     HL
2A91 10F6     01244         DJNZ    DSP2
2A93 18A0     01245         JR      NXTDIR
2A95          01246 WRAP    @@VDCT GETCUR
              01247         IFGT    GETCUR,0
2A95+0604     01248         LD      B,GETCUR
              01249         ENDIF
              01250         IFGT    0,0
              01251         LD      C,0
              01252         ENDIF
              01253         IFEQ    00H,0
              01254         IFGT    00H,0
              01255         LD      H,
              01256         ENDIF
              01257         IFGT    00H,0
              01258         LD      L,
              01259         ENDIF
              01260         ENDIF
              01261         IFGT    00H,0
              01262         LD      HL,
              01263         ENDIF
2A97+3E0F     01264         LD      A,15
2A99+EF       01265         RST     40
2A9A 0600     01266         LD      B,0
2A9C FD4E02   01267         LD      C,(IY+2)
2A9F 09       01268         ADD     HL,BC
2AA0 7C       01269         LD      A,H             ;check for 22/79
2AA1 FE16     01270         CP      22
2AA3 2011     01271         JR      NZ,CDSP2
2AA5 7D       01272         LD      A,L
2AA6 FE4F     01273         CP      79
2AA8 380C     01274         JR      C,CDSP2         ;still ok
2AAA FDCB01D6 01275         SET     2,(IY+1)        ;inform exit routine
2AAE FDCB01DE 01276         SET     3,(IY+1)        ;flag wrap in last video
2AB2 D5       01277         PUSH    DE
2AB3 C5       01278         PUSH    BC
2AB4 1811     01279         JR      HALTVID
2AB6 0E0D     01280 CDSP2   LD      C,0DH           ;end the line
2AB8 D5       01281         PUSH    DE
2AB9          01282         @@DSP
2AB9+3E02     01283         LD      A,2
2ABB+EF       01284         RST     40
2ABC CD8228   01285         CALL    CHKPRT
2ABF D1       01286         POP     DE
2AC0          01287         @@VDCT GETCUR
              01288         IFGT    GETCUR,0
2AC0+0604     01289         LD      B,GETCUR
              01290         ENDIF
              01291         IFGT    0,0
              01292         LD      C,0
              01293         ENDIF
              01294         IFEQ    00H,0
              01295         IFGT    00H,0
              01296         LD      H,
              01297         ENDIF
              01298         IFGT    00H,0
              01299         LD      L,
              01300         ENDIF
              01301         ENDIF
              01302         IFGT    00H,0
              01303         LD      HL,
              01304         ENDIF
2AC2+3E0F     01305         LD      A,15
2AC4+EF       01306         RST     40
2AC5 1887     01307         JR      CHKLIN
2AC7 79       01308 HALTVID LD      A,C
2AC8 FEFF     01309         CP      0FFH
2ACA 200D     01310         JR      NZ,PEXIT
2ACC 21A22B   01311         LD      HL,ABNORM
2ACF 22A02B   01312         LD      (NORM+1),HL
2AD2 FDCB007E 01313         BIT     7,(IY)          ;are we printing?
2AD6 C2872B   01314         JP      NZ,CLEARGO
2AD9 0E0D     01315 PEXIT   LD      C,13
2ADB CD8228   01316         CALL    CHKPRT          ;liberate dir
2ADE FDCB005E 01317         BIT     3,(IY)          ;global in progress?
2AE2 C2922C   01318         JP      NZ,GLOBAL4
2AE5          01319         @@DSPLY SELMESS         ;ask if it's wanted
              01320         IFEQ    01H,1
2AE5+216330   01321         LD      HL,SELMESS
              01322         ENDIF
2AE8+3E0A     01323         LD      A,10
2AEA+EF       01324         RST     40
2AEB FDCB00A6 01325         RES     4,(IY)
2AEF 010020   01326         LD      BC,2000H        ;allow 32 chars
2AF2 21FA31   01327         LD      HL,KEYWORD
2AF5          01328 PEXIT2  @@KEYIN                 ;leap out brk or ent
2AF5+3E09     01329         LD      A,9
2AF7+EF       01330         RST     40
2AF8 3837     01331         JR      C,EXIT          ;break pressed
2AFA 04       01332         INC     B               ;test zero chars
2AFB 05       01333         DEC     B
2AFC CA802B   01334         JP      Z,TESTHALT      ;re-direct or cont?
2AFF 7D       01335         LD      A,L             ;point to last char
2B00 80       01336         ADD     A,B
2B01 3001     01337         JR      NC,ADDOVER
2B03 24       01338         INC     H
2B04 6F       01339 ADDOVER LD      L,A
2B05 3E0D     01340         LD      A,13
2B07 77       01341         LD      (HL),A
2B08 FDCB015E 01342         BIT     3,(IY+1)        ;stacked?
2B0C 2802     01343         JR      Z,NSTK
2B0E D1       01344         POP     DE
2B0F D1       01345         POP     DE
2B10 118031   01346 NSTK    LD      DE,FCB
2B13 FDCB019E 01347         RES     3,(IY+1)        ;reset stack flag
2B17 FDCB0056 01348         BIT     2,(IY)          ;came from direct?
2B1B CA5026   01349         JP      Z,RETRY2
2B1E FDCB00CE 01350         SET     1,(IY)          ;flag key
2B22 C39A27   01351         JP      RETRY
              01352 ERREXIT
2B25 6F       01353         LD      L,A             ;save error number
2B26 F6C0     01354         OR      0C0H            ; Set for short ERROR
2B28 4F       01355         LD      C,A             ;Put error in C
2B29          01356         @@ERROR                 ;show it
2B29+3E1A     01357         LD      A,26
2B2B+EF       01358         RST     40
2B2C 2600     01359         LD      H,0
2B2E          01360         @@EXIT
2B2E+3E16     01361         LD      A,22
2B30+EF       01362         RST     40
              01363 ;
              01364 EXIT
              01365         IF      CLS
2B31          01366         @@CLS
2B31+3E69     01367         LD      A,105
2B33+EF       01368         RST     40
              01369         ELSE
              01370         @@DSPLY CLEAR
              01371         ENDIF
2B34 3A7A31   01372 EXNCLS  LD      A,(@OPREG)      ;restore video???
2B37 CB5F     01373         BIT     3,A             ;test for REV
2B39 2004     01374         JR      NZ,REVON
2B3B 0E11     01375         LD      C,17            ;turn off RV
2B3D 1802     01376         JR      @EXIT3
2B3F 0E10     01377 REVON   LD      C,16
2B41          01378 @EXIT3  @@DSP                   ;turn on RV
2B41+3E02     01379         LD      A,2
2B43+EF       01380         RST     40
2B44 3A7B31   01381         LD      A,(CCHAR)       ;restore user's cursor
2B47 4F       01382         LD      C,A
2B48          01383         @@VDCT CURSCH
              01384         IFGT    CURSCH,0
2B48+0608     01385         LD      B,CURSCH
              01386         ENDIF
              01387         IFGT    0,0
              01388         LD      C,0
              01389         ENDIF
              01390         IFEQ    00H,0
              01391         IFGT    00H,0
              01392         LD      H,
              01393         ENDIF
              01394         IFGT    00H,0
              01395         LD      L,
              01396         ENDIF
              01397         ENDIF
              01398         IFGT    00H,0
              01399         LD      HL,
              01400         ENDIF
2B4A+3E0F     01401         LD      A,15
2B4C+EF       01402         RST     40
2B4D FDE5     01403         PUSH    IY
2B4F          01404         @@FLAGS
2B4F+3E65     01405         LD      A,101
2B51+EF       01406         RST     40
2B52 E1       01407         POP     HL
2B53 CB76     01408         BIT     6,(HL)          ;video active
2B55 CA722B   01409         JP      Z,DONE
2B58          01410         @@VDCT PUTVID,,,,VIDBUFF;restore video
              01411         IFGT    PUTVID,0
2B58+0605     01412         LD      B,PUTVID
              01413         ENDIF
              01414         IFGT    0,0
              01415         LD      C,0
              01416         ENDIF
              01417         IFEQ    07H,0
              01418         IFGT    00H,0
              01419         LD      H,
              01420         ENDIF
              01421         IFGT    00H,0
              01422         LD      L,
              01423         ENDIF
              01424         ENDIF
              01425         IFGT    07H,0
2B5A+213F33   01426         LD      HL,VIDBUFF
              01427         ENDIF
2B5D+3E0F     01428         LD      A,15
2B5F+EF       01429         RST     40
2B60 2A7C31   01430         LD      HL,(CURSOR)     ;curs buffer
2B63 FDCB024E 01431         BIT     1,(IY+2)        ;CMDR function on
2B67 2004     01432         JR      NZ,NOHLDEC      ;skip hl DEC
2B69 25       01433         DEC     H
2B6A 25       01434         DEC     H
2B6B 25       01435         DEC     H
2B6C 25       01436         DEC     H
2B6D          01437 NOHLDEC @@VDCT PUTCUR           ;replace cursor
              01438         IFGT    PUTCUR,0
2B6D+0603     01439         LD      B,PUTCUR
              01440         ENDIF
              01441         IFGT    0,0
              01442         LD      C,0
              01443         ENDIF
              01444         IFEQ    00H,0
              01445         IFGT    00H,0
              01446         LD      H,
              01447         ENDIF
              01448         IFGT    00H,0
              01449         LD      L,
              01450         ENDIF
              01451         ENDIF
              01452         IFGT    00H,0
              01453         LD      HL,
              01454         ENDIF
2B6F+3E0F     01455         LD      A,15
2B71+EF       01456         RST     40
2B72 0E0D     01457 DONE    LD      C,13            ;clear printer if necc
2B74 CD8228   01458         CALL    CHKPRT
2B77          01459         @@CKBRKC
2B77+3E6A     01460         LD      A,106
2B79+EF       01461         RST     40
2B7A 210000   01462         LD      HL,0
2B7D          01463         @@EXIT
2B7D+3E16     01464         LD      A,22
2B7F+EF       01465         RST     40
2B80 FDCB0156 01466 TESTHALT        BIT 2,(IY+1)    ;middle of directory?
2B84 CA6629   01467         JP      Z,FILEDIR
              01468 CLEARGO
              01469         IF      CLS
2B87          01470         @@CLS
2B87+3E69     01471         LD      A,105
2B89+EF       01472         RST     40
              01473         ELSE
              01474         LD      C,1CH           ;@cls
              01475         @@DSP
              01476         LD      C,1FH
              01477         @@DSP
              01478         ENDIF
2B8A 0E0D     01479         LD      C,13
2B8C CD8228   01480         CALL    CHKPRT
2B8F FD4602   01481         LD      B,(IY+2)
2B92 21A931   01482         LD      HL,CBUFFER
2B95 FDCB0196 01483         RES     2,(IY+1)        ;reset flag
2B99 FDCB015E 01484         BIT     3,(IY+1)        ;test for wrap
2B9D 200F     01485         JR      NZ,WRAP2        ;sigh
2B9F C3892A   01486 NORM    JP      DSP2
2BA2 21892A   01487 ABNORM  LD      HL,DSP2
2BA5 22A02B   01488         LD      (NORM+1),HL             ;restore code
2BA8 210000   01489         LD      HL,0
2BAB C3352A   01490         JP      NXTDIR
2BAE FDCB019E 01491 WRAP2   RES     3,(IY+1)        ;waste 4 more bytes
2BB2 C1       01492         POP     BC              ;recover count in C
2BB3 D1       01493         POP     DE              ;recover buffer pointer
2BB4 C34E2A   01494         JP      CHKLIN
              01495 ;-------------------------------------
              01496 ;print all help files in system or search globally
              01497 ;-------------------------------------
2BB7 213F3B   01498 DIRECT  LD      HL,DIRBUFF      ;get relavant files
2BBA CDEF2C   01499         CALL    SETDIR
2BBD 0608     01500         LD      B,8             ;read drives 0-7
2BBF 3E08     01501 DRLOOP  LD      A,8             ;current loop
2BC1 90       01502         SUB     B               ;calc drive #
2BC2 4F       01503         LD      C,A             ;drive into C
2BC3 C5       01504         PUSH    BC              ;save iteration
2BC4          01505         @@CKDRV
2BC4+3E21     01506         LD      A,33
2BC6+EF       01507         RST     40
2BC7 200B     01508         JR      NZ,NOTHIM       ;don't do him
2BC9 0603     01509         LD      B,3             ;dodir function
2BCB          01510         @@DODIR
2BCB+3E22     01511         LD      A,34
2BCD+EF       01512         RST     40
2BCE CDFE2C   01513         CALL    PNTHL           ;locate end of buffer
2BD1 CDEF2C   01514         CALL    SETDIR
2BD4 C1       01515 NOTHIM  POP     BC              ;recover iteration
2BD5 10E8     01516         DJNZ    DRLOOP          ;and do next drive
2BD7 36FF     01517         LD      (HL),255
2BD9 E1       01518         POP     HL              ;recover command buffer
2BDA 7E       01519         LD      A,(HL)          ;vector if necessary
2BDB FE2A     01520         CP      '*'             ;global call?
2BDD 285D     01521         JR      Z,GLOBAL
2BDF          01522         @@DSPLY SIGNON          ;greet the masses
              01523         IFEQ    01H,1
2BDF+217A2D   01524         LD      HL,SIGNON
              01525         ENDIF
2BE2+3E0A     01526         LD      A,10
2BE4+EF       01527         RST     40
2BE5          01528         @@DSPLY DIRMESS
              01529         IFEQ    01H,1
2BE5+21062E   01530         LD      HL,DIRMESS
              01531         ENDIF
2BE8+3E0A     01532         LD      A,10
2BEA+EF       01533         RST     40
2BEB 213F3B   01534         LD      HL,DIRBUFF      ;point to files
2BEE 7E       01535 DIRECT1 LD      A,(HL)          ;end of buffer?
2BEF FEFF     01536         CP      0FFH
2BF1 282B     01537         JR      Z,ENDDIR        ;done
2BF3 010500   01538         LD      BC,5
2BF6 09       01539         ADD     HL,BC           ;point HL to FSPEC
2BF7 0608     01540         LD      B,8             ;print it in loop
2BF9 4E       01541 DRLOOP2 LD      C,(HL)
2BFA          01542         @@DSP
2BFA+3E02     01543         LD      A,2
2BFC+EF       01544         RST     40
2BFD 23       01545         INC     HL              ;next char
2BFE 10F9     01546         DJNZ    DRLOOP2
2C00 E5       01547         PUSH    HL
2C01          01548         @@VDCT GETCUR
              01549         IFGT    GETCUR,0
2C01+0604     01550         LD      B,GETCUR
              01551         ENDIF
              01552         IFGT    0,0
              01553         LD      C,0
              01554         ENDIF
              01555         IFEQ    00H,0
              01556         IFGT    00H,0
              01557         LD      H,
              01558         ENDIF
              01559         IFGT    00H,0
              01560         LD      L,
              01561         ENDIF
              01562         ENDIF
              01563         IFGT    00H,0
              01564         LD      HL,
              01565         ENDIF
2C03+3E0F     01566         LD      A,15
2C05+EF       01567         RST     40
2C06 010800   01568         LD      BC,8            ;tab over 8
2C09 09       01569         ADD     HL,BC
2C0A 7D       01570         LD      A,L             ;test for poo
2C0B FE50     01571         CP      80
2C0D 3803     01572         JR      C,TABOK         ;no wrap this time
2C0F 2E00     01573         LD      L,0
2C11 24       01574         INC     H
2C12          01575 TABOK   @@VDCT PUTCUR
              01576         IFGT    PUTCUR,0
2C12+0603     01577         LD      B,PUTCUR
              01578         ENDIF
              01579         IFGT    0,0
              01580         LD      C,0
              01581         ENDIF
              01582         IFEQ    00H,0
              01583         IFGT    00H,0
              01584         LD      H,
              01585         ENDIF
              01586         IFGT    00H,0
              01587         LD      L,
              01588         ENDIF
              01589         ENDIF
              01590         IFGT    00H,0
              01591         LD      HL,
              01592         ENDIF
2C14+3E0F     01593         LD      A,15
2C16+EF       01594         RST     40
2C17 E1       01595         POP     HL              ;restore pointer
2C18 010500   01596         LD      BC,5
2C1B 09       01597         ADD     HL,BC           ;point to end of entry
2C1C 18D0     01598         JR      DIRECT1
2C1E 218D30   01599 ENDDIR  LD      HL,CATMESS      ;ask if wanted
2C21          01600         @@DSPLY
              01601         IFEQ    00H,1
              01602         LD      HL,
              01603         ENDIF
2C21+3E0A     01604         LD      A,10
2C23+EF       01605         RST     40
2C24 21A931   01606         LD      HL,CBUFFER      ;point to parm getter
2C27 010020   01607         LD      BC,2000H        ;Allow 32 CHARS
2C2A          01608         @@KEYIN
2C2A+3E09     01609         LD      A,9
2C2C+EF       01610         RST     40
2C2D DA312B   01611         JP      C,EXIT
2C30 04       01612         INC     B
2C31 05       01613         DEC     B
2C32 CA312B   01614         JP      Z,EXIT
2C35 FDCB0096 01615         RES     2,(IY)          ;turn off file flag
2C39 C35026   01616         JP      RETRY2
2C3C FDCB00DE 01617 GLOBAL  SET     3,(IY)          ;establish global flag
2C40 11FA31   01618         LD      DE,KEYWORD
2C43 23       01619 GLOBAL1 INC     HL              ;point past *
2C44 7E       01620         LD      A,(HL)          ;xfer to key buffer
2C45 FE0D     01621         CP      13              ;end of key
2C47 2804     01622         JR      Z,GLOBAL2
2C49 12       01623         LD      (DE),A
2C4A 13       01624         INC     DE
2C4B 18F6     01625         JR      GLOBAL1
2C4D 12       01626 GLOBAL2 LD      (DE),A          ;plant CR
2C4E 213F3B   01627         LD      HL,DIRBUFF      ;point to buffer
2C51 E5       01628 GLOBAL3 PUSH    HL
2C52 210C31   01629         LD      HL,GLOBMES
2C55          01630         @@DSPLY         ;global search signon
              01631         IFEQ    00H,1
              01632         LD      HL,
              01633         ENDIF
2C55+3E0A     01634         LD      A,10
2C57+EF       01635         RST     40
2C58 E1       01636         POP     HL
2C59 7E       01637         LD      A,(HL)          ;seek eob marker
2C5A FEFF     01638         CP      0FFH
2C5C 2849     01639         JR      Z,ENDGLOB       ;exit
2C5E 010500   01640         LD      BC,5
2C61 09       01641         ADD     HL,BC           ;point to fspec
2C62 E5       01642         PUSH    HL              ;save pointer
2C63 E5       01643         PUSH    HL
2C64 211800   01644         LD      HL,24           ;place to file
2C67          01645         @@VDCT PUTCUR
              01646         IFGT    PUTCUR,0
2C67+0603     01647         LD      B,PUTCUR
              01648         ENDIF
              01649         IFGT    0,0
              01650         LD      C,0
              01651         ENDIF
              01652         IFEQ    00H,0
              01653         IFGT    00H,0
              01654         LD      H,
              01655         ENDIF
              01656         IFGT    00H,0
              01657         LD      L,
              01658         ENDIF
              01659         ENDIF
              01660         IFGT    00H,0
              01661         LD      HL,
              01662         ENDIF
2C69+3E0F     01663         LD      A,15
2C6B+EF       01664         RST     40
2C6C E1       01665         POP     HL
2C6D 0608     01666         LD      B,8
2C6F 4E       01667 GLLOOP  LD      C,(HL)          ;prt fspec
2C70          01668         @@DSP
2C70+3E02     01669         LD      A,2
2C72+EF       01670         RST     40
2C73 23       01671         INC     HL
2C74 10F9     01672         DJNZ    GLLOOP
2C76 E1       01673         POP     HL
2C77 010D00   01674         LD      BC,13
2C7A 09       01675         ADD     HL,BC
2C7B E5       01676         PUSH    HL
2C7C AF       01677         XOR     A               ;reset hl
2C7D ED42     01678         SBC     HL,BC
2C7F 0E0D     01679         LD      C,13
2C81          01680         @@DSP
2C81+3E02     01681         LD      A,2
2C83+EF       01682         RST     40
2C84 010800   01683         LD      BC,8            ;set xfer of fspec to
2C87 11A931   01684         LD      DE,CBUFFER
2C8A EDB0     01685         LDIR
2C8C 21A931   01686         LD      HL,CBUFFER
2C8F C3C926   01687         JP      FILES
2C92 212631   01688 GLOBAL4 LD      HL,GPROMPT
2C95          01689         @@DSPLY
              01690         IFEQ    00H,1
              01691         LD      HL,
              01692         ENDIF
2C95+3E0A     01693         LD      A,10
2C97+EF       01694         RST     40
2C98          01695         @@KEY
2C98+3E01     01696         LD      A,1
2C9A+EF       01697         RST     40
2C9B FE80     01698         CP      80H
2C9D CA312B   01699         JP      Z,EXIT          ;leve if break
2CA0 FE0D     01700         CP      13
2CA2 20EE     01701         JR      NZ,GLOBAL4
2CA4 E1       01702 GLOBAL5 POP     HL
2CA5 18AA     01703         JR      GLOBAL3
2CA7 216031   01704 ENDGLOB LD      HL,ENDG
2CAA          01705         @@DSPLY
              01706         IFEQ    00H,1
              01707         LD      HL,
              01708         ENDIF
2CAA+3E0A     01709         LD      A,10
2CAC+EF       01710         RST     40
2CAD FDCB009E 01711         RES     3,(IY)
2CB1 21B930   01712         LD      HL,GLEXIT$
2CB4          01713         @@DSPLY
              01714         IFEQ    00H,1
              01715         LD      HL,
              01716         ENDIF
2CB4+3E0A     01717         LD      A,10
2CB6+EF       01718         RST     40
2CB7 FDCB0096 01719         RES     2,(IY)
2CBB FDCB008E 01720         RES     1,(IY)
2CBF          01721         @@KEY
2CBF+3E01     01722         LD      A,1
2CC1+EF       01723         RST     40
2CC2 C3312B   01724         JP      EXIT
              01725 ;-----------------------------------------
              01726 ;major subrroutines
              01727 ;--------------------------------------------
2CC5 C5       01728 ADDSP   PUSH    BC
2CC6 23       01729         INC     HL
2CC7 0E20     01730         LD      C,20H
2CC9          01731         @@DSP
2CC9+3E02     01732         LD      A,2
2CCB+EF       01733         RST     40
2CCC CD8228   01734         CALL    CHKPRT
2CCF FDCB018E 01735         RES     1,(IY+1)
2CD3 C1       01736         POP     BC
2CD4 C9       01737         RET
2CD5 C5       01738 REVERSE PUSH    BC
2CD6 FDCB0166 01739         BIT     4,(IY+1)        ;in progress?
2CDA 200B     01740         JR      NZ,RVOFF        ;turn off reverse
2CDC 0E10     01741         LD      C,16            ;turn on reverse
2CDE FDCB01E6 01742         SET     4,(IY+1)        ;set flag
2CE2          01743 RVGO    @@DSP
2CE2+3E02     01744         LD      A,2
2CE4+EF       01745         RST     40
2CE5 C1       01746         POP     BC
2CE6 C9       01747         RET
2CE7 0E11     01748 RVOFF   LD      C,17            ;reset reverse
2CE9 FDCB01A6 01749         RES     4,(IY+1)        ;reset flag
2CED 18F3     01750         JR      RVGO
2CEF 117731   01751 SETDIR  LD      DE,DEXT         ;point to default ext
2CF2 0603     01752         LD      B,3             ;set up xfer to HL buffer
2CF4 1A       01753 SDLOOP  LD      A,(DE)
2CF5 77       01754         LD      (HL),A
2CF6 23       01755         INC     HL
2CF7 13       01756         INC     DE
2CF8 10FA     01757         DJNZ SDLOOP
2CFA 2B       01758         DEC     HL
2CFB 2B       01759         DEC     HL
2CFC 2B       01760         DEC     HL
2CFD C9       01761         RET
2CFE 3EFF     01762 PNTHL   LD      A,0FFH          ;buffer end marker
2D00 BE       01763 PNTHL1  CP      (HL)
2D01 C8       01764         RET     Z
2D02 23       01765         INC     HL
2D03 18FB     01766         JR      PNTHL1
2D05 23       01767 VALIDP  INC     HL              ;point to char after matc
2D06 7E       01768         LD      A,(HL)          ;test for allowable chars
2D07 FE0D     01769         CP      13              ;CR ok
2D09 280C     01770         JR      Z,PARMOK
2D0B FE29     01771         CP      ')'
2D0D 2808     01772         JR      Z,PARMOK
2D0F FE2C     01773         CP      ','
2D11 2804     01774         JR      Z,PARMOK
2D13 3E01     01775         LD      A,1
2D15 1802     01776         JR      LEAVE
2D17 2B       01777 PARMOK  DEC     HL
2D18 AF       01778         XOR     A
2D19 3C       01779 LEAVE   INC     A
2D1A 3D       01780         DEC     A
2D1B C9       01781         RET
2D1C D9       01782 SETUP   EXX                     ;filework in alts
2D1D 118031   01783         LD      DE,FCB
2D20 213D33   01784         LD      HL,UREC
2D23 D9       01785         EXX
2D24 C9       01786         RET
2D25 CD382D   01787 POSN    CALL    GETCHAR         ;getchar
2D28 4F       01788         LD      C,A             ;lsb of desired
2D29 CD382D   01789         CALL    GETCHAR
2D2C 47       01790         LD      B,A             ;msb
2D2D C5       01791         PUSH    BC              ;send to alts
2D2E D9       01792         EXX
2D2F C1       01793         POP     BC
2D30          01794         @@POSN
2D30+3E42     01795         LD      A,66
2D32+EF       01796         RST     40
2D33 D9       01797         EXX
2D34 C8       01798         RET     Z               ;operation successful
2D35 C3752D   01799         JP      FILERR
2D38 D9       01800 GETCHAR EXX                     ;read, check, store in A
2D39          01801         @@READ
2D39+3E43     01802         LD      A,67
2D3B+EF       01803         RST     40
2D3C 2807     01804         JR      Z,GETOK
2D3E FE1C     01805         CP      1CH             ;if eof return
2D40 2003     01806         JR      NZ,GETOK
2D42 B7       01807         OR      A               ;reset zero flag
2D43 1801     01808         JR      BACK
2D45 7E       01809 GETOK   LD      A,(HL)
2D46 D9       01810 BACK    EXX
2D47 C9       01811         RET
2D48 E5       01812 SEARCH  PUSH    HL
2D49 D5       01813         PUSH    DE
2D4A 11A931   01814         LD      DE,CBUFFER
2D4D 21FA31   01815         LD      HL,KEYWORD      ;see if key meets spec
2D50 7E       01816 SEEK    LD      A,(HL)          ;char form pattern
2D51 FE0D     01817         CP      13              ;if we get this far match
2D53 2809     01818         JR      Z,NCARRY        ;ok to print
2D55 47       01819         LD      B,A             ;check against proposed
2D56 1A       01820         LD      A,(DE)
2D57 B8       01821         CP      B
2D58 2009     01822         JR      NZ,CARRY        ;blowit
2D5A 23       01823         INC     HL
2D5B 13       01824         INC     DE
2D5C 18F2     01825         JR      SEEK
2D5E D1       01826 NCARRY  POP     DE
2D5F E1       01827         POP     HL
2D60 D0       01828         RET     NC
2D61 3F       01829         CCF
2D62 C9       01830         RET
2D63 D1       01831 CARRY   POP     DE
2D64 E1       01832         POP     HL
2D65 D8       01833         RET     C
2D66 3F       01834         CCF
2D67 C9       01835         RET
2D68 21D230   01836 PARMERR LD      HL,PARMESS
2D6B          01837 ERROR2  @@LOGOT
              01838         IFEQ    00H,1
              01839         LD      HL,
              01840         ENDIF
2D6B+3E0C     01841         LD      A,12
2D6D+EF       01842         RST     40
2D6E FD360000 01843         LD      (IY),0
2D72 C3342B   01844         JP      EXNCLS
2D75 21F430   01845 FILERR  LD      HL,FILERMES
2D78 18F1     01846         JR      ERROR2
              01847 ;----------------------------------
              01848 ;message prompts etc
              01849 ;----------------------------------
2D7A 1C       01850 SIGNON  DB      1CH,1FH,'HELP System'
     1F 48 45 4C 50 20 53 79
     73 74 65 6D 
2D87          01851 *GET    CLIENT:3
              01852 ;CLIENT/ASM - File to establish sign-on headers
              01853 ; and version numbers.
              01854 ;
              01855 ; EACH STRING SHOULD CONTAIN ONLY 63 CHARACTERS !!
              01856 ;
              01857         IF      @BLD631
              01858 ;                12345678901234567890123456789012345678901234567890
2D87 20       01859         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 
2DB9 49       01860         DB      'Inc.,       ',10       ;<631>
     6E 63 2E 2C 20 20 20 20
     20 20 20 0A 
              01861         ELSE
              01862         DB      ' - 6.3.0 - Copyright 1982/83/84/86 by Logical Syst'
              01863         DB      'ems, Inc.   ',10
              01864         ENDIF
              01865 ;
              01866 ;       DB      'All Rights Reserved. Licensed 1982/83/84 to Tandy '
              01867 ;       DB      'Corporation.',10,13
              01868 ;
              01869 ;       DB      'All Rights Reserved. Beta-TEST Level/AD, DO NOT DI'
              01870 ;       DB      'STRIBUTE !! ',10,13
              01871 ;       DB      'All Rights reserved by LSI, 8970 N. 55th St. Milwa'
              01872 ;       DB      'ukee, Wisc. ',10,13
2DC6 41       01873         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 
2DF8 72       01874         DB      'rohibited.  ',10,13
     6F 68 69 62 69 74 65 64
     2E 20 20 0A 0D 
2E06 20       01875 DIRMESS DB      '   ',16,' HELP [category] [*] [keyword] [(parameter)] '
     20 20 10 20 48 45 4C 50
     20 5B 63 61 74 65 67 6F
     72 79 5D 20 5B 2A 5D 20
     5B 6B 65 79 77 6F 72 64
     5D 20 5B 28 70 61 72 61
     6D 65 74 65 72 29 5D 20
2E37 11       01876         DB      17,10,10
     0A 0A 
2E3A 50       01877         DB      'Possible syntax combinations:',10,10
     6F 73 73 69 62 6C 65 20
     73 79 6E 74 61 78 20 63
     6F 6D 62 69 6E 61 74 69
     6F 6E 73 3A 0A 0A 
2E59 10       01878         DB      16,' HELP category ',17,' Displays list of '
     20 48 45 4C 50 20 63 61
     74 65 67 6F 72 79 20 11
     20 44 69 73 70 6C 61 79
     73 20 6C 69 73 74 20 6F
     66 20 
2E7C 6B       01879         DB      'keywords available in category.',10
     65 79 77 6F 72 64 73 20
     61 76 61 69 6C 61 62 6C
     65 20 69 6E 20 63 61 74
     65 67 6F 72 79 2E 0A 
2E9C 10       01880         DB      16,' HELP category keyword ',17,' Displays information '
     20 48 45 4C 50 20 63 61
     74 65 67 6F 72 79 20 6B
     65 79 77 6F 72 64 20 11
     20 44 69 73 70 6C 61 79
     73 20 69 6E 66 6F 72 6D
     61 74 69 6F 6E 20 
2ECB 69       01881         DB      'in category about keyword.',10
     6E 20 63 61 74 65 67 6F
     72 79 20 61 62 6F 75 74
     20 6B 65 79 77 6F 72 64
     2E 0A 
2EE6 10       01882         DB      16,' HELP *keyword ',17,' Displays information '
     20 48 45 4C 50 20 2A 6B
     65 79 77 6F 72 64 20 11
     20 44 69 73 70 6C 61 79
     73 20 69 6E 66 6F 72 6D
     61 74 69 6F 6E 20 
2F0D 69       01883         DB      'in each available category about keyword.',10,10
     6E 20 65 61 63 68 20 61
     76 61 69 6C 61 62 6C 65
     20 63 61 74 65 67 6F 72
     79 20 61 62 6F 75 74 20
     6B 65 79 77 6F 72 64 2E
     0A 0A 
2F38 50       01884         DB      'Parameters are:',10
     61 72 61 6D 65 74 65 72
     73 20 61 72 65 3A 0A 
2F48 20       01885         DB      '   P - Sends output to printer',10
     20 20 50 20 2D 20 53 65
     6E 64 73 20 6F 75 74 70
     75 74 20 74 6F 20 70 72
     69 6E 74 65 72 0A 
2F67 20       01886         DB      '   V - Cancels video restoration',10
     20 20 56 20 2D 20 43 61
     6E 63 65 6C 73 20 76 69
     64 65 6F 20 72 65 73 74
     6F 72 61 74 69 6F 6E 0A
2F88 20       01887         DB      '   R - Cancels reverse video',10
     20 20 52 20 2D 20 43 61
     6E 63 65 6C 73 20 72 65
     76 65 72 73 65 20 76 69
     64 65 6F 0A 
2FA5 20       01888         DB      '   S - Lets you enter a partial keyword name. '
     20 20 53 20 2D 20 4C 65
     74 73 20 79 6F 75 20 65
     6E 74 65 72 20 61 20 70
     61 72 74 69 61 6C 20 6B
     65 79 77 6F 72 64 20 6E
     61 6D 65 2E 20 
2FD3 48       01889         DB      'HELP displays a list of all',10
     45 4C 50 20 64 69 73 70
     6C 61 79 73 20 61 20 6C
     69 73 74 20 6F 66 20 61
     6C 6C 0A 
2FEF 20       01890         DB      '       keywords that begin with the partial name',10,10
     20 20 20 20 20 20 6B 65
     79 77 6F 72 64 73 20 74
     68 61 74 20 62 65 67 69
     6E 20 77 69 74 68 20 74
     68 65 20 70 61 72 74 69
     61 6C 20 6E 61 6D 65 0A
     0A 
3021 48       01891         DB      'HELP categories presently on line are:',13
     45 4C 50 20 63 61 74 65
     67 6F 72 69 65 73 20 70
     72 65 73 65 6E 74 6C 79
     20 6F 6E 20 6C 69 6E 65
     20 61 72 65 3A 0D 
3048 44       01892 FILMESS DB      'Directory for HELP file : ',3
     69 72 65 63 74 6F 72 79
     20 66 6F 72 20 48 45 4C
     50 20 66 69 6C 65 20 3A
     20 03 
3063 0A       01893 SELMESS DB      0AH,'Enter keyword or press  to exit: ',3
     45 6E 74 65 72 20 6B 65
     79 77 6F 72 64 20 6F 72
     20 70 72 65 73 73 20 3C
     42 52 45 41 4B 3E 20 74
     6F 20 65 78 69 74 3A 20
     03 
308D 0A       01894 CATMESS DB      10,10,'Enter category or press  to exit: ',3
     0A 45 6E 74 65 72 20 63
     61 74 65 67 6F 72 79 20
     6F 72 20 70 72 65 73 73
     20 3C 45 4E 54 45 52 3E
     20 74 6F 20 65 78 69 74
     3A 20 03 
30B9 0A       01895 GLEXIT$ DB      10,'Press  to exit: ',3
     50 72 65 73 73 20 3C 45
     4E 54 45 52 3E 20 74 6F
     20 65 78 69 74 3A 20 03
30D2 0A       01896 PARMESS DB      0AH,'Parameter Error - System Aborted',0DH
     50 61 72 61 6D 65 74 65
     72 20 45 72 72 6F 72 20
     2D 20 53 79 73 74 65 6D
     20 41 62 6F 72 74 65 64
     0D 
30F4 0A       01897 FILERMES        DB      0AH,'Source File Read Error',0DH
     53 6F 75 72 63 65 20 46
     69 6C 65 20 52 65 61 64
     20 45 72 72 6F 72 0D 
310C 1C       01898 GLOBMES DB      1CH,1FH,'Global Search in File: ',3
     1F 47 6C 6F 62 61 6C 20
     53 65 61 72 63 68 20 69
     6E 20 46 69 6C 65 3A 20
     03 
3126 0A       01899 GPROMPT DB      0AH,'Press  to exit or  to continue '
     50 72 65 73 73 20 3C 42
     52 45 41 4B 3E 20 74 6F
     20 65 78 69 74 20 6F 72
     20 3C 45 4E 54 45 52 3E
     20 74 6F 20 63 6F 6E 74
     69 6E 75 65 20 
3154 47       01900         DB      'Global Scan',13
     6C 6F 62 61 6C 20 53 63
     61 6E 0D 
3160 0A       01901 ENDG    DB      0AH,'End of Global Scan',13
     45 6E 64 20 6F 66 20 47
     6C 6F 62 61 6C 20 53 63
     61 6E 0D 
              01902         IF      .NOT.CLS
              01903 CLEAR   DB      1CH,1FH,3
              01904         ENDIF
              01905 ;-----------------------------
              01906 ;buffers etc
              01907 ;-----------------------------
3174 60       01908 IOFLAG  DB      60H,00H,0
     00 00 
3177 48       01909 DEXT    DB      'HLP'
     4C 50 
317A 00       01910 @OPREG  DB      0
317B 00       01911 CCHAR   DB      0
317C 0000     01912 CURSOR  DW      0
317E 01       01913 PWIDE   DB      1
317F 00       01914 STRCHAR DB      0
3180          01915 FCB     DS      32
31A0          01916 FSPEC   DS      8
31A8 0D       01917         DB      13
31A9          01918 CBUFFER DS      80
31F9 0D       01919         DB      13
31FA          01920 KEYWORD DS      66
323C 0D       01921         DB      13
323D          01922 SYSBUFF DS      256
333D 00       01923 UREC    DB      0
333E 0D       01924         DB      13
333F          01925 VIDBUFF DS      2048
3B3F 0000     01926 DIRBUFF DW      0
2600          01927         END     BEGIN
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!