LS-DOS 6.3.1 - LBFORMS 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 01:20:26 FORMS - LS-DOS 6.2           Page 00001 

              00001 ;LBFORMS/ASM - Set Line Printer Values
              00003 ;
              00004 ;
002C          00005 PAR_ERR EQU     44              ;Parameter Error Code
0007          00006 FLAGBT  EQU     7               ;Flag byte offset
0007          00007 ADDLF   EQU     7               ;Add Line Feed = Bit 0
0007          00008 FFHARD  EQU     7               ;Form Feed Hard = Bit 1
0007          00009 TABV    EQU     7               ;Tab Expansion = Bit 2
0008          00010 CHARS   EQU     8               ;Characters per line
0006          00011 INDENT  EQU     6               ;Indent after wrap-around
0002          00012 LINES   EQU     2               ;Maximum Lines to Print
0009          00013 MARGIN  EQU     9               ;Left hand margin value
0000          00014 PAGE    EQU     0               ;Maximum Lines per page
0004          00015 XLATEF  EQU     4               ;Xlate From
0005          00016 XLATET  EQU     5               ;Xlate To
              00017 ;
0042          00018 PDEF    EQU     66              ;Page Default = 66
0042          00019 LDEF    EQU     66              ;Line Default = 66
              00020 ;
000E          00021 CURON   EQU     0EH             ;Cursor on
000F          00022 CUROFF  EQU     0FH             ;Cursor off
00DD          00023 SKIP    EQU     0DDH            ;Skip 3 byte instruction
              00024 ;
0000          00025 *GET    SVCMAC:3                ;SVC Macro equivalents
              00026 ;SVCMAC/ASM - LS-DOS Version VI
              00027 *LIST   OFF
              00419 *LIST   ON
0000          00421 *GET    VALUES:3                ;Misc. equates
              00422 ;VALUES/ASM - Version 6
              00423 *LIST OFF
              00450 *LIST ON
              00451 ;
2400          00452         ORG     2400H
              00453 ;
              00454 START
2400 ED732324 00455         LD      (SAVESP+1),SP   ;Save SP loc
2404 CD2924   00456         CALL    FORMS           ;Execute Form Code
2407 210000   00457 EXIT    LD      HL,0            ;Set no error
240A 1816     00458         JR      SAVESP          ;Exit
              00459 ;
              00460 ;       I/O Error Handling
              00461 ;
240C 3E2C     00462 PRMERR  LD      A,PAR_ERR       ;Parameter Error
240E 6F       00463 IOERR   LD      L,A             ;Xfer error # to HL
240F 2600     00464         LD      H,0
2411 F6C0     00465         OR      0C0H            ;Abbrev, return
2413 4F       00466         LD      C,A             ;Xfer to C
2414          00467         @@ERROR                 ;Display error
2414+3E1A     00468         LD      A,26
2416+EF       00469         RST     40
2417 1809     00470         JR      SAVESP          ;Go to exit routine
              00471 ;
              00472 ;       Internal Error Message Handling
              00473 ;
2419 217928   00474 NOPF    LD      HL,NOPF$        ;No filter present
241C          00475         @@LOGOT                 ;Log Message
              00476         IFEQ    00H,1
              00477         LD      HL,
              00478         ENDIF
241C+3E0C     00479         LD      A,12
241E+EF       00480         RST     40
241F 21FFFF   00481 ABORT   LD      HL,-1           ;Set abort code
2422 310000   00482 SAVESP  LD      SP,$-$          ;P/u original SP
2425          00483         @@CKBRKC                ;Clear any 
2425+3E6A     00484         LD      A,106
2427+EF       00485         RST     40
2428 C9       00486         RET                     ;And RETurn to DOS
              00487 ;
              00488 ;       FORMS - Process the Forms Filter Parameters
              00489 ;
              00490 FORMS
2429 CD0027   00491         CALL    DOINIT          ;Do initialization
              00492 ;
              00493 ;       Ignore Leading Spaces
              00494 ;
242C 2B       00495         DEC     HL
242D 23       00496 IGSPCS  INC     HL              ;Bump cmdline ptr
242E 7E       00497         LD      A,(HL)          ;Skip leading spaces
242F FE20     00498         CP      ' '
2431 28FA     00499         JR      Z,IGSPCS
              00500 ;
              00501 ;       Any Parameters Entered ?
              00502 ;
2433 FE0E     00503         CP      CR+1            ;End of line ?
2435 3007     00504         JR      NC,GETPRM       ;Go if not
              00505 ;
              00506 ;       Display current parameter settings
              00507 ;
2437 CD8924   00508 DISPFRM CALL    DSFORMS         ;Create default string
243A CDF726   00509         CALL    DSPLY           ;Display defaults
243D C9       00510         RET                     ;  and RETurn
              00511 ;
              00512 ;       Display "Paramter Error" if Illegal input
              00513 ;
243E 116227   00514 GETPRM  LD      DE,PRMTBL$      ;Any Paramters ?
2441          00515         @@PARAM 
2441+3E11     00516         LD      A,17
2443+EF       00517         RST     40
2444 C20C24   00518         JP      NZ,PRMERR       ;NZ - "Parameter Error"
              00519 ;
              00520 ;       Create Xlate From Data Area
              00521 ;
2447 3ABA27   00522         LD      A,(XTRESP)      ;P/u xlate TO response
244A 32DF27   00523         LD      (XFRESP),A      ;Xfer to FROM response
244D 21D627   00524         LD      HL,XTPARM+1     ;HL => XLATE To
2450 7E       00525         LD      A,(HL)          ;P/u value
2451 3600     00526         LD      (HL),0          ;Set Xlate To msb = 0
2453 32E227   00527         LD      (XFPARM),A      ;Xfer to From parm
              00528 ;
              00529 ;       Over-ride all other parms if efault
              00530 ;
2456 3AC527   00531         LD      A,(DRESP)       ;efault Parm entered ?
2459 B7       00532         OR      A
245A 2817     00533         JR      Z,CHECKQ        ;No - check for uery
              00534 ;
              00535 ;       Overwrite $FF data area with default values
              00536 ;
245C ED5BD125 00537         LD      DE,(DATAREA+2)  ;DE => Data area start
2460 010A00   00538         LD      BC,10           ;BC = 10 bytes in table
2463 215827   00539         LD      HL,DEFTAB       ;HL => Default Table
2466 E5       00540         PUSH    HL              ;Save regs
2467 C5       00541         PUSH    BC
2468 EDB0     00542         LDIR                    ;Xfer to $FF data area
246A C1       00543         POP     BC
246B E1       00544         POP     HL
246C 11E329   00545         LD      DE,DUPDA
246F EDB0     00546         LDIR                    ;Xfer to duplicate DA
2471 18C4     00547         JR      DISPFRM         ;Display forms & exit
              00548 ;
              00549 ;       Prompt for any parms not entered & stuff
              00550 ;
2473          00551 CHECKQ  EQU     $
2473 CD1926   00552         CALL    INITVAL         ;Init parm values = def's
2476 CD8924   00553         CALL    DSFORMS         ;Create string
2479 3AAA27   00554         LD      A,(QRESP)       ;uery parm used?
247C B7       00555         OR      A
247D CCFC24   00556         CALL    Z,CKCOMM        ;Check cmdline values if not
2480 C42A25   00557         CALL    NZ,PROMPT       ;Prompt if "Q"
2483 CDCC25   00558 STUFFIN CALL    STFPRMS         ;Stuff parms in $FF data
2486 C30724   00559         JP      EXIT            ;Good exit
              00560 ;
              00561 ;       Display Current FORMS value settings
              00562 ;
2489 DDCB0746 00563 DSFORMS BIT     0,(IX+ADDLF)    ;Add line feed ?
248D 11E128   00564         LD      DE,SADDLF       ;DE => addlf dsply msg
2490 C4E826   00565         CALL    NZ,XFERON       ;Put "ON" in message
              00566 ;
              00567 ;       Display "OFF" if zero, or value if <> zero
              00568 ;
2493 DD7E08   00569         LD      A,(IX+CHARS)    ;CHARS value if it wasn't
2496 B7       00570         OR      A               ;OFF ?
2497 11BA28   00571         LD      DE,SCHARS       ;DE => Chars msg
249A C42127   00572         CALL    NZ,HEXDEC       ;Convert value to dec ASCII
249D 2006     00573         JR      NZ,DOFFHRD      ;Go if Char parm used
              00574 ;
249F 217628   00575 CHAROFF LD      HL,OFFSTR       ;  else xfer "OFF" into
24A2 CDEB26   00576         CALL    XFER            ;  Chars message
              00577 ;
              00578 ;       FFHARD specified ?
              00579 ;
24A5 DDCB074E 00580 DOFFHRD BIT     1,(IX+FFHARD)   ;FFHARD parm used?
24A9 11EE28   00581         LD      DE,SFFHARD      ;DE => Ffhard msg
24AC C4E826   00582         CALL    NZ,XFERON       ;Xfer "ON" if set
              00583 ;
              00584 ;       Xfer INDENT value into string
              00585 ;
24AF DD7E06   00586         LD      A,(IX+INDENT)   ;Default value
24B2 11D428   00587         LD      DE,SINDENT      ;DE=> Indent msg
24B5 CD2127   00588         CALL    HEXDEC          ;Convert to decimal ASCII
              00589 ;
              00590 ;       Xfer LINES value into string
              00591 ;
24B8 DD7E02   00592         LD      A,(IX+LINES)    ;P/u LINES value
24BB 11AD28   00593         LD      DE,SLINES       ;Pt to Lines msg
24BE CD2127   00594         CALL    HEXDEC          ;Convert to decimal ASCII
              00595 ;
              00596 ;       Xfer MARGIN value into string
              00597 ;
24C1 DD7E09   00598         LD      A,(IX+MARGIN)   ;P/u MARGIN value
24C4 11C728   00599         LD      DE,SMARGIN      ;DE => Margin msg
24C7 CD2127   00600         CALL    HEXDEC          ;Convert to decimal ASCII
              00601 ;
              00602 ;       Xfer PAGE value into string
              00603 ;
24CA DD7E00   00604         LD      A,(IX+PAGE)     ;P/u page value
24CD 11A028   00605         LD      DE,SPAGE        ;DE => Page msg
24D0 CD2127   00606         CALL    HEXDEC          ;Convert to decimal ASCII
              00607 ;
              00608 ;       Xfer "ON" into string if Tab set
              00609 ;
24D3 DDCB0756 00610         BIT     2,(IX+TABV)     ;Check Tab bit
24D7 11FB28   00611         LD      DE,STAB         ;DE => Tab msg
24DA C4E826   00612         CALL    NZ,XFERON       ;Xfer "ON" if set
              00613 ;
              00614 ;       Is Xlate FROM = Xlate TO ?
              00615 ;
24DD DD7E04   00616         LD      A,(IX+XLATEF)   ;P/u FROM byte
24E0 DD4605   00617         LD      B,(IX+XLATET)   ;P/u TO byte
24E3 B8       00618         CP      B               ;Same ?
24E4 2812     00619         JR      Z,NOSHOW        ;Yes - no show
              00620 ;
              00621 ;       Two distinct values - convert to Hex
              00622 ;
24E6 21FF28   00623         LD      HL,DOXLATE      ;Change CR to LF
24E9 360A     00624         LD      (HL),LF         ;  so msg will dsply
              00625 ;
24EB 210B29   00626         LD      HL,SXLFROM      ;"From" message
24EE CD3C27   00627         CALL    HEX8            ;Convert A to Hex @ HL
24F1 78       00628         LD      A,B             ;P/u TO
24F2 211429   00629         LD      HL,SXLTO        ;"To" message
24F5 CD3C27   00630         CALL    HEX8            ;Convert A to Hex @ HL
              00631 ;
              00632 ;       Point HL to string & RETurn
              00633 ;
24F8 219728   00634 NOSHOW  LD      HL,VALUES       ;HL => Default val string
24FB C9       00635         RET                     ;RETurn
              00636 ;
              00637 ;
              00638 ;       CKCOMM - Check command line parameter values
              00639 ;
              00640 ;
24FC 1E0A     00641 CKCOMM  LD      E,10            ;10 values to check
24FE FD210E28 00642         LD      IY,STRTAB       ;IY => Response table
              00643 ;
2502 FD6E01   00644 CKCOMML LD      L,(IY+1)        ;P/u address of response
2505 FD6602   00645         LD      H,(IY+2)
              00646 ;
              00647 ;       Set BC = Parameter Response
              00648 ;
2508 7E       00649         LD      A,(HL)          ;Was anything entered ?
2509 B7       00650         OR      A
250A 23       00651         INC     HL              ;Parm addr follows resp
250B 4E       00652         LD      C,(HL)          ;Set HL = (HL)
250C 23       00653         INC     HL
250D 66       00654         LD      H,(HL)
250E 69       00655         LD      L,C
250F 4E       00656         LD      C,(HL)          ;P/u response value
2510 23       00657         INC     HL              ;  into BC
2511 46       00658         LD      B,(HL)
              00659 ;
              00660 ;       Call routine to Range check parm entry
              00661 ;
2512 FD6E05   00662         LD      L,(IY+5)        ;P/u address of routine
2515 FD6606   00663         LD      H,(IY+6)        ;  to check value validity.
2518 221C25   00664         LD      (CALLINS+1),HL  ;Stuff addr to CALL instr
251B C40000   00665 CALLINS CALL    NZ,$-$          ;BC = response, A = type
251E C20C24   00666         JP      NZ,PRMERR       ;NZ - "Parameter Error"
              00667 ;
              00668 ;       Position to next table entry
              00669 ;
2521 010900   00670         LD      BC,9            ;Pos to next STRTAB entry
2524 FD09     00671         ADD     IY,BC
2526 1D       00672         DEC     E               ;Done ?
2527 20D9     00673         JR      NZ,CKCOMML
2529 C9       00674         RET                     ;Yes - RETurn
              00675 ;
              00676 ;
              00677 ;       PROMPT - for any vals not entered in parm line
              00678 ;
252A 060A     00679 PROMPT  LD      B,10            ;Eight normal + 2 Xlates
252C FD210E28 00680         LD      IY,STRTAB       ;Prompt, response table
              00681 ;
              00682 ;       P/u type byte from table & set length = 1
              00683 ;
2530 FD7E00   00684 PROMPTL LD      A,(IY)          ;P/u type byte
2533 3C       00685         INC     A               ;Merge length = 1
2534 326928   00686         LD      (FAKETAB+1),A   ;Store new type byte
              00687 ;
              00688 ;       P/u address of response byte
              00689 ;
2537 FD5E01   00690 REINPUT LD      E,(IY+1)        ;P/u address
253A FD5602   00691         LD      D,(IY+2)        ;  in DE
              00692 ;
              00693 ;       Pick up Prompt string address & display it
              00694 ;
253D FD6E03   00695 DOPRMPT LD      L,(IY+3)        ;P/u address in HL
2540 FD6604   00696         LD      H,(IY+4)
2543 CD5825   00697         CALL    DISPROM         ;P/u default & display
              00698 ;
              00699 ;       Input response & stuff into Parm table
              00700 ;
2546 CD4327   00701         CALL    INPUT           ;Input value
2549 C5       00702         PUSH    BC              ;Save count
254A C4A325   00703         CALL    NZ,STUFVAL      ;Stuff in valid input
254D C1       00704         POP     BC              ;Restore count
254E 20E7     00705         JR      NZ,REINPUT      ;Re-input if bad value
              00706 ;
              00707 ;       Position to next table entry
              00708 ;
2550 110900   00709 NEXTPR  LD      DE,9            ;9 bytes per entry
2553 FD19     00710         ADD     IY,DE
2555 10D9     00711         DJNZ    PROMPTL         ;B prompts
2557 C9       00712         RET                     ;Done
              00713 ;
              00714 ;
              00715 ;       DISPROM - Display Prompt
              00716 ;
2558 D5       00717 DISPROM PUSH    DE              ;Save regs
2559 C5       00718         PUSH    BC
255A 0E0F     00719         LD      C,CUROFF        ;Turn off cursor
255C CDF126   00720         CALL    DSP
255F 0620     00721         LD      B,32            ;Space padding base
              00722 ;
2561 4E       00723 PRLP    LD      C,(HL)          ;P/u character
2562 23       00724         INC     HL              ;Pos to next
2563 05       00725         DEC     B               ;Dec count
2564 CDF126   00726         CALL    DSP             ;Output byte
2567 79       00727         LD      A,C             ;P/u char
2568 FE7B     00728         CP      '{'             ;Bracket ?
256A 20F5     00729         JR      NZ,PRLP         ;No - go til bracket
256C CD8225   00730         CALL    STUFDEF         ;Display default
256F 78       00731         LD      A,B             ;P/u base #
2570 81       00732         ADD     A,C             ;  & calculate # of
2571 47       00733         LD      B,A             ;Spaces to print
2572 0E20     00734         LD      C,' '
              00735 ;
2574 CDF126   00736 SPLP    CALL    DSP             ;Output spaces
2577 10FB     00737         DJNZ    SPLP
              00738 ;
2579 219328   00739         LD      HL,ENDPROM      ;End of prompt
257C CDF726   00740         CALL    DSPLY
257F C1       00741         POP     BC              ;Recover regs
2580 D1       00742         POP     DE
2581 C9       00743         RET                     ;  and RETurn
              00744 ;
              00745 ;
              00746 ;       STUFDEF - Stuff default value in prompt
              00747 ;
2582 FD6E07   00748 STUFDEF LD      L,(IY+7)        ;P/u default string
2585 FD6608   00749         LD      H,(IY+8)        ;  address
2588 0E05     00750         LD      C,5             ;5 chars max
258A 7E       00751 PNLP    LD      A,(HL)
258B 23       00752         INC     HL              ;Bump source
258C FE0A     00753         CP      LF              ;Done ?
258E 280A     00754         JR      Z,DUNLP
2590 FE20     00755         CP      ' '             ;Leading space ?
2592 28F6     00756         JR      Z,PNLP          ;Yes - ignore it
2594 CD9C25   00757         CALL    DISPA           ;Output A
              00758 ;
2597 0D       00759 PNLP2   DEC     C               ;Dec count
2598 20F0     00760         JR      NZ,PNLP
              00761 ;
259A 3E7D     00762 DUNLP   LD      A,'}'           ;Output end bracket
259C C5       00763 DISPA   PUSH    BC              ;Save count in C
259D 4F       00764         LD      C,A             ;Xfer char to C
259E CDF126   00765         CALL    DSP             ;Output byte
25A1 C1       00766         POP     BC              ;Recover C
25A2 C9       00767         RET                     ;  and RETurn
              00768 ;
              00769 ;
              00770 ;       STUFVAL - Stuff values into Parm Table
              00771 ;
25A3 D5       00772 STUFVAL PUSH    DE              ;DE => Response Byte
25A4 21FF27   00773         LD      HL,FAKEPRM      ;HL => Fake Parm Entry
25A7 116828   00774         LD      DE,FAKETAB      ;DE => Fake Parm Table
25AA          00775         @@PARAM                 ;Parse entry
25AA+3E11     00776         LD      A,17
25AC+EF       00777         RST     40
25AD E1       00778         POP     HL              ;HL => Response
25AE C0       00779         RET     NZ              ;NZ - Re-input
              00780 ;
              00781 ;       Stuff response into Parameter Table
              00782 ;
25AF E5       00783         PUSH    HL              ;Save response dest
25B0 3A6B28   00784         LD      A,(FAKERES)     ;P/u response
25B3 010000   00785 VALUE   LD      BC,$-$          ;P/u value
25B6 23       00786         INC     HL              ;HL => Parm Address
25B7 5E       00787         LD      E,(HL)          ;P/u parm address
25B8 23       00788         INC     HL
25B9 56       00789         LD      D,(HL)
25BA EB       00790         EX      DE,HL           ;HL => Parm lsb
25BB 71       00791         LD      (HL),C          ;Stuff response in table
              00792 ;
              00793 ;       CALL range checking routine
              00794 ;
25BC 21C725   00795         LD      HL,RETADR       ;Put RET addr on stack
25BF E5       00796         PUSH    HL
25C0 FD6E05   00797         LD      L,(IY+5)        ;P/u addr of range
25C3 FD6606   00798         LD      H,(IY+6)        ;Checking in HL
25C6 E9       00799         JP      (HL)            ;Routine sets Z for stat
25C7 E1       00800 RETADR  POP     HL              ;HL => Response byte
25C8 C0       00801         RET     NZ              ;Don't change if NZ
25C9 3680     00802         LD      (HL),80H        ;  else stuff non-zero
25CB C9       00803         RET                     ;  value for response
              00804 ;
              00805 ;
              00806 ;       STFPRMS - Stuff Numeric & Flag Parms into $FF
              00807 ;
              00808 ;
              00809 ;       Pt HL => Response byte addr & offset Table
              00810 ;
25CC 21E427   00811 STFPRMS LD      HL,RESPTAB      ;HL => Response Table
25CF DD210000 00812 DATAREA LD      IX,$-$          ;P/u Data Area pointer
25D3 0607     00813         LD      B,7             ;7 numeric values
              00814 ;
              00815 ;       P/u response byte & offset byte to $FF data
              00816 ;
25D5 5E       00817 STUFLP  LD      E,(HL)          ;P/u response address
25D6 23       00818         INC     HL
25D7 56       00819         LD      D,(HL)
25D8 23       00820         INC     HL              ;HL => $FF data offset
25D9 4E       00821         LD      C,(HL)          ;P/u offset in data area
25DA 23       00822         INC     HL
              00823 ;
25DB 1A       00824         LD      A,(DE)          ;P/u response
25DC B7       00825         OR      A               ;Parm entered ?
              00826 ;
              00827 ;       Parm entered - calculate Parm's Location
              00828 ;
25DD 13       00829         INC     DE              ;DE => Parameter Dest
25DE EB       00830         EX      DE,HL           ;Xfer to HL
25DF 7E       00831         LD      A,(HL)          ;Set HL = (HL)
25E0 23       00832         INC     HL
25E1 66       00833         LD      H,(HL)
25E2 6F       00834         LD      L,A
              00835 ;
              00836 ;       Stuff parm response into $FF data region
              00837 ;
25E3 79       00838         LD      A,C             ;Xfer offset to A
25E4 4E       00839         LD      C,(HL)          ;P/u lsb of Parm response
25E5 EB       00840         EX      DE,HL           ;Recover HL (Table ptr)
25E6 2806     00841 NOPOUT  JR      Z,NOPARM        ;No - don't stuff
25E8 32ED25   00842         LD      (IXINST+2),A    ;Modify offset in IX inst
25EB DD7100   00843 IXINST  LD      (IX+$-$),C      ;Xfer parm resp to $FF
              00844 ;
25EE 10E5     00845 NOPARM  DJNZ    STUFLP          ;Next entry
              00846 ;
              00847 ;       Set Flag bits in $FF data area if parms set
              00848 ;
25F0 0603     00849 GETFLAG LD      B,3             ;3 flag values
25F2 5E       00850 FLOOP   LD      E,(HL)          ;P/u response address
25F3 23       00851         INC     HL
25F4 56       00852         LD      D,(HL)
25F5 23       00853         INC     HL
25F6 1A       00854         LD      A,(DE)          ;Entered ?
25F7 B7       00855         OR      A
25F8 281C     00856         JR      Z,NEXTFLG       ;No - get next one
              00857 ;
              00858 ;       Response - If true (SET), False (RES)
              00859 ;
25FA 13       00860         INC     DE              ;Pos to parm address
25FB EB       00861         EX      DE,HL           ;P/u Parm
25FC 7E       00862         LD      A,(HL)          ;Set HL = (HL)
25FD 23       00863         INC     HL
25FE 66       00864         LD      H,(HL)
25FF 6F       00865         LD      L,A
2600 EB       00866         EX      DE,HL           ;Put into DE
2601 0E86     00867         LD      C,10000110B     ;Default = Reset bit inst
2603 1A       00868         LD      A,(DE)          ;P/u lsb of parm
2604 B7       00869         OR      A               ;Set ?
2605 2802     00870         JR      Z,SKIPSET       ;No - skip SET inst
2607 CBF1     00871         SET     6,C             ;Change to Set bit inst
              00872 ;
              00873 ;       Create Post opcode for IX instruction
              00874 ;
2609 78       00875 SKIPSET LD      A,B             ;P/u bit # (0-2)
260A 3D       00876         DEC     A
260B 07       00877         RLCA                    ;Move to bits 3-5
260C 07       00878         RLCA
260D 07       00879         RLCA
260E B1       00880         OR      C               ;Post op code
260F 321526   00881         LD      (IXINST2+3),A   ;Change RES b,(IX+nn) ins
2612 DDCB0786 00882 IXINST2 RES     $-$,(IX+FLAGBT) ;Set/Reset bit B in $FF
2616 10DA     00883 NEXTFLG DJNZ    FLOOP           ;Get next flag
2618 C9       00884         RET                     ;Done - RETurn
              00885 ;
              00886 ;
              00887 ;       INITVAL - Initial Parm values
              00888 ;
              00889 ;
2619 0605     00890 INITVAL LD      B,5             ;5 values to stuff
261B 21E427   00891         LD      HL,RESPTAB      ;HL => Response & offsets
              00892 ;
261E 5E       00893 SDLP    LD      E,(HL)          ;P/u response byte addr
261F 23       00894         INC     HL
2620 56       00895         LD      D,(HL)
2621 23       00896         INC     HL
2622 1A       00897         LD      A,(DE)          ;P/u response byte
              00898 ;
              00899 ;       Get parm table address - DE = (DE)
              00900 ;
2623 EB       00901         EX      DE,HL
2624 23       00902         INC     HL              ;Parm address after resp
2625 4E       00903         LD      C,(HL)          ;P/u lsb
2626 23       00904         INC     HL
2627 66       00905         LD      H,(HL)          ;P/u msb
2628 69       00906         LD      L,C             ;HL = (HL)
2629 EB       00907         EX      DE,HL           ;Get back to DE
              00908 ;
              00909 ;       P/u default value from $FF data area
              00910 ;
262A D5       00911         PUSH    DE              ;Save HL & DE
262B E5       00912         PUSH    HL
262C 5E       00913         LD      E,(HL)          ;P/u offset
262D 1600     00914         LD      D,0             ;DE = offset to default
262F 2AD125   00915         LD      HL,(DATAREA+2)  ;HL => Data Area
2632 19       00916         ADD     HL,DE
2633 4E       00917         LD      C,(HL)          ;P/u default value
2634 E1       00918         POP     HL              ;Restore regs
2635 D1       00919         POP     DE
              00920 ;
              00921 ;       If parm wasn't entered - stuff default value
              00922 ;
2636 23       00923         INC     HL              ;Posn to next entry
2637 B7       00924         OR      A               ;Parm entered ?
2638 2806     00925         JR      Z,STFDEF        ;No - stuff default
263A 3AAA27   00926         LD      A,(QRESP)       ;uery parm used?
263D B7       00927         OR      A
263E 2802     00928         JR      Z,PRMENT        ;No - don't stuff
2640 79       00929 STFDEF  LD      A,C             ;Yes - stuff default
2641 12       00930         LD      (DE),A
2642 10DA     00931 PRMENT  DJNZ    SDLP
2644 C9       00932         RET                     ;Done
              00933 ;
              00934 ;
              00935 ;       Range Checking Code of Values
              00936 ;
              00937 ;
              00938 ;       Is the Page length valid ?
              00939 ;
2645 CDD126   00940 RPAGE   CALL    MORE0?          ;Number between 1 - 255 ?
2648 C0       00941         RET     NZ              ;No - NZ
2649 3ACF27   00942         LD      A,(LPARM)       ;P/u LINES value
264C 3D       00943         DEC     A
264D B9       00944         CP      C               ;LINES > PAGE ?
264E F5       00945         PUSH    AF              ;Save status
264F 3AAA27   00946         LD      A,(QRESP)       ;uery parm used?
2652 B7       00947         OR      A
2653 2003     00948         JR      NZ,PQUERY       ;Go if so
2655 F1       00949         POP     AF              ;No
2656 1872     00950         JR      VALID2?         ;Return NZ if L>P
2658 F1       00951 PQUERY  POP     AF              ;L > P ?
2659 380D     00952         JR      C,SETZ          ;No - Set Z flag
265B 79       00953         LD      A,C             ;Yes - Set LINES = PAGE
265C 32E529   00954         LD      (DUPDA+LINES),A
265F 328F27   00955         LD      (LRESP),A       ;Pretend that LINES was
2662 32CF27   00956         LD      (LPARM),A       ;  responded to
2665 CD8924   00957         CALL    DSFORMS         ;Reset defaults
2668 BF       00958 SETZ    CP      A               ;Set Z flag
2669 C9       00959         RET
              00960 ;
              00961 ;       Is the lines printed per page valid ?
              00962 ;
266A CDD126   00963 RLINES  CALL    MORE0?          ;Number between 1 - 255 ?
266D C0       00964         RET     NZ              ;No - NZ
266E 3D       00965         DEC     A
266F 21D327   00966         LD      HL,PPARM        ;HL => Page length
2672 1855     00967         JR      VALID1?         ;Set status accordingly
              00968 ;
              00969 ;       Is the Characters printed per line valid ?
              00970 ;
2674 CB77     00971 RCHARS  BIT     6,A             ;Flag response ?
2676 20F0     00972         JR      NZ,SETZ         ;Yes - Set Z
2678 CDD126   00973         CALL    MORE0?          ;No - More than zero ?
267B C0       00974         RET     NZ              ;No - NZ
267C 3AAA27   00975         LD      A,(QRESP)       ;uery parm used?
267F B7       00976         OR      A
2680 C8       00977         RET     Z               ;Return if not
              00978 ;
              00979 ;       uery - Make sure CHARS > INDENT+MARGIN
              00980 ;
2681 21D127   00981         LD      HL,MPARM        ;HL => Margin value
2684 3ACD27   00982         LD      A,(IPARM)       ;A = Indent value
2687 86       00983         ADD     A,(HL)          ;A = Indent + Margin
2688 B9       00984         CP      C               ;Less than CHARS ?
2689 38DD     00985         JR      C,SETZ          ;Yes - Set Z
268B AF       00986         XOR     A               ;Reset INDENT & MARGIN=0
268C 32E929   00987         LD      (DUPDA+INDENT),A
268F 32EC29   00988         LD      (DUPDA+MARGIN),A
2692 32CD27   00989         LD      (IPARM),A
2695 32D127   00990         LD      (MPARM),A
2698 3C       00991         INC     A               ;Pretend that INDENT &
2699 329927   00992         LD      (MRESP),A       ;  MARGIN were responded
269C 328627   00993 CHNGIND LD      (IRESP),A       ;  to
269F CD8924   00994         CALL    DSFORMS         ;Change defaults
26A2 AF       00995         XOR     A               ;Set Z & RETurn
26A3 C9       00996         RET
              00997 ;
              00998 ;       Is Margin less than Characters/Line ?
              00999 ;
26A4 CDDA26   01000 RMARGIN CALL    NUMERIC         ;Number between 0 - 255 ?
26A7 C0       01001         RET     NZ              ;No - NZ
26A8 CDC626   01002         CALL    VALID?          ;Yes - less than CHARS ?
26AB C0       01003         RET     NZ              ;No - RETurn NZ
26AC 3ACD27   01004         LD      A,(IPARM)       ;P/u INDENT
26AF 81       01005         ADD     A,C             ;Add to MARGIN
26B0 CDC626   01006         CALL    VALID?          ;M + I < CHARS ?
26B3 C8       01007         RET     Z               ;Yes - RETurn Z
26B4 AF       01008         XOR     A               ;No - Set INDENT default
26B5 32CD27   01009         LD      (IPARM),A       ;Equal to Zero
26B8 32E929   01010         LD      (DUPDA+INDENT),A
26BB 3C       01011         INC     A               ;Pretend I was responded
26BC 18DE     01012         JR      CHNGIND         ;  to
              01013 ;
              01014 ;       Is Margin + Indent less than chars/line ?
              01015 ;
26BE CDDA26   01016 RINDENT CALL    NUMERIC         ;Number between 0 - 255 ?
26C1 C0       01017         RET     NZ              ;No - NZ
26C2 3AD127   01018         LD      A,(MPARM)       ;P/u MARGIN val
26C5 81       01019         ADD     A,C             ;A = MARGIN + INDENT
26C6 21CB27   01020 VALID?  LD      HL,CPARM        ;HL => Characters/Line
26C9 BE       01021 VALID1? CP      (HL)            ;Response > (HL) ?
26CA 3002     01022 VALID2? JR      NC,SETNZ        ;Yes - Reset Z flag
26CC BF       01023         CP      A               ;No - Set Z flag
26CD C9       01024         RET
26CE AF       01025 SETNZ   XOR     A               ;Reset Z flag
26CF 3C       01026         INC     A
26D0 C9       01027         RET
              01028 ;
              01029 ;       Is the response a number between 1-255 ?
              01030 ;
26D1 CDDA26   01031 MORE0?  CALL    NUMERIC         ;Is the response a number
26D4 C0       01032         RET     NZ              ;Between 0 - 255 ?
26D5 B7       01033         OR      A               ;Is the response zero ?
26D6 28F6     01034         JR      Z,SETNZ         ;Yes - reset Z flag
26D8 BF       01035         CP      A               ;No - set Z flag
26D9 C9       01036         RET
              01037 ;
              01038 ;       Is the response a 1 byte number ?
              01039 ;
26DA E680     01040 NUMERIC AND     80H             ;Bit 7 is set if the
26DC EE80     01041         XOR     80H             ;Response is numeric.
26DE C0       01042         RET     NZ              ;NZ <= if Bit is reset
26DF 04       01043         INC     B               ;Is the response only
26E0 05       01044         DEC     B               ;1 byte (msb = 0) ?
26E1 79       01045         LD      A,C             ;Set A = response
26E2 C9       01046         RET                     ;Yes (Z), no (NZ)
              01047 ;
              01048 ;       Is the response a flag (ON/YES, OFF/NO) ?
              01049 ;
26E3 E640     01050 FLAG?   AND     40H             ;Bit 6 is set if the
26E5 EE40     01051         XOR     40H             ;Response is a flag.
26E7 C9       01052         RET                     ;Yes (Z), no (NZ)
              01053 ;
              01054 ;
              01055 ;       XFER - Xfer string @ HL to DE
              01056 ;       XFERON - Xfer "ON" string to DE
              01057 ;
              01058 ;
26E8 217328   01059 XFERON  LD      HL,ONSTR        ;HL => "ON"
26EB 010300   01060 XFER    LD      BC,3            ;3 chars to xfer
26EE EDB0     01061         LDIR
26F0 C9       01062         RET
              01063 ;
              01064 ;
              01065 ;       DSP - Display a byte
              01066 ;
              01067 ;
26F1 D5       01068 DSP     PUSH    DE              ;Save DE
26F2          01069         @@DSP                   ;Output byte
26F2+3E02     01070         LD      A,2
26F4+EF       01071         RST     40
26F5 1804     01072         JR      EXDSP
              01073 ;
              01074 ;
              01075 ;       DSPLY - Display a string
              01076 ;
              01077 ;
26F7 D5       01078 DSPLY   PUSH    DE              ;Save DE
26F8          01079         @@DSPLY                 ;Display it
              01080         IFEQ    00H,1
              01081         LD      HL,
              01082         ENDIF
26F8+3E0A     01083         LD      A,10
26FA+EF       01084         RST     40
26FB D1       01085 EXDSP   POP     DE
26FC C8       01086         RET     Z               ;Return if good
26FD C30E24   01087         JP      IOERR           ;NZ - I/O Error
              01088 ;
              01089 ;
              01090 ;       DOINIT - Sign on message & Get Data area
              01091 ;
              01092 ;
2700 E5       01093 DOINIT  PUSH    HL              ;Save command ptr
2701          01094         @@FLAGS                 ;Get system flags
2701+3E65     01095         LD      A,101
2703+EF       01096         RST     40
              01097 ;
              01098 ;       Point IX to Filter Data area
              01099 ;
2704 116F28   01100         LD      DE,$FF          ;DE => "$FF"
2707          01101         @@GTMOD                 ;Find start
2707+3E53     01102         LD      A,83
2709+EF       01103         RST     40
270A C21924   01104         JP      NZ,NOPF         ;Abort if Forms/Flt missing
              01105 ;
270D EB       01106         EX      DE,HL           ;HL => Data Area
270E 010400   01107         LD      BC,4            ;Add 4 to ptr
2711 09       01108         ADD     HL,BC
2712 22D125   01109         LD      (DATAREA+2),HL  ;Save $FF data pointer
2715 11E329   01110         LD      DE,DUPDA        ;DE => Duplicate D area
2718 D5       01111         PUSH    DE              ;Save ptr
2719 0E0A     01112         LD      C,10            ;BC = 10 bytes to xfer
271B EDB0     01113         LDIR
271D DDE1     01114         POP     IX              ;IX pts to data area
271F E1       01115         POP     HL              ;Recover cmdline ptr
2720 C9       01116         RET                     ;  and RETurn
              01117 ;
              01118 ;
              01119 ;
              01120 ;       HEXDEC - Convert Hex Number to Decimal ASCII
              01121 ;       A => 8-bit Hex Number to Convert
              01122 ;       DE => Destination of ASCII characters
              01123 ;
              01124 ;
2721 C5       01125 HEXDEC  PUSH    BC              ;Save regs
2722 E5       01126         PUSH    HL
2723 F5       01127         PUSH    AF
              01128 ;
              01129 ;       Transfer ASCII chars into temporary buffer
              01130 ;
2724 D5       01131         PUSH    DE              ;Save real destination
2725 11DE29   01132         LD      DE,TEMBUF       ;DE => Temporary buffer
2728 2600     01133         LD      H,0             ;Xfer # to HL
272A 6F       01134         LD      L,A
272B          01135         @@HEXDEC                ;Convert to ASCII
272B+3E61     01136         LD      A,97
272D+EF       01137         RST     40
272E 1B       01138         DEC     DE              ;Pos to 3-byte field
272F 1B       01139         DEC     DE
2730 1B       01140         DEC     DE
2731 E1       01141         POP     HL              ;Recover user buffer
2732 EB       01142         EX      DE,HL           ;HL to #, DE to user buff
2733 010300   01143         LD      BC,3
2736 EDB0     01144         LDIR                    ;Move the ASCII number
              01145 ;
2738 F1       01146         POP     AF              ;Recover #
2739 E1       01147         POP     HL              ;  and other regs
273A C1       01148         POP     BC
273B C9       01149         RET
              01150 ;
              01151 ;
              01152 ;       HEX8 - Convert HEX Number in A to HEX @ HL
              01153 ;
              01154 ;
273C C5       01155 HEX8    PUSH    BC              ;Save regs
273D 4F       01156         LD      C,A             ;Xfer char to C
273E          01157         @@HEX8                  ;Do it
273E+3E62     01158         LD      A,98
2740+EF       01159         RST     40
2741 C1       01160         POP     BC
2742 C9       01161         RET                     ;  and RETurn
              01162 ;
              01163 ;
              01164 ;
              01165 ;       INPUT - Input a string into INBUFF$
              01166 ;
              01167 ;
2743 E5       01168 INPUT   PUSH    HL              ;Save regs
2744 D5       01169         PUSH    DE
2745 C5       01170         PUSH    BC
              01171 ;
2746 010003   01172         LD      BC,3<8          ;3 chars max
2749 210228   01173         LD      HL,INBUFF$      ;Key input buffer
274C          01174         @@KEYIN                 ;Input line
274C+3E09     01175         LD      A,9
274E+EF       01176         RST     40
274F DA1F24   01177         JP      C,ABORT         ;Abort if 
              01178 ;
2752 04       01179         INC     B               ;Set Z flag if
2753 05       01180         DEC     B               ;  no input
              01181 ;
2754 C1       01182         POP     BC              ;Restore regs
2755 D1       01183         POP     DE
2756 E1       01184         POP     HL
2757 C9       01185         RET                     ;  & RETurn with condition
              01186 ;
              01187 ;       Default Value Table
              01188 ;
2758 42       01189 DEFTAB  DB      PDEF,0,LDEF,0,0,0,0,00000100B,0,0
     00 42 00 00 00 00 04 00
     00 
              01190 ;
              01191 ;       Parameter table
              01192 ;
2762 80       01193 PRMTBL$ DB      80H             ;6.2 @PARAM
              01194 ;
              01195 ;       ADDLF (A) - Flag Input Only
              01196 ;
2763 55       01197         DB      FLAG!ABB!5
2764 41       01198         DB      'ADDLF'
     44 44 4C 46 
2769 00       01199 ARESP   DB      0
276A D727     01200         DW      APARM
              01201 ;
              01202 ;       CHARS (C) - Accept Numeric or Flag input
              01203 ;
276C D5       01204         DB      FLAG!ABB!NUM!5
276D 43       01205         DB      'CHARS'
     48 41 52 53 
2772 00       01206 CRESP   DB      0
2773 CB27     01207         DW      CPARM
              01208 ;
              01209 ;       FFHARD (F) - Accept Flag input only
              01210 ;
2775 56       01211         DB      FLAG!ABB!6
2776 46       01212         DB      'FFHARD'
     46 48 41 52 44 
277C 00       01213 FRESP   DB      0
277D D927     01214         DW      FPARM
              01215 ;
              01216 ;       INDENT (I) - Accept Numeric Input only
              01217 ;
277F 96       01218         DB      NUM!ABB!6
2780 49       01219         DB      'INDENT'
     4E 44 45 4E 54 
2786 00       01220 IRESP   DB      0
2787 CD27     01221         DW      IPARM
              01222 ;
              01223 ;       LINES (L) - Accept Numeric Input only
              01224 ;
2789 95       01225         DB      NUM!ABB!5
278A 4C       01226         DB      'LINES'
     49 4E 45 53 
278F 00       01227 LRESP   DB      0
2790 CF27     01228         DW      LPARM
              01229 ;
              01230 ;       MARGIN (M) - Accept Numeric Input only
              01231 ;
2792 96       01232         DB      NUM!ABB!6
2793 4D       01233         DB      'MARGIN'
     41 52 47 49 4E 
2799 00       01234 MRESP   DB      0
279A D127     01235         DW      MPARM
              01236 ;
              01237 ;       PAGE (P) - Accept Numeric Input only
              01238 ;
279C 94       01239         DB      NUM!ABB!4
279D 50       01240         DB      'PAGE'
     41 47 45 
27A1 00       01241 PRESP   DB      0
27A2 D327     01242         DW      PPARM
              01243 ;
              01244 ;       QUERY (Q) - Accept Flag Input Only
              01245 ;
27A4 55       01246         DB      FLAG!ABB!5
27A5 51       01247         DB      'QUERY'
     55 45 52 59 
27AA 00       01248 QRESP   DB      0
27AB C927     01249         DW      QPARM
              01250 ;
              01251 ;       TAB (T) - Accept Flag input only
              01252 ;
27AD 53       01253         DB      FLAG!ABB!3
27AE 54       01254         DB      'TAB'
     41 42 
27B1 00       01255 TRESP   DB      0
27B2 DB27     01256         DW      TPARM
              01257 ;
              01258 ;       XLATE (X) - Accept Numeric input only
              01259 ;
27B4 95       01260         DB      NUM!ABB!5
27B5 58       01261         DB      'XLATE'
     4C 41 54 45 
27BA 00       01262 XTRESP  DB      0
27BB D527     01263         DW      XTPARM
              01264 ;
              01265 ;       DEFAULT (D) - Accept Flag input only
              01266 ;
27BD 57       01267         DB      FLAG!ABB!7
27BE 44       01268         DB      'DEFAULT'
     45 46 41 55 4C 54 
27C5 00       01269 DRESP   DB      0
27C6 DD27     01270         DW      DPARM
              01271 ;
27C8 00       01272         DB      0
              01273 ;
27C9 0000     01274 QPARM   DW      0
27CB 0000     01275 CPARM   DW      0
27CD 0000     01276 IPARM   DW      0
27CF 0000     01277 LPARM   DW      0
27D1 0000     01278 MPARM   DW      0
27D3 0000     01279 PPARM   DW      0
27D5 0000     01280 XTPARM  DW      0
              01281 ;
27D7 0000     01282 APARM   DW      0
27D9 0000     01283 FPARM   DW      0
27DB 0000     01284 TPARM   DW      0
27DD 0000     01285 DPARM   DW      0
              01286 ;
27DF 00       01287 XFRESP  DB      0
27E0 E227     01288         DW      XFPARM
27E2 0000     01289 XFPARM  DW      0
              01290 ;
              01291 ;
              01292 ;       Response Table - Response Addr, $FF Offset
              01293 ;
              01294 ;
              01295 ;       8-bit Numeric Responses
              01296 ;
27E4 7227     01297 RESPTAB DW      CRESP
27E6 08       01298         DB      CHARS
              01299 ;
27E7 8627     01300         DW      IRESP
27E9 06       01301         DB      INDENT
              01302 ;
27EA 8F27     01303         DW      LRESP
27EC 02       01304         DB      LINES
              01305 ;
27ED 9927     01306         DW      MRESP
27EF 09       01307         DB      MARGIN
              01308 ;
27F0 A127     01309         DW      PRESP
27F2 00       01310         DB      PAGE
              01311 ;
27F3 BA27     01312         DW      XTRESP
27F5 05       01313         DB      XLATET
              01314 ;
27F6 DF27     01315         DW      XFRESP
27F8 04       01316         DB      XLATEF
              01317 ;
              01318 ;       Flag Response Table
              01319 ;
27F9 B127     01320         DW      TRESP
27FB 7C27     01321         DW      FRESP
27FD 6927     01322         DW      ARESP
              01323 ;
              01324 ;
27FF 28       01325 FAKEPRM DB      '(F='
     46 3D 
2802          01326 INBUFF$ DS      12
              01327 ;
              01328 ;
              01329 ;       STRTAB - 10 entries each with 9 bytes:
              01330 ;
              01331 ;       1 byte : Type of expected response - flag or numeric
              01332 ;       2 bytes: Address of response byte
              01333 ;       2 bytes: Address of prompt string
              01334 ;       2 bytes: Address of routine to range check response
              01335 ;       2 bytes: Address of default value string
              01336 ;
              01337 ;
              01338 ;
280E          01339 STRTAB  EQU     $
280E 80       01340         DB      NUM             ;PAGE
280F A127     01341         DW      PRESP,PPROMPT,RPAGE,SPAGE
     A229 4526 A028 
2817 80       01342         DB      NUM             ;LINES
2818 8F27     01343         DW      LRESP,LPROMPT,RLINES,SLINES
     7A29 6A26 AD28 
2820 80       01344         DB      NUM             ;CHARS
2821 7227     01345         DW      CRESP,CPROMPT,RCHARS,SCHARS
     3229 7426 BA28 
2829 80       01346         DB      NUM             ;MARGIN
282A 9927     01347         DW      MRESP,MPROMPT,RMARGIN,SMARGIN
     9229 A426 C728 
2832 80       01348         DB      NUM             ;INDENT
2833 8627     01349         DW      IRESP,IPROMPT,RINDENT,SINDENT
     6029 BE26 D428 
283B 40       01350         DB      FLAG            ;ADDLF
283C 6927     01351         DW      ARESP,APROMPT,FLAG?,SADDLF
     1929 E326 E128 
2844 40       01352         DB      FLAG            ;FFHARD
2845 7C27     01353         DW      FRESP,FPROMPT,FLAG?,SFFHARD
     4F29 E326 EE28 
284D 40       01354         DB      FLAG            ;TAB
284E B127     01355         DW      TRESP,TPROMPT,FLAG?,STAB
     B829 E326 FB28 
2856 80       01356         DB      NUM             ;XLATE From
2857 DF27     01357         DW      XFRESP,XPROMF,NUMERIC,SXLFROM-2
     C729 DA26 0929 
285F 80       01358         DB      NUM             ;XLATE To
2860 BA27     01359         DW      XTRESP,XPROMT,NUMERIC,SXLTO-2
     D329 DA26 1229 
              01360 ;
              01361 ;       Fake Parameter Table for prompts (QUERY) 
              01362 ;
2868 80       01363 FAKETAB DB      80H             ;6.2 @ PARAM
2869 00       01364         DB      0               ;Type byte
286A 46       01365         DB      'F'
286B 00       01366 FAKERES DB      0
286C B425     01367         DW      VALUE+1         ;Destination
286E 00       01368         DB      0
              01369 ;
              01370 ;
286F 24       01371 $FF     DB      '$FF',ETX
     46 46 03 
2873 20       01372 ONSTR   DB      ' ON'
     4F 4E 
2876 4F       01373 OFFSTR  DB      'OFF'
     46 46 
              01374 ;
2879 46       01375 NOPF$   DB      'Forms Filter not Resident',CR
     6F 72 6D 73 20 46 69 6C
     74 65 72 20 6E 6F 74 20
     52 65 73 69 64 65 6E 74
     0D 
              01376 ;
2893 3F       01377 ENDPROM DB      '? ',CURON,ETX
     20 0E 03 
2897 50       01378 VALUES  DB      'PAGE   = '
     41 47 45 20 20 20 3D 20
28A0 20       01379 SPAGE   DB      ' 66',LF,'LINES  = '
     36 36 0A 4C 49 4E 45 53
     20 20 3D 20 
28AD 20       01380 SLINES  DB      ' 66',LF,'CHARS  = '
     36 36 0A 43 48 41 52 53
     20 20 3D 20 
28BA 4F       01381 SCHARS  DB      'OFF',LF,'MARGIN = '
     46 46 0A 4D 41 52 47 49
     4E 20 3D 20 
28C7 20       01382 SMARGIN DB      '  0',LF,'INDENT = '
     20 30 0A 49 4E 44 45 4E
     54 20 3D 20 
28D4 20       01383 SINDENT DB      '  0',LF,'ADDLF  = '
     20 30 0A 41 44 44 4C 46
     20 20 3D 20 
28E1 4F       01384 SADDLF  DB      'OFF',LF,'FFHARD = '
     46 46 0A 46 46 48 41 52
     44 20 3D 20 
28EE 4F       01385 SFFHARD DB      'OFF',LF,'TAB    = '
     46 46 0A 54 41 42 20 20
     20 20 3D 20 
28FB 4F       01386 STAB    DB      'OFF',LF
     46 46 0A 
28FF 0D       01387 DOXLATE DB      CR,'XLATE  = X',AP
     58 4C 41 54 45 20 20 3D
     20 58 27 
290B 30       01388 SXLFROM DB      '00',AP,' => X',AP
     30 27 20 3D 3E 20 58 27
2914 30       01389 SXLTO   DB      '00',AP,LF,CR
     30 27 0A 0D 
              01390 ;
              01391 ;
2919 41       01392 APROMPT DB      'Add Line Feed after C/R {'
     64 64 20 4C 69 6E 65 20
     46 65 65 64 20 61 66 74
     65 72 20 43 2F 52 20 7B
2932 4D       01393 CPROMPT DB      'Maximum Characters per Line {'
     61 78 69 6D 75 6D 20 43
     68 61 72 61 63 74 65 72
     73 20 70 65 72 20 4C 69
     6E 65 20 7B 
294F 52       01394 FPROMPT DB      'Real Form Feeds {'
     65 61 6C 20 46 6F 72 6D
     20 46 65 65 64 73 20 7B
2960 49       01395 IPROMPT DB      'Indent after Wrap-around {'
     6E 64 65 6E 74 20 61 66
     74 65 72 20 57 72 61 70
     2D 61 72 6F 75 6E 64 20
     7B 
297A 4C       01396 LPROMPT DB      'Lines Printed per Page {'
     69 6E 65 73 20 50 72 69
     6E 74 65 64 20 70 65 72
     20 50 61 67 65 20 7B 
2992 4D       01397 MPROMPT DB      'Margin Setting {'
     61 72 67 69 6E 20 53 65
     74 74 69 6E 67 20 7B 
29A2 50       01398 PPROMPT DB      'Physical Page Length {'
     68 79 73 69 63 61 6C 20
     50 61 67 65 20 4C 65 6E
     67 74 68 20 7B 
29B8 54       01399 TPROMPT DB      'Tab Expansion {'
     61 62 20 45 78 70 61 6E
     73 69 6F 6E 20 7B 
29C7 58       01400 XPROMF  DB      'Xlate From {'
     6C 61 74 65 20 46 72 6F
     6D 20 7B 
29D3 58       01401 XPROMT  DB      'Xlate To {'
     6C 61 74 65 20 54 6F 20
     7B 
              01402 ;
              01403 ;
29DD 20       01404         DB      ' '
29DE          01405 TEMBUF  DS      5
29E3          01406 DUPDA   DS      10
              01407 ;
2400          01408         END     START
2400 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!