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

⟦9bbeed78a⟧ COMAL_SAVE

    Length: 4086 (0xff6)
    Types: COMAL_SAVE

Derivation

└─⟦d85593a46⟧ Bits:30000470 DOMUS disk image - User files
    └─ ⟦13f1e2a22⟧ »/VECKO« 
        └─⟦this⟧ 

UPAS Segment

SAVE filename: "VECKO"

 0010 REM  VEKTORFUNKTIONER OG  BANEKURVER«nul»!
 0020 REM  «nul»
 0030 REM  PROGRAM TIL UNDERVISNINGSBRUG«nul»R
 0040 REM  AF MICHAEL WEYAND«nul»I
 0050 REM «nul»A
 0060 REM  BRUGSVEJLEDNING«nul»D
 0070 REM «nul»B
 0080 PRINT "<27>AF"
 0090 PRINT "<27><12>"
 0100 DELAY = 1
 0110 PRINT TAB ( 20 ) ; "***  GRAFTEGNING FOR VEKTORFUNKTIONER  ***"
 0120 PRINT
 0130 TAB = 10
 0140 PRINT "" , "GRAFTEGNEREN KAN TEGNE EN VEKTOFUNKTION"
 0150 PRINT "" , " BAGEFTER ER DET MULIGT AT LAVE KOORDINAT-"
 0160 PRINT "" , "SOEGNING VED HJAELP AF KORSET, SOM FREMKOMMER."
 0170 PRINT "" , "KORSET  INDSTILLES V.H.A. DE TO KNAPPER I"
 0180 PRINT "" , "HOEJRE SIDE AF TASTATURET. NAAR KORSET ER INDSTIL-"
 0190 PRINT "" , "LET OVER DEN SOEGTE KOORDINAT TRYKKES DER PAA ET BOG-"
 0200 PRINT "" , "STAV.  NAAR SOEGNINGEN ER FORBI TRYKKES PAA  -RETURN-"
 0210 PRINT
 0220 REM «nul»B
 0230 REM  VEKTORFUNKTIONEN LAESES IND«nul»G
 0240 PRINT "" , "VEKTORFUNKTIONEN DEFINERES PAA LINIE 300,310"
 0250 REM «nul»«nul»
 0260 STOP «nul» 
 0270 REM «nul»«nul»
 0280 REM «nul»«nul»
 0290 REM «nul»V
 0300 DEF FNX ( VAR94 ) = [LVAR]  * COS ( [LVAR]  )
 0310 DEF FNY ( VAR94 ) = [LVAR]  * SIN ( 2 * [LVAR]  )
 0320 REM «nul»«nul»
 0330 REM «nul»«nul»
 0340 PRINT
 0350 PRINT "" , "INDTAST TIDSINTERVALLET :" ;
 0360 INPUT "START,STOP ? " , T0 , TS
 0370 PRINT "<27>AE"
 0380 PRINT "<27><12>"
 0390 DELAY = 1
 0400 REM  KOORDINATSYSTEM INDRETTES«nul»G
 0410 REM  X-AKSEN: XMIN,XMAX OG Y-AKSEN: YMIN,YMAX«nul»
 0420 REM  ENHEDERNE PAA AKSERNE SKAL VAERE ENS !!«nul»«nul»
 0430 INPUT "INTERVAL PAA X-AKSEN (START-,SLUTVÆRDI)" , A , B
 0440 INPUT "INTERVAL PAA Y-AKSEN (START-,SLUTVÆRDI): " , C , D
 0460 PRINT "<27><12>"
 0480 IF A >= 0 AND C >= 0 THEN LET XAK = 5 ; YAK = 5
 0490 IF A >= 0 AND C < 0 THEN LET XAK = 5 ; YAK = 775 * ABS ( C / ( D - C ) ) + 5
 0500 IF A < 0 AND C >= 0 THEN LET XAK = 1018 * ABS ( A / ( B - A ) ) + 5 ; YAK = 5
 0510 IF A < 0 AND C < 0 THEN LET XAK = 1018 * ABS ( A / ( A - B ) ) + 5 ; YAK = 775 * ABS ( C / ( C - D ) ) + 5
 0520 CALL "VECTOR" , 5 , YAK , 0
 0530 CALL "VECTOR" , 1023 , YAK , 1
 0540 CALL "VECTOR" , 1018 , YAK - 5 , 1
 0550 CALL "VECTOR" , 1018 , YAK + 5 , 1
 0560 CALL "VECTOR" , 1023 , YAK , 1
 0570 CALL "VECTOR" , XAK , 5 , 0
 0580 CALL "VECTOR" , XAK , 780 , 1
 0590 CALL "VECTOR" , XAK - 5 , 775 , 1
 0600 CALL "VECTOR" , XAK + 5 , 775 , 1
 0610 CALL "VECTOR" , XAK , 780 , 1
 0620 LET ENX = ABS ( 1018 / ( B - A ) )
 0630 LET ENY = ABS ( 775 / ( D - C ) )
 0650 IF ENX > ENY THEN
 0660   LET ENY = ENX
 0665   LET ENHED = ENX
 0670 ELSE 
 0680   LET ENX = ENY
 0685   LET ENHED = ENY
 0690 ENDIF 
 0710 CALL "VECTOR" , 5 , YAK , 0
 0720 FOR XEN = XAK TO 1023 STEP ENX
 0730   CALL "VECTOR" , XEN , YAK + 5 , 0
 0740   CALL "VECTOR" , XEN , YAK - 5 , 1
 0750 NEXT 
 0760 FOR XEN = XAK TO 0 STEP - ENX
 0770   CALL "VECTOR" , XEN , YAK + 5 , 0
 0780   CALL "VECTOR" , XEN , YAK - 5 , 1
 0790 NEXT 
 0800 FOR YEN = YAK TO 780 STEP ENY
 0810   CALL "VECTOR" , XAK - 5 , YEN , 0
 0820   CALL "VECTOR" , XAK + 5 , YEN , 1
 0830 NEXT 
 0840 FOR YEN = YAK TO 0 STEP - ENY
 0850   CALL "VECTOR" , XAK - 5 , YEN , 0
 0860   CALL "VECTOR" , XAK + 5 , YEN , 1
 0870 NEXT 
 0880 REM  GRAFEN TEGNES«nul»K
 0890 REM «nul»G
 0900 LET S = ( TS - T0 ) / 400 ; VEC = 0
 0910 CALL "GRAPH" , ( FNX ( T0 ) - A ) / ENHED , ( FNY ( T0 ) - C ) / ENHED
 0920 REPEAT 
 0930   LET TID = T0
 0940   LET XPOS = ( FNX ( TID ) - A ) / ENHED + 5 ; YPOS = ( FNY ( TID ) - C ) / ENHED + 5
 0950   IF YPOS < 1 OR YPOS > 780 OR XPOS < 1 OR XPOS > 1023 THEN
 0960     LET VEC = 0
 0970   ELSE 
 0975     LET VEC = 0
 0980     CALL "VECTOR" , XPOS , YPOS , VEC
 1000   ENDIF 
 1010   LET T0 = TID + S
 1020 UNTIL TID > TS
 1030 CALL "GRAPH" , 0 , 100
 1040 PRINT "<27>AF"
 1050 CALL "ALPHA"
 1060 REM  «nul»
 1070 REM  KOORDINATS0GNING«nul»
 1080 REM «nul»K
 1090 REPEAT 
 1100   PRINT "<29>" ;
 1110   EXEC CROSS
 1120   LET XKOR = XMIN + ( X - 10 ) * ENHED ; YKOR = YMIN + ( Y - 10 ) * ENHED
 1130   PRINT "<31>" ;
 1140   PAGE = 72
 1150   PRINT "(" ; XKOR ; "," ; YKOR ; ")"
 1160 UNTIL 0
 1170 END «nul»K
 1180 REM «nul»G
 1190 PROC CROSS
 1200   DIM G$ ( 5 )
 1210   ON ERR THEN GOTO 1210
 1220   INPUT "<27><26>" , G$ ;
 1230   IF LEN ( G$ ) = 0 THEN
 1240     PRINT "<31>"
 1250     END «nul»
 1260   ENDIF 
 1270   LET X = ( ORD ( G$ ( 2 ) ) - 33 ) * 32 + ORD ( G$ ( 3 ) )
 1280   LET Y = ( ORD ( G$ ( 4 ) ) - 33 ) * 32 + ORD ( G$ ( 5 ) )
 1290 ENDPROC
 1300 REM «nul»G
 1310 PROC ERR2
 1320   ON ERR THEN EXEC ERR2
 1330   LET VEC = 0
 1340 ENDPROC
 1350 REM «nul»G
 1360 PROC INFO
 1370   PRINT
 1380   PRINT "JEG SKAL LIGE FINDE PAA NOGET !!??"
 1390   ENTER "PLOIN"
 1400   EXEC PLOIN
 1410 ENDPROC

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 = 0x01c6
    FNY definition = 0x01cd
    FNZ definition = 0xffff
    FN[ definition = 0xffff
    FN\ definition = 0xffff
    FN] definition = 0xffff
    GOSUB-RETURN stack pointer = 0x0000
      stack[0] = 0x04b6
      stack[1] = 0x032f
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    FOR-NEXT stack pointer = 0x0001
      Var# = 0x047f
      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 = 3.37355e-80   (0x00010001)
      Var# = 0x0000
      Loop Top = 0x0000
      To Val = 0   (0x00000000)
      Step Val = 0   (0x00000000)
      Var# = 0x00cb
      Loop Top = 0x042f
      To Val = 0   (0x00000000)
      Step Val = -509   (0xc31fd000)
      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 GEM$
    0x82 0xffff 0x00 X1
    0x83 0xffff 0x00 X2
    0x84 0xffff 0x00 Y1
    0x85 0xffff 0x00 Y2
    0x86 0xffff 0x00 XSTEP
    0x87 0xffff 0x00 YSTEP
    0x88 0xffff 0x00 XAKS
    0x89 0xffff 0x00 YAKS
    0x8a 0xffff 0x00 A1
    0x8b 0xffff 0x00 A2
    0x8c 0xffff 0x00 A3
    0x8d 0xffff 0x00 A4
    0x8e 0xffff 0x00 C1
    0x8f 0xffff 0x00 C2
    0x90 0xffff 0x00 C3
    0x91 0xffff 0x00 C4
    0x92 0xffff 0x00 C5
    0x93 0xffff 0x00 C6
    0x94 0x001a 0x00 S
    0x95 0xffff 0x00 Y
    0x96 0xffff 0x00 START
    0x97 0xffff 0x00 SLUT
    0x98 0xffff 0x00 KOORD
    0x99 0xffff 0x00 X
    0x9a 0xffff 0x00 ERR2
    0x9b 0x001c 0x00 VEC
    0x9c 0x0028 0x00 T
    0x9d 0xffff 0x00 CROSS
    0x9e 0xffff 0x02 G$
    0x9f 0xffff 0x00 XKOR
    0xa0 0xffff 0x00 YKOR
    0xa1 0xffff 0x00 LIST200
    0xa2 0xffff 0x00 INFO
    0xa3 0xffff 0x00 PLOIN
    0xa4 0x0000 0x00 T0
    0xa5 0x0002 0x00 TS
    0xa6 0xffff 0x00 TSTEP
    0xa7 0xffff 0x00 I
    0xa8 0xffff 0x00 ENH1
    0xa9 0xffff 0x00 YMAX
    0xaa 0xffff 0x00 YMIN
    0xab 0xffff 0x00 LW
    0xac 0xffff 0x00 ENH2
    0xad 0xffff 0x00 XMAX
    0xae 0xffff 0x00 XMIN
    0xaf 0xffff 0x00 EN1
    0xb0 0x0014 0x00 ENHED
    0xb1 0xffff 0x00 XMAX1
    0xb2 0xffff 0x00 ENDPRROC
    0xb3 0x0008 0x00 C
    0xb4 0xffff 0x00 XMIN1
    0xb5 0xffff 0x00 LISTT
    0xb6 0xffff 0x00 J
    0xb7 0xffff 0x00 YMAX1
    0xb8 0xffff 0x00 YMIN1
    0xb9 0xffff 0x00 LIST500
    0xba 0xffff 0x00 LIST550
    0xbb 0xffff 0x00 CO
    0xbc 0x001e 0x00 TID
    0xbd 0x0022 0x00 YPOS
    0xbe 0x0020 0x00 XPOS
    0xbf 0xffff 0x00 TRIN
    0xc0 0xffff 0x00 TTID
    0xc1 0xffff 0x00 CENNECT
    0xc2 0x0004 0x00 A
    0xc3 0x000c 0x00 XAK
    0xc4 0x000e 0x00 YAK
    0xc5 0x000a 0x00 D
    0xc6 0x0006 0x00 B
    0xc7 0x0010 0x00 ENX
    0xc8 0x0012 0x00 ENY
    0xc9 0x0016 0x00 XEN
    0xca 0xffff 0x00 YAKK
    0xcb 0x0018 0x00 YEN
    0xcc 0xffff 0x00 TOR
    0xcd 0xffff 0x02 SV$
    0xce 0x0024 0x00 Q
    0xcf 0x0026 0x00 R

Wrapper

.magic = 0x4e32
.u_pas = 0x05ca  // Length of UPAS in words
.u_das = 0x0222  // Length of UDAS in words
.u_dvs = 0x01f8  // Start på savede variabel indhold (word adr)
.u_nds = 0x049c  // Address på næste prog.sætning (word adr)
.u_cps = 0x0486  // Address på curr prog.sætning (word adr)
.u_tll = 0x0048  // Page størrelse
.u_tts = 0x000a  // 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)