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

⟦c9db73bc5⟧ COMAL_SAVE

    Length: 2580 (0xa14)
    Types: COMAL_SAVE
    Notes: LEARN   , LIB::LEARN
    Names: »LEARN«

Derivation

└─⟦43f2224a3⟧ Bits:30007878 (Demostrations diskette af 1981 Frederikshavn Gymnasium Område : LIB Nøgle : 1)
    └─⟦this⟧ 

UPAS Segment

SAVE filename: "LEARN"

 0010 REM  /// --- LEARN --- ///«nul»Q
 0020 ON ERR THEN CLOSE
 0030 LET LOGIC = 1 LOGIK = 0
 0040 DIM XY$ ( 81 ) , ANSWER$ ( 8 ) , TEXT$ ( 28 ) , TEXT1$ ( 512 ) , TEXT2$ ( 2 ) , FUNCTION$ ( 45 )
 0050 DIM LDNAME$ ( 10 ) , NAME$ ( 20 )
 0060 DIM FINDING$ ( 8 ) , DATAS$ ( 2 )
 0070 LET XY$ = "`abcdefghij"
 0080 LET XY$ = XY$ , "klmnopqrst"
 0090 LET XY$ = XY$ , "uvwxyzæøå~"
 0100 LET XY$ = XY$ , "<127>"
 0110 LET XY$ = XY$ , "@ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ^_"
 0120 LET XY$ = XY$ , " !<34>#$%&'()*+,-./"
 0130 PRINT "<140><10>THIS PROGRAM IS USED TO STORE DATA IN THE LOOKUP FILES<10>"
 0140 INPUT "ENTER LOGIC DISC NAME          :  " , ANSWER$
 0150 INPUT "ENTER THE PROTECTION KEY       :  " , KEY
 0160 CONNECT ANSWER$ , KEY
 0170 PRINT "<10>FOLLOWING FUNCTIONS  :<10>"
 0180 PRINT "    1.  A TOTALY CREATING OF STORE<10>"
 0190 PRINT "    2.  TO ENTER NEW INFORMATIONS IN STORE<10>"
 0200 PRINT "    3.  TO DELETE INFORMATIONS IN STORE<10>"
 0210 INPUT "ENTER NUMBER OF FUNCTION  :  " , ANSWER
 0220 CASE ANSWER OF
 0230   STOP  «nul» 
 0240 WHEN 1
 0250   EXEC TOTALY
 0260 WHEN 2
 0270   EXEC ENTERS
 0280 WHEN 3
 0290   EXEC DELETES
 0300 ENDCASE «nul» 
 0310 REM  /// ------------------- ///«nul» 
 0320 PROC TOTALY
 0330   LET COUNTER = 0
 0340   OPEN FILE ( 1 , 0 ) "TEXT"
 0350   LET TEXT1$ = "@" TEXT2$ = "@" FINDING$ = "@"
 0360   FOR COUNTERS = 1 TO 20
 0370     READ DATAS$
 0380     WRITE FILE ( 1 , COUNTERS ) COUNTERS , TEXT1$ , TEXT2$ , DATAS$ , FINDING$
 0390   NEXT 
 0400   RESTORE 0000
 0410   PRINT "<134>" ; XY$ ( 1 ) ; XY$ ( 6 ) ; "<31>"
 0420   REPEAT 
 0430     LET COUNTER = COUNTER + 1
 0440     LET Y = COUNTER + 5 X = 1
 0450     IF LOGIC THEN
 0460       LET TEXT$ = "LOOKUP NAME(8)" Y = 9 X = 10
 0470       EXEC INPLOT
 0480       LET TEXT$ = "FUNCTION OF PROGRAM(40)" X = 25
 0490       EXEC INPLOT
 0500       LET TEXT$ = "LD.NAME(8)" X = 65 LOGIC = 0
 0510       EXEC INPLOT
 0520     ENDIF 
 0530     READ FILE ( 1 , COUNTER ) CIFFER
 0540     LET Y = COUNTER + 10 X = 6
 0550     EXEC PLOTTING
 0560     PRINT CIFFER
 0570     LET X = 10
 0580     EXEC PLOTTING
 0590     INPUT "" , NAME$
 0600     LET X = 25
 0610     EXEC PLOTTING
 0620     INPUT "" , FUNCTION$
 0630     LET X = 65
 0640     EXEC PLOTTING
 0650     INPUT "" , LDNAME$
 0660     EXEC WRITING
 0670     PROC INPLOT
 0680       PRINT "<134>" ; XY$ ( X ) ; XY$ ( Y ) ; TEXT$
 0690     ENDPROC NPLOT«nul»
 0700     PROC PLOTTING
 0710       PRINT "<134>" ; XY$ ( X ) ; XY$ ( Y ) ;
 0720     ENDPROC LOTTING«nul»
 0730     PROC WRITING
 0740       IF NAME$ <> "@" THEN
 0750         READ DATAS$
 0760         WRITE FILE ( 1 , COUNTER ) COUNTER , NAME$ , FUNCTION$ , DATAS$ , LDNAME$
 0770       ELSE 
 0780         LET LOGIK = 1
 0790       ENDIF 
 0800     ENDPROC RITING«nul»
 0810   UNTIL LOGIK
 0820   DATA "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "10" , "11" , "12" , "13" , "14" , "15"
 0830   DATA "16" , "17" , "18" , "19" , "20"
 0840 ENDPROC OTALY«nul»
 0850 CLOSE FILE ( 1 )

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 = 0x0001
      stack[0] = 0x01a9
      stack[1] = 0x02ae
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    FOR-NEXT stack pointer = 0x0000
      Var# = 0x0097
      Loop Top = 0x01f3
      To Val = 20   (0x42140000)
      Step Val = 1   (0x41100000)
      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 = 0x0001
      stack[0] = 0x0222
      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 0x00 XYPOS
    0x82 0xffff 0x02 POS$
    0x83 0x0004 0x02 XY$
    0x84 0x0094 0x00 X
    0x85 0x0092 0x00 Y
    0x86 0x0037 0x02 TEXT$
    0x87 0x0030 0x02 ANSWER$
    0x88 0x0048 0x02 TEXT1$
    0x89 0x004c 0x02 TEXT2$
    0x8a 0x0050 0x02 FUNCTION$
    0x8b 0x006a 0x02 LDNAME$
    0x8c 0x0072 0x02 NAME$
    0x8d 0x007f 0x02 FINDING$
    0x8e 0x0086 0x02 DATAS$
    0x8f 0x0000 0x00 LOGIC
    0x90 0x0002 0x00 LOGIK
    0x91 0x008a 0x00 KEY
    0x92 0x008c 0x00 ANSWER
    0x93 0xffff 0x00 TOTALY
    0x94 0xffff 0x00 ENTERS
    0x95 0xffff 0x00 DELETES
    0x96 0x008e 0x00 COUNTER
    0x97 0x0090 0x00 COUNTERS
    0x98 0xffff 0x00 INPLOT
    0x99 0x0096 0x00 CIFFER
    0x9a 0xffff 0x00 PLOTTING
    0x9b 0xffff 0x02 FUNTION$
    0x9c 0xffff 0x00 WRITTING
    0x9d 0xffff 0x00 WRITING
    0x9e 0xffff 0x00 ENPROC

Wrapper

.magic = 0x5356
.u_pas = 0x0360  // Length of UPAS in words
.u_das = 0x019b  // Length of UDAS in words
.u_dvs = 0x0103  // Start på savede variabel indhold (word adr)
.u_nds = 0x02b3  // Address på næste prog.sætning (word adr)
.u_cps = 0x0000  // Address på curr prog.sætning (word adr)
.u_tll = 0x0048  // 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 = 0x0001  // CASE dybde
.u_las = 0xffff  // last (-1)