DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦ecea7fb2c⟧

    Length: 36772 (0x8fa4)
    Notes: pts_type(SC)
    Names: »RKONV.SC«

Derivation

└─⟦26dca8ec8⟧ Bits:30009711 Philips computer tape "RÅKON-DIVFMT"
    └─⟦this⟧ »REMIT2/RKONV.SC« 

PTS(SC)

 IDENT RKONV 830215 NJ
 OPTNS LINES=46 
 DDUM KMD08 
 PDIV 
 ENTRY RKGO 
 ENTRY ATTHD1 
 ENTRY DKIO 
 ENTRY DKREAD 
 ENTRY ASG
 ENTRY DKWRIT 
 ENTRY RKASSG 
 EXT SPCLRA 
 EXT SPERR
 EXT SPCLRN 
 EXT MASK 
 EXT RKIO 
 EXT RAEXIT 
 EXT KBTEST 
 EXT RKTEST 
 EXT SPORG
 EXT PASS 
 EXT COPYDK 
 EXT LOD1 
 EXT GENWRF 
 EXT INIT 
* 
* 
* 
* 
 INCLUDE EQUATE 
 EJECT
RKGO
 SET SPPROMPT 
 MOVE SPKEY,CBIN4 INDICATE KEYTABLES TO BE USED 
 PERF PASS CHECK PASSWORD 
 BNOK RAEXIT ERROR, RETURN
 CBNE TTASKNR,CBIN1,RA100 RB, RC, .... ?
 SET GTRKMFLG 
RA020 
 MOVE GTSTRFMT,=C'DIV. INFO ' 
 ATTFMT HEAD
 PERF SPCLRN
 IB SPBINW2,RA020,RA020,RA030 
 B RAEXIT 
RA030 
 MOVE CDSNAME,=' '
RA100			CHOOSE NEW FUNCTION 
RA105 
 MOVE GTSTRFMT,=C'RUTINEVALG '
 ATTFMT HEAD2 
 MOVE GSWBCD3,=D'0' FREE RECORDS
 PERF SPCLRA
 CBE SPBINW2,=W'23',RA110 ONLINE ?
 CBNE SPBINW2,CBIN3,RA105 -, SLUT 
* 
 MOVE GSWBIN1,BCDWK 
 B RA150
RA110 
 B RAEXIT 
 EJECT
* * * * * * * * * * * * * * * * * * * * * * * * * 
* 
* 01%- R]KONVERTERING/FORSKUDSREGISTRERING
* 02 - [NDRING
* 03 - LOCAL INQUIRIES
* 04 - COPY FLOPPY DISCS
* 05 - LIST REG. CPRNR
* 06 - CHANGE CONSTANTS 
* 07 - LIST FD01
* 
*   %-CAN BE SELECTED BY NON-MASTER TERMINAL
* 
* * * * * * * * * * * * * * * * * * * * * * * * * 


RA150 
 TBT GTRKMFLG,RA200 MASTER ?
 CBE GSWBIN1,CBIN1,REG000 REG. ONLY 
 B ERR140 
* 
RA200 
 IB GSWBIN1,REG000,AND000,FOR000,COP000,		C 
		LST000,RA020,PRT000 
 B RA105
 EJECT
REG000
* TYPE 1, R]KONVERTERING / FORSKUDSREGISTRERING 
 TBF GTRKMFLG,REG700 NON-MASTER ? 
 PERF LOD1
 B NYVALG 
 B ERR60U READ/WRITE ERROR
 B ERR41 ASSIGN ERROR 
 CLEAR CHFLAG 
 CLEAR FULL INDICATE ROOM ON FD01 
 TBT FORSKUD,REG100 
 TBT LONOPL,REG120
 MOVE GTSTRFMT,=C'SLUTLIGNING ' 
 B REG200 
REG100 MOVE GTSTRFMT,=C'FORSKUDSREG. '
 B REG200 
REG120
 MOVE GTSTRFMT,=C'LONOPL. ' 
 B REG200 
REG200
 SET CRKKLAR
 PERF KONREG
 B REG200 REPEAT
 B REG300 NYVALG
 B REG400 WRITE ERROR 
 B REG500 NO ROOM 
REG300
 MOVE RECFREE,MAXREC
 MOVE RECUSE,CBIN0
 CLEAR CRKKLAR
 MOVE GSWBIN5,CBIN3 
 PERF DKIO
 BNOK ERR50 UNLOADERROR 
 B NYVALG 
REG400
 CLEAR CRKKLAR
 MOVE GSWBIN5,CBIN3 
 PERF DKIO
 BNOK ERR50 
 B ERR70
REG500
 CLEAR CRKKLAR
 MOVE GSWBIN5,CBIN3 
 PERF DKIO
 BNOK ERR50 
 B ERR110 
* THIS PORTION ONLY FOR NON-MASTER TASK 
REG700
 TBT CRKKLAR,REG800 
 MOVE GSWSTR80,=C'11IKKE STARTET OP P] HOVEDSK[RM ' 
 WRITE SCREEN,GSWSTR80
 DELAY CBIN20 
 B NYVALG 
REG800
 PERF KONREG
 B RA100 REPEAT 
 B NYVALG NEW SELECT
 B ERR70 WRITE ERROR
 B ERR110 NO ROOM 
 EJECT
AND000
			*** NOT TESTED YET *** 
* TYPE 2, AENDRING
 B NYVALG 
 MOVE GSWBIN5,CBIN2 
 PERF DKIO
 BNOK ERR60U R/W ERROR
 B ERR41 ALREADY LOADED 
 PERF LOD1
 B ERR41
 B ERR41
 B ERR41
 SET CHFLAG 
 CLEAR CPRFLAG
 SET CRKKLAR INDICATE READY FOR REG 
 MOVE GTSTRFMT,=C'[NDRING ' 
AND100
 PERF SPORG RETRIEVE CPR/INFO FROM FD02 
 B ERR90U RECORD DELIMITER WRONG
 B AND200 NORMAL
 B ERR90U READ ERROR
 B ERR130U NO INDEXREG
AND200
 SET CPRFLAG
 PERF KONREG AND CHANGE IT
 B AND100 REPEAT
 B AND300 EXIT FOR NEW SELECT 
 B AND500 WRITE ERROR 
 B AND600 NO MORE ROOM
AND300
 MOVE RECFREE,MAXREC
 MOVE RECUSE,CBIN0
 CLEAR CRKKLAR
AND400
 MOVE RECFREE,MAXREC
 MOVE RECUSE,CBIN0
 CLEAR CRKKLAR
 MOVE GSWBIN5,CBIN3 
 PERF DKIO
 BNOK ERR50 
 MOVE GSWBIN5,CBIN4 
 PERF DKIO
 BNOK ERR50 
 B NYVALG 
AND500
 MOVE GSWBIN5,CBIN4 
 PERF DKIO
 BNOK ERR50 
 B ERR70U 
AND600
 MOVE GSWBIN5,CBIN4 
 PERF DKIO
 BNOK ERR50 
 B ERR110U
 EJECT
FOR000
* TYPE 3, LOCAL INQUIRIES 
 PERF ASG,CBIN1 LOAD FD1
 BNOK ERR41 
 CLEAR CHFLAG 
 MOVE GTSTRFMT,=X'464F524553505C524720' FORESPOERG
 PERF SPORG RETRIEVE CPRINFO FROM FD01
 B ERR60U SLUTTEGN
 B FOR100 NORMAL
 B ERR60U READ ERROR
 B FOR100 FINISHED
 B ERR130U NO INDEXREG
FOR100
 MOVE GSWBIN5,CBIN3 
 PERF DKIO
 BNOK ERR50 
 B NYVALG 
 EJECT
COP000
* TYPE 4, COPY FLOPPY DISCS 
 SET COPYFLG
 MOVE GTSTRFMT,=C'DISKKOPIERING ' 
 PERF ASG,CBIN1 
 BNOK ERR41 IGNORE IF DISK LOADED 
 MOVE GSWBIN5,CBIN12 REWIND FD01
 PERF DKIO
 BNOK COP550
 PERF COPYDK
 B COP400 MAK 
 B COP500 READ ERROR
 B COP600 WRITE ERROR 
COP400
 MOVE GSWBIN1,CBIN1 
 B COP800 
COP500
 MOVE GSWBIN1,CBIN2 
 B COP800 
COP550
 MOVE GSWBIN1,CBIN4 
 B COP800 
COP600
 MOVE GSWBIN1,CBIN3 
 B COP800 
COP800
 MOVE GSWBIN5,CBIN3 
 PERF DKIO
 BNOK ERR50 
 IB GSWBIN1,NYVALG,ERR90U,ERR70U,ERR100U
COP900
 B NYVALG 
 EJECT
LST000
* TYPE 05, LIST REG. CPRNR
 MOVE GSWBCD1,=D'0' 
 MOVE GSWSTR80,=C'INDSTIL PRINTER ' 
 ATTFMT LISTFRM2
 PERF SPCLRA ADJUST GTP 
 CBE SPBINW2,CBIN2,COP900 
 PERF ASG,CBIN1 LOAD FD1
 BNOK ERR41 
 MOVE GTRECNR,CBIN6 
 MOVE GSWBIN5,CBIN5 
 PERF DKREAD READ VOL1
 BNOK ERR60U
 MOVE GSWSTR80,TEDBUF 
 PERF GENWRF,GTHCDEV,LISTFRM1 
 PERF DKREAD
 BNOK ERR60U
 MOVE GSWSTR80,TEDBUF 
 PERF GENWRF,GTHCDEV,LISTFRM1 
 MOVE GTRECNR,=W'26'
 PERF DKREAD
 BNOK ERR60U
 MOVE GSWSTR80,TEDBUF 
 PERF GENWRF,GTHCDEV,LISTFRM1 
 MOVE GSWSTR80,=C' '
 PERF GENWRF,GTHCDEV,LISTFRM1 
 MOVE WORK14,=C'0'
 MOVE GSWBIN1,CBIN0 
 MOVE GSWBIN2,CBIN4 
LST100
 PERF DKREAD
 BNOK ERR60U
 MOVE GSWSTR2,TEDBUF
 CBE GSWSTR2,=C'**',LST200
 MOVE GSWSTR2,=C'&' 
 MOVE GSWBIN8,CBIN0 
 MATCH TEDBUF,GSWBIN8,CBIN10,GSWSTR2,CBIN0,CBIN1
 BOK LST100 FORTS[TTELSESRECORD 
 MOVE WORK13,TEDBUF 
 CBE WORK13,WORK14,LST100 EQUAL CPRNR 
 MOVE WORK14,WORK13 
 ADD GSWBIN1,CBIN1
 MOVE WORK0(GSWBIN1),WORK14 SAVE CPRNR
 CBNE GSWBIN1,CBIN4,LST100
 PERF GENWRF,GTHCDEV,LISTFRMT 
 ADD GSWBIN2,CBIN1
 MOVE GSWBIN1,CBIN0 RE-INITIATE 
 MOVE WORK0(CBIN1),=D'0'
 MOVE WORK0(CBIN2),=D'0'
 MOVE WORK0(CBIN3),=D'0'
 MOVE WORK0(CBIN4),=D'0'
* MAK WILL TERMINATE CPRNRLIST
 PERF KBTEST
 BOK LST300 
 CBL GSWBIN2,=W'45',LST100
 MOVE GSWSTR80,=C' '
 PERF GENWR,LISTFRM1,CBIN6
 MOVE GSWBIN2,CBIN0 
 B LST100 
LST200
 PERF GENWRF,GTHCDEV,LISTFRMT 
 MOVE GSWSTR80,TEDBUF 
 PERF GENWRF,GTHCDEV,LISTFRM1 
 MOVE GSWSTR80,=C' '
 PERF GENWR,LISTFRM1,CBIN3
LST300
 MOVE GSWBIN5,CBIN3 
 PERF DKIO
 BNOK ERR50 
 B NYVALG 
 EJECT
* TYPE 7
* PRINT FD01
PRT000
 MOVE GSWBCD1,=D'0' 
 MOVE GSWSTR80,=C'INDSTIL PRINTER ' 
 ATTFMT LISTFRM2
 PERF SPCLRA ADJUST GTP 
 CBE SPBINW2,CBIN2,NYVALG 
 PERF ASG,CBIN1 
 BNOK ERR41 
 MOVE GSWSTR80,=' ' 
 PERF GENWRF,GTHCDEV,LISTFRM1 
 MOVE GTRECNR,CBIN6 
PRT100
 PERF DKREAD
 BNOK PRT200
 MOVE GSWBCD1,GTRECNR 
 MOVE GSWSTR80,TEDBUF 
 MOVE GSWSTR2,TEDBUF
 MOVE GSWBIN2,=W'80'
 MOVE GSWBIN1,CBIN0 
 MOVE GSWSTR1,=C'!' 
 MATCH GSWSTR80,GSWBIN1,GSWBIN2,STR7F,CBIN0,CBIN1 
 BNOK PRT150
 XCOPY GSWSTR80,GSWBIN1,CBIN1,GSWSTR1,CBIN0 
PRT150
 PERF GENWRF,GTHCDEV,LISTFRM1 
 PERF KBTEST
 BOK PRT400 
 CBNE GSWSTR2,=C'**',PRT100 
 B PRT400 
PRT200
 CBE GTRECNR,CBIN7,PRT100 
 CBE GTRECNR,CBIN8,PRT300 
 B PRT100 
PRT300
 MOVE GTRECNR,=W'26'
 B PRT100 
PRT400
 MOVE GSWBIN5,CBIN3 
 PERF DKIO
 BNOK ERR50 
 B NYVALG 
 EJECT
* 
* 
* ERROR ROUTINES
* 
ERR41 
 MOVE GSWSTR80,=C'ASSIGNFEJL '
 B ERRDISP
ERR50 
 MOVE GSWSTR80,=C'UNLOADFEJL '
 B ERRDISP
ERR60U
 MOVE GSWBIN5,CBIN3 
 PERF DKIO
 BNOK ERR50 
ERR60 
 MOVE GSWSTR80,=C'L[SEFEJL '
 B ERRDISP
ERR70U
 MOVE GSWBIN5,CBIN4 
 PERF DKIO
 BNOK ERR70 
ERR70 
 MOVE GSWSTR80,=C'SKRIVEFEJL '
 B ERRDISP
ERR90U
 MOVE GSWBIN5,CBIN4 
 PERF DKIO
 BNOK ERR100U 
 B ERR60
ERR100U 
 MOVE GSWBIN5,CBIN3 
 PERF DKIO
 BNOK ERR100
ERR100
 MOVE GSWSTR80,=C'REWINDFEJL '
 B ERRDISP
ERR110U 
 MOVE GSWBIN3,CBIN3 
 PERF DKIO
 BNOK ERR110
ERR110
 MOVE GSWSTR80,=C'DISKETTE FYLDT OP ' 
 B ERRDISP
ERR130U 
 MOVE GSWBIN5,CBIN3 
 PERF DKIO
 BNOK ERR130
ERR130
 MOVE GSWSTR80,=C'INTET INDEXREGISTER, HUSK KOPIERING ' 
 B ERRDISP
ERR140
 MOVE GSWSTR80,=C'RUTINE IKKE TILLADT P] DENNE TERMINAL ' 
 B ERRDISP
ERRDISP 
 ATTFMT LISTFRM2
 PERF SPCLRA
************************************************
NYVALG			NEW FUNCTION ? 
 B RA105
 EJECT
ATTHD1 PROC 
 ATTFMT HEAD1 
 RET
 PEND 



KONREG PROC 
***************************************** 
* 
* KONREG - R]KONVERTERING 
* 
* EXIT UPON COMPLETION: 
*   0 - REPEAT ROUTINE
*   2 - EXIT FOR NEW SELECT 
*   4 - WRITE ERROR 
*   6 - NO MORE ROOM ON FD01
* 
***************************************** 
ST0200
 CLEAR SPCHANGE 
 CLEAR INQ1 
 CLEAR INQ2 
 CLEAR INQ3 
ST0210
 PERF ATTHD1
 CLEAR SLUTFLAG 
 TBT CHFLAG,ST0215
 PERF CLRTST
ST0215
* WHEN RUNNING [NDRING, FIELDS
* 91/92/93 ARE TO BE RENAMED TO 26/27/28
 MOVE GSWBCD3,RECFREE 
 SUB GSWBCD3,=D'400'
 MOVE WORK5,RECUSE
 TBT OBS,ST0218 TABLES FILLED AFTER INQUIRY?
 PERF SPCLRA
 B ST0220 
ST0218
 CLEAR SPPROMPT 
 PERF SPCLRN
ST0220
 IB SPBINW2,ST40,ST40,ST03
 B ST0200 
ST03
 SET SPPROMPT 
 CLEAR OBS
 CLEAR COPYFLG
 TBF CRKKLAR,ST030
 PERF UPD 
 B ST0218 
 B ST35 
ST030 
 RET 4
ST35
 TBT FULL,ST45
 TBT CHFLAG,ST50
 B ST0210 
ST40
 TBT SPCHANGE,ST0200
 SET SPPROMPT 
 RET 2
ST45
 RET 6 NO MORE ROOM 
ST50			NORMAL RETURN, NEW CPRNR 
 RET
 PEND 
	EJECT
************************************************************
* 
*       CLRTST - CLEARING OF TESTSTRG 
* 
************************************************************* 

CLRTST PROC 
 MOVE GSWBIN1,CBIN12
 MOVE GSWBIN2,CBIN4 
CLRT10
 MOVE FIELD(GSWBIN1,GSWBIN2),=D'0'
 MOVE SAVEF(GSWBIN1,GSWBIN2),=C' '
 SUB GSWBIN2,CBIN1
 BNZ CLRT10 
 MOVE GSWBIN2,CBIN4 
 SUB GSWBIN1,CBIN1
 BNZ CLRT10 
 RET
 PEND 
* 
* 
* 
MASKDK PROC DK
****************************************
* 
* MASKDK - INSPECT MASK FROM EXTENDED STATUSWORD
* 
* CALL:     PERF   MASKDK,<DISK>
* 
* EXIT UPON COMPLETION: 
*   0 - ERROR 
*   2 - NORMAL
* 
****************************************

 XSTAT DK,SPBINW4 
 CALL MASK,SPBINW4,GSWBIN5
 BZ MASKR2
 MOVE GSWBIN1,CBIN15
 MOVE GSWBIN2,CBIN1 
MASK01
 CALL MASK,SPBINW4,GSWBIN2
 BNZ MASKRET
 SUB GSWBIN1,CBIN1
 CBNE GSWBIN1,CBIN2,MASK02
 MOVE SPBINW4,CBIN0 
 B MASKRET
MASK02
 MOVE GSWBCD5,GSWBIN2 
 ADD GSWBIN2,GSWBIN2
 BOFL MASKRET SHOULD NOT HAPPEN 
 B MASK01 
 MOVE SPBINW4,CBIN1 
 MOVE GSWBCD4,GSWBIN1 
MASKRET 
 CMP CBIN0,CBIN1
 RET
MASKR2
 CMP CBIN0,CBIN0
 RET
 PEND 


GENWR PROC FORMAT,LOOP
 MOVE GSWBIN1,LOOP
GEN10 
 PERF GENWRF,GTHCDEV,FORMAT 
 SUB GSWBIN1,CBIN1
 BP GEN10 
 RET
 PEND 
 EJECT
DKREAD PROC 
****************************************
* 
* DKREAD - DISK READ PROCEDURE
* 
* IF ERROR, A LINE IS DISPLAYED ON VDU, 
* IF OK, THE RECORD IS DELIVERED IN TEDBUF, 
* 
* CALL:    PERF DKREAD
* EXIT UPON COMPLETION: 
*   0 - ERROR 
*   2 - NORMAL
* 
***************************************** 

 MOVE GSWBIN5,CBIN5 
 PERF DKIO
 BNOK READ10
 B READRET
READ10
 MOVE GSWBCD4,SPBINW4 
 ADD GSWBCD4,=D'70' 
 MOVE SPBINW4,CBIN1 
 CMP CBIN0,CBIN1
 RET
READRET 
 ADD GTRECNR,CBIN1
 CMP CBIN0,CBIN0
 RET
 PEND 



DKWRIT PROC 
***************************************** 
* 
* DKWRIT - DISK WRITE PROCEDURE 
* 
* IF ERROR, A LINE IS DISPLAYED ON VDU, 
* 
* CALL:     PERF DKWRIT 
* 
* EXIT UPON COMPLETION: 
*   0 - EROR
*   2 - NORMAL
* 
******************************************

 MOVE GTRECNR,LASTREC 
 SUB GTRECNR,RECFREE
 CBE RECFREE,CBIN0,WRITERR NO MORE SPACE
 MOVE GSWBIN5,CBIN7 
 PERF DKIO
 BNOK WRITERR 
 TBT COPYFLG,WRITRET DONT PROPAGATE SLUTRECORD
 ADD GTRECNR,CBIN1
 EDIT TEDBUF,ENDCARD
 MOVE GSWBIN5,CBIN7 
 PERF DKIO
 BNOK WRITERR 
WRITRET 
 ADD ENDREC,CBIN1 
 MOVE RECUSE,ENDREC 
 SUB RECFREE,CBIN1
 CMP CBIN0,CBIN0
 RET
WRITERR 
 MOVE GSWBCD4,SPBINW4 
 ADD GSWBCD4,=D'90' 
 MOVE SPBINW4,CBIN1 
 CMP CBIN0,CBIN1
 RET
 PEND 
 EJECT
DKIO PROC 
********************************************* 
* 
* DKIO - THE PROCEDURES TAKES CARE OF ALL I/O 
* ON DISK. THE FUNCTION IS SPECIFIED IN GSWBIN5.
* AFTER HAVING CALLED RKIO, THE RETURNWORD
* IS INSPECTED IN MASKDK. AND AN EVENTUAL 
* ERRORCODE IS RETURNED IN GSWBCD4, FOR 
* DISPLAYING PURPOSES VIA A SPERR-CALL
* 
* RETURN UPON COMPLETION: 
* 0 - ERROR 
* 2 - NORMAL
**********************************************

 IB GSWBIN5,TOSS1,TOSS2,TOSS3,TOSS4,TOSS5,TOSS6,TOSS7,		C 
		TOSS8,TOSS9,TOSS10,TOSS11,TOSS12,TOSS13,TOSS14,		C
		TOSS15
 CMP CBIN0,CBIN1
 RET
TOSS1 
* LOAD FD01 
 MOVE GTRECNR,CBIN7 
 MOVE LENGTH,=W'80' 
 CALL RKIO,FDRK01,HEXB7,TEDBUF,LENGTH,GTRECNR 
 MOVE GSWBIN5,=X'FFDF'
 B TOSS50 
TOSS2 
* LOAD FD02 
 MOVE GTTRKEY,CBIN7 
 MOVE LENGTH,=W'80' 
 CALL RKIO,FDRK02,HEXB7,TEDBUF,LENGTH,GTTRKEY 
 MOVE GSWBIN5,=X'FFDF'
 B TOSS60 
TOSS3 
* UNLOAD FD01 
 MOVE LENGTH,=W'128'
 CALL RKIO,FDRK01,HEXB8,TEDBUF,LENGTH,GTRECNR 
 MOVE GSWBIN5,=X'FFFF'
 B TOSS50 
TOSS4 
* UNLOAD FD02 
 MOVE LENGTH,=W'128'
 CALL RKIO,FDRK02,HEXB8,TEDBUF,LENGTH,GTTRKEY 
 MOVE GSWBIN5,=X'FFFF'
 B TOSS60 
TOSS5 
* PHYSICAL READ FD01
 MOVE LENGTH,=W'128'
 CALL RKIO,FDRK01,HEX91,TEDBUF,LENGTH,GTRECNR 
 MOVE GSWBIN5,=X'FFFF'
 B TOSS50 
TOSS6 
* PHYSICAL READ FD02
 MOVE LENGTH,=W'128'
 CALL RKIO,FDRK02,HEX91,TEDBUF,LENGTH,GTTRKEY 
 MOVE GSWBIN5,=X'FFFF'
 B TOSS60 
TOSS7 
* PHYSICAL WRITE FD01 
 MOVE COPYBUF,TEDBUF
 MOVE TEDBUF,BINULL 
 MOVE LENGTH,=W'80' 
 COPY TEDBUF,CBIN0,LENGTH,COPYBUF,CBIN0 
TOSS7A
 MOVE LENGTH,=W'128'
 CALL RKIO,FDRK01,HEX95,TEDBUF,LENGTH,GTRECNR 
 MOVE GSWBIN5,=X'FFFF'
 B TOSS50 
TOSS8 
* SEQUENTIAL READ, FD01 
 MOVE LENGTH,=W'128'
 CALL RKIO,FDRK01,HEX82,TEDBUF,LENGTH,GTRECNR 
 MOVE GSWBIN5,=X'FFFF'
 B TOSS50 
TOSS9 
* SEQUENTIAL READ, FD02 
 MOVE LENGTH,=W'80' 
 CALL RKIO,FDRK02,HEX82,TEDBUF,LENGTH,GTTRKEY 
 MOVE GSWBIN5,=X'FFFF'
 B TOSS60 
TOSS10
* SEQUENTIAL WRITE,FD01 
 MOVE LENGTH,=W'80' 
 MOVE COPYBUF,TEDBUF
 MOVE TEDBUF,BINULL 
 COPY TEDBUF,CBIN0,LENGTH,COPYBUF,CBIN0 
 MOVE LENGTH,=W'80' 
 CALL RKIO,FDRK01,HEX86,TEDBUF,LENGTH,GTRECNR 
 MOVE GSWBIN5,=X'FFFF'
 B TOSS50 
TOSS11
* SEQUENTIAL WRITE,FD02 
 MOVE LENGTH,=W'128'
 CALL RKIO,FDRK02,HEX86,TEDBUF,LENGTH,GTTRKEY 
 MOVE GSWBIN5,=X'FFFF'
 B TOSS60 
TOSS12
* REWIND FD01 
 MOVE LENGTH,=W'128'
 CALL RKIO,FDRK01,HEX31,TEDBUF,LENGTH,GTRECNR 
 MOVE GSWBIN5,=X'FFFF'
 B TOSS50 
TOSS13
* REWIND FD02 
 MOVE LENGTH,=W'128'
 CALL RKIO,FDRK02,HEX31,TEDBUF,LENGTH,GTTRKEY 
 MOVE GSWBIN5,=X'FFFF'
 B TOSS60 
TOSS14
* PHYSICAL WRITE FD02 
 MOVE LENGTH,=W'128'
 CALL RKIO,FDRK02,HEX95,TEDBUF,LENGTH,GTTRKEY 
 MOVE GSWBIN5,=X'FFFF'
 B TOSS60 
* 
TOSS15
* PHYSICAL WRITE FD01, LENGTH 128 
 B TOSS7A 

* 
TOSS50 PERF MASKDK,FDRK01 
 RET
TOSS60 PERF MASKDK,FDRK02 
 RET
 PEND 
 EJECT
UPD PROC
********************************************* 
* 
* UPD - THE PROCEDURE CREATES DETAILRECORD(S) ON FD01 
*       AFTER TESTING THE FIELDS
* 
* EXIT UPON COMPLETION: 
*   0 - ERROR IN SLUTEST-CALL 
*   2 - NORMAL
*   4 - DISK WRITE ERROR
* 
**********************************************

 PERF RKTEST
 BOK UPD01
 SET SLUTFLAG 
 PERF SPERR 
 CLEAR SLUTFLAG 
 B UPDER
UPD01 
* ONLY ONE TASK IS ALLOWED TO WRITE TO FD01 AT A TIME.
* HENCE FDBUSY WILL BE SET ON ENTERING THIS PROCEDURE,
* AND IT WILL BE CLEARED AGAIN UPON LEAVING IT. 
UPD00 
 TBF FDBUSY,UPD05 
 DELAY CBIN2
 B UPD00 AND TRY AGAIN
UPD05 
 SET FDBUSY 
 CLEAR SLUTFLAG 
 MOVE TEDBUF,BINULL 
 MOVE GSWBIN6,CBIN1 
 MOVE GSWBIN7,CBIN1 
 MOVE GTANTAL,=D'1' 
 MOVE CARDPT,CBIN0
 MOVE CARDBUF,=C' ' 
 B UPD25
UPD20 
 ADD GSWBIN7,CBIN1
 CBNG GSWBIN7,CBIN4,UPD25 
 MOVE GSWBIN7,CBIN1 
 ADD GSWBIN6,CBIN1
 CBG GSWBIN6,CBIN12,UPDRET
UPD25 
 CBE FIELD(GSWBIN6,GSWBIN7),=D'0',UPD20 
 MOVE GSWSTR20,BINULL 
 MOVE BCDWK,FIELD(GSWBIN6,GSWBIN7)
 EDIT GSWSTR20,FLTFRMT
 MOVE GSWBIN1,CBIN4 
 MATCH GSWSTR20,GSWBIN1,CBIN12,BINULL,CBIN0,CBIN1 
 ADD CARDPT,GSWBIN1 
 CBG CARDPT,=W'66',UPD30
 SUB CARDPT,GSWBIN1 
 COPY CARDBUF,CARDPT,GSWBIN1,GSWSTR20,CBIN0 
 ADD CARDPT,GSWBIN1 
 B UPD20
UPD30 
 SUB CARDPT,GSWBIN1 
 MOVE GSWSTR20,STR25
 COPY CARDBUF,CARDPT,CBIN1,GSWSTR20,CBIN0 
 CBE GTANTAL,=D'1',UPD40
 MOVE GSWSTR20,GTANTAL
 INSRT CARDBUF,CBIN0,CBIN1,GSWSTR20,CBIN1 
 MOVE TEDBUF,CARDBUF
 B UPD45
UPD40 
 EDIT TEDBUF,DETCARD
UPD45 
 PERF DKWRIT
 BNOK UPDER4
 ADD GTANTAL,=D'1'
 MOVE CARDPT,CBIN0
 MOVE CARDBUF,=C' ' 
 B UPD25
UPDRET
 MOVE GSWSTR20,STR7F
 COPY CARDBUF,CARDPT,CBIN1,GSWSTR20,CBIN0 
 CBE GTANTAL,=D'1',UPD50
 MOVE GSWSTR20,GTANTAL
 INSRT CARDBUF,CBIN0,CBIN1,GSWSTR20,CBIN1 
 MOVE TEDBUF,CARDBUF
 B UPD52
UPD50 
 EDIT TEDBUF,DETCARD
UPD52 
 PERF DKWRIT
 BNOK UPDER4
 CBG RECFREE,CBIN20,UPD55 CHECK FOR MORE ROOM 
 SET FULL 
UPD55 
 CLEAR FDBUSY 
 RET 2
UPDER4
 CLEAR FDBUSY 
 RET 4
UPDER RET 
 PEND 
 EJECT
ASG PROC PAR

**********************************************
* 
* ASG - LOAD FLOPPY DISC AT FIRST RECORD
* FD01 ::= $PAR = 1 
* FD02 ::= $PAR = 2 
* 
* EXIT UPON COMPLETION: 
*     0 - ERROR 
*     2 - NORMAL
* 
**********************************************

 MOVE GSWBIN5,PAR 
 CBNE GSWBIN5,CBIN1,ASG10 
 MOVE RECFREE,MAXREC
 MOVE ENDREC,CBIN0
ASG10 
 PERF DKIO
 RET
 PEND 
 EJECT
RKASSG PROC 
* 
* LOAD FD01 AND SEARCH END OF DATA
* 
 PERF ASG,CBIN1 
 BNOK AS90 ASSIGNERROR
 MOVE GTRECNR,=W'26'
AS10
 PERF DKREAD
 BNOK AS90
 MOVE GSWSTR2,TEDBUF
 CBNE GSWSTR2,=C'**',AS10 
 CBNE GTRECNR,=W'26',AS16 
 PERF INIT
 B AS90 
 B AS90 
 B AS20 
AS16
 MOVE TEDBUF,=C' '
 SUB GTRECNR,CBIN1 1 TOO FAR (DKREAD ADDS 1)
 MOVE ENDREC,GTRECNR
 SUB ENDREC,=W'26'
 MOVE RECUSE,ENDREC 
 SUB RECFREE,RECUSE 
AS20
 CMP CBIN0,CBIN0
 RET
AS90
 CMP CBIN0,CBIN1
 RET
 PEND 
 EJECT
************************************************************* 
* 
*            FORMATS
* 
************************************************************* 
* 
* 
HEAD FRMT 
 FSL
 FCOPY GTSTRFMT 
 FCOPY =' DATO' 
 FILLR ' ',2
 FKI 28,MINL=6,MAXL=6,SCHK=2,ME,REWRT,NCLR
 FMEL '99E-99E-99',DATE 
 FNL
 FCOPY =C'SKATTE]R' 
 FILLR ' ',2
 FKI 14,MINL=2,MAXL=2,ME,REWRT,NCLR 
 FMEL '99',YEAR 
 FNL
 FTEXT 'INDTAST GR[NSE FOR MEDHJ.HUSTRU ' 
 FKI 34,MINL=5,MAXL=6,ME,REWRT,NCLR 
 FMEL 'ZZZVZZZ',MEDHJ 
 FTAB 49
 FTEXT 'OG FORMUE ' 
 FKI 60,MINL=6,MAXL=7,ME,REWRT,NCLR 
 FMEL 'ZVZZZVZZZ',FORMUE
 FMEND
* 
HEAD1 FRMT
 FSL
 FCOPY GTSTRFMT 
 FCOPY =' DATO' 
 FTAB 28
 FHIGH
 FMEL '99E-99E-99',DATE 
 FLOW 
 FCOPY ='    DATAS[T' 
 FTAB 42
 FCOPY CDSNAME
 FILLR ' ',8
 FCOPY =' RECORDS FRI'
 FTAB 73
 FHIGH
 FMEL '9999',GSWBCD3
 FLOW 
 FNL
 FTEXT 'CPR-NR' 
 FILLR ' ',52 
 FTEXT 'RECORD NR'
 FTAB 73
 FHIGH
 FMEL '9999',WORK5
 FLOW 
 FNL
 FBT CPRFLAG,HEAD101
 FKI 1,MINL=10,MAXL=10,ME,REWRT,SCHK=1
HEAD101 
 FMEL '999999E-9999',CPRNR
 FBF INQ1,HEAD102 
 FEXIT
HEAD102 
 FNL
 FCOPY ='FNR FELTINDHOLD' 
 FILLR ' ',6
 FCOPY ='FNR FELTINDHOLD' 
 FILLR ' ',6
 FCOPY ='FNR FELTINDHOLD' 
 FILLR ' ',6
 FCOPY ='FNR FELTINDHOLD' 
 FNL
 FKI 1,APPL=6,MINL=2,MAXL=3,NUM 
 FMEL 'ZZZ',FIELD(CBIN1,CBIN1)
 FKI 5,MINL=1,MAXL=12,APPL=3,ALPHA
 FCOPY SAVEF(CBIN1,CBIN1) 
 FKI 22,MINL=1,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN1,CBIN2)
 FKI 26,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN1,CBIN2) 
 FKI 43,MINL=1,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN1,CBIN3)
 FKI 47,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN1,CBIN3) 
 FKI 64,MINL=1,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN1,CBIN4)
 FKI 68,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN1,CBIN4) 
 FNL
 FKI 1,APPL=6,MINL=2,MAXL=3,NUM 
 FMEL 'ZZZ',FIELD(CBIN2,CBIN1)
 FKI 5,MINL=1,MAXL=12,APPL=3,ALPHA
 FCOPY SAVEF(CBIN2,CBIN1) 
 FKI 22,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN2,CBIN2)
 FKI 26,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN2,CBIN2) 
 FKI 43,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN2,CBIN3)
 FKI 47,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN2,CBIN3) 
 FKI 64,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN2,CBIN4)
 FKI 68,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN2,CBIN4) 
 FNL
 FKI 1,APPL=6,MINL=2,MAXL=3,NUM 
 FMEL 'ZZZ',FIELD(CBIN3,CBIN1)
 FKI 5,MINL=1,MAXL=12,APPL=3,ALPHA
 FCOPY SAVEF(CBIN3,CBIN1) 
 FKI 22,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN3,CBIN2)
 FKI 26,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN3,CBIN2) 
 FKI 43,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN3,CBIN3)
 FKI 47,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN3,CBIN3) 
 FKI 64,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN3,CBIN4)
 FKI 68,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN3,CBIN4) 
 FNL
 FKI 1,APPL=6,MINL=2,MAXL=3,NUM 
 FMEL 'ZZZ',FIELD(CBIN4,CBIN1)
 FKI 5,MINL=1,MAXL=12,APPL=3,ALPHA
 FCOPY SAVEF(CBIN4,CBIN1) 
 FKI 22,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN4,CBIN2)
 FKI 26,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN4,CBIN2) 
 FKI 43,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN4,CBIN3)
 FKI 47,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN4,CBIN3) 
 FKI 64,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN4,CBIN4)
 FKI 68,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN4,CBIN4) 
 FNL
 FKI 1,APPL=6,MINL=2,MAXL=3,NUM 
 FMEL 'ZZZ',FIELD(CBIN5,CBIN1)
 FKI 5,MINL=1,MAXL=12,APPL=3,ALPHA
 FCOPY SAVEF(CBIN5,CBIN1) 
 FKI 22,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN5,CBIN2)
 FKI 26,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN5,CBIN2) 
 FKI 43,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN5,CBIN3)
 FKI 47,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN5,CBIN3) 
 FKI 64,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN5,CBIN4)
 FKI 68,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN5,CBIN4) 
 FNL
 FKI 1,APPL=6,MINL=2,MAXL=3,NUM 
 FMEL 'ZZZ',FIELD(CBIN6,CBIN1)
 FKI 5,MINL=1,MAXL=12,APPL=3,ALPHA
 FCOPY SAVEF(CBIN6,CBIN1) 
 FKI 22,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN6,CBIN2)
 FKI 26,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN6,CBIN2) 
 FKI 43,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN6,CBIN3)
 FKI 47,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN6,CBIN3) 
 FKI 64,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN6,CBIN4)
 FKI 68,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN6,CBIN4) 
 FNL
 FKI 1,APPL=6,MINL=2,MAXL=3,NUM 
 FMEL 'ZZZ',FIELD(CBIN7,CBIN1)
 FKI 5,MINL=1,MAXL=12,APPL=3,ALPHA
 FCOPY SAVEF(CBIN7,CBIN1) 
 FKI 22,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN7,CBIN2)
 FKI 26,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN7,CBIN2) 
 FKI 43,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN7,CBIN3)
 FKI 47,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN7,CBIN3) 
 FKI 64,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN7,CBIN4)
 FKI 68,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN7,CBIN4) 
 FNL
 FKI 1,APPL=6,MINL=2,MAXL=3,NUM 
 FMEL 'ZZZ',FIELD(CBIN8,CBIN1)
 FKI 5,MINL=1,MAXL=12,APPL=3,ALPHA
 FCOPY SAVEF(CBIN8,CBIN1) 
 FKI 22,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN8,CBIN2)
 FKI 26,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN8,CBIN2) 
 FKI 43,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN8,CBIN3)
 FKI 47,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN8,CBIN3) 
 FKI 64,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN8,CBIN4)
 FKI 68,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN8,CBIN4) 
 FNL
 FKI 1,APPL=6,MINL=2,MAXL=3,NUM 
 FMEL 'ZZZ',FIELD(CBIN9,CBIN1)
 FKI 5,MINL=1,MAXL=12,APPL=3,ALPHA
 FCOPY SAVEF(CBIN9,CBIN1) 
 FKI 22,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN9,CBIN2)
 FKI 26,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN9,CBIN2) 
 FKI 43,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN9,CBIN3)
 FKI 47,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN9,CBIN3) 
 FKI 64,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN9,CBIN4)
 FKI 68,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN9,CBIN4) 
 FNL
 FKI 1,APPL=6,MINL=2,MAXL=3,NUM 
 FMEL 'ZZZ',FIELD(CBIN10,CBIN1) 
 FKI 5,MINL=1,MAXL=12,APPL=3,ALPHA
 FCOPY SAVEF(CBIN10,CBIN1)
 FKI 22,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN10,CBIN2) 
 FKI 26,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN10,CBIN2)
 FKI 43,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN10,CBIN3) 
 FKI 47,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN10,CBIN3)
 FKI 64,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN10,CBIN4) 
 FKI 68,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN10,CBIN4)
 FNL
 FKI 1,APPL=6,MINL=2,MAXL=3,NUM 
 FMEL 'ZZZ',FIELD(CBIN11,CBIN1) 
 FKI 5,MINL=1,MAXL=12,APPL=3,ALPHA
 FCOPY SAVEF(CBIN11,CBIN1)
 FKI 22,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN11,CBIN2) 
 FKI 26,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN11,CBIN2)
 FKI 43,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN11,CBIN3) 
 FKI 47,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN11,CBIN3)
 FKI 64,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN11,CBIN4) 
 FKI 68,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN11,CBIN4)
 FNL
 FKI 1,APPL=6,MINL=2,MAXL=3,NUM 
 FMEL 'ZZZ',FIELD(CBIN12,CBIN1) 
 FKI 5,MINL=1,MAXL=12,APPL=3,ALPHA
 FCOPY SAVEF(CBIN12,CBIN1)
 FKI 22,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN12,CBIN2) 
 FKI 26,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN12,CBIN2)
 FKI 43,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN12,CBIN3) 
 FKI 47,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN12,CBIN3)
 FKI 64,MINL=2,MAXL=3,APPL=6,NUM
 FMEL 'ZZZ',FIELD(CBIN12,CBIN4) 
 FKI 68,MINL=1,MAXL=12,APPL=3,ALPHA 
 FCOPY SAVEF(CBIN12,CBIN4)
 FNL
 FMEND
* 
HEAD2 FRMT
 FSL
 FCOPY GTSTRFMT 
 FCOPY =' DATO' 
 FILLR ' ',1
 FMEL 'Z99E-99E-99',DATE
 FCOPY ='    DATAS[T' 
 FILLR ' ',1
 FCOPY CDSNAME
 FILLR ' ',10 
 FCOPY =' RECORDS FRI'
 FTAB 73
 FMEL '99999',GSWBCD3 
 FNL
 FCOPY =C'SKATTE]R' 
 FMEL 'Z99',YEAR
 FNL
 FTEXT '01*- SLUTLIGNING/FORSKUDSREG./LONOPL.'
 FNL
 FTEXT '02 - [NDRINGER' 
 FNL
 FTEXT X'3033202D20464F524553505C5247'
 FNL
 FTEXT '04 - DISKKOPIERING' 
 FNL
 FTEXT '05 - LIST CPRNR'
 FNL
 FTEXT '06 - [NDRING AF KONSTANTER' 
 FNL
 FTEXT '07 - UDSKRIVNING AF DISKETTE '
 FNL
 FKI 01,MINL=1,MAXL=2,ME
 FMEL 'ZZZ',BCDWK 
 FMEND
* 
LISTFRM1 FRMT 
 FILLR '+',2
 FMEL 'ZZZZ',GSWBCD1
 FILLR ' ',4
 FCOPY GSWSTR80 
 FEOR 
 FILLR ' ',2
 FMEND
* 
LISTFRM2 FRMT 
 FSL
 FCOPY GSWSTR80 
 FNL
 FKI 1,MINL=0,MAXL=1
 FMEL 'Z',BCDWK 
 FMEND
* 
LISTFRMT FRMT 
 FILLR '+',2
 FILLR ' ',8
 FMEL '99E-99E-99E-9999',WORK0(CBIN1) 
 FILLR ' ',10 
 FMEL '99E-99E-99E-9999',WORK0(CBIN2) 
 FILLR ' ',10 
 FMEL '99E-99E-99E-9999',WORK0(CBIN3) 
 FILLR ' ',10 
 FMEL '99E-99E-99E-9999',WORK0(CBIN4) 
 FEOR 
 FILLR ' ',2
 FMEND
* 
ENDCARD FRMT
 FILLR '*',2
 FMEL '999',RKKMNR
 FILLR ' ',60 
 FILLR ' ',15 
 FMEND
* 
DETCARD FRMT
 FMEL '9999999999',CPRNR
 FCOPY CARDBUF
 FMEND
* 
FLTFRMT FRMT
 FILLR C'&',1 
 FMEL 'T99',BCDWK 
 FCOPY SAVEF(GSWBIN6,GSWBIN7) 
 FMEND
 END

Full view