|
|
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 - metrics - download
Length: 3540 (0xdd4)
Types: COMAL_SAVE
Names: »TITRB «
└─⟦3d9d2c4f1⟧ Bits:30001780 SG0000 Floppy
└─⟦this⟧ »/TITRB «
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)