|
|
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: 4380 (0x111c)
Notes: pts_type(SC)
Names: »DATUM.SC«
└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
└─⟦this⟧ »S:DE/DATUM.SC«
└─⟦5c22ed822⟧ Bits:30009675 Philips computer tape "600209"
└─⟦this⟧ »DEN10/DATUM.SC«
└─⟦bf903a231⟧ Bits:30009665 Philips computer tape "600109"
└─⟦this⟧ »DEN10/DATUM.SC«
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
└─⟦this⟧ »S:DE/DATUM.SC«
IDENT DATCHK 79-03-16/PEEN * * * THIS ROUTINE CHECKS THE DATE PLAUSIBILITY * EUROPEAN (AA-MM-DD) OR AMERICAN (MM-DD-AA) * STANDARD. 'DD' IS CHECKED ACCORDING TO CORRESPONDING * MONTH. FEBRUARI NOT > 29 * * NOT NUMERIC CHARACTERS ARE SKIPPED * * SYNTAX: CALL DATCHK,SKIP,BUFF * * SKIP = BIN ITEM TELLING HOW MANY DIGITS COUNTED * FROM THE RIGHT TO BE SKIPPED BEFORE THE * CHECK IS PERFORMED * BUFF = STRING ITEM HOLDING THE DATA TO BE CHECKED * * OUTPUT: CR = O OK * CR = 1 NOT OK * EJECT ENTRY DATCHK * EXTRN I:EVA0 EXTRN I:RT1 * * CALL FORM 16=/F6A1,16 BYTE FORM 8,8 * * DATCHK EQU * LDK A6,2 SET SWITCH CALL I:EVA0 NO. TO BE SKIPPED LDR* A7,A9 CALL I:EVA0 BUFFER ADDRESS DAT100 EQU * CALL GETDIG SUK A7,1 RB(NN) DAT100 IF TO BE SKIPPED LDR A7,A1 SAVE DIGIT CALL GETDIG * MULTIPLY DIGIT BY 10 AND ADD ADR A7,A1 ADR A7,A1 SLL A1,3 TIMES 8 ADR A7,A1 RF(Z) NOK SUK A6,1 RF(Z) DAT200 JUMP IF DD AND MM ARE FETCHED LDR A8,A7 SAVE DAY LDK A7,0 INDICATE NO SKIP RB DAT100 GET MONTH DAT200 EQU * SUK A7,13 RF(NN) NOK IF WRONG MONTH LC A1,TAB,A7 GET BYTE FOR COMPARISON SUR A1,A8 RF(NL) OUT IF OK NOK EQU * LDK A6,1 INDICATE CR = 1 OUT EQU * LD A1,2,A13 GET STACK BASE SC A6,-2,A1 STORE CR ABL I:RT1 EJECT GETDIG EQU * CWR A5,A9 RB(E) NOK IF FINISHED LC A1,-1,A5 GET CURRENT CHARACTER SUK A5,1 CCK A1,'00' RB(L) GETDIG CCK A1,'99' RB(G) GETDIG ANK A1,/F RTN A14 * * TAB EQU *+12 BYTE 31,29 JAN,FEB BYTE 31,30 MAR,APR BYTE 31,30 MAY,JUN BYTE 31,31 JUL,AUG BYTE 30,31 SEP,OCT BYTE 30,31 NOV,DEC * END