|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC3600/RC7000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC3600/RC7000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 3540 (0xdd4) Types: COMAL_SAVE Names: »TITRB «
└─⟦3d9d2c4f1⟧ Bits:30001780 SG0000 Floppy └─⟦this⟧
SAVE filename: "TITRB" 0010 REM «so» *** T I T R E R - B *** ØH OKT.79«nul» 0020 PAGE = 0 0030 REM TITRERING AF 10 ML 0.1M SYRER/BASE MED 0.1M NAOH/HCL«nul» 0040 REM SYREN/BASEN KAN VÆRE DI - ELLER MONOVALENT (pKüü70)«nul» 0050 REM FOR BASER BEREGNES OH LIGESOM H FOR SYRER.«nul» 0060 REM DER ANVENDES NEWTON-RAPHSON ITERATION«nul»R 0070 DIM SYRE$ ( 30 ) , LL$ ( 132 ) , T$ ( 12 ) 0080 INPUT "TITRERING AF SYRER(1) ELLER BASE(2) " , TITRAND 0090 IF TITRAND <> 1 AND TITRAND <> 2 THEN GOTO 0080 0100 LET SYRE = 1 BASE = 2 0110 INPUT "ØNSKES GRAFUDSKRIFT (1) ELLER TABELUDSKRIFT (2) " , TYPE 0120 REPEAT 0130 IF TITRAND = SYRE THEN 0140 INPUT "SYRENS NAVN " , SYRE$ 0150 INPUT "SYRENS PK-værdier (pK1 og pK2) " , KA1 , KA2 0160 ELSE 0170 INPUT "BASENS NAVN " , SYRE$ 0180 INPUT " BASENS pK-værdier (pKb1 og pKb2)" , KA1 , KA2 0190 ENDIF 0195 LET KA1 = 10 ^ ( - KA1 ) KA2 = 10 ^ ( - KA2 ) 0200 UNTIL KA1 > KA2 AND KA2 >= 0 0210 REM ÆKVIVALENS-PUNKTER VED 10 OG 20 ML. SLUT +5 ML.«nul» 0220 LET SLUT = 25 0230 IF KA2 = 0 THEN LET SLUT = 15 0240 REM DER TITSÆTTES EKSTRA VAND. MÆNGDE ANGIVES I M.MOL«nul» 0250 INPUT "KONDITIONELT EKSTRAVOLUMEN VX : " , VX 0260 IF VX < 0 THEN GOTO 0250 0270 LET VOL = 10 + VX A = 1 TIT = 0 VTIT = 0 0280 LET LL$ = "-------------------------------------------------------------" 0290 LET T$ = " ##.### " 0300 EXEC DEFF 0310 EXEC UDSKRIFT 0320 LET CTOT = A / VOL H = SQR ( CTOT * KA1 ) N = 0 0330 IF KA1 > 100 THEN LET H = CTOT 0340 IF TYPE = 2 THEN GOTO 0910 0350 REPEAT 0360 EXEC KOEF 0370 EXEC ITERATOR 0380 LET PH = - FNL ( H ) 0390 IF TITRAND = BASE THEN LET PH = 14 - PH 0400 LET LL$ = "I ! ! ! ! ! ! ! ! ! ! ! !" 0410 IF VTIT = INT ( VTIT ) THEN PRINT ".." ; VTIT ; "ML..." ; CHR ( 13 ) ; 0420 IF VTIT DIV 2 = VTIT / 2 THEN 0430 LET LL$ = "I ..!.........!.........!.........!.........!.........!.........!.........!.........!.........!.........!.........!" 0440 ENDIF 0450 LET LL$ ( INT ( PH * 10 ) + 1 ) = "*" 0460 PRINT LL$ 0470 LET DV = 1 / 4 N = N + 1 0480 LET VTIT = VTIT + DV TIT = 0.1 * VTIT VOL = VOL + DV 0490 UNTIL VTIT > SLUT 0500 PRINT P$ 0510 STOP «nul» 0520 PROC DEFF 0530 LET KW = 1e-14 0540 DEF FNP ( VAR88 ) = [LVAR] ^ 4 + K1 * [LVAR] ^ 3 + K2 * [LVAR] ^ 2 + K3 * [LVAR] + K4 0550 DEF FND ( VAR88 ) = 4 * [LVAR] ^ 3 + 3 * K1 * [LVAR] ^ 2 + 2 * K2 * [LVAR] + K3 0560 DEF FNL ( VAR98 ) = LOG ( [LVAR] ) / LOG ( 10 ) 0570 ENDPROC 0580 PROC KOEF 0590 LET CTIT = TIT / VOL CTOT = A / VOL K1 = CTIT + KA1 0600 LET K2 = KA1 * KA2 - KA1 * CTOT + KA1 * CTIT - KW 0610 LET K3 = - 2 * KA1 * KA2 * CTOT + KA1 * KA2 * CTIT - KA1 * KW 0620 LET K4 = - KA1 * KA2 * KW 0630 ENDPROC 0640 PROC ITERATOR 0650 REPEAT 0660 IF H = 0 THEN LET H = 1e-20 0670 LET H1 = H - FNP ( H ) / FND ( H ) REL = ABS ( ( H1 - H ) / H ) H = H1 0680 UNTIL REL < 0.01 0690 ENDPROC 0700 PROC UDSKRIFT 0710 DIM TITRATOR$ ( 4 ) 0720 IF TITRAND = SYRE THEN LET TITRATOR$ = "NAOH" 0730 IF TITRAND = BASE THEN LET TITRATOR$ = "HCL" 0740 PRINT "<12><14> **TITRERING AF 10 ML 0,1M " ; SYRE$ ; " MED 0,1M " ; TITRATOR$ ; " **" 0750 PRINT 0760 PRINT "PK1 = ###.## , PK2 = ###.## " , - FNL ( KA1 ) , - FNL ( KA2 ) 0770 PRINT " KONDITIONELT EKSTRAVOLUMEN " ; VX ; " ML" 0780 PRINT 0790 DIM P$ ( 132 ) , L$ ( 132 ) 0800 LET L$ = "I........1.........2.........3.........4.........5.........6.........7" 0810 LET P$ = L$ , ".........8.........9.........10........11........12.....PH--->" 0820 IF TYPE = 1 THEN PRINT P$ 0830 IF TYPE = 2 THEN 0840 PRINT " PH ER ANGIVET SOM FUNKTION AF TILSAT ANTAL ML TITRATOR" 0850 PRINT LL$ 0860 PRINT 0870 PRINT " ##.# " , " ML" , 0 , 0.2 , 0.4 , 0.6 , 0.8 0880 PRINT LL$ 0890 ENDIF 0900 ENDPROC 0910 LET M = 0 T$ = " ##.### " 0920 REPEAT 0930 EXEC KOEF 0940 EXEC ITERATOR 0950 LET PH = - FNL ( H ) 0960 IF TITRAND = BASE THEN LET PH = 14 - PH 0970 IF M = 0 THEN PRINT " ##.# " , VTIT ; 0980 PRINT T$ , PH ; 0990 LET DV = 0.2 N = N + 1 M = M + 1 1000 IF M MOD 5 = 0 THEN PRINT 1010 IF N MOD 25 = 0 THEN PRINT LL$ 1020 LET VTIT = VTIT + DV TIT = 0.1 * VTIT VOL = VOL + DV 1030 IF M MOD 5 = 0 THEN LET M = 0 1040 UNTIL VTIT >= SLUT - DV 1050 PRINT 1060 PRINT LL$ 1070 PRINT " BEREGNING UDFØRT D. ## ##/19## ." , SYS ( 1 ) , SYS ( 2 ) , SYS ( 3 ) 1080 END «nul»
FNA definition = 0xffff FNB definition = 0xffff FNC definition = 0xffff FND definition = 0x036e FNE definition = 0xffff FNF definition = 0xffff FNG definition = 0xffff FNH definition = 0xffff FNI definition = 0xffff FNJ definition = 0xffff FNK definition = 0xffff FNL definition = 0x0387 FNM definition = 0xffff FNN definition = 0xffff FNO definition = 0xffff FNP definition = 0x0359 FNQ definition = 0xffff FNR definition = 0xffff FNS definition = 0xffff FNT definition = 0xffff FNU definition = 0xffff FNV definition = 0xffff FNW definition = 0xffff FNX definition = 0xffff FNY definition = 0xffff FNZ definition = 0xffff FN[ definition = 0xffff FN\ definition = 0xffff FN] definition = 0xffff GOSUB-RETURN stack pointer = 0x0000 stack[0] = 0x0526 stack[1] = 0x0000 stack[2] = 0x0000 stack[3] = 0x0000 stack[4] = 0x0000 stack[5] = 0x0000 stack[6] = 0x0000 FOR-NEXT stack pointer = 0x0000 Var# = 0x0520 Loop Top = 0x03c9 To Val = 0 (0x00000000) Step Val = 0 (0x00000000) Var# = 0x0000 Loop Top = 0x0000 To Val = 0 (0x00000000) Step Val = 0 (0x00000000) Var# = 0x0000 Loop Top = 0x0000 To Val = 0 (0x00000000) Step Val = 0 (0x00000000) Var# = 0x0000 Loop Top = 0x0000 To Val = 0 (0x00000000) Step Val = 0 (0x00000000) Var# = 0x0000 Loop Top = 0x0000 To Val = 0 (0x00000000) Step Val = 0 (0x00000000) Var# = 0x0000 Loop Top = 0x0000 To Val = 0 (0x00000000) Step Val = 0 (0x00000000) Var# = 0x0000 Loop Top = 0x0000 To Val = 0 (0x00000000) Step Val = 0 (0x00000000) REPEAT-UNTIL stack pointer = 0x0000 stack[0] = 0x0000 stack[1] = 0x0000 stack[2] = 0x0000 stack[3] = 0x0000 stack[4] = 0x0000 stack[5] = 0x0000 stack[6] = 0x0000 WHILE-ENDWHILE stack pointer = 0x0000 stack[0] = 0x0000 stack[1] = 0x0000 stack[2] = 0x0000 stack[3] = 0x0000 stack[4] = 0x0000 stack[5] = 0x0000 stack[6] = 0x0000 IF-ELSE stack pointer = 0x0000 stack[0] = 0x0000 stack[1] = 0x0000 stack[2] = 0x0000 stack[3] = 0x0000 stack[4] = 0x0000 stack[5] = 0x0000 stack[6] = 0x0000 Variables: 0x80 0xffff 0x00 0x81 0xffff 0x02 SYRE$ 0x82 0xffff 0x02 LL$ 0x83 0xffff 0x02 T$ 0x84 0xffff 0x00 TITRAND 0x85 0xffff 0x00 SYRE 0x86 0xffff 0x00 BASE 0x87 0xffff 0x00 TYPE 0x88 0xffff 0x00 KA1 0x89 0xffff 0x00 KA2 0x8a 0xffff 0x00 SLUT 0x8b 0xffff 0x00 VX 0x8c 0xffff 0x00 VOL 0x8d 0xffff 0x00 A 0x8e 0xffff 0x00 TIT 0x8f 0xffff 0x00 VTIT 0x90 0xffff 0x00 DEFF 0x91 0xffff 0x00 UDSKRIFT 0x92 0xffff 0x00 CTOT 0x93 0xffff 0x00 H 0x94 0xffff 0x00 N 0x95 0xffff 0x00 KOEF 0x96 0xffff 0x00 ITERATOR 0x97 0xffff 0x00 PH 0x98 0xffff 0x00 DV 0x99 0xffff 0x02 P$ 0x9a 0xffff 0x00 KW 0x9b 0xffff 0x00 K1 0x9c 0xffff 0x00 K2 0x9d 0xffff 0x00 K3 0x9e 0xffff 0x00 K4 0x9f 0xffff 0x00 CTIT 0xa0 0xffff 0x00 H1 0xa1 0xffff 0x00 REL 0xa2 0xffff 0x02 TITRATOR$ 0xa3 0xffff 0x02 L$ 0xa4 0xffff 0x00 M
.magic = 0x4e32 .u_pas = 0x05b6 // Length of UPAS in words .u_das = 0x0121 // Length of UDAS in words .u_dvs = 0x0121 // Start på savede variabel indhold (word adr) .u_nds = 0x0042 // Address på næste prog.sætning (word adr) .u_cps = 0x0042 // Address på curr prog.sætning (word adr) .u_tll = 0x0000 // Page størrelse .u_tts = 0x000e // TAP størrelse .u_ran = 0x0001 // Random tal .u_cdl = 0x0006 // Current DATA sætning ptr .u_cdb = 0x0000 // Current DATA byte ptr .u_esa = 0x0042 // ON ESE (word adr) .u_era = 0x0000 // ON ERR (word adr) .u_cas = 0xffff // CASE dybde .u_las = 0xffff // last (-1)