Dictador

Descripción del contenido de la página

Traducción del programa Dictator de Don Priestley, para ZX Spectrum.

Etiquetas:

Hacia 1985 desprotegí y traduje al castellano, solo para mi propio uso, este simpático programa de simulación que escribió Don Priestley y publicó DK'Tronics en 1983. Cosas de la era pre-intertet... pues, como supe mucho tiempo después, desde 1984 existía una versión en castellano publicada por ABC Soft y traducida con más competencia por J. Argila.

Hice también una versión «demo» para que el juego funcionara solo. Desde entonces ambos programas han dormido un cuarto de siglo en un cajón (virtual).

En World of Spectrum se encuentran disponibles la versión original en inglés, Dictator, y la versión oficial en castellano, así como las instrucciones en inglés y diversa información de la época.

El juego tiene su encanto y sigue fue un buen candidato para hacer una «retro-versión» para una máquina más potente que la ZX Spectrum, como la SAM Coupé o la QL; o incluso a una menos potente, como la Jupiter Ace. En abril de 2011 inicié un proyecto de versión para QL.

Pantallazos

DictadorDictadorDictadorDictadorDictadorDictadorDictadorDictadorDictadorDictadorDictadorDictadorDictadorDictadorDictadorDictador

Código fuente

Las dos primeras líneas del programa se omiten en el siguiente listado, pues contienen, escondidos tras REM, dos programas en código máquina (para hacer efectos especiales, visuales y sonoros) y varios juegos de gráficos (que el programa usa cambiando la dirección de la variable del sistema correspondiente, cuya dirección guarda en la variable gr).

   3 REM PRESENTACION _________________________________________
   4 LET bor=on: PAPER ze: INK VAL "9": GO SUB CLS : PRINT AT VAL "4",VAL "2"; FLASH on; BRIGHT on;"DICTADOR";AT VAL "8",VAL "2";"Escrito por"
   5 PRINT AT VAL "10",VAL "2";"Don PRIESTLEY"
   6 PRINT AT VAL "12",ze;BRIGHT on;"[Abierto y traducido c.1985 por:"'"Marcos Cruz (programandala.net)]"
   7 PRINT AT VAL "15",VAL "2"; INK VAL "9";"Copyright  DKTRONICS  1983"
   9 RETURN
  10 REM FX ____________________________________________________
  12 FOR i=on TO VAL "10"
  14 IF INT (RND*VAL "2") THEN GO TO VAL "20"
  15 POKE VAL "23779",RND*VAL "100"+VAL "150": BORDER INT (RND*VAL "6")+on: LET y=USR VAL "23780": IF PEEK VAL "23779"<VAL "175" THEN GO TO VAL "14"
  16 BORDER ze
  20 POKE VAL "23779",RND*VAL "10"+VAL "20": FOR a=VAL "5" TO RND*VAL "10"+VAL "10": LET y=USR VAL "23780": NEXT a
  60 NEXT i
  62 RETURN
  70 POKE VAL "23779",VAL "20": FOR a=VAL "5" TO RND*VAL "10"+VAL "50": LET y=USR VAL "23780": NEXT a
  72 RETURN
  79 REM START _________________________________________________
  80 LET on=PI/PI: LET ze=PI-PI: POKE VAL "23658",ze
  81 LET co=VAL "5010": LET CLS =VAL "1300": LET s$="                                "
  82 GO SUB VAL "4": LET hst=ze
  84 LET b$="123456789": LET c$="987654321"
 110 DIM d$(VAL "49",VAL "49"): DIM g$(VAL "8",VAL "23")
 112 RESTORE VAL "6101"
 116 FOR a=on TO VAL "49": READ d$(a): NEXT a
 120 GO SUB co: GO SUB VAL "4e3"
 130 REM CYCLE _________________________________________________
 140 RESTORE VAL "6150": FOR a=on TO VAL "8": READ g$(a): NEXT a
 200 FOR a=1 TO 49: LET d$(a,1)="N": NEXT a
 202 LET bk=VAL "1e3"
 203 LET esc=ze
 204 LET mpy=VAL "60"
 206 LET st=VAL "4"
 208 LET sw=ze
 210 LET d=VAL "10"
 212 LET mth=ze
 215 LET coy=VAL "5e3"
 218 LET ad=VAL "1e3"
 220 LET pl=VAL "1400"
 222 LET pc=ze
 224 LET cad=VAL "1980"
 226 LET act=VAL "790"
 227 LET gr=VAL "23675"
 228 LET bkr=VAL "900"
 230 LET tran=VAL "1600"
 232 LET pr=VAL "1700"
 234 LET ass=VAL "1500"
 236 LET aid=VAL "2060"
 238 LET dec=VAL "2500"
 240 LET rev=VAL "1800"
 242 LET end=VAL "3e3"
 244 LET str=VAL "10"
 246 LET tune=VAL "1570"
 247 LET news=VAL "2750"
 248 LET CLS =VAL "1300"
 249 LET war=VAL "4200"
 250 LET bor=on: PAPER VAL "7": GO SUB CLS
 252 PRINT AT on,VAL "7"; PAPER VAL "5"; FLASH on;"BIENVENIDO AL CARGO"'''
 254 PRINT "El anterior DICTADOR de nuestra"
 256 PRINT "amada patria RITIMBA tuvo una"
 258 PRINT "puntuacion final de ";hst
 260 IF hst<=ze THEN PRINT ''"Como este es tu primer intento"'"no dudes en hacerlo MEJOR!"
 264 IF hst>=on THEN PRINT '"Intenta al menos acabar con ";hst+1;"!"
 266 PRINT ''"Comienza con un INFORME DEL"'"TESORO"
 268 PRINT "y con un informe de POLICIA."
 270 GO SUB co
 272 GO SUB act: GO SUB co
 274 GO SUB pr+VAL "20": GO TO VAL "600"
 400 REM PICS __________________________________________________
 411 POKE gr,VAL "40": POKE gr+on,VAL "94": GO TO VAL "420"
 412 POKE gr,VAL "168": POKE gr+on,VAL "93": GO TO VAL "420"
 413 POKE gr,VAL "232": POKE gr+on,VAL "93"
 420 PRINT AT VAL "6",VAL "2";"ABCD  ABCD  ABCD  ABCD  ABCD";AT VAL "7",VAL "2";"EFGH  EFGH  EFGH  EFGH  EFGH"
 422 RETURN
 600 REM AUDIENCIAS ____________________________________________
 601 LET c=on
 603 LET low=INT (RND*VAL "3")+VAL "2"
 604 LET str=INT (RND*VAL "3")+VAL "10"
 610 LET mth=mth+on
 612 LET bor=on: PAPER VAL "6": GO SUB CLS
 613 PRINT AT VAL "10",VAL "12"; PAPER VAL "5"; INK VAL "9";"MES  "; PAPER VAL "7"; BRIGHT on;mth
 614 PAUSE VAL "50"
 616 GO SUB pl
 618 IF bk<ze THEN GO SUB bkr
 620 IF bk>ze THEN LET bk=bk-mpy
 622 LET bor=VAL "6": PAPER VAL "6": GO SUB CLS
 624 PRINT AT ze,ze; PAPER VAL "4";s$;s$;s$;s$;s$;AT VAL "3",VAL "9"; BRIGHT on; INVERSE on;"UNA AUDIENCIA"
 630 LET r=INT (RND*VAL "24")+on
 632 FOR a=on TO VAL "22": IF d$(r,on)="N" THEN GO TO VAL "648"
 634 LET r=(r-INT (r/VAL "24")*VAL "24")+on: NEXT a
 640 FOR a=on TO VAL "24": LET d$(a,on)="N": NEXT a: GO TO VAL "630"
 648 LET d$(r,on)="*"
 650 LET gs=INT ((r-on)/VAL "8")+on: BORDER gs
 652 LET t$=g$(gs,VAL "6" TO CODE g$(gs,VAL "5")-VAL "20")
 654 LET r$=d$(r)
 655 GO SUB VAL "410"+gs
 656 PRINT AT VAL "10",on;"Peticion de ";t$
 662 PRINT AT VAL "14",on;"Esta su EXCELENCIA conforme en";AT VAL "16",ze; BRIGHT on;r$(VAL "18" TO )
 666 GO SUB co: BORDER ze: GO SUB ad
 670 REM OPCION ________________________________________________
 684 GO SUB CLS : PRINT AT on,VAL "10"; BRIGHT on; FLASH on;"  DECISION  "
 688 PRINT : PRINT TAB (VAL "32"-(VAL "12"+LEN t$))/VAL "2"; PAPER gs;"PETICION DE ";t$
 690 PRINT AT VAL "5",ze; BRIGHT on;r$(VAL "18" TO )'' BRIGHT ze; PAPER on;s$
 694 IF NOT c THEN GO TO VAL "730": LET a=ze
 696 GO SUB cad: PRINT : PRINT INK VAL "4";s$
 698 IF c=ze THEN GO TO VAL "730"
 722 GO SUB coy
 726 IF k$="s" THEN GO TO VAL "760"
 728 GO TO VAL "740"
 730 GO SUB CLS : PRINT AT VAL "10",on;"No tiene "; BRIGHT on;"SUFICIENTES FONDOS"; BRIGHT ze''" para";
 731 PRINT " PAGAR esta DECISION."
 732 PRINT AT VAL "15",VAL "4";"Su respuesta DEBE ser "; FLASH on;"NO": PAUSE VAL "250"
 734 LET c=on
 740 LET x=VAL g$(gs,on)
 744 LET y=CODE (r$(gs+VAL "3"))-VAL "77"
 746 LET x=x-y
 748 IF x<ze THEN LET x=ze
 750 LET g$(gs,on)=STR$ x
 751 GO SUB CLS
 752 GO SUB act: GO TO VAL "766"
 760 GO SUB act: GO SUB tran: GO SUB act+VAL "6"
 766 GO SUB pl: GO SUB co
 775 GO SUB ass: IF d=ze THEN GO TO end
 778 GO SUB war: IF d=ze OR esc=on THEN GO TO end
 779 GO SUB pl
 780 GO SUB pr: GO TO dec
 790 REM TESORO ________________________________________________
 792 LET bor=VAL "4": PAPER VAL "7": GO SUB CLS
 794 FOR a=ze TO VAL "20": PRINT INK VAL "4";"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$": NEXT a
 796 POKE gr,VAL "104": POKE gr+on,VAL "94"
 798 PRINT AT VAL "3",on; PAPER VAL "4";"ABCABCABCABCABCABCABCABCABCABC";AT VAL "4",on;"DEFDEFDEFDEFDEFDEFDEFDEFDEFDEF";AT VAL "5",on;"GHIGHIGHIGHIGHIGHIGHIGHIGHIGHI
"
 824 PRINT AT VAL "8",VAL "7"; BRIGHT on;"INFORME DEL TESORO"
 825 PAPER on: INK VAL "9"
 826 BRIGHT on: PRINT AT VAL "12",on;" EL TESORO";
 828 IF INT bk>=ze THEN PRINT " tiene $";
 830 IF bk<ze THEN PRINT " "; FLASH on;"DEBE"; FLASH ze;" $";
 831 PRINT ABS INT bk;",000 "
 832 PRINT AT VAL "14",on;" GASTOS del MES son $";mpy;",000 "
 838 IF sw>ze THEN PRINT AT VAL "17",VAL "2";"[En SUIZA tiene $";sw;",000]"
 842 BRIGHT ze: RETURN
 900 REM BANCARROTA ____________________________________________
 910 GO SUB CLS
 914 PRINT AT VAL "5",VAL "2";"El TESORO esta en "; FLASH on;"BANCARROTA"
 918 PRINT AT VAL "9",ze;"Su POPULARIDAD con el EJERCITO y"''
 920 PRINT "con la POLICIA SECRETA caera!"'''
 922 PRINT "EL PODER DE LA POLICIA bajara"''
 924 PRINT "y TU propio PODER tambien"
 930 IF g$(on,on)>"0" THEN LET g$(on,on)=STR$ (VAL g$(on,on)-on)
 932 IF g$(VAL "6",on)>"0" THEN LET g$(VAL "6",on)=STR$ (VAL g$(VAL "6",on)-on)
 933 IF g$(VAL "6",VAL "2")>"0" THEN LET g$(VAL "6",VAL "2")=STR$ (VAL g$(VAL "6",VAL "2")-on)
 934 IF st>ze THEN LET st=st-ze
 940 PAUSE VAL "250": GO SUB pl: GO SUB pr
 944 RETURN
1000 REM AVISO? _______________________________________________
1002 LET bor=on: PAPER VAL "4": GO SUB CLS
1004 FOR a=ze TO VAL "19": PRINT AT a,VAL "11"; FLASH on; PAPER VAL "5";"? AVISO ?": NEXT a
1010 GO SUB coy: PAPER VAL "6": GO SUB CLS
1014 IF k$<>"s" THEN RETURN
1022 PRINT AT on,ze; INVERSE on;d$(r,VAL "18" TO ): PRINT
1026 PRINT AT VAL "3",ze;"Su POPULARIDAD con...": PRINT
1027 FOR a=on TO VAL "8"
1028 LET x=CODE d$(r,a+VAL "3")-VAL "77": IF x=ze THEN GO TO VAL "1034"
1029 PRINT TAB VAL "2";g$(a,VAL "6" TO );TAB VAL "21";
1031 IF x>ze THEN PRINT "+";
1032 PRINT x;
1033 IF gs=a AND r<VAL "25" THEN PRINT INVERSE on; INK gs;"< "
1034 NEXT a
1036 PRINT '''"El PODER de...": PRINT
1038 FOR a=on TO VAL "6"
1039 LET x=CODE d$(r,a+VAL "11")-VAL "77": IF x=ze THEN GO TO VAL "1048"
1041 PRINT TAB VAL "2";g$(a,VAL "6" TO );TAB VAL "21";
1042 IF x>ze THEN PRINT "+";
1044 PRINT x
1048 NEXT a
1050 GO SUB co: GO SUB CLS : RETURN
1300 REM CLS __________________________________________________
1310 BORDER bor: CLS : PRINT #on; PAPER bor;s$;s$: BEEP VAL ".1",VAL "40": PRINT AT ze,ze;: RETURN
1400 REM PLOT __________________________________________________
1410 IF mth<=VAL "2" THEN RETURN
1420 FOR a=on TO VAL "3": LET g$(a,VAL "3" TO VAL "4")="::": NEXT a
1426 IF mth<pc THEN RETURN
1430 FOR a=on TO VAL "3"
1432 IF VAL g$(a,on)>low THEN GO TO VAL "1450"
1436 FOR p=on TO VAL "6"
1438 IF a=p OR VAL g$(p,on)>low THEN GO TO VAL "1441"
1440 IF VAL g$(p,VAL "2")+VAL g$(a,VAL "2")>=str THEN GO TO VAL "1446"
1441 NEXT p
1442 LET g$(a,VAL "3")="A": GO TO VAL "1450"
1446 LET g$(a,VAL "3")="R"
1448 LET g$(a,VAL "4")=STR$ p
1450 NEXT a
1452 RETURN
1500 REM ASESINATO _____________________________________________
1510 LET r=INT (RND*VAL "3")+on
1514 IF g$(r,VAL "3")<>"A" THEN RETURN
1516 LET bor=ze: PAPER ze: GO SUB CLS : PRINT AT VAL "10",VAL "7";"INTENTO DE ASESINATO"
1518 PRINT AT VAL "20",ZE;"por uno de ";g$(r,VAL "6" TO )
1520 FOR a=VAL "60" TO on STEP -VAL ".5": POKE VAL "23886",a: LET i=USR VAL "23884": NEXT a: POKE VAL "23886",VAL "70"
1522 GO SUB CLS : PAUSE VAL "30": GO SUB VAL "70": PAUSE VAL "50"
1526 IF g$(on,VAL "3")="A" AND g$(VAL "2",VAL "3")="A" AND g$(VAL "3",VAL "3")="A" THEN GO TO VAL "1546"
1540 IF VAL g$(VAL "6",on)>low OR VAL g$(VAL "6",VAL "2")>low OR INT (RND*VAL "2") THEN GO TO VAL "1554"
1546 LET bor=ze: PAPER ze: GO SUB CLS : PRINT AT VAL "12",VAL "6";"Esta usted MUERTO !"
1548 BEEP VAL "3",VAL "-40"
1550 LET d=ze: RETURN
1554 LET bor=ze: PAPER VAL "7": GO SUB CLS : PRINT AT VAL "12",VAL "8"; FLASH on; BRIGHT on;" Intento FALLIDO "
1556 POKE VAL "23886",VAL "50": LET a=USR VAL "23842"
1560 RETURN
1570 REM TONO __________________________________________________
1572 FOR a=on TO LEN m$ STEP VAL "2"
1574 IF CODE m$(a+on)=CODE " " THEN PAUSE CODE m$(a)/VAL "4": GO TO VAL "1578"
1576 BEEP (CODE m$(a)-VAL "48")/VAL "6",CODE m$(a+on)-VAL "105"
1578 NEXT a
1580 RETURN
1600 REM TRANSFERENCIA _________________________________________
1610 LET d$(r,on)="*"
1620 LET t$=d$(r,VAL "4" TO VAL "11")
1621 FOR a=on TO VAL "8"
1622 IF t$(a)="M" THEN GO TO VAL "1632"
1624 LET x=VAL g$(a,on)+(CODE t$(a)-VAL "77")
1626 IF x>VAL "9" THEN LET x=VAL "9"
1628 IF x<ze THEN LET x=ze
1630 LET g$(a,on)=STR$ x
1632 NEXT a
1638 LET t$=d$(r,VAL "12" TO VAL "17")
1640 FOR a=on TO VAL "6"
1642 IF t$(a)="M" THEN GO TO VAL "1652"
1644 LET x=VAL g$(a,VAL "2")+(CODE t$(a)-VAL "77")
1646 IF x>VAL "9" THEN LET x=VAL "9"
1648 IF x<ze THEN LET x=ze
1650 LET g$(a,VAL "2")=STR$ x
1652 NEXT a
1660 LET bk=bk+cst
1662 LET mpy=mpy-mcst
1664 IF mpy<ze THEN LET mpy=ze
1666 RETURN
1700 REM INFORME DE POLICIA ____________________________________
1702 LET bor=ze: PAPER ze: INK VAL "9": GO SUB CLS
1703 POKE gr,VAL "104": POKE gr+on,VAL "94"
1705 PRINT AT ze,on; INK VAL "6"; INVERSE on;"JKLJKLJKLJKLJKLJKLJKLJKLJKLJKL";AT on,on;"MNOMNOMNOMNOMNOMNOMNOMNOMNOMNO"
1709 PRINT AT VAL "6",on; BRIGHT on;"INFORME DE LA POLICIA SECRETA";
1710 IF bk<=ze OR VAL g$(VAL "6",on)<=low OR VAL g$(VAL "6",VAL "2")<=low THEN GO TO VAL "1764"
1713 PRINT FLASH on;"?": PRINT AT VAL "12",VAL "8";"( cuesta $1000 )"
1714 GO SUB coy
1715 IF k$<>"s" THEN RETURN
1718 LET bk=bk-on
1720 LET bor=ze: PAPER ze: GO SUB CLS
1721 PRINT "MES ";mth;AT VAL "3",ze; INK on; FLASH on;s$
1722 PRINT AT VAL "3",VAL "8"; INVERSE on; BRIGHT on;"INFORME POLICIAL"
1723 PRINT AT VAL "5",VAL "14"; INVERSE on;"JKL";AT VAL "6",VAL "14";"MNO"
1724 PRINT AT VAL "6",on;"POPULARIDAD";AT VAL "6",VAL "21";"PODER"
1725 RESTORE VAL "6200": FOR a=on TO VAL "8": READ k$
1726 PRINT AT VAL "7"+a,VAL "11"; PAPER VAL "6"; FLASH ze+(g$(a,VAL "3")="R");k$
1728 PRINT AT VAL "7"+a,VAL "10"; PAPER VAL "7"; BRIGHT on;a
1729 IF a<=VAL "3" AND g$(a,VAL "3")="R" THEN PRINT AT VAL "7"+a,VAL "21"; PAPER VAL "7";VAL g$(a,VAL "4")
1732 LET x=VAL g$(a,on): PRINT AT VAL "7"+a,VAL "10"-x; INK VAL "7"; PAPER VAL "4";c$(VAL "10"-x TO )
1734 IF a<=VAL "3" AND g$(a,VAL "3")="A" THEN PRINT AT a+VAL "7",VAL "21"; PAPER VAL "7"; FLASH on;"A"
1736 NEXT a
1738 FOR a=on TO VAL "6": PRINT AT VAL "7"+a,VAL "22"; PAPER VAL "2"; INK VAL "7";b$( TO VAL g$(a,VAL "2")): NEXT a
1742 PRINT AT VAL "17",on;"Tu PODER es ";st
1744 PRINT AT VAL "19",on;"FUERZA para una REVOLUCION :";str
1750 GO SUB co: LET bor=VAL "4": PAPER VAL "4": GO SUB CLS : RETURN
1764 PRINT AT VAL "10",VAL "9";"NO DISPONIBLE"''
1766 IF VAL g$(VAL "6",on)<=low THEN PRINT "Tu POPULARIDAD con nosotros es ";g$(VAL "6",on)''
1768 IF VAL g$(VAL "6",VAL "2")<=low THEN PRINT TAB VAL "3";"El PODER de la POLICIA es ";g$(VAL "6",VAL "2")''
1769 IF bk<=ze THEN PRINT TAB VAL "3";"No puedes OBTENER un INFORME"
1770 POKE VAL "23886",VAL "30": FOR a=on TO VAL "80": LET i=USR VAL "23884": NEXT a
1772 POKE VAL "23886",VAL "50": RETURN
1800 REM REVOLUCION ____________________________________________
1801 GO SUB news
1802 FOR a=on TO VAL "3": LET r=INT (RND*VAL "3")+on
1804 IF g$(r,VAL "3")="R" THEN GO TO VAL "1810"
1806 NEXT a
1807 GO TO VAL "600"
1810 POKE VAL "23886",VAL "50": INK ze: LET bor=VAL "2": FLASH on: PAPER VAL "2": GO SUB CLS : INK VAL "9": PRINT AT VAL "10",VAL "11"; FLASH ze; BRIGHT ze;"REVOLUCION"
1812 FOR a=on TO VAL "5": BEEP VAL ".5",VAL "20": BEEP VAL ".5",VAL "10": NEXT a
1814 FLASH ze: LET bor=VAL "6": PAPER VAL "6": GO SUB CLS
1816 PRINT AT VAL "12",VAL "8";"INTENTO DE ESCAPE?": GO SUB coy
1830 GO SUB CLS : IF k$<>"s" THEN GO TO VAL "1850"
1832 IF d$(VAL "36",on)="*" THEN GO TO VAL "1842"
1833 PRINT AT VAL "10",VAL "2";"Tienes que atravesar el";AT VAL "12",VAL "6";"MONTE hacia LEFTOTO"
1834 PAUSE VAL "200": GO SUB CLS
1836 IF INT (RND*((VAL g$(VAL "4",VAL "2")/VAL "3")+VAL ".4")) THEN GO TO VAL "1839"
1837 PRINT AT VAL "12",ze; FLASH on; BRIGHT on;"  Las GUERILLAS no te cojieron  ": LET i=USR VAL "23842": GO TO end
1839 LET bor=ze: PAPER ze: GO SUB CLS
1840 LET d=ze: PAUSE VAL "50": GO SUB VAL "70": PRINT AT VAL "12",ze;"Las GUERILLAS estan "; FLASH on; BRIGHT on;"CELEBRANDOLO": GO SUB VAL "70": GO TO end
1842 IF INT (RND*VAL "3")=ze THEN GO TO VAL "1845"
1843 PRINT AT VAL "12",VAL "4"; FLASH on; BRIGHT on;"ESCAPAS en HELICOPTERO!": LET i=USR VAL "23842": GO TO end
1845 PRINT AT VAL "10",VAL "2";"EL HELICOPTERO NO FUNCIONA!"
1846 PAUSE VAL "150"
1847 GO SUB CLS : GO TO VAL "1833"
1850 LET x=VAL g$(r,VAL "2")+VAL g$(VAL g$(r,VAL "4"),VAL "2")
1852 PRINT AT VAL "5",ze;g$(r,VAL "6" TO CODE g$(r,VAL "5")-VAL "20");" se ha unido a "
1856 PRINT g$(VAL g$(r,VAL "4"),VAL "6" TO )''
1857 PRINT "Su FUERZA unidos es ";x
1858 PRINT ''"A QUIEN vas a PEDIR AYUDA?"
1860 LET z=on: FOR a=on TO VAL "6"
1862 IF VAL g$(a,on)<=low THEN GO TO VAL "1868"
1864 PRINT TAB VAL "6";a;" .";g$(a,VAL "6" TO CODE g$(a,VAL "5")-VAL "20");" ?"
1866 LET z=ze
1868 NEXT a
1869 IF z THEN GO TO VAL "1890"
1870 GO SUB co: IF k$<"1" OR k$>"6" THEN GO TO VAL "1870"
1878 IF VAL g$(VAL k$,on)<=low THEN GO TO VAL "1884"
1880 LET h=VAL k$: GO TO VAL "1893"
1884 GO SUB CLS : PRINT AT VAL "12",VAL "5";"Debes estar BROMEANDO!": GO TO VAL "1846"
1890 GO SUB CLS : PRINT AT VAL "8",VAL "5";"ESTAS SOLO!"
1892 GO SUB co
1893 GO SUB CLS
1894 PRINT AT VAL "8",ze;"Tu FUERZA es ";st
1895 PRINT ''"La FUERZA de ";g$(h,VAL "6" TO CODE g$(h,VAL "5")-VAL "20");" es ";g$(h,VAL "2")
1896 PRINT ''"La de los REVOLUCIONARIOS es ";x
1898 PAUSE VAL "250"
1900 LET bor=VAL "7": PAPER VAL "7": GO SUB CLS : PRINT AT VAL "12",VAL "3"; FLASH on; BRIGHT on;"La REVOLUCION ha COMENZADO"
1904 GO SUB 10
1914 IF x<=st+VAL g$(h,VAL "2")+INT (RND*VAL "3")-on THEN GO TO VAL "1950"
1922 LET bor=ze: PAPER ze: GO SUB CLS : PRINT AT VAL "10",VAL "7";"Has sido DERROCADO"
1923 PRINT AT VAL "12",VAL "10";"y "; FLASH on;"LIQUIDADO"
1924 GO SUB VAL "70"
1926 LET d=ze: PAUSE VAL "50": GO TO end
1950 LET bor=ze: GO SUB CLS : PRINT AT VAL "10",VAL "2"; BRIGHT on; FLASH on;"La REVUELTA ha sido SOFOCADA"
1952 LET a=USR VAL "23842"
1954 POKE 23692,255: PRINT AT ze,ze;: FOR a=on TO VAL "22": PRINT PAPER INT (RND*VAL "5")+on;s$: NEXT a
1955 PRINT AT VAL "10",ze; BRIGHT on;"CASTIGAS a los REVOLUCIONARIOS? "
1956 GO SUB coy: IF k$<>"s" THEN GO TO VAL "1968"
1960 FOR n=on TO VAL "3": GO SUB VAL "70": LET y=SQR on: NEXT n
1964 LET g$(r,on TO VAL "2")="00"
1966 LET g$(VAL g$(r,VAL "4"),on TO VAL "2")="00"
1968 LET g$(h,VAL "2")="9"
1969 LET pc=mth+VAL "2": GO SUB pl: GO SUB pr: GO TO VAL "600"
1980 REM CASH ADVICE ___________________________________________
1990 LET cst=VAL "10"*(CODE d$(r,VAL "2")-VAL "77")
1992 LET mcst=CODE d$(r,VAL "3")-VAL "77"
1994 IF NOT cst AND NOT mcst THEN GO TO VAL "2030"
1996 PRINT AT VAL "9",on;"Esta decision ": PRINT
1998 IF NOT cst THEN GO TO VAL "2014"
2002 IF cst>ze THEN PRINT " DARIA al";
2004 IF cst<ze THEN PRINT " COSTARIA al";
2008 PRINT "  TESORO $";ABS cst;",000": PRINT
2010 IF NOT mcst THEN GO TO VAL "2020"
2012 PRINT " y": PRINT
2014 IF mcst<ze THEN PRINT " SUBIRIA";
2016 IF mcst>ze THEN PRINT " BAJARIA";
2018 PRINT " los COSTOS MENSUALES en $";ABS mcst;",000"
2020 IF bk+cst>ze THEN LET c=on: RETURN
2021 IF (cst<ze OR mcst<ze) AND (bk+cst<ze OR bk+mcst<ze) THEN GO TO VAL "2034"
2022 LET c=on: RETURN
2030 LET c=on: PRINT AT VAL "10",VAL "7";"NO CUESTA DINERO": RETURN
2034 PAUSE VAL "250": LET c=ze: GO SUB CLS
2037 PRINT AT VAL "5",ze;d$(r,VAL "18" TO )
2039 PRINT AT VAL "8",VAL "2";"El DINERO necesario"
2040 PRINT : PRINT TAB VAL "4";"NO esta en el TESORO"'''
2042 IF d$(VAL "38",on)="N" THEN PRINT "Quizas los RUSOS pueden ayudar?": PRINT
2044 IF d$(VAL "39",on)="N" THEN PRINT "Los AMERICANOS son un pueblo"'"generoso": PRINT
2046 PAUSE VAL "350": RETURN
2060 REM AYUDAS ________________________________________________
2062 LET bor=VAL "2": PAPER VAL "6": GO SUB CLS : PRINT : PRINT PAPER VAL "2";"SOLICITUD de PRESTAMO EXTRANJERO"
2064 PRINT AT VAL "12",VAL "13"; FLASH on;"ESPERA": PAUSE VAL "50"
2066 LET x=VAL k$-on
2068 IF NOT x THEN LET m$="2g2d3i4d2 2g2d3i4d"
2070 IF x THEN LET m$="2m1j3f3j3m4r1 2v1t3r3j3l4m"
2072 GO SUB tune
2088 IF mth<INT (RND*VAL "5")+VAL "3" THEN GO TO VAL "2138"
2112 IF d$(VAL "38"+x,on)="*" THEN GO TO VAL "2128"
2113 IF VAL g$(VAL "7"+x,on)<=low THEN GO TO VAL "2132"
2114 IF NOT x THEN PRINT AT VAL "12",ze;"Los RUSOS";
2115 IF x THEN PRINT AT VAL "12",ze;"Los AMERICANOS";
2116 PRINT " te concederan"
2117 LET y=VAL g$(VAL "7"+x,on)*VAL "30"+INT (RND*VAL "200")
2118 PRINT AT VAL "14",VAL "7";y;",000 DOLARES"
2120 LET bk=bk+y
2124 LET d$(VAL "38"+x,on)="*": GO TO VAL "2140"
2128 PRINT AT VAL "12",VAL "2";"Lo sentimos, NO HAY PRESTAMO": GO TO VAL "2140"
2132 IF NOT x THEN PRINT AT VAL "12",VAL "12"; PAPER VAL "2";"NO!   "
2134 IF x THEN PRINT AT VAL "12",VAL "12"; PAPER on;"""No!"""
2136 GO SUB co: RETURN
2138 PRINT AT VAL "12",VAL "2";"Es demasiado pronto para dar"'"ayudas economicas"
2140 GO SUB co: RETURN
2500 REM DECISION ______________________________________________
2506 LET bor=on: PAPER VAL "6": GO SUB CLS
2510 FOR a=ze TO VAL "20": PRINT INVERSE on; INK VAL "2";"********************************": NEXT a
2522 PRINT AT VAL "3",VAL "5"; BRIGHT on; FLASH on;"DECISION PRESIDENCIAL"
2530 INK VAL "9": PRINT AT VAL "6",on;"Para..."
2534 PRINT AT VAL "8",VAL "4";"1. AYUDAR a UN GRUPO      "
2536 PRINT AT VAL "10",VAL "4";"2. AYUDAR a TODOS         "
2538 PRINT AT VAL "12",VAL "4";"3. TUS NEGOCIOS           "
2540 PRINT AT VAL "14",VAL "4";"4. SUBIR el TESORO        "
2542 PRINT AT VAL "16",VAL "4";"5. DAR PODER a UN GRUPO   "
2550 GO SUB co: GO SUB CLS
2560 IF k$<"1" OR k$>"5" THEN GO TO VAL "2746"
2562 IF k$="1" THEN LET x$="-2"
2564 IF k$="2" THEN LET x$="35"
2566 IF k$="3" THEN LET x$="69"
2568 IF k$="4" THEN LET x$=":<"
2570 IF k$="5" THEN LET x$="=?"
2572 PRINT AT (VAL "20"-(((CODE x$(VAL "2")-VAL "20")-(CODE x$(on)-VAL "20"))*VAL "3"))*VAL ".5",ze
2574 LET y=on: LET z=on
2578 FOR a=CODE x$(on)-VAL "20" TO CODE x$(VAL "2")-VAL "20"
2580 IF d$(a,on)="*" THEN GO TO VAL "2592"
2582 LET z=ze
2588 PRINT y;".": PRINT d$(a,VAL "18" TO ): PRINT
2593 LET y=y+on
2594 NEXT a
2596 IF z THEN GO TO VAL "2600"
2597 GO SUB co: GO TO VAL "2620"
2600 PRINT AT VAL "12",VAL "3"; BRIGHT on; FLASH on;"Esta SECCION esta AGOTADA"
2602 PAUSE VAL "150": GO TO dec
2628 IF k$<"0" OR k$>"6" THEN GO TO dec
2630 IF VAL k$<on OR VAL k$>(CODE x$(VAL "2")-VAL "20")+on-(CODE x$-VAL "20") THEN GO TO dec
2634 LET r=((CODE x$)-VAL "20")+VAL k$-on
2635 IF d$(r,on)="*" THEN GO TO dec
2636 IF r=VAL "38" OR r=VAL "39" THEN GO TO VAL "2670"
2642 IF r=VAL "37" THEN GO TO VAL "2680"
2644 GO SUB ad
2646 PRINT AT VAL "4",ze; BRIGHT on;d$(r,VAL "18" TO )
2648 GO SUB cad
2650 IF NOT c THEN PAUSE VAL "200": GO TO dec
2651 PRINT AT VAL "4",ze; BRIGHT on;d$(r,VAL "18" TO )
2652 GO SUB coy
2653 IF k$<>"s" THEN GO TO dec
2654 IF r=VAL "35" THEN GO TO VAL "2674"
2656 GO SUB act: GO SUB tran
2660 GO TO VAL "2740"
2670 GO SUB aid: GO SUB act: GO TO VAL "2741"
2674 LET st=st+VAL "2": GO SUB act
2676 GO SUB tran+VAL "20": GO TO VAL "2740"
2680 GO SUB CLS : PRINT AT VAL "3",ze; INVERSE on;"TRANSFERENCIA a la CUENTA SUIZA"'''
2685 LET x=INT (bk/VAL "2"): IF x<on THEN GO TO VAL "2720"
2687 PRINT "El TESORO tenia $";INT bk;",000"
2690 LET sw=sw+x: LET bk=bk-x
2692 PAUSE VAL "100"
2694 PRINT : PRINT : PRINT "$";x;",000 han sido TRANSFERIDOS": GO TO VAL "2736"
2720 PRINT AT VAL "12",VAL "7";"NINGUNA TRANSFERENCIA hecha": PAUSE VAL "100"
2740 GO SUB VAL "825"
2741 GO SUB pl: GO SUB co
2746 GO SUB pr: GO TO rev
2750 REM NOTICIAS ______________________________________________
2760 IF INT (RND*VAL "3") THEN RETURN
2764 LET r=INT (RND*VAL "6")+VAL "44"
2768 FOR a=on TO VAL "6"
2770 IF d$(r,on)="N" THEN GO TO VAL "2780"
2772 LET r=r+on: IF r=VAL "50" THEN LET r=VAL "44"
2774 NEXT a
2776 RETURN
2780 LET bor=on: PAPER VAL "7": INK ze: FLASH on: GO SUB CLS : FLASH ze: PRINT AT VAL "10",VAL "11"; BRIGHT on;"NOTICIAS"
2782 FOR a=on TO VAL "10": BEEP VAL ".6",VAL "30": NEXT a
2784 GO SUB CLS : PRINT AT VAL "10",VAL "11"; FLASH on;"NOTICIAS"
2786 PRINT AT VAL "14",ze;d$(r,VAL "18" TO )
2788 INK VAL "9": PAUSE VAL "100"
2796 GO SUB tran: GO SUB pl
2800 GO SUB pr
2806 RETURN
3000 REM FIN ___________________________________________________
3004 IF d THEN PAUSE VAL "100": GO TO VAL "3026"
3010 PAUSE VAL "50": LET m$="4d3d1d3d3g1f2f1d2d1d5d"
3012 GO SUB tune
3026 LET x=ze: FOR a=on TO VAL "8": LET x=x+VAL g$(a,on): NEXT a
3030 LET bor=VAL "5": PAPER VAL "6": GO SUB CLS
3035 PRINT AT VAL "3",on;"Tu PUNTUACION como PRESIDENTE"
3050 PRINT : PRINT " POPULARIDAD final - ";TAB VAL "28";x
3052 PRINT : PRINT " MESES en el PODER (";mth;"x3) - ";TAB VAL "28";mth*VAL "3": LET x=x+mth*VAL "3"
3058 IF NOT d THEN GO TO VAL "3072"
3062 PRINT : PRINT " Por estar VIVO - ";TAB VAL "28";d
3068 PRINT : PRINT " Por el AHORRO"'"     ($";sw;",000 /10,000) -";TAB VAL "28";INT (sw/VAL "10")
3070 LET x=x+d+INT (sw/VAL "10")
3074 PRINT : PRINT : PRINT " Tu TOTAL es ";TAB VAL "28"; BRIGHT on;x
3082 IF x>hst THEN LET hst=x
3084 PRINT : PRINT "[ La mayor puntuacion es ";hst;" ]"
3086 GO SUB co: GO SUB CLS
3090 LET bor=ze: PAPER ze: GO SUB CLS : PRINT AT on,VAL "14"; FLASH on;"FINAL"
3092 GO SUB pr+VAL "22": GO SUB VAL "4": GO SUB co: GO SUB CLS : GO TO VAL "140"
4000 REM TITULO ________________________________________________
4002 LET bor=ze: PAPER VAL "5": INK VAL "9": GO SUB CLS
4010 PRINT AT ze,ze;: FLASH on
4020 FOR a=on TO VAL "42"
4030 PRINT INVERSE on;"DICTADOR"; INVERSE ze;"DICTADOR";
4045 BEEP VAL ".01",VAL "40"-a+RND*VAL "10"
4050 NEXT a
4060 FOR a=on TO VAL "50": BEEP VAL ".03",a: NEXT a
4070 FLASH ze: FOR a=VAL "8" TO VAL "19"
4080 PRINT AT a,VAL "7"; PAPER VAL "4"; INK VAL "2";""
4090 NEXT a
4100 FOR a=VAL "8" TO VAL "19": PRINT AT a,VAL "11"; PAPER on;"          ": NEXT a
4110 PRINT AT VAL "3",ze; PAPER VAL "7";"PULSA UNA TECLA Y SERAS DICTADOR";AT VAL "5",VAL "12";" DE LA "
4120 PAPER VAL "4": PRINT AT VAL "10",VAL "10";"REPUBLICA DE";AT VAL "16",VAL "12";"RITIMBAN"
4130 PRINT AT VAL "12",VAL "13"; PAPER on; INK VAL "6";"******";AT VAL "13",VAL "13";"  **  ";AT VAL "14",VAL "13";"******"
4140 LET t$="KPKKMKIHK£KMRPOMOP"
4150 FOR a=on TO LEN t$
4155 IF INKEY$<>"" THEN RETURN
4160 LET x=CODE t$(a)-VAL "80"
4170 IF x=VAL "16" THEN PAUSE VAL "20": GO TO VAL "4190"
4180 BEEP VAL ".5",x
4190 NEXT a
4192 PAUSE VAL "30": GO TO VAL "4150"
4200 REM GUERRA ________________________________________________
4208 IF VAL g$(VAL "5",on)>low THEN RETURN
4210 IF VAL g$(VAL "5",VAL "2")<low THEN RETURN
4212 IF NOT INT (RND*VAL "3") THEN GO TO VAL "4250"
4220 BORDER VAL "5": PAPER ze: INK VAL "7": FLASH on: GO SUB CLS : FLASH ze: INK VAL "9"
4224 PRINT AT VAL "6",on;"TRATADO de GUERRA con LEFTOTO"
4226 PRINT AT VAL "10",VAL "3";"Tu POPULARIDAD en RITIMBA";AT VAL "12",VAL "11"; BRIGHT on;"AUMENTARA"
4230 POKE VAL "23886",VAL "255": FOR a=on TO VAL "5": LET i=USR VAL "23884": NEXT a
4234 FOR a=on TO VAL "3": GO SUB VAL "4242": NEXT a
4236 LET a=VAL "6": GO SUB VAL "4242"
4240 RETURN
4242 IF g$(a,on)<"9" THEN LET g$(a,on)=STR$ (VAL g$(a,on)+on)
4244 RETURN
4250 REM ACTUAL ________________________________________________
4270 PAPER VAL "2": BORDER ze: GO SUB CLS : PRINT AT VAL "8",VAL "7"; FLASH on; BRIGHT on;"LEFTOTO NOS INVADE"
4276 LET rs=ze: FOR a=on TO VAL "3": IF VAL g$(a,on)>low THEN LET rs=rs+VAL g$(a,VAL "2")
4278 NEXT a
4280 IF VAL g$(VAL "6",on)>low THEN LET rs=rs+VAL g$(VAL "6",VAL "2")
4282 LET rs=rs+st
4286 PRINT AT VAL "12",on;"La Fuerza de Ritimban es ";rs
4290 LET ls=ze: FOR a=on TO VAL "6": IF VAL g$(a,on)<=low THEN LET ls=ls+VAL g$(a,VAL "2")
4292 NEXT a
4294 PRINT AT VAL "14",on;"La Fuerza de Leftoto es ";ls
4296 PRINT AT VAL "18",VAL "3"; BRIGHT on; INVERSE on;"UNA CORTA Y DECISIVA GUERRA"
4298 GO SUB VAL "10"
4300 IF ls+INT (RND*VAL "3"-on)>=rs THEN GO TO VAL "4320"
4310 POKE VAL "23886",VAL "50": BORDER ze: GO SUB CLS : PRINT AT VAL "12",VAL "7"; BRIGHT on; FLASH on;" LEFTOTO DERROTADO ": LET i=USR VAL "23842"
4312 LET g$(VAL "5",VAL "2")="0": RETURN
4320 LET bor=ze: PAPER ze: GO SUB CLS
4321 PRINT AT VAL "7",VAL "7"; BRIGHT on; FLASH on;"VICTORIA DE LEFTOTO"
4323 POKE VAL "23886",VAL "255": FOR a=on TO VAL "5": LET i=USR VAL "23884": NEXT a
4324 IF d$(VAL "36",on)="*" AND INT (RND*VAL "3") THEN GO TO VAL "4340"
4326 LET d=ze: IF d$(VAL "36",on)="*" THEN PRINT AT VAL "10",ze;"El MOTOR del Helicoptero se PARA": PAUSE VAL "80"
4327 PRINT AT VAL "12",VAL "4";"Eres acusado de ser un"''"  ENEMIGO del PUEBLO y..."
4328 PAUSE VAL "30": GO SUB VAL "70": PRINT AT VAL "18",VAL "7";"Sumarisimamente EJECUTADO"
4330 RETURN
4340 GO SUB CLS : PRINT AT VAL "12",VAL "3"; BRIGHT on; FLASH on;"ESCAPAS en HELICOPTERO!": POKE VAL "23886",VAL "70": LET i=USR VAL "23842": LET esc=on: RETURN
5000 REM TECLA _________________________________________________
5006 PRINT AT VAL "20",VAL "11"; PAPER VAL "7"; FLASH on; BRIGHT on;" ""S""= SI "
5010 IF INKEY$<>"" THEN GO TO VAL "5010"
5012 : PRINT #on;AT ze,ze; INK VAL "9"; PAPER VAL "2";s$;"             TECLA              ";s$
5014 FOR a=on TO VAL "15"
5015 IF INKEY$<>"" THEN GO TO VAL "5030"
5016 NEXT a
5017 BEEP VAL ".01",VAL "30"
5018 PRINT #on;AT ze,ze; INK VAL "9"; PAPER on;s$;"             TECLA              ";s$
5019 FOR a=on TO VAL "15"
5020 IF INKEY$<>"" THEN GO TO VAL "5030"
5024 NEXT a
5025 BEEP VAL ".01",VAL "20"
5026 GO TO VAL "5012"
5030 LET k$=INKEY$: IF k$="" THEN GO TO VAL "5018"
5034 IF k$="s" THEN BEEP VAL ".25",VAL "40"
5036 IF k$<>"s" THEN BEEP VAL ".25",VAL "10"
5037 IF k$="#" THEN LET bor=VAL "7": PAPER VAL "7": GO SUB CLS : GO TO 7010
5038 IF k$="STOP" THEN GO TO VAL "80"
5100 RETURN
6000 REM DATA __________________________________________________
6101 DATA "NMHQJLMMMMMPKLMMMPONER MILI OBLIGATORIA          "
6102 DATA "NMMPMJMMMMMNMLMMMREQUISAR TIERRAS PARA TIRO      "
6103 DATA "NCMPLNMLMLMNMNIMMATACAR LAS BASES DE LA GUERILLA "
6104 DATA "NEMPLMMIMLMNMNKMMATACAR BASE GUERRILLA EN LEFTOTO"
6105 DATA "NMMQONMMIMMNMNMMJECHAR AL JEFE DE LA POL.SEC.    "
6106 DATA "NMMPMMMLMIOMMMMMMECHAR A LOS MILITARES RUSOS     "
6107 DATA "NMDQMLMMMMMOLLLMMAUMENTAR LA PAGA DE LAS TROPAS  "
6108 DATA "NAMQLLMLLMMPLLKLMCOMPRAR MAS ARMAS Y MUNICIOMES  "
6109 DATA "NMMLONMMMMMLMMLMMPARAR LOS ABUSOS DEL EJERCITO   "
6110 DATA "NMMMQIMNMMMMOLMMMAUMENTAR EL SALARIO MINIMO      "
6111 DATA "NMPNQOMMIMMNNNNMJACABAR CON LA POLICIA SECRETA   "
6112 DATA "NMMMPKMKMMMMOKMMMPARAR LA INMIGRACION DE LEFTOTO "
6113 DATA "NCELQKMOLNMMNLLMMPONER ESCUELA GRATIS PARA TODOS "
6114 DATA "NMMMQJMNLNMMPJMMLLEGALIZAR LOS SINDICATOS        "
6115 DATA "NMMLQKMNLMMMOLLMMLIBERAR A SU LIDER ENCARCELADO  "
6116 DATA "NMSMPLMMMMMMMMLMMINICIAR UNA LOTERIA PUBLICA     "
6117 DATA "NMMKMPMMMMMLMMMMMPARAR USO MILITAR DE SUS TIERRAS"
6118 DATA "NMMMIQMLMLMMKONMMBAJAR EL SALARIO MINIMO         "
6119 DATA "NWHMMPMNMOIMMNMMMNACIONALIZAR NEGOCIOS AMERICANOS"
6120 DATA "NMRMMPMJMLMMNOMLMTASAR IMPORTACIONES DE LEFTOTO  "
6121 DATA "NMQNNPMMIMMNMNNMKCORTAR LOS GASTOS DE LA POL.SEC."
6122 DATA "NMHMMQMMMMMMMOMMMBAJAR IMPUESTO SOBRE LA TIERRA  "
6123 DATA "NMMKLPMMMMMLLNNMMCEDER TROPA PARA LABRAR TIERRA  "
6124 DATA "NACNNPMJMONMMPMKMCONSTRUIR UN SISTEMA DE RIEGO   "
6125 DATA "NMMQLLMMLMMNMMLMLHACER MINISTRO AL JEFE-EJERCITO "
6126 DATA "NLILQNMOMNMMMMLMMHACER CLINICAS PARA OBREROS     "
6127 DATA "NMMLKQMMLLMLLOMMLDAR PODERES A LOS TERRATENIENTES"
6128 DATA "NRMKMMMQMKNLMMLPMVENDER ARMAS U.S.A. A LEFTOTO   "
6129 DATA "NYMMMLMLMKPMMMMMMVENDER DERECHOS A FIRMAS U.S.A. "
6130 DATA "NMWKMMMMMPJMMMMNMALQUILAR A RUSIA UNA BASE NAVAL "
6131 DATA "NMENPPMMMMMLMMLMMBAJAR LOS IMPUESTOS             "
6132 DATA "NEMPPPMMMMMMMMLMMHACERTE CAMPA#A DE POPULARIDAD  "
6133 DATA "NMUPPPMMDMMONNNMDQUITAR PODERES A LA POL.SEC.    "
6134 DATA "NMGJJJMMUMMLLLLMUAUMENTAR PODERES A LA POL.SEC.  "
6135 DATA "NIMKLLMMLMMKMMMMLAUMENTAR TUS GUARDAESPALDAS    *"
6136 DATA "NAMIIJMMKMMMMMMMMCOMPRAR UN ESCAPE EN HELICOPTERO"
6137 DATA "NMMMMMMMMMMMMMMMMTRANSFERENCIA A UN BANCO SUIZO *"
6138 DATA "NMMMMMMMMMMMMMMMMPEDIR A LOS RUSOS UNA AYUDA     "
6139 DATA "NMMMMMMMMMMMMMMMMPEDIR A LOS AMERICANOS UNA AYUDA"
6140 DATA "NZMNNPMGMKMMMMMMMNACIONALIZAR NEGOCIOS DE LEFTOTO"
6141 DATA "NHMPMMMJMLMRMMKKLCOMPRAR ARMAS PARA EL EJERCITO  "
6142 DATA "NMMMPLMMLMMMRLPMLPERMITIR ASOCIACIONES CAMPESINAS"
6143 DATA "NMMLLPMMLMMLLRLMLDAR A TERRATEN. EJERCITO PRIVADO"
6144 DATA "NMMMMMMMIMMMMMQMIARCHIVOS DE LA POL.SEC. ROBADOS!"
6145 DATA "NMMMMMMMMMMLMMVMMCUBA ENTRENA A LAS GUERILLAS    "
6146 DATA "NMMMMMMMMMMIMMOMNBARRACON DEL EJERCITO HA VOLADO "
6147 DATA "NMMMMMMMMMMMMJMKMPRECIO DE PLATANOS CAE AL 98%   "
6148 DATA "NMMMMMMMMMMMMOMIMCORONEL GOMEZ SE FUGA A LEFTOTO "
6149 DATA "NMMMMMMMMMMMILKMMEPIDEMIA ENTRE LOS CAMPESINOS   "
6150 DATA "76::$EL EJERCITO"
6151 DATA "76::'LOS CAMPESINOS"
6152 DATA "76::+LOS TERRATENIENTES"
6153 DATA "06--&LAS GUERILLAS"
6154 DATA "76--%LOS LEFTOTOS"
6155 DATA "76--+LA POLICIA SECRETA"
6156 DATA "7---#LOS RUSOS"
6157 DATA "7---'LOS AMERICANOS"
6200 DATA "EJERCITO  ","CAMPESINOS","TERRATEN. ","GUERILLAS "
6210 DATA "LEFTOTOS  ","POL.SEC.  ","RUSOS     ","AMERICANOS"
7000 REM GRABAR ________________________________________________
7010 CLEAR : SAVE "DICTADOR" LINE VAL "80"
7020 PAUSE VAL "1e2"
7060 POKE VAL "23886",VAL "70": RANDOMIZE USR VAL "23842": GO TO VAL "80"

Versión demo

Para hacer una versión demo del programa solo fueron necesarios dos pequeños cambios, una línea nueva (4153) y otra modificada (5019). Con ello se sustituye por valores al azar la entrada del jugador.

4153 IF RND>.8 THEN RETURN
5019 LET k$="s1s2s3s4s5"(INT (RND*10+1)): GO TO VAL "5034": FOR a=on TO VAL "15"

Error

En 2017-09-21, durante el desarrollo de Ritimba, descubrí un fallo introducido durante la traducción del programa, que afecta a la actualización de la fuerza del régimen cuando se produce una bancarrota. La línea:

 934 IF st>ze THEN LET st=st-ze

Evidentemente debería ser:
 934 IF st>ze THEN LET st=st-on

En el original inglés y en la traducción oficial, es:
  934 IF st>0 THEN LET st=st-1

Este error aún no está corregido.

Descargas

Publico ambas versiones separadas en imagen de cinta TAP:

Y ambas juntas en una imagen de disquete MGT (para DISCiPLE o Plus D):

Las imágenes de disquete MGT no llevan G+DOS sino Beta DOS 1.3 (1990), corregido con los programas Betafix publicados en las publicaciones Format (número 9/9, de 1996-05) y Outlet (número 132, de 1998). También tienen un cargador automático para elegir la versión del juego a cargar.

Páginas relacionadas

Ritimba
Juego de simulación escrito en SBASIC (con SBim) para SMSQ/E, basado en el juego Dictator de ZX Spectrum.