|
|
DataMuseum.dkPresents historical artifacts from the history of: Philips Data Systems |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Philips Data Systems Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 20746 (0x510a)
Notes: pts_type(SC)
Names: »DANTER.SC«
└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
└─⟦this⟧ »S:DE/DANTER.SC«
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
└─⟦this⟧ »S:DE/DANTER.SC«
IDENT DANTER PRR 1.0 80-01-07/DALI ****************************************** * THIS ROUTINE HANDLE THE KEYBOARD INPUT * * AND IS A MODIFIED VERSION OF THE STAN- * * DARD S C R E E N - P A C K A G E. * ****************************************** * * RUNNING UNDER: CREDIT REL 4.1 * TOSS REL 9.1 ****************************************** DDUM DEDDIV PDIV * ENTRY DECLRA CLEAR ALL VARIABLE FIELDS ENTRY DECLRS CLEAR SOME VARIABLE FIELDS ENTRY DECLRN CLEAR NO VARIABLE FIELDS ENTRY DECLRD ENTRY DERR DENTER-ERROR EXT DERROR ERROR-MESSAGES EXT DEGEN GENERATION ROUTINE EXT CANC -ROUTINES * EXT DESTAT BUILD THE STATUSLINE EXT DEAPPL STANDARD ROUTINE TO EXT DEAPPU USER ROUTINE TO HANDLE HANDLE APPL VALUES APPL VALUES EXT DETCHK USER ROUTINE TO EVALUATE CONDITIONAL TABULATION EXT DENVAL EXT DEEDIT EXT DENDUP EXT DEFORC HANDLE FORCEDITEM EXT DEVERI KEY-VERIFICATION * EXT EMPTYT ASSEMBLY SUBROUTINE EMPTYT - TEST IF DATA ITEM IS EMPTY EXT FORCED ASSEMBLY SUBROUTINE FORCED - TEST IF DATA ITEM IS FORCED EXT ATTDB ASSEMBLY SUBROUTINE ATTDB - ATTACH DESCRIPTORBLOCK EXT ATTPRT RESERVE PRINTER EXT ATTDEV RESERVE DEVICE EXT DETPRT RELEASE PRINTER EXT MASK EXT GETVAL LOOK FOR VALIDATION- STRING FOR CURRENT FIELD EXT GETGEN LOOK FOR GENERARTION- STRING FOR CURRENT FIELD EXT TESTB TEST FOR A BIT IN A BIN EXT CLEARB CLEAR A BIT IN A BIN ITEM EXT DELOCK TEST KEY-LOCKS EXT GETFWD ASSEMBLY SUBROUTINE GETFWD - EXECUTE GETFLD. NOTE THAT CONDITION=3, MEANING THAT EMPTY COMPULSURY FIELDS IS FOUND,WILL "NOT" BE INDICATED EXT ADJUST ASSEMBLY SUBROUTINE ADJUST - ADJUST FORMATPOINTERS AFTER EXECUTION OF GETFWD EJECT * INCLUDE DELITT,LIST EJECT * * CLEAR ALL VARIABLE FIELD BEFORE HANDLING THE PICTURE * DECLRA PROC PERF DENTER,W1 RET PEND * * CLEAR SOME VARIABLE FIELDS BEFORE HANDLING THE PICTURE * DECLRS PROC PERF DENTER,W2 RET PEND * * CLEAR NO VARIABLE FIELDS BEFORE HANDLING THE PICTURE * DECLRN PROC PERF DENTER,W3 RET PEND * * CLEAR SOME VARIABLE FILEDS AND DISPLAY THE REST * OF THE VARIABLE FIELDS BEFORE HANDLING THE PICTURE * DECLRD PROC * PERF DENTER,W4 RET PEND * * ERROR PRINTOUT * DERR PROC MOVE DEBINW1,W0 PERF DENTER,W0 RET PEND EJECT DENTER PROC OPT CLEAR DOOLC ERASEFLAG OFF MOVE DEBINW2,OPT MOVE TO VARIABLE TO ALLOW INSTR.S CMP AND IB CMP DEBINW2,W0 "DEERR" ENTRY ? BE ERRPRINT YES ! TBT DEPROMPT,ENTIRE JUMP IF ENTIRE FORMAT SHOULD BE DIDELAYED * * ONLY VARIABLE FIELDS * IB DEBINW2 C CLEARA C CLEARS C CONT C CLEARD * CLEARA ERASE 2,W1,W0 ERASE ALL FROM 1 AND UP B CONT * CLEARS ERASE 5,W1,W0 ERASE SOME FROM 1 AND UP B CONT CLEARD TBT VERIFM,VERIF DISPLAY 3,W1,W0 DISPLAY FROM 1 AND UP B CONT VERIF TBF KEYVER,SIGHT DISPLAY 23,W1,W0 B CONT SIGHT DISPLAY 33,W1,W0 B CONT EJECT * * DISPLAY ENTIRE FORMAT * ENTIRE CLEAR DEPROMPT IB DEBINW2 JUMP C ECLRA ON C ECLRS ROUTINE C ECLRN INDEX C ECLRN * * CLEAR ALL VARIABLES * ECLRA ERASE 3,W1,W0 CLEAR ALL FROM 1 AND UP IN MEMORY B ECLRN CONTINUE * * CLEAR SOME VARIABLES * ECLRS ERASE 6,W1,W0 CLEAR SOME FIELDS FROM 1 AND UP IN MEMORY * * CLEAR NO VARIABLES IN MEMORY * ECLRN TBT VERIFM,EVERIF DISPLAY 0,W1,W0 DISPLAY ENTIRE FORM B CONT EVERIF TBF KEYVER,ESIGHT DISPLAY 20,W1,W0 B CONT ESIGHT DISPLAY 30,W1,W0 EJECT * CONT MOVE DEBINW2,W8 HOME-KEY CONT3 GETABX DEBINW4 GET CURRENT INDEX BL KTHOME JUMP IF NO CURRENT FIELD TBF VERIFM,CONT5 B KTHOME CONT5 GETFLD 0,DEBINW4,DEBINW3 SEARCH CURRENT POSITION BZ CONT6 JUMP IF FOUND BL KTHOME POSITION NOT FOUND * * COMPULSORY FIELD FOUND * MOVE DEBINW4,DEBINW3 CHANGE INDEX B CONT5 SEARCH AGAIN * CONT6 TSTCTL 5 LOOK IF CTAB BZ SETCREAD TEST DOOLA BZ KTHOME JUMP IF NOT BALANCE MOVE DEBINW2,W9 B KTHOME EJECT * * SET CURSOR AND READ KEYBOARD * SETCREAD SETCUR SET CURSOR ON CURRENT FIELD * * READ TO CURRENT FIELD ON DISPLAY * READIN TBF DENOCHAN,READ50 READ10 MOVE DEBINW1,W0 MOVE DEBINW3,W1 TBF VERIFM,READ12 NKI .NE,DEDSDYKB,DEINPUT,DEKTABV,DEBINW3,DEBINW2 B READ14 READ12 NKI .NE,DEDSDYKB,DEINPUT,DEKTAB5,DEBINW3,DEBINW2 READ14 PERF DELOCK,W1,DEBINW2 IB DEBINW3,READ30,READ20,READ10 B READ40 * READ20 ERROR XSTAT DEDSDYKB,DEBINW3 CALL MASK,DEBINW3,W64 BNZ READ10 EDWRT DEDSSCRN,BELL B READ10 * READ30 POWER OFF TBT VERIFM,EVERIF DISPLAY 0,W1,W0 B SETCREAD * READ40 IB DEBINW2,READ10,STATUS,KCOPY SUB DEBINW2,W3 TBT DOOL3,READ45 JUMP IF NOT WORKING CLEAR DENOCHAN WITTH THE DATA-FILE READ45 RET * READ50 TBF VERIFM,READ55 JUMP IF NOT KEY-VERIFICATION PERF DEVERI IB DEBINW4,KTKEY2,EVERIF,KCOPY,ERRP20 * RETURN FROM DENTER DEPENDING ON FUNCTION-KEYT RET READ55 GETCTL 3,DEBINW3 GET SCHK CALL TESTB,DEBINW3,W15 BZ READ60 JUMP IF NOT SIGN DYKI DEINPUT,DEKTAB1,DEKTABA,DEBINW1, C DEBINW2,DEBINW4 B DYKOUT READ60 DYKI DEINPUT,DEKTAB1,DEKTAB2,DEBINW1, C DEBINW2,DEBINW4 DYKOUT PERF DELOCK,W1,DEBINW2 IB DEBINW3,ECLRN,ERRPRT,DYK050 B DYK100 DYK050 MOVE DEBINW2,W2 B ERRCAN DYK070 GETABX DEBINW4 GET CURRENT TAB INDEX DISPLAY 1,DEBINW4,DEBINW4 DISPLAY FIELD B SETCREAD CONTINUE DYK100 CLEAR DOOL5 KEYED INPUT IB DEBINW2,UPDATE,DYK070 JUMP ON C UPDATE,ERRCAN,ERRCAN, C DYK150,UPDATE,UPDATE,UPDATE CONVERTED C UPDATE,UPDATE,UPDATE,STATUS END-OF-ITEM-KEY C KCOPY,KDUPL,KEDIT B UPDATE DYK150 MOVE DEBINW2,W3 SET PLS = EOI EJECT *************************************** * VALIDATE ENTERED DATA IN THE ORDER: * * STANDARDCHECK * * APPLE-VALUE * * VALIDATION-STRING * * * * RETURNVALUES ARE PUT INTO DEBINW3. * *************************************** UPDATE CBNE DEBINW1,W0,UPD100 VALIDATION OF EMPTY FIELD IF SOME OF BELOW KEES PRESSED: * 1=CLR,3=EOI,9=ERASE,10=KEEP,11=KEEP CBG DEBINW2,W11,UPD010 CBG DEBINW2,W8,UPD005 CBG DEBINW2,W3,UPD010 UPD005 TBT DOOL3,UPD020 UPD010 B UPDR50 UPD020 MOVE DEBINW4,W6 FORCED ITEM MOVE BIN3,W0 USED FOR SAV ERRORINDEX CALL FORCED,:FMTITEM BOK UPD030 PERF DERROR,DEKTABF B ERRP20 UPD030 CALL EMPTYT,:FMTITEM BZ UPD050 NO! UPD040 GETCTL 3,DEBINW4 GET SCHK CALL TESTB,DEBINW4,W13 LOOK IF COND ME BZ UPDR35 VALIDATION IF COND UPD050 MOVE WORK(W5),DEBINW1 SAVE INPUTLENGTH GETABX BIN8 PERF DEEDIT,W3 B UPD250 UPD100 GETCTL 3,DEBINW4 GET SCHK-NUMBER UPD105 IB DEBINW4,UPD110,UPD120,UPD110,UPD200,UPD110 B UPD200 UPD110 CBNE DEBINW2,W12,UPD115 JUMP IF NOT MINUS MOVE DEBINW2,W0 MOVE DEBINW3,W1 MOVE STR1A,='-' INSERT DEINPUT,DEBINW2,DEBINW3,STR1A,W0 MOVE DEBINW2,W3 SIMULATE EOI UPD115 SUB DEBINW4,W1 B UPD105 UPD120 SUB DEBINW4,W2 B UPD105 UPD200 GETCTL 0,DEBINW3 GET APPL-VALUE CBE DEBINW3,W0,UPD230 JUMP IF NO APPL VALUE * * APPL-VALUE DIFFERENT FROM ZERO * TBF DOOL3,UPD215 PERF DEAPPU B UPD220 UPD215 PERF DEAPPL UPD220 IB DEBINW3,UPD230,SETCREAD,ERRPRINT UPD230 TEST DOOL3 BZ UPDR22 JUMP IF NOT ENTRY TBF DOOL5,UPD240 JUMP IF NOT DUPL MOVE WORK(W5),W0 INPUTLENGTH = 0 B UPD250 UPD240 MOVE WORK(W5),DEBINW1 SAVE INPUTLENGTH UPD250 MOVE BIN4,DEBINW1 SAVE INPUTLENGTH * * LOOK IF THERE ARE A VALIDATIONSTRING * WITHIN THE FORMAT AND EXECUTE IT. * UPDVAL CLEAR DOOL1 CLEAR DOOL4 CLEAR DOOL6 CLEAR DOOL7 CLEAR BOOL5 ***F=UNVALID/NO COND TAB CLEAR BOOL7 ***F=UNVALID/NO COND REC. CH MOVE BIN14,W0 ***COND.TAB.-FIELD:=0 MOVE STSAVE(W3),HEX00 ***COND FORMAT CH:=0 CALL GETVAL,BPOOL(W1),BIN11,BIN12,BIN13 BNOK UPDR20 JUMP IF NO VALSTRING CBL DEBINW2,W11,UPDV10 LOOK IF AUTODUP AND CBG DEBINW2,W12,UPDV10 ERASE OR KEEP PRESSED SETCUR SET CURSOR ON CURRENT FIELD UPDV10 PERF DENVAL * * RETURN FROM VALIDATION * CLEAR DOOLB ERROR-FLAG BZ UPDR20 MOVE DEBINW1,WORK(W5) RESTORE INPUTLENGTH UPDR12 TSTCTL 0 L00K IF ALPHA BNZ UPDR16 JUMP IF ALPHA MOVE BIN9,W15 POINTER TO + MATCH VALSTR,BIN9,W2,DEINPUT,W0,W1 BNOK UPDR16 DLETE DEINPUT,W0,W1 DELETE + OR - UPDR16 CBE BIN3,W0,UPDR17 JUMP IF NOT MESS XCOPY DEBINW4,W1,W1,BPOOL(BIN11),BIN3 UPDR17 TBF DOOLA,UPDR13 JUMP IF NOT BALACE PERF DERROR,DEKTAB6 B ERRP20 UPDR13 TSTCTL 5 LOOK IF CTAB BZ UPDR14 NO! PERF DERROR,DEKTABI NO KEY INPUT B ERRP25 UPDR14 PERF DERROR,DEKTABD B ERRP20 UPDR20 MOVE DEBINW1,WORK(W5) RESTORE INPUTLENGTH UPDR22 GETCTL 3,DEBINW4 GET SCHK-NUMBER CALL TESTB,DEBINW4,W14 LOOK IS SCHK=2 BZ UPDR25 JUMP IF NOT GETCTL 1,DEBINW3 GET MAXL SUB DEBINW3,DEBINW1 BZ UPDR25 MOVE STATSH,=X'20' PUT SPACE IN AREA INSRT DEINPUT,W0,DEBINW3,STATSH,W0 RIGHTADJUST UPDR25 CBE DEBINW1,W0,UPDR33 INPUTLENGT=0 UPDFLD 0,DEINPUT UPDATE FIELD WITH DISPLAYING UPDR30 SET DECHANGE INDICATE CHANGED ITEM UPDR33 TBF DOOL3,UPDR50 JUMP IF NOT ENTRY UPDR35 CBE DEBINW2,W12,UPDR40 ERASE-KEY CBE DEBINW2,W9,UPDR40 ERASE-KEY CBE DEBINW2,W1,UPDR40 CALL GETGEN,BPOOL(W1),BIN3,BIN4,BIN5 BNOK UPDR40 PERF DEGEN UPDR40 TSTCTL 5 BNZ UPDR50 JUMP IF CTAB SET DECHANGE UPDR50 IB DEBINW2,KTFWD,DUMMY, C KEOI,DUMMY,DUMMY,KTFWD, C KTBWD,KTHOME,KERASE,KKEEP,KEOI, C KEOI,DUMMY,DUMMY,DUMMY,DUMMY,KENTER SUB DEBINW2,W14 ADJUST EOI-KEY INDEX DUMMY RETUR RET EJECT KTFWD TAB. FORWARD 1 STEP MOVE DEBINW2,W3 SIMULATE EOI KEOI COMMON END-OF-ITEM KEY TBF DOOL3,KEOI20 ***JUMP IF NOT ENTRY-MODE TBF BOOL7,KEOI10 ***JUMP IF NO IMMIDIATE REC.CH CALL EMPTYT,STSAVE(W3) *** BNZ KEOI10 ***JUMP IF NO FORMAT-CHANGE CLEAR DECHANGE MOVE DEBINW2,W3 ***ENT-KEY SIMULATED B RETUR *** KEOI10 *** CLEAR BOOL5 ***CLEAR /SET CR BOK KEOI20 ***JUMP IF UNVALID/NO COND TAB CBE BIN14,W0,KEOI20 ***JUMP IF NO COND TAB MOVE DEBINW4,BIN14 ***SAVE NEXT FIELD NR SUB DEBINW4,W1 ***ADJUST FOR TFWD CALL GETFWD,DKBIN1,0,DEBINW4,DEBINW3 CALL ADJUST,DKBIN1 BNN KEOI20 ***JUMP IF NO FORMAT OVERFLOW GETABX DEBINW4 *** B SETCREAD *** KEOI20 *** CBL DEBINW2,W11,KEOI30 B KKEEP2 KEOI30 TFWD B TSTTAB * KTBWD TABULATION 1 STEP BACKW. GETABX DEBINW4 CBE DEBINW4,W1,KTBWD2 TBWD B TSTTAB KTBWD2 MOVE DEBINW2,W3 EOI * KTHOME TAB. TO HOME POSITION TBT DOOLA,KTHOM2 JUMP IF BALANCE TBF VERIFM,KTHOM2 TBT KEYVER,KTKEY KTHOM3 MOVE DEBINW1,W0 GETFLD 0,DEBINW1,DEBINW3 SETCUR B READ10 KTHOM2 THOME TSTTAB TEST TAB OUTPUT BE READIN OK BL READIN NOT FOUND BOFL KENT15 EMPTY COMPULSORY FIELD * * * CONDITIONAL TABULATION TBT DENOCHAN,KCOP10 PERF DETCHK CBE DEBINW3,W0,KCOP10 IB DEBINW2,DUMMY,DUMMY, C KTEOI,DUMMY,DUMMY,KTEOI, C KTBWD,KTEOI,KKEEP * BRANCH LIST EXHAUSTED - DEBINW2 CLOBBERED BY DETCHK B SETCREAD KTKEY MOVE BIN11,W0 KTKEY2 ADD BIN11,W1 CALL GETFWD,DEBINW4,4,BIN11,DEBINW3 SEARCH FOR KEYVER CALL ADJUST,DEBINW4 BZ SETCREAD JUMP IF VERIFYFIELD B KTHOM3 KTEOI TBF DOOL3,KTFWD MOVE DEBINW2,W3 EJECT * * DUPL KEY * KDUPL PERF DENDUP BNOK KTEOI2 IB DEBINW2,KTEOI,DUMMY,UPDATE KTEOI2 TSTCTL 5 LOOK IF CTAB BNZ KENT20 YES! IB DEBINW2,KCOP10,ERRRET,ERRRET B ERRPRINT * * STATUS KEY * STATUS PERF DESTAT MOVE DEBINW1,W0 B ERRPRINT * * PRINT KEY * KCOPY HARD COPY PERF ATTPRT RESERVE PRINTER BNOK ERRPRINT EDWRT DEDSPRT,FORMF FORMFEED MOVE DEBINW3,W1 PRINT DEDSPRT,DEBINW3,W0 PERF DETPRT RELEASE PRINTER KCOP10 B SETCREAD SET CURSOR AND READ EJECT * * EDIT FIELD * KEDITX TSTCTL 5 LOOK IF CTAB BZ KED050 MOVE DEBINW2,W5 RBWD CLEAR DECHANGE B ERRET1 KED050 CBE DEBINW1,W0,KEDITY MOVE DEBINW1,W1 KEDIT GETCTL 1,DEBINW3 GET MAXL CBNE DEBINW3,W0,KED100 EDWRT DEDSSCRN,BELL ACOUSTIC ALARM B SETCREAD KED100 GETCTL 3,DEBINW3 GET SCHK CALL TESTB,DEBINW3,W15 MINUS BZ KED200 EDFLD DEINPUT,DEKTABB,DEBINW1, C DEBINW2,DEBINW4 B DYKOUT KED200 EDFLD DEINPUT,DEKTAB3,DEBINW1, C DEBINW2,DEBINW4 B DYKOUT CONTINUE AS FOR DYKI KEDITY SETCUR B KEDIT * * ERASE KEY * KERASE GETABX DEBINW4 ERASE 10,DEBINW4,W0 TBF DOOL3,KENT03 MOVE DEBINW2,W12 B KKEEP1 * * KEEP KEY * KKEEP TBF DOOL3,KENT03 JUMP IF NOT ENTRY MOVE DEBINW2,W11 SIMULATE KKEEP2 KKEEP1 GETCTL 1,DEBINW4 GET MAXL CBE DEBINW4,W0,KENT07 TSTCTL 2 LOOK IF COMPULSORY FIELD BZ KKEEP3 NO! CALL EMPTYT,:FMTITEM LOOK IF EMPTY FIELD BP KENT15 YES! KKEEP3 CMP DEBINW2,W12 ERASE KEY BZ UPD040 B UPD020 KKEEP2 SET DOOL5 GETABX DEBINW4 ADD DEBINW4,W1 CALL GETFWD,DKBIN1,0,DEBINW4,DEBINW3 CALL ADJUST,DKBIN1 BE KKEEP5 BL SETCREAD BOFL KENT10 B KKEEP4 KKEEP5 TSTCTL 5 LOOK IF CTAB BZ KKEEP1 KKEEP4 PERF DETCHK CBE DEBINW3,W0,KKEEP1 TBT DOOLA,KKEEP1 JUMP IF BALANCE CBE DEBINW2,W12,KKEEP1 ERASE PERF DENDUP BNOK KENT20 MOVE DEBINW2,W11 SIMULATE KEEP B KKEEP1 EJECT * * ENTER KEY * KENTER TBF DOOL3,KENT03 GETCTL 1,DEBINW4 GET MAXL CBE DEBINW4,W0,KENT06 EDWRT DEDSSCRN,BELL ACOUSTIC ALARM B SETCREAD KENT06 MOVE DEBINW2,W3 INDICATE ENTER KEY DEPRESSED RET KENT03 MOVE DEBINW1,W0 INDICATE NO CLEARING GETFLD 0,DEBINW1,DEBINW3 SEARCH FOR EMPTY COMP. FIELDS BOFL KENT10 EMPTY COMP. FIELD FOUND TSTCTL 2 LOOK IF COMPULSORY FIELD BZ KENT05 NO! CALL EMPTYT,:FMTITEM LOOK IF EMPTY FIELD BP KENT10 YES! KENT05 TBT DOOL3,KENT07 JUMP IF ENTRY-MODE CBE DEBINW2,W9,KENT07 CBE DEBINW2,W10,KENT07 MOVE DEBINW2,W3 INDICATE ENTER KEY DEPRESSED RET KENT07 B SETCREAD * * EMPTY COMPULSORY FIELD FOUND * KENT10 GETFLD 0,DEBINW3,DEBINW2 GET THE COMPULSORY FIELD KENT15 MOVE DEBINW4,W5 INDICATE COMP.FIELD FOUND MOVE DEBINW1,W0 TSTCTL 5 LOOK IF CTAB BZ ERRPRINT NO! KENT20 YES! PERF DERROR,DEKTABI B ERRP25 EJECT * * INDICATE FORCED ITEM * KFORCE PERF DEFORC B UPDR30 * * VALID ITEM * KVALID MOVE DEBINW2,W3 RESTORE ITEMLENGTH B UPDR22 EJECT ERRPRT CMP DEBINW2,W16 BE KEDIT JUMP IF EDIT CBE DEBINW2,W4,ERRCAN JUMP IF ERRCANEL1 CBE DEBINW2,W5,ERRCAN JUMP IF ERRCANEL2 XSTAT DEDSDYKB,DEBINW3 CALL MASK,DEBINW3,W64 BNZ DYK050 * * ERROR HANDLING * ERRPRINT TBF DOOLA,ERRP10 JUMP IF NOT BALANCE PERF DERROR,DEKTAB6 B ERRP20 ERRP10 PERF DERROR,DEKTAB4 ERRP20 CBE DEBINW2,W1,ERRCAN CLEAR-KEY ERRP25 IB DEBINW2,ERRRET,ERRRET,ERRRET,KEDITX C KVALID,KFORCE,KTBWD,KTHOME ERRRET ADD DEBINW2,W2 ERRCAN PERF CANC CLEAR DOOL5 TSTCTL 5 LOOK IF CTAB BNZ ERRET4 IB DEBINW2,SETCREAD,SETCREAD,CONT3 ERRET0 SUB DEBINW2,W3 ADJUST FOR CANCEL1,CANCEL2 ERRET1 TBT DOOL3,ERRET2 CLEAR DENOCHAN ERRET2 RET ERRET4 IB DEBINW2,SETCREAD,SETCREAD,ERRET5 B ERRET0 ERRET5 MOVE DEBINW2,W8 SIMULATE TBWD B KTBWD PEND * BELL FRMT FSL FILLR X'07',1 FMEND FORMF FRMT FTEXT ' 1' FMEND END