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