 
*  HELPMAK4/S     Dec / 16 / 92
*----------------------------------------------------
*  For creating 40-col Editor HELP4A files
*  Create up to 24 line text file with Program editor
*  Allows entry of output filename with prompt
*----------------------------------------------------
*  Must be used in Funnelweb environment
 
       AORG >A050             Sit above FW mailbox
 
 
PABV   EQU  >F80
PBFV   EQU  >1000
 
DSRLNK EQU  >FFD4
KSCANA EQU  >FFD0
FILENT EQU  >FFCC
VMBWD  EQU  >FFBA
RDDEV  EQU  >FFA0
LDR11  EQU  >FF9C
FWREG  EQU  >FF7C
ESFLAG EQU  >FF60
CMSRET EQU  >FF5C
QDXFL  EQU  >FF52
QDLOAD EQU  >FF3C
AIDFL  EQU  >FF3A
QDSAV  EQU  >FF20
VMBW   EQU  >FED4
VMBR   EQU  >FED0
VSBW   EQU  >FECC
VSBR   EQU  >FEC8
 
QDPOS  EQU  >CE00
QDLEN  EQU  >A40
 
       REF  VDPWD
       DEF  SFIRST,SLAST
 
SFIRST EQU  $
       LIMI 0
       C    R11,@LDR11
       JEQ  SAVE20
       BLWP @>0
SAVE20 LWPI FWREG
       MOV  @QDSAV,@QDXFL
       JNE  SAVE30
 
       MOV  @QDLOAD,R11
       BL   *R11
       DATA 'QD',QDPOS,QDLEN
       JMP  SAVE30
       SETO @QDXFL
SAVE30 LI   R11,AIDQD
       MOV  R11,@AIDFL
 
*  Clear screen
 
RESTT  LWPI FWREG
       LI   R11,EXIT20
       MOV  R11,@ESFLAG
       CLR  R0
       LI   R1,>2001
ONE    EQU  $-1
       LI   R2,>300-1
       BLWP @VSBW
CLRS1  MOVB R1,@VDPWD
       DEC  R2
       JNE  CLRS1
 
*  Write up page header and initial message
 
       BLWP *R9
       DATA >C08,ULDAT,8
       BLWP *R9
       DATA 3
       DATA SLMS10,SLML10
       LI   R0,>8181
       BLWP *R8
       DATA >23,SLML10
       BLWP *R8
       DATA >241,30
       BLWP *R8
       DATA >2E1,30
       BLWP *R9
       DATA >262,SLMS40,SLML40
       BLWP *R9
       DATA >282,SLMS42,SLML42
       BLWP *R9
       DATA >2A2,SLMS44,SLML44
       BLWP *R9
       DATA >2C2,SLMS46,SLML46
 
 
*  Input file selection
 
       BLWP *R9
       DATA >81
       DATA IPMSG,IPMSL
       BLWP *R8
       DATA >A1,IPMSL
       BLWP *R9
       DATA >E1
       DATA >A000,25
RDINP  BLWP @FILENT
       DATA >E1,25
       MOV  @RDDEV,R11
       BL   *R11
       DATA >E1,PBINAM
       DATA PABV,PBIDAT
 
*  Clear initial message and text buffer
 
       LI   R0,>2020
       BLWP *R8
       DATA >240,>C0
       BLWP *R8
       DATA PBFV,24*40
       BL   @FILOP
       JMP  JERR
 
*  Read in 24 records
 
GETINP MOVB @READ,@PBIDAT
       BL   @FILOP
       JMP  RDERR
       A    @RECLEN,@PBIBUF
       C    @PBIBUF,@PBFVND
       JL   GETINP
       JMP  CLOSIN
 
RDERR  CI   R1,5
       JEQ  CLOSIN
JERR   B    @ERROR
 
*   Close input file
 
CLOSIN MOVB @CLOSE,@PBIDAT
       BL   @FILOP
       NOP
 
*  Output file
 
MAKOUT LI   R11,RESTT
       MOV  R11,@ESFLAG
       BLWP *R9
       DATA >141
       DATA OPMSG,OPMSL
       LI   R0,>8181
       BLWP *R8
       DATA >161,OPMSL
       BLWP *R9
       DATA >1A1
       DATA FLNAME,11
       BLWP *R9
       DATA >2E7
       DATA SLMS20,SLML20
       BLWP @FILENT
       DATA >1A1,25
       MOV  @RDDEV,R11
       BL   *R11
       DATA >1A1,PABNAM
       DATA PABV,PABDAT
       BL   @FILOPO
       JMP  ERROR
       JMP  EXITEM
 
 
*  Error exit
 
ERROR  LI   R0,>2E7
       LI   R1,ERMS1
       LI   R2,ERMS1L
       BLWP @VMBW
       BLWP @KSCANA
       JEQ  $-4
       JMP  KEY
 
*  Exit
 
EXITEM LI   R0,>2E7
       LI   R1,KEYMS
       LI   R2,KEYML
       BLWP @VMBW
KEY    BLWP @KSCANA
       JOP  KEY
 
EXIT20 LWPI FWREG
       CLR  R13
       CLR  @ESFLAG
       CLR  @AIDFL
       MOV  @CMSRET,R11
       RT
 
*
 
AIDQD  EQU  $
       MOV  @QDXFL,R0
       JEQ  ADQ30
 
       BL   @QDPOS
ADQ30  RTWP
 
 
*  HELP4A  to disk
*-----------------
 
FILOP  EQU  $
       BLWP *R9               PAB to VDP
       DATA PABV
       DATA PBIDAT,PBILEN
FILOPO LI   R3,PABV+9
       MOV  R3,@>8356
       BLWP @DSRLNK
       JEQ  EXERR
       LI   R0,PABV+1
       BLWP @VSBR
       SRL  R1,13
       JNE  EXERR
       INCT R11
EXERR  RT
 
*  Underline data
 
ULDAT  DATA >0000,>00FF,>0,>0
 
RECLEN DATA 40
PBFVND DATA 24*40+PBFV
 
*  Output PAB data
 
PABDAT DATA >0600,PBFV,>0
       DATA 24*40
PABNAM DATA >0B
FLNAME TEXT 'DSK'
DSKNO  TEXT '5.HELP4A'
LNFILE EQU  $-1
PABLEN EQU  $-PABDAT
 
 
PBIDAT DATA >0014
PBIBUF DATA PBFV,>5050,>0
       BYTE >0
PBINAM BYTE >0B
       TEXT 'DSK8.HELPTEXT             '
PBILEN EQU  $-PBIDAT
       EVEN
 
IPMSG  TEXT 'Input from :'
IPMSL  EQU  $-IPMSG
 
OPMSG  TEXT 'Output to  :'
OPMSL  EQU  $-OPMSG
 
SLMS10 TEXT 'FW ED-40  Help File Maker'
SLML10 EQU  $-SLMS10
 
SLMS20 TEXT 'Enter Output file '
SLML20 EQU  $-SLMS20
 
SLMS40 TEXT 'HELPMAKE transfers the first'
SLML40 EQU  $-SLMS40
SLMS42 TEXT '24 lines of DV/80 40 col to'
SLML42 EQU  $-SLMS42
SLMS44 TEXT 'a program file for FW Editor'
SLML44 EQU  $-SLMS44
SLMS46 TEXT '40 Help screen function.'
SLML46 EQU  $-SLMS46
 
KEYMS  TEXT ' ** Key to exit **'
KEYML  EQU  $-KEYMS
 
ERMS1  TEXT 'Disk/File problem '
ERMS1L EQU  $-ERMS1
 
CLOSE  BYTE >01
READ   BYTE >02
 
       EVEN
SLAST  EQU  $
       END
 
