|
|
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: 23514 (0x5bda)
Notes: pts_type(SC)
Names: »DENTER.SC«
└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
└─⟦this⟧ »S:DE/DENTER.SC«
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
└─⟦this⟧ »S:DE/DENTER.SC«
IDENT DENTER REL 10.0 80-04-11 80-04-14/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 HANDLE 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 EXT DELAST 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 CONT7 JUMP IF NOT BALANCE SET ASDFLAG MOVE DEBINW2,W9 B KTHOME CONT7 TBF ASDFLAG,SETCREAD B KTHOME GO HOME IF CTAB+ASD 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 UPDVAL NO! UPD040 GETCTL 3,DEBINW4 GET SCHK CALL TESTB,DEBINW4,W13 LOOK IF COND ME BZ UPDR35 VALIDATION IF COND B UPDVAL EJECT * * ENTERED DATA FROM KEYBOARD * UPD100 GETCTL 3,DEBINW4 GET SCHK-NUMBER UPD105 IB DEBINW4 JUMP SCHK NUMBER C UPD110 =1 C UPD120 =2 C UPD120 =3 C UPD200 =4 C UPD110 =5 C UPD120 =6 C UPD120 =7 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 GETCTL 1,DEBINW3 GET MAXL SUB DEBINW3,DEBINW1 BZ UPD150 MAXL = INPUTLENGTH TSTCTL 0 LOOK IF ALPHA BZ UPD130 NO! MOVE STATSH,=X'20' PUT SPACE IN AREA B UPD140 UPD130 MOVE STATSH,=X'30' PUT ZERO IN ARTEA UPD140 RIGHT ADJUST CURRENT IPNPUT INSRT DEINPUT,W0,DEBINW3,STATSH,W0 UPD150 SUB DEBINW4,W2 B UPD105 UPD200 TBT DOOL3,UPDVAL ENTRY-MODE APPL- VALUE-HANDLING IS EXECUTED WITHIN DENVAL GETCTL 0,DEBINW3 GET APPL-VALUE CBE DEBINW3,W0,UPDR25 JUMP IF NO APPL VALUE * * APPL-VALUE DIFFERENT FROM ZERO * PERF DEAPPL IB DEBINW3,UPDR15,SETCREAD,ERRPRINT B UPDR25 EJECT * * 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 MOVE DEBINW3,W0 CALL GETVAL,BPOOL(W1),BIN11,BIN12,BIN13 BNOK UPDR25 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,W0 EJECT * * RETURN FROM VALIDATION * MOVE DEBINW1,WORK(W5) RESTORE INPUTLENGTH CLEAR DOOLB ERROR-FLAG BZ UPDR20 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 CBE BIN11,W0,UPDR17 JUMP IF NO POOL 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! DUPL STR2A LOOK IF KEYED INPUT = N BOK UPDR18 YES! TBF ASDFLAG,UPDR14 UPDR18 PERF DERROR,DEKTABI NO KEY INPUT B ERRP25 UPDR14 PERF DERROR,DEKTABD B ERRP20 EJECT * * VALDATION SUCCESSFULLY PERFORMED * UPDR15 UPDFLD 1,DEINPUT UNCONDITIONAL UPD. B UPDR28 UPDR20 IB DEBINW3,UPDR25,SETCREAD,UPDR12 UPDR25 CBE DEBINW1,W0,UPDR33 INPUTLENGT=0 CBE DEBINW3,W1,UPDR15 UPDFLD 0,DEINPUT UPDATE FIELD WITH DISPLAYING UPDR28 TSTCTL 5 BZ UPDR30 TBT ASDFLAG,UPDR33 DUPL STR2A KEYED INPUT = N? BOK UPDR33 YES! 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),BIN11,BIN12,BIN13 BNOK UPDR50 PERF DEGEN UPDR40 TSTCTL 5 BZ UPDR45 TBT ASDFLAG,UPDR50 DUPL STR2A KEYED INPUT = N? BOK UPDR50 YES! UPDR45 SET DECHANGE UPDR50 MOVE DEBINW1,W0 SET INPUTLENGTH = 0 IB DEBINW2,KTFWD,DUMMY, C KEOI,DUMMY,DUMMY,KTFWD, C KTBWD,KTHOME,KERASE,KKEEP,KEOI, C KEOI,DUMMY,DUMMY,DUMMY,DUMMY,KENTER CMP DEBINW2,W24 BE KASD JUMP IF ASD FLAG 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 B KENT04 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 KEOI15 CALL GETFWD,DKBIN1,0,DEBINW4,DEBINW3 CALL ADJUST,DKBIN1 BNN KEOI20 ***JUMP IF NO FORMAT OVERFLOW GETABX DEBINW4 *** ADD DEBINW4,W1 B KEOI15 KEOI20 *** CBL DEBINW2,W11,KEOI30 B KKEEP2 KEOI30 TBT DOOL3,KEOI40 ENTRY SCREEN TFWD B TSTTAB KEOI40 TSTCTL 2 LOOK IF COMPULSORY FIELD BZ KEOI45 NO! CALL EMPTYT,:FMTITEM LOOK IF EMPTY FIELD BP KENT15 YES! KEOI45 GETABX DEBINW4 ADD DEBINW4,W1 CALL GETFWD,DKBIN1,0,DEBINW4,DEBINW3 CALL ADJUST,DKBIN1 BNE TSTTAB KEOI50 TSTCTL 5 BNZ TSTT05 B TSTT10 * 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,KTHOM4 JUMP IF BALANCE TBF VERIFM,KTHOM2 TBT KEYVER,KTKEY KTHOM3 MOVE DEBINW1,W0 GETFLD 0,DEBINW1,DEBINW3 SETCUR B READ10 KTHOM4 SET ASDFLAG SET ASD WHEN BALANCE KTHOM2 THOME TSTTAB TEST TAB OUTPUT BE TSTT10 OK BL READIN NOT FOUND BOFL KENT15 EMPTY COMPULSORY FIELD * TSTT05 * CONDITIONAL TABULATION TBT DENOCHAN,TSTT15 DUPL STR2A KEYED INPUT = N? BOK TSTT07 YES! TBF ASDFLAG,TSTT15 TSTT07 PERF DETCHK CBE DEBINW3,W0,TSTT15 IB DEBINW2,DUMMY,DUMMY, C KTEOI,DUMMY,DUMMY,KTEOI, C KTBWD,KTEOI,KKEEP TSTT15 B SETCREAD TSTT10 TBF AUTENT,TSTT15 TBF DOOL3,TSTT15 NOT ENTRY SCREEN TBT DOOLA,TSTT15 BALANCE FORMAT GETCTL 1,DEBINW4 GET MAXL CBNE DEBINW4,W0,TSTT15 B KENT06 EJECT 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 KTEOI4 YES! KTEOI3 IB DEBINW2,KCOP10,ERRRET,ERRRET B ERRPRINT KTEOI4 IB DEBINW2,ERRRET,ERRRET,ERRRET DUPL STR2A BOK KENT20 TBF ASDFLAG,KTEOI3 B KENT20 * * STATUS KEY * STATUS PERF DESTAT MOVE DEBINW1,W0 B ERRP10 * * 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 KASD ASD-KEY PRESSED TBF DOOLA,KASD2 JUMP IF NOT BALANCE SET ASDFLAG B KASD3 KASD2 INV ASDFLAG KASD3 PERF DELAST,W14,DEKTAB4 MOVE DEBINW2,W3 SIMULATE EOI B KEOI50 EJECT * * EDIT FIELD * KEDITX TSTCTL 5 LOOK IF CTAB BZ KED050 DUPL STR2A LOOK IF KEYED INPUT =N BOK KED025 YES! TBF ASDFLAG,KED050 KED025 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 KKEEP0 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 DUPL STR2A KEYED INPUT = N? BOK KKEEP4 TBF ASDFLAG,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 TBT AUTENT,KKEEP0 GETCTL 1,DEBINW4 GET MAXL CBE DEBINW4,W0,KENT06 EDWRT DEDSSCRN,BELL ACOUSTIC ALARM B SETCREAD KENT06 SET DECHANGE AT LEAST ONCE KENT04 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 CBNE DEBINW2,W10,KENT06 KENT07 TBT AUTENT,KENT06 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! DUPL STR2A BOK KENT20 YES! TBF ASDFLAG,ERRPRINT 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 UPDR25 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 BZ ERRCA1 TBT ASDFLAG,ERRET4 DUPL STR2A KEYED INPUT = N BOK ERRET4 YES! ERRCA1 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