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

⟦f80794b82⟧ COMAL_SAVE

    Length: 1616 (0x650)
    Types: COMAL_SAVE
    Notes: LIB::XYPOS, XYPOS   
    Names: »XYPOS«

Derivation

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

UPAS Segment

SAVE filename: "XYPOS"

 0010 REM  PROGRAM NAME : XYPOS   77.08.10 «nul»
 0020 REM  PROGRAMMET VISER, HVORDAN MAN KAN POSITIONERE CURSOREN«nul»
 0030 REM  PAA EN SKAERMTERMINAL AF TYPEN RC823.«nul»T
 0040 REM  PROGRAMMET TEGNER EN "SPIRAL" PAA SKAERMEN.«nul»E
 0050 REM  CURSOREN ADRESSERES VED AT MAN SKRIVER TRE ASCII«nul»
 0060 REM  KARAKTERER PAA TERMINALEN : 6,X,Y   , HVOR KARAKTEREN«nul»«nul»
 0070 REM  MED TEGNVAERDI '6' ANGIVER, AT DE TO NAESTE KARAKTERER«nul»
 0080 REM  SKAL FORTOLKES SOM EN X- OG EN Y-ADRESSE.«nul»E
 0090 REM  **** BEMAERK *****«nul»
 0100 REM  HVIS TERMINALEN SIDDER SOM KONSOL (NR 32), SKAL«nul»K
 0110 REM  KARAKTEREN '6' ERSTATTES AF KARAKTEREN '134'«nul»
 0120 REM  ****         *****«nul»
 0130 PROC XYPOS
 0140   LET POS$ = "<134>" , XY$ ( X ) , XY$ ( Y )
 0150   PRINT POS$ ; "*" ;
 0160 ENDPROC
 0170 DIM XY$ ( 80 ) , POS$ ( 3 ) , TEXT$ ( 5 )
 0180 LET XY$ = "`abcdefghij"
 0190 LET XY$ = XY$ , "klmnopqrst"
 0200 LET XY$ = XY$ , "uvwxyzæøå~"
 0210 LET XY$ = XY$ , "<127>"
 0220 LET XY$ = XY$ , "@ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ^_"
 0230 REM  LAST CHARACTER IN PRECEDING LINE IS <95>«nul»
 0240 LET XY$ = XY$ , " !<34>#$%&'()*+,-./"
 0250 LET FPOS = 1 LPOS = 80 FLINE = 1 LLINE = 23
 0260 PAGE = 0
 0270 PRINT "<140>"
 0280 REPEAT 
 0290   LET Y = FLINE
 0300   FOR X = FPOS TO LPOS
 0310     EXEC XYPOS
 0320   NEXT 
 0330   LET X = LPOS
 0340   FOR Y = FLINE + 1 TO LLINE - 1
 0350     EXEC XYPOS
 0360   NEXT 
 0370   LET Y = LLINE
 0380   FOR X = LPOS TO FPOS STEP - 1
 0390     EXEC XYPOS
 0400   NEXT 
 0410   LET X = FPOS
 0420   FOR Y = LLINE - 1 TO FLINE + 1 STEP - 1
 0430     EXEC XYPOS
 0440   NEXT 
 0450   LET FPOS = FPOS + 1 LPOS = LPOS - 1
 0460   LET FLINE = FLINE + 1 LLINE = LLINE - 1
 0470 UNTIL FLINE > LLINE
 0480 CHAIN "LOOKUP"

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] = 0x0212
      stack[1] = 0x0000
      stack[2] = 0x0000
      stack[3] = 0x0000
      stack[4] = 0x0000
      stack[5] = 0x0000
      stack[6] = 0x0000
    FOR-NEXT stack pointer = 0x0000
      Var# = 0x0084
      Loop Top = 0x020f
      To Val = 80   (0x42500000)
      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 = 0x0000
      stack[0] = 0x0206
      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 0xffff 0x02 XY$
    0x84 0xffff 0x00 X
    0x85 0xffff 0x00 Y
    0x86 0xffff 0x02 TEXT$
    0x87 0xffff 0x00 FPOS
    0x88 0xffff 0x00 LPOS
    0x89 0xffff 0x00 FLINE
    0x8a 0xffff 0x00 LLINE

Wrapper

.magic = 0x5356
.u_pas = 0x027a  // Length of UPAS in words
.u_das = 0x009f  // Length of UDAS in words
.u_dvs = 0x009f  // 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 = 0x0028  // 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)