_  __   _  _         _ _     _      _           _           
  __| |/ /_ | || |     __| (_)___| | __ (_)_ __   __| | _____  __
 / _` | '_ \| || |_   / _` | / __| |/ / | | '_ \ / _` |/ _ \ \/ /
| (_| | (_) |__   _| | (_| | \__ \   <  | | | | | (_| |  __/>  < 
 \__,_|\___/   |_|    \__,_|_|___/_|\_\ |_|_| |_|\__,_|\___/_/\_\
                                                                 
            

ROM

FILE INFORMATION

FILENAME(S): ROM

FILE TYPE(S): SEQ

FILE SIZE: 919b

FIRST SEEN: 2025-11-30 21:29:04

APPEARS ON: 1 disk(s)

FILE HASH

5481c9351037b86ab5b8dabaab031559121ca742b55ea82025baaf37f9cb605c

FOUND ON DISKS (1 DISKS)

DISK TITLE FILENAME FILE TYPE COLLECTION TRACK SECTOR ACTIONS
TIGA ROM SEQ DuncanTwain 2 0 DOWNLOAD FILE

FILE CONTENT & ANALYSIS

00000000: 70 72 6F 67 72 61 6D 20  72 6F 6D 63 69 6A 66 3B  |program romcijf;|
00000010: 0D 54 59 50 45 0D 20 20  20 72 6F 6D 74 79 70 65  |.TYPE.   romtype|
00000020: 20 3D 20 53 54 52 49 4E  47 5B 34 30 5D 3B 0D 56  | = STRING[40];.V|
00000030: 41 52 0D 20 20 20 67 65  74 61 6C 3A 20 69 6E 74  |AR.   getal: int|
00000040: 65 67 65 72 3B 0D 20 20  20 72 6F 6D 63 69 6A 66  |eger;.   romcijf|
00000050: 3A 20 72 6F 6D 74 79 70  65 3B 0D 3A 0D 50 52 4F  |: romtype;.:.PRO|
00000060: 43 45 44 55 52 45 20 72  6F 6D 65 69 6E 63 69 6A  |CEDURE romeincij|
00000070: 66 20 28 56 41 52 20 67  65 74 61 6C 3A 20 69 6E  |f (VAR getal: in|
00000080: 74 65 67 65 72 3B 20 76  61 72 20 72 6F 6D 63 69  |teger; var romci|
00000090: 6A 66 3A 20 72 6F 6D 74  79 70 65 29 3B 0D 43 4F  |jf: romtype);.CO|
000000A0: 4E 53 54 0D 20 20 20 77  3A 20 41 52 52 41 59 5B  |NST.   w: ARRAY[|
000000B0: 31 2E 2E 37 5D 20 6F 66  20 69 6E 74 65 67 65 72  |1..7] of integer|
000000C0: 3D 28 31 30 30 30 2C 20  35 30 30 2C 20 31 30 30  |=(1000, 500, 100|
000000D0: 2C 20 35 30 2C 20 31 30  2C 20 35 2C 20 31 29 3B  |, 50, 10, 5, 1);|
000000E0: 0D 20 20 63 68 61 3A 20  41 52 52 41 59 5B 31 2E  |.  cha: ARRAY[1.|
000000F0: 2E 37 5D 20 6F 66 20 63  68 61 72 3D 20 27 4D 44  |.7] of char= 'MD|
00000100: 43 4C 58 56 49 27 3B 0D  56 41 52 0D 20 20 6D 2C  |CLXVI';.VAR.  m,|
00000110: 20 6E 2C 20 78 3A 20 69  6E 74 65 67 65 72 3B 0D  | n, x: integer;.|
00000120: 42 45 47 49 4E 0D 20 20  20 78 3A 3D 20 67 65 74  |BEGIN.   x:= get|
00000130: 61 6C 3B 20 6D 3A 3D 20  31 3B 0D 20 20 20 57 48  |al; m:= 1;.   WH|
00000140: 49 4C 45 20 78 3E 30 20  64 6F 0D 62 65 67 69 6E  |ILE x>0 do.begin|
00000150: 0D 20 20 20 20 20 20 49  46 20 78 2D 77 28 6D 29  |.      IF x-w(m)|
00000160: 3C 30 20 54 48 45 4E 0D  20 20 20 20 20 20 42 45  |<0 THEN.      BE|
00000170: 47 49 4E 0D 20 20 20 20  20 20 20 20 6E 3A 3D 20  |GIN.        n:= |
00000180: 37 3B 0D 20 20 20 20 20  20 20 20 57 48 49 4C 45  |7;.        WHILE|
00000190: 20 6E 3E 3D 28 32 2A 28  28 6D 2B 31 29 20 64 69  | n>=(2*((m+1) di|
000001A0: 76 20 32 29 2B 31 29 20  64 6F 0D 20 20 20 20 20  |v 2)+1) do.     |
000001B0: 20 20 20 42 45 47 49 4E  0D 20 20 20 20 20 20 20  |   BEGIN.       |
000001C0: 20 20 20 49 46 20 78 2D  77 5B 6D 5D 2B 77 5B 6E  |   IF x-w[m]+w[n|
000001D0: 5D 3E 3D 30 20 54 48 45  4E 0D 20 20 20 20 20 20  |]>=0 THEN.      |
000001E0: 20 20 20 20 42 45 47 49  4E 0D 20 20 20 20 20 20  |    BEGIN.      |
000001F0: 20 20 20 20 20 20 78 3A  3D 20 78 2D 77 5B 6D 5D  |      x:= x-w[m]|
00000200: 2B 77 5B 6E 5D 3B 0D 20  20 20 20 20 20 20 20 20  |+w[n];.         |
00000210: 20 20 20 72 6F 6D 63 69  6A 66 3A 3D 20 72 6F 6D  |   romcijf:= rom|
00000220: 63 69 6A 66 2B 20 63 68  61 5B 6E 5D 20 2B 63 68  |cijf+ cha[n] +ch|
00000230: 61 5B 6D 5D 3B 0D 20 20  20 20 20 20 20 20 20 20  |a[m];.          |
00000240: 45 4E 44 3B 0D 20 20 20  20 20 20 20 20 20 20 6E  |END;.          n|
00000250: 3A 3D 20 6E 2D 32 0D 20  20 20 20 20 20 20 20 45  |:= n-2.        E|
00000260: 6E 64 3B 0D 20 20 20 20  20 20 20 20 6D 3A 3D 20  |nd;.        m:= |
00000270: 6D 2B 31 0D 20 20 20 20  20 20 45 4E 44 3B 0D 20  |m+1.      END;. |
00000280: 20 20 20 20 20 45 4C 53  45 0D 20 20 20 20 20 20  |     ELSE.      |
00000290: 42 45 47 49 4E 0D 20 20  20 20 20 20 20 20 20 78  |BEGIN.         x|
000002A0: 3A 3D 20 78 2D 77 5B 6D  5D 3B 20 72 6F 6D 63 69  |:= x-w[m]; romci|
000002B0: 6A 66 3A 3D 20 72 6F 6D  63 69 6A 66 20 2B 63 68  |jf:= romcijf +ch|
000002C0: 61 5B 6D 5D 3B 0D 20 20  20 20 20 20 45 4E 44 3B  |a[m];.      END;|
000002D0: 0D 20 20 20 20 45 4E 44  0D 45 4E 44 3B 0D 62 65  |.    END.END;.be|
000002E0: 67 69 6E 0D 3A 0D 52 45  50 45 41 54 0D 72 6F 6D  |gin.:.REPEAT.rom|
000002F0: 63 69 6A 66 3A 3D 20 27  27 3B 0D 57 52 49 54 45  |cijf:= '';.WRITE|
00000300: 20 28 27 56 6F 65 72 20  67 65 68 65 65 6C 20 67  | ('Voer geheel g|
00000310: 65 74 61 6C 20 69 6E 20  28 74 6F 74 20 34 30 30  |etal in (tot 400|
00000320: 30 29 27 29 3B 0D 52 45  41 44 28 67 65 74 61 6C  |0)');.READ(getal|
00000330: 29 3B 20 57 52 49 54 45  4C 4E 3B 0D 72 6F 6D 65  |); WRITELN;.rome|
00000340: 69 6E 63 69 6A 66 20 28  67 65 74 61 6C 2C 20 72  |incijf (getal, r|
00000350: 6F 6D 63 69 6A 66 29 3B  0D 57 52 49 54 45 4C 4E  |omcijf);.WRITELN|
00000360: 28 67 65 74 61 6C 2C 27  20 20 3D 20 20 27 2C 72  |(getal,'  =  ',r|
00000370: 6F 6D 63 69 6A 66 29 3B  20 57 52 49 54 45 4C 4E  |omcijf); WRITELN|
00000380: 3B 0D 55 4E 54 49 4C 20  67 65 74 61 6C 3D 20 32  |;.UNTIL getal= 2|
00000390: 37 0D 45 4E 44 2E 0D                              |7.END..         |
PROGRAM ROMCIJF;.TYPE.   ROMTYPE = STRIN
G[40];.VAR.   GETAL: INTEGER;.   ROMCIJF
: ROMTYPE;.:.PROCEDURE ROMEINCIJF (VAR G
ETAL: INTEGER; VAR ROMCIJF: ROMTYPE);.CO
NST.   W: ARRAY[1..7] OF INTEGER=(1000, 
500, 100, 50, 10, 5, 1);.  CHA: ARRAY[1.
.7] OF CHAR= 'MDCLXVI';.VAR.  M, N, X: I
NTEGER;.BEGIN.   X:= GETAL; M:= 1;.   WH
ILE X>0 DO.BEGIN.      IF X-W(M)<0 THEN.
      BEGIN.        N:= 7;.        WHILE
 N>=(2*((M+1) DIV 2)+1) DO.        BEGIN
.          IF X-W[M]+W[N]>=0 THEN.      
    BEGIN.            X:= X-W[M]+W[N];. 
           ROMCIJF:= ROMCIJF+ CHA[N] +CH
A[M];.          END;.          N:= N-2. 
       END;.        M:= M+1.      END;. 
     ELSE.      BEGIN.         X:= X-W[M
]; ROMCIJF:= ROMCIJF +CHA[M];.      END;
.    END.END;.BEGIN.:.REPEAT.ROMCIJF:= '
';.WRITE ('VOER GEHEEL GETAL IN (TOT 400
0)');.READ(GETAL); WRITELN;.ROMEINCIJF (
GETAL, ROMCIJF);.WRITELN(GETAL,'  =  ',R
OMCIJF); WRITELN;.UNTIL GETAL= 27.END..
C64 Preview

> CLICK IMAGE PREVIEW FOR FULL MODAL