DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC3600/RC7000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RegneCentralen RC3600/RC7000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦4ff8613d2⟧ COMAL_SAVE

    Length: 6104 (0x17d8)
    Types: COMAL_SAVE
    Notes: FORSØM  , FORSØM::FORSØM
    Names: »FORSØM«

Derivation

└─⟦bb49f20ac⟧ Bits:30007876 (DELPROCEDURER DISKETTE 80.28.06 Områder: OPDATER, FORSØM, BREV ELEVRET, KLLISTE, FOR.LIST)
    └─⟦this⟧ 

UPAS Segment

SAVE filename: "FORSØM"

 0005 REM   PROGRAM NR. 28121980«nul» 
 0010 REM  ----------------------------------------------------------------------- VARIABLER FOR ELEVDATA«nul»
 0020 DIM CPR$ ( 13 ) , ENAVN$ ( 14 ) , FNAVN$ ( 14 ) , MNAVN$ ( 14 ) , NAVN$ ( 28 )
 0030 DIM POGBY$ ( 14 ) , ETLF$ ( 6 )
 0040 REM  ----------------------------------------------------------------------- DIVERSE STRING VARIABLER«nul»
 0050 DIM CHECKL$ ( 4 ) , KLTRIN$ ( 4 ) , KLKODE$ ( 60 ) , KLASSE$ ( 4 ) , OMR]DE$ ( 4 )
 0060 DIM GREN$ ( 5 ) , PROCEDUR$ ( 80 ) , VALG$ ( 10 ) , XY$ ( 80 )
 0070 REM  ----------------------------------------------------------------------- NUMERISKE VARIABLER«nul»B
 0080 DIM ENRRNR ( 1 , 30 ) , GRENMAT ( 20 )
 0090 REM  ----------------------------------------------------------------------- TILDELING AF KONSTANTE VÆRDIER«nul»
 0100 LET XY$ = "`abcdefghij"
 0110 LET XY$ = XY$ , "klmnopqrst"
 0120 LET XY$ = XY$ , "uvwxyæøå~"
 0130 LET XY$ = XY$ , "<127>"
 0140 LET XY$ = XY$ , "@ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ^_"
 0150 LET XY$ = XY$ , " !<34>#$%&'()*+,-./"
 0160 REM  -------------------------------------------------------------------------«nul»L
 0170 PROC ELEVPLOT
 0180   LET PLOTTER = 6
 0190   IF T[LLER > 18 THEN
 0200     PRINT "<134>" ; XY$ ( 1 ) ; XY$ ( 6 ) ; "<31>"
 0210   ENDIF 
 0220   REPEAT 
 0230     LET T[LLER1 = T[LLER1 + 1
 0240   UNTIL ( ENRRNR ( 1 , T[LLER1 ) <> 0 AND ENRRNR ( 1 , T[LLER1 ) < 100 ) OR T[LLER1 = 30
 0250   LET RNR = ENRRNR ( 1 , T[LLER1 )
 0260   WHILE T[LLER <= KONSTANT AND T[LLER1 <= 30 DO
 0270     IF RNR >= 1 AND RNR <= 30 THEN
 0280       READ FILE ( 1 , RNR ) NR , GREN$ , ENAVN$ , FNAVN$ , MNAVN$
 0290       LET NAVN$ = FNAVN$
 0300       IF NR <> 0 THEN
 0310         PRINT "<134>" ; XY$ ( 2 ) ; XY$ ( PLOTTER ) ;
 0320         PRINT "##       ################    ##################" , NR , ENAVN$ , NAVN$
 0330       ENDIF 
 0340       LET PLOTTER = PLOTTER + 1 T[LLER = T[LLER + 1
 0350     ENDIF 
 0360     IF T[LLER1 < 30 THEN
 0370       REPEAT 
 0380         LET T[LLER1 = T[LLER1 + 1
 0390       UNTIL ( ENRRNR ( 1 , T[LLER1 ) <> 0 AND ENRRNR ( 1 , T[LLER1 ) < 100 ) OR T[LLER1 = 30
 0400       LET RNR = ENRRNR ( 1 , T[LLER1 )
 0410     ELSE 
 0420       LET T[LLER1 = T[LLER1 + 1
 0430     ENDIF 
 0440   ENDWHILE
 0450 ENDPROC LEVPLOT«nul»
 0460 REM  -------------------------------------------------------------------------«nul»L
 0470 PROC KLVALG
 0480   PRINT "<134>" ; XY$ ( 1 ) ; XY$ ( 1 ) ; "<30>"
 0490   PRINT "<134>" ; XY$ ( 1 ) ; XY$ ( 3 ) ; "<31>"
 0500   PRINT "<134>" ; XY$ ( XKOR ) ; XY$ ( 1 ) ; PROCEDUR$
 0510   REPEAT 
 0520     REPEAT 
 0530       PRINT "<134>" ; XY$ ( 15 ) ; XY$ ( 8 ) ;
 0540       INPUT "FOR HVILKEN KLASSE ØNSKES FORSØMMELSERNE INDSKREVET : <31>" , KLASSE$
 0550     UNTIL KLASSE$ ( 1 ) >= "1" AND KLASSE$ ( 1 ) <= "3"
 0560     LET CHECKL$ = KLASSE$ ( 1 ) , ".G" OMR]DE$ = ""
 0570     EXEC DISKONT
 0580     LET T[LLER = 1
 0590     OPEN FILE ( 1 , 0 ) "KL-KODE"
 0600     READ FILE ( 1 , 1 ) KLKODE$
 0610     CLOSE FILE ( 1 )
 0620     WHILE T[LLER < LEN ( KLKODE$ ) DO
 0630       IF KLASSE$ ( 1 , 2 ) = KLKODE$ ( T[LLER , T[LLER + 1 ) THEN
 0640         LET OMR]DE$ = KLKODE$ ( T[LLER + 2 , T[LLER + 3 )
 0650         LET T[LLER = LEN ( KLKODE$ )
 0660       ENDIF 
 0670       LET T[LLER = T[LLER + 4
 0680     ENDWHILE
 0690     IF LEN ( OMR]DE$ ) = 0 THEN
 0700       PRINT "<134>" ; XY$ ( 5 ) ; XY$ ( 5 ) ; "FEJL-INDTASTNING :<7><30>"
 0710       PRINT "<134>" ; XY$ ( 5 ) ; XY$ ( 6 ) ; KLASSE$ ; " INDEHOLDES IKKE I SYSTEMET <30>"
 0720       DELAY = 5
 0730     ELSE 
 0740       CONNECT OMR]DE$ , 1
 0750     ENDIF 
 0760   UNTIL LEN ( OMR]DE$ ) <> 0
 0770   PRINT "<134>" ; XY$ ( XKOR + LEN ( PROCEDUR$ ) + 1 ) ; XY$ ( 1 ) ; KLASSE$
 0780 ENDPROC LVALG«nul»
 0790 REM  -----------------------------------------------------------------------«nul»-
 0800 PROC NUMERISK
 0810   LET PROCEDUR$ = "INDSKRIVNING AF FORSØMMELSER PR. ELEV I"
 0820   LET XKOR = 18
 0830   EXEC KLVALG
 0840   PRINT "<134>" ; XY$ ( 1 ) ; XY$ ( 3 ) ; "<31>"
 0850   PRINT "<134>" ; XY$ ( 2 ) ; XY$ ( 4 ) ; "NR.      NAVN                                         MÅNED      UNDERVIST"
 0860   PRINT "<134>" ; XY$ ( 1 ) ; XY$ ( 5 ) ; "-----    ----------------    --------------------     -------    -----------"
 0870   OPEN FILE ( 1 , 0 ) "NR-GR-NA"
 0880   OPEN FILE ( 2 , 0 ) "NUMERISK"
 0890   OPEN FILE ( 3 , 1 ) "ENR-RNR."
 0900   MAT READ FILE ( 3 ) ENRRNR
 0910   CLOSE FILE ( 3 )
 0920   LET OMGANG = 1 F\RSTE = 1 T[LLER2 = 0 PT[LLER = 0
 0930   REPEAT 
 0940     IF OMGANG THEN
 0950       LET T[LLER = 1 KONSTANT = 18 OMGANG = 0 T[LLER1 = 0
 0960       EXEC ELEVPLOT
 0970     ELSE 
 0980       LET KONSTANT = 30 T[LLER1 = T[LLER1 - 1
 0990       EXEC ELEVPLOT
 1000     ENDIF 
 1010     LET PLOTTER = 6
 1020     REPEAT 
 1030       REPEAT 
 1040         LET T[LLER2 = T[LLER2 + 1
 1050       UNTIL ( ENRRNR ( 1 , T[LLER2 ) <> 0 AND ENRRNR ( 1 , T[LLER2 ) < 100 ) OR T[LLER2 = 30
 1060       LET RNR = ENRRNR ( 1 , T[LLER2 )
 1070       IF RNR > 0 AND RNR < 100 THEN
 1080         PRINT "<134>" ; XY$ ( 57 ) ; XY$ ( PLOTTER ) ;
 1090         INPUT "" , M]NED
 1100         IF F\RSTE THEN
 1110           PRINT "<134>" ; XY$ ( 69 ) ; XY$ ( PLOTTER ) ;
 1120           INPUT "" , MAXTIMER
 1130           LET F\RSTE = 0
 1140         ELSE 
 1150           IF VALG$ = "K" THEN
 1160             PRINT "<134>" ; XY$ ( 68 ) ; XY$ ( PLOTTER ) ; MAXTIMER
 1170           ELSE 
 1180             PRINT "<134>" ; XY$ ( 69 ) ; XY$ ( PLOTTER ) ;
 1190             INPUT "" , MAXTIMER
 1200           ENDIF 
 1210         ENDIF 
 1220         READ FILE ( 2 , RNR ) PJ[K , SUMPJ[K , TIMER , SUMTIMER
 1230         WRITE FILE ( 2 , RNR ) M]NED , SUMPJ[K + M]NED , MAXTIMER , SUMTIMER + MAXTIMER
 1240       ENDIF 
 1250       LET PLOTTER = PLOTTER + 1 PT[LLER = PT[LLER + 1
 1260     UNTIL RNR = 0 OR PT[LLER = 18 OR T[LLER2 = 30
 1270   UNTIL RNR = 0 OR PT[LLER = 30 OR T[LLER2 = 30
 1280   CLOSE
 1290   PRINT "<140>"
 1300 ENDPROC UMERISK«nul»
 1310 REM  -------------------------------------------------------------------------«nul» 
 1320 PROC DISKONT
 1330   REPEAT 
 1340     LET OK = 1
 1350     CONNECT "OVERSIGT" , 1
 1360     OPEN FILE ( 1 , 0 ) "KL-KODE"
 1370     READ FILE ( 1 , 1 ) KLKODE$
 1380     READ FILE ( 1 , 2 ) KLTRIN$
 1390     CLOSE FILE ( 1 )
 1400     IF KLTRIN$ <> CHECKL$ THEN
 1410       RELEASE 
 1420       PRINT "<134>" ; XY$ ( 1 ) ; XY$ ( 3 ) ; "<31>"
 1430       LET OK = 0
 1440       PRINT "<134>" ; XY$ ( 15 ) ; XY$ ( 8 ) ; "DISKETTE <34>" ; KLTRIN$ ; "<34> ER INDSAT I FD0"
 1450       PRINT "<134>" ; XY$ ( 15 ) ; XY$ ( 10 ) ; "DISKETTE <34>" ; CHECKL$ ; "<34> SKAL INDSÆTTES I FD0"
 1460       PRINT "<134>" ; XY$ ( 45 ) ; XY$ ( 13 ) ; "TAST FØLGENDE :"
 1470       PRINT "<134>" ; XY$ ( 43 ) ; XY$ ( 14 ) ; "-------------------"
 1480       PRINT "<134>" ; XY$ ( 45 ) ; XY$ ( 16 ) ; "1. LOCK<34>$FD0"
 1490       PRINT "<134>" ; XY$ ( 45 ) ; XY$ ( 18 ) ; "2. SKIFT DISKETTERNE UD"
 1500       PRINT "<134>" ; XY$ ( 45 ) ; XY$ ( 20 ) ; "3. INIT<34>$FD0"
 1510       PRINT "<134>" ; XY$ ( 45 ) ; XY$ ( 22 ) ; "4. CON"
 1520       PRINT "<134>" ; XY$ ( 1 ) ; XY$ ( 12 ) ;
 1530       STOP «nul» 
 1540     ELSE 
 1550     ENDIF 
 1560   UNTIL OK
 1570 ENDPROC ISKONT«nul»
 1580 REM  -----------------------------------------------------------------------«nul»-
 1590 PROC FORS\MME
 1600   REPEAT 
 1610     PAGE = 0
 1620     PRINT "<140><134>" ; XY$ ( 26 ) ; XY$ ( 1 ) ; "INDSKRIVNING AF FORSØMMELSER"
 1630     PRINT "<134>" ; XY$ ( 13 ) ; XY$ ( 2 ) ; "----------------------------------------------------------"
 1640     PRINT "<134>" ; XY$ ( 15 ) ; XY$ ( 5 ) ; "A :  INDSKRIVNING AF FORSØMMELSER MED ANTAL UNDERVISTE"
 1650     PRINT "<134>" ; XY$ ( 20 ) ; XY$ ( 6 ) ; "TIMER SAT TIL EN FAST KONSTANT"
 1660     PRINT "<134>" ; XY$ ( 15 ) ; XY$ ( 9 ) ; "B :  INDSKRIVNING AF FORSØMMELSER MED ANTAL UNDERVISTE"
 1670     PRINT "<134>" ; XY$ ( 20 ) ; XY$ ( 10 ) ; "TIMER INDSKREVET SEPERAT PR. ELEV"
 1680     PRINT "<134>" ; XY$ ( 15 ) ; XY$ ( 13 ) ; "C :  TILBAGE TIL HOVEDOPLYSNING"
 1690     PRINT "<134>" ; XY$ ( 13 ) ; XY$ ( 16 ) ; "----------------------------------------------------------"
 1700     REPEAT 
 1710       PRINT "<134>" ; XY$ ( 28 ) ; XY$ ( 20 ) ;
 1720       INPUT "HVILKEN PROCEDURE : <30>" , VALG$
 1730     UNTIL VALG$ >= "A" AND VALG$ <= "C"
 1740     CASE VALG$ OF
 1750       REM «nul»2
 1760     WHEN "A"
 1770       LET VALG$ = "K"
 1780       EXEC NUMERISK
 1790     WHEN "B"
 1800       LET VALG$ = ""
 1810       EXEC NUMERISK
 1820     ENDCASE «nul» 
 1830   UNTIL VALG$ = "C"
 1840 ENDPROC ORSØMME«nul»
 1850 REM  -----------------------------------------------------------------------«nul»-
 1860 EXEC FORS\MME
 1870 CONNECT "LIB" , 1
 1880 ENTER "PROGVALG"

UDAS Segment

    FNA definition = 0xffff
    FNB definition = 0xffff
    FNC definition = 0xffff
    FND definition = 0xffff
    FNE definition = 0xffff
    FNF definition = 0xffff
    FNG definition = 0xffff
    FNH definition = 0xffff
    FNI definition = 0xffff
    FNJ definition = 0xffff
    FNK definition = 0xffff
    FNL definition = 0xffff
    FNM definition = 0xffff
    FNN definition = 0xffff
    FNO definition = 0xffff
    FNP definition = 0xffff
    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] = 0x09e7
      stack[1] = 0x099f
      stack[2] = 0x0590
      stack[3] = 0x0395
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    FOR-NEXT stack pointer = 0x0000
      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)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
    REPEAT-UNTIL stack pointer = 0x0000
      stack[0] = 0x0836
      stack[1] = 0x0969
      stack[2] = 0x05af
      stack[3] = 0x05b2
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    WHILE-ENDWHILE stack pointer = 0x0000
      stack[0] = 0x0236
      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] = 0x0001
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
Variables:
    0x80 0xffff 0x00 
    0x81 0xffff 0x00 DISKONT
    0x82 0xffff 0x00 OK
    0x83 0xffff 0x02 KLKODE$
    0x84 0xffff 0x02 KLTRIN$
    0x85 0xffff 0x02 GRENKODE$
    0x86 0xffff 0x00 GRENMAT
    0x87 0xffff 0x02 CHECKL$
    0x88 0xffff 0x02 XY$
    0x89 0xffff 0x00 SV
    0x8a 0xffff 0x00 V
    0x8b 0xffff 0x02 CPR$
    0x8c 0xffff 0x02 ENAVN$
    0x8d 0xffff 0x02 FNAVN$
    0x8e 0xffff 0x02 MNAVN$
    0x8f 0xffff 0x02 NAVN$
    0x90 0xffff 0x02 EADR$
    0x91 0xffff 0x02 CCPR$
    0x92 0xffff 0x02 CENAVN$
    0x93 0xffff 0x02 CFNAVN$
    0x94 0xffff 0x02 CMNAVN$
    0x95 0xffff 0x02 POGBY$
    0x96 0xffff 0x02 ETLF$
    0x97 0xffff 0x02 FENAVN$
    0x98 0xffff 0x02 FFNAVN$
    0x99 0xffff 0x02 STILLING$
    0x9a 0xffff 0x02 FADR$
    0x9b 0xffff 0x02 FPOGBY$
    0x9c 0xffff 0x02 FTLF$
    0x9d 0xffff 0x02 K\N$
    0x9e 0xffff 0x02 SPROGET$
    0x9f 0xffff 0x02 SPROGFR$
    0xa0 0xffff 0x02 FUNKVALG$
    0xa1 0xffff 0x02 NYKL$
    0xa2 0xffff 0x02 FLNAVNE$
    0xa3 0xffff 0x02 KLASSE$
    0xa4 0xffff 0x02 OMR]DE$
    0xa5 0xffff 0x02 GREN$
    0xa6 0xffff 0x02 FORMUS$
    0xa7 0xffff 0x02 VALGFAG$
    0xa8 0xffff 0x02 TEKST$
    0xa9 0xffff 0x02 PROCEDUR$
    0xaa 0xffff 0x02 LINIE$
    0xab 0xffff 0x02 VALG$
    0xac 0xffff 0x02 ELRET$
    0xad 0xffff 0x02 SPRING$
    0xae 0xffff 0x02 MYNDIG$
    0xaf 0xffff 0x00 ENRRNR
    0xb0 0xffff 0x00 RNRKONTL
    0xb1 0xffff 0x00 FLYT
    0xb2 0xffff 0x00 XYTEKST
    0xb3 0xffff 0x00 MATRIKS
    0xb4 0xffff 0x00 ELEVPLOT
    0xb5 0xffff 0x00 PLOTTER
    0xb6 0xffff 0x00 T[LLER
    0xb7 0xffff 0x00 T[LLER1
    0xb8 0xffff 0x00 RNR
    0xb9 0xffff 0x00 KONSTANT
    0xba 0xffff 0x00 NR
    0xbb 0xffff 0x00 KLVALG
    0xbc 0xffff 0x00 XKOR
    0xbd 0xffff 0x00 NUMERISK
    0xbe 0xffff 0x00 OMGANG
    0xbf 0xffff 0x00 F\RSTE
    0xc0 0xffff 0x00 T[LLER2
    0xc1 0xffff 0x00 PT[LLER
    0xc2 0xffff 0x00 M]NED
    0xc3 0xffff 0x00 MAXTIMER
    0xc4 0xffff 0x00 PJ[K
    0xc5 0xffff 0x00 SUMPJ[K
    0xc6 0xffff 0x00 TIMER
    0xc7 0xffff 0x00 SUMTIMER
    0xc8 0xffff 0x00 FORS\MME
    0xc9 0xffff 0x00 STO

Wrapper

.magic = 0x5356
.u_pas = 0x0a03  // Length of UPAS in words
.u_das = 0x01da  // Length of UDAS in words
.u_dvs = 0x01da  // Start på savede variabel indhold (word adr)
.u_nds = 0x0042  // Address på næste prog.sætning (word adr)
.u_cps = 0x0000  // Address på curr prog.sætning (word adr)
.u_tll = 0x0000  // Page størrelse
.u_tts = 0x000e  // TAP størrelse
.u_ran = 0x0000  // Random tal
.u_cdl = 0x0042  // Current DATA sætning ptr
.u_cdb = 0x0000  // Current DATA byte ptr
.u_esa = 0xffff  // ON ESE (word adr)
.u_era = 0xffff  // ON ERR (word adr)
.u_cas = 0x0000  // CASE dybde
.u_las = 0xffff  // last (-1)