1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Знаменитые старые игры на языке BASIC

Тема в разделе "PC Игры", создана пользователем true-grue, 17 окт 2014.

  1. true-grue

    true-grue

    Регистрация:
    15 окт 2014
    Сообщения:
    161
    Одним из наиболее популярных языков программирования игр 60-70-х был, без сомнения, Бейсик. Люди самой разной квалификации сидели за терминалами-телетайпами, управляя мэйнфреймами с разделением времени -- и создавали игры. В играх этих не было графики, не было звуков. Чистый игровой процесс!

    Листинги первых игр на BASIC передавались от любителей к любителям, путем самиздата, пока в 1973-м году не увидело свет первое издание одной из значимых книг о компьютерах: BASIC Computer Games Дэвида Эла. Сборник насчитывал 101-у игру. Каждая была снабжена кратким описанием, листингом для самостоятельного набора и примером диалога с компьютером. В сборнике Эла можно обнаружить, например, экономические стратегии (KING, HMRABI) или версию знаменитой Star Trek (SPACWR). Немало будущих разработчиков популярных игр начинали свой путь в программирование вместе с этой книгой.

    2a708608888cf19cec0c35ee50772ccb.jpg

    В 1975-м году произошли события в мире Бейсика, которые оказали большое влияние на микрокомпьютерную революцию. Речь идет о появлении диалектов языка, удобных для реализации на домашних компьютерах: Tiny BASIC и Altair BASIC (впоследствии -- Microsoft BASIC). Особенно интересен Tiny BASIC: компактный и продуманный язык, который, к тому же, являлся ранним примером свободного ПО. В 1978-м году Дэвид Эл переработал свою книгу в связи с появлением микрокомпьютеров и диалектов Бейсика для них. В конце 70-х книги и журналы с листингами игр на Бейсике стали рядовым явлением. Игры эти обычно запускались на самых разных машинах без изменений или лишь с минимальными модификациями в коде.

    3e9440c464e1c92334c4bf72258603fc.jpg

    Что же за популярные игры были на BASIC? Начну перечисление, надеясь на помощь уважаемых участников форума. Приветствуются и воспоминания о первых книгах и журналах, откуда вы набивали листинги игр.

    Highnoon (1970)
    Стрельба на Диком Западе.
    Исходный код: https://github.com/mad4j/basic-highnoon
    https://en.wikipedia.org/wiki/Highnoon

    13bfbe48c3f356e0d3db1d1eef2026cd.jpg

    Star Trek (1971)
    Стратегическая игра на тему "Звездного пути".
    Исходный код: http://www.dunnington.u-net.com/public/startrek/STTR1
    http://en.wikipedia.org/wiki/Star_Trek_(text_game)

    9c94f65c483e59c752ad2c2c6e7142f2.png

    Lunar Lander (1971), Rocket, Lunar, LEM, Apollo
    Приземление на поверхность Луны. Первая версия Lunar Lander была написана на языке FOCAL.
    Исходный код: http://www.moorecad.com/classicbasic/basic/creative/lunar.bas
    http://en.wikipedia.org/wiki/Lunar_Lander_(video_game)

    87d400e1cab0a68880bc293f7d3ad888.jpg

    The Oregon Trail (1971)
    Образовательная игра о жизни американских пионеров.
    Исходный код: http://www.atariarchives.org/bca/Chapter02_WestwardHo.php
    https://ru.wikipedia.org/wiki/The_Oregon_Trail

    83b064a38a3b68b45f3820d1d2385920.jpg
    (ДОС-версия)

    Hunt the Wumpus (1972)
    Поиск и уничтожение некоего Вампуса (предок Grue?) в лабиринте.
    Исходный код: http://www.sonoma.edu/users/l/luvisi/wumpus.bas
    https://en.wikipedia.org/wiki/Hunt_the_Wumpus

    6cfa28efd77cf8710eb48787802d6fe8.png

    Adventureland (1978), Pirate Adventure (1978)
    Текстовые приключения от Скотта Адамса. Код второй игры был опубликован в журнале Byte Magazine, декабрь 1980-го.
    Исходный код: http://www.ifarchive.org/indexes/if-archiveXscott-adamsXgames.html
    http://solutionarchive.com/pirate_byte/
    http://en.wikipedia.org/wiki/Adventureland_(video_game)
    http://en.wikipedia.org/wiki/Pirate_Adventure

    23da69181cd59541c5921c600814b11f.jpg

    56533269c1d90c67046019a3e7a863a0.jpg

    Dog Star Adventure (1979)
    Текстовое приключение. Код публиковался в журнале SoftSide, май 79-го.
    Исходный код: http://www.ifarchive.org/if-archive/games/source/basic/dogstar.bas
    http://www.mobygames.com/game/trs-80/dog-star-adventure

    a37f7b33396251dcdd26612cb426fbef.jpg

    Akalabeth: World of Doom (1979)
    Игра Ричарда Гэрриота. То, с чего началась серия Ultima.
    Исходный код: https://web.archive.org/web/1997040....com/english/ultima/ftp/graphics/aklabeth.zip
    http://en.wikipedia.org/wiki/Akalabeth:_World_of_Doom

    0f19465689d741ae7bac9dc6b216d442.jpg

    DONKEY.BAS (1981)
    Игра, за которую Биллу Гейтсу должно было быть стыдно :)
    Исходный код: http://drivey.com/DONKEYQB.BAS.html
    http://en.wikipedia.org/wiki/DONKEY.BAS

    2f1e674c5835384ce54bd596908f2e66.png

    Pitman (1985)
    Аркадная головоломка.
    Исходный код: http://gamepreservation.derboo.de/pitman_source_original.zip
    http://en.wikipedia.org/wiki/Pitman_(video_game)
    http://blog.hardcoregaming101.net/2011/08/who-framed-created-pitman.html

    85dc320ddf97d22cbca6d3588f09a40d.png

    Gorillas (1991)
    Каждый, кто знаком с QBasic, знает эту игру.
    Исходный код: ftp://ftp.microsoft.com/services/technet/windows/msdos/RESKIT/SUPPDISK/GORILLA.BAS
    http://en.wikipedia.org/wiki/Gorillas_(video_game)

    0aafa0d103d04dcf338174e3b524d9fc.jpg

    Полезные ссылки

    Basic Computer Games (исходные тексты игр из книги)
    http://www.moorecad.com/classicbasic/

    Basic History of BASIC - Dr Kurtz, David Ahl, John Lutz, Steve Wozniak
    http://blog.hardcoregaming101.net/2012/09/basic-history-of-basic-dr-kurtz-david.html

    Some 8 bit games made in BASIC
    http://eab.abime.net/showthread.php?t=55704
     
    Последнее редактирование: 18 окт 2014
    AndyFox, bl00dshot, Kenwik и 21 другим нравится это.
  2.  
  3. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Уже пытались обсуждать: http://www.old-games.ru/forum/showthread.php?t=58360.
    Но заниматься анализом на этом Форуме старых игр - признак плохого тона.
    Уж лучше, наверное, на нашем Forth-кошачьем...
     
  4. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    true-grue, забыл Удава, Танки, Лоде руннеров и ещё много всякой всячины, которая была реализована в этой стране в том числе.

    gudleifr, конкретики больше надо, меньше "мыслью по древу" с переходом темы во флуд и оффтоп. А так то, я не думаю, что кто то против именно обсуждения старых игр и их внутренностей.
     
    Последнее редактирование: 17 окт 2014
    Genesis нравится это.
  5. true-grue

    true-grue

    Регистрация:
    15 окт 2014
    Сообщения:
    161
    А мне пока кажется, что мы никому не помешаем. Кому интересно, прочтут. Знающие люди вроде Вас -- еще и ответят по существу. Чем же плохо? :)

    ---------- Сообщение добавлено в 21:04 ---------- Предыдущее сообщение размещено в 21:02 ----------

    Lode Runner написан на Фортране. Хотелось бы узнать об играх, оригинальные версии которых были написаны на Бейсике. Еще лучше, если игры сами по себе будут хорошие и известные, чтобы их многие и не подумали уличить в связи с этим языком :)
     
  6. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Я, конечно, выступаю здесь старым евреем, который "все прощается и никак не уходит", но, раз уж забрел, скажу:
    Прелесть basic-игрушек двояка:
    1. BASIC - в первую очередь средство пользовательского программирования. Средство быстро и удобно написать то, что надо. Без погружения в системное программирование. Десять строк - и готова игра! Т.к. BASIC эволюционирует вместе с компьютерами, то эта традиция продолжается. Помню пару сборников миниигр на Visual Basic (откуда даже, вроде, почерпнул пару приемов). Или там лежит "Mario Bros. Cement Factory" (см. второй из предложенных) - на одном из "новых BASIC-ов".
    Можно еще вспомнить книги подобные D.F.Scott РАЗРАБОТКА ПРИКЛАДНЫХ СИСТЕМ НА VISUAL BASIC for Windows (там много "хитростей" и игра Реверси).
    Так мы подходим ко второму "интересу".
    2. Игры, может, и сложно реализованные на BASIC, но, зато, видно, как устроенные.
    Начиная со Star Trek-ов и King-ов - например, B-1 Nuclear Bomber, Andromeda Conquest...
    Или даже BASIC + немножко-кода + настолка.
    Этот второй резон приближает нас к первой Вашей теме: "...игр для программистов"...

    Но, повторю, еще раз - это не тема этого Форума.
    Тут можно только искать старые игры.
     
    true-grue нравится это.
  7. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Э-э… (окинув взглядом список подразделов форума) чего?
     
    bl00dshot, дядя Лёша, Lissandr и 3 другим нравится это.
  8. MetroidZ

    MetroidZ

    Регистрация:
    3 янв 2008
    Сообщения:
    2.288
    в подобных темах очень не хватает скриншотов. Такие игры я застал на уроках информатики, ставили их с кассет продвинутые одноклассники с домашними компами. Названия редко видел и вряд ли вспомню.
     
    wish нравится это.
  9. Ulysses

    Ulysses

    Регистрация:
    28 апр 2011
    Сообщения:
    1.516
    Sword of Aragon (SSI, 1989) написана на Quick Basic.

    3c882a66f85d5edd27ad2d679f8e14c5.png
     
    MrFlibble, AndyFox, mcrstar и 8 другим нравится это.
  10. true-grue

    true-grue

    Регистрация:
    15 окт 2014
    Сообщения:
    161
    Спасибо за воспоминания, а также за B-1 Nuclear Bomber и Andromeda Conquest. Попробую отыскать исходные тексты этих игр. Любопытны и Ваши заметки о TANKTICS.
    Кстати, книга Даны Скотта и у меня когда-то была... Но с большей теплотой я вспоминаю старые выпуски ZX-Ревю. В одном из них (93-й год) был опубликован редактор адвентюрных игр "Adventure Building system" на Бейсике, а также игра-пример для него. Очень интересная учебная разработка. Здесь есть какие-то обрывки: http://zxpress.ru/book_articles.php?id=853


    Ух, какую интересную штуку Вы откопали! Спасибо, буду искать исходник!
     
  11. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Они есть по указанным ссылкам: достаточно загрузить bas-файл в GWBASIC и сохранить с ключам "A".

    А нет ли у Вас читалки для BASIC TRS-80, а то нарыл на http://www.classiccmp.org/cpmarchives/trs80/Software/Model%201/S/ "космическую дуэль" SPACE ACE 21...

    ---------- Сообщение добавлено в 22:42 ---------- Предыдущее сообщение размещено в 22:23 ----------

    http://nukpage.narod.ru/zx-review.htm Только djvu у меня не прочелся, но он лишь дублирует pdf...
     
    A.P.$lasH нравится это.
  12. A.P.$lasH

    A.P.$lasH

    Legacy

    Регистрация:
    27 фев 2010
    Сообщения:
    4.667
    Скорее, наверное, дополняет - у них в DJVU хранятся оригинальные сканы, а в PDF - уже распознанный и проверенный текст, у которого совсем другое, гораздо менее "журнальное" форматирование.

    Как я понимаю, за настоящей ностальгией, кому интересно вспомнить то самое оформление - к DJVU, тем более, что там рядом даётся ссылка на отличную читалку WinDJVU, в которой оно таки откроется :) За более читабельным текстом (и заново перерисованными, что ли, иллюстрациями?) - это к PDF.

    Текстового слоя в их DJVU-релизах нету, код не скопируешь.
     
    Bato-San нравится это.
  13. true-grue

    true-grue

    Регистрация:
    15 окт 2014
    Сообщения:
    161
    Мне бы хотелось просто дать ссылки на исходный код, а не доставать самому и выкладывать :)

    По поводу SPACE ACE 21.
    1. Я скачал эмулятор http://members.shaw.ca/gp2000/trs80gp.html
    2. Сменил расширение игры на .bas.
    3. Загрузил и сделал LLIST. (распечатка листинга на принтере, эмулятор сохраняет данные в файл).

    Вот что получилось.

    Код:
    0 CLS:PRINTCHR$(23);"
    
    
         S P A C E
           A C E
            2 1
    
    
    
    
    
    COPYRIGHT 1981
    SYNERGISTIC SOLAR INC
    
    ":CLEAR80:RANDOM:DEFINTA-Z:CL=16526:X=32640:GOTO90
    1 GOSUB2:PRINTP$;", ";:RETURN
    2 PRINT@O,CHR$(255);CHR$(255);" ";:PRINT@O,;:RETURN
    3 A=32695:POKEA,45:POKEA+2,31:O1=180:O2=9:O3=174:GOSUB9:POKEA,44:POKEA+2,27:RETURN
    4 O1=5:O2=13:O3=174:GOTO9
    5 O1=5:O2=20:O3=195:GOTO9
    6 O1=180:O2=2:O3=211:GOTO9
    7 O1=RND(240)+10
    8 O2=700/O1:O3=200
    9 POKE32641,O1:POKE32643,O2:POKE32647,O3:Z7=USR(0):RETURN
    11 FORTT=0TO250:NEXTTT:RETURN
    12 D=0
    13 X=(L(D,C)-(L(0,C)+L(1,C))/2)/KS:D=D+1:RETURN
    15 L=(RND(2000)+2000)*100:IFRND(3)=1THENL=-L
    16 IFSN>1THENL=C!:RETURNELSERETURN
    18 L=ABS(L(0,C)-L(1,C))/100:C=C+1:RETURN
    19 Z=Y+15360:M=Z/256:S=M:R=(M-S+KZ)*256:D=32475:POKED,R:POKED+1,S:POKECL,114:POKECL+1,126:Z7=USR(0):POKECL,128:POKECL+1,127:RETURN
    20 GOSUB2:FORB=1TO19STEP3:FORC=0TO2:F=B+C:V=MID$(U,F,1):FORG=1TO13:IFV=V(G)THENGOSUB26ELSENEXTG
    22 NEXTC,B:RETURN
    25 FORG=1TO13:IFV<>V(G)NEXTG:RETURN
    26 ONGGOSUB71,72,73,74,75,76,77,78,79,80,81,82,83
    27 D=C*10+1:FORY=0TO1:PRINT@A(F)+P+Y*64,MID$(W,D+Y*5,5);:NEXTY:O1=G*17:GOSUB8:W=V:S(T,F)=G:RETURN
    28 PRINT"?";
    29 GOSUB6:GOSUB33:IFASC(V)=13RETURNELSEF=VAL(V):IFF=0THEN29ELSER(T,B)=F:RETURN
    30 PRINT@ZA,;:GOTO38
    33 V=INKEY$
    34 V=INKEY$:IFV=""THEN34ELSERETURN
    35 PRINT@ZA,"ILLEGAL ENTRY. TRY AGAIN.";:GOSUB48:GOSUB48:GOSUB2:RETURN
    37 O1=9:O2=1:O3=200:GOSUB9:FORTT=0TO1:FORQ=1TO6:Z7=USR(0):NEXTQ,TT:RETURN
    38 PRINT"< ENTER TO CONTINUE >";:GOSUB37:GOTO33
    39 GOSUB2:ZA=E:GOTO35
    40 IFQ=1U="BZZGLFCCCCCCPFFEZEZZZ"ELSEIFQ=2U="ZZZAZBGLPFPFFFFFEFZZZ"ELSEIFQ=3U="BTSLGPGPCCCCCCCFFFEFE"ELSEIFQ=4U="ZBZLGLPGPCSCFFFDFDEEE"ELSEIFQ=5U="SBSMGTPGPLLLLLLFFFEEE"ELSE42
    41 GOTO20
    42 IFQ=6U="BMBPGPFTFMGMELEZFZZFZ"ELSEIFQ=7U="ABALPLGPGTMTFFFEEEZZZ"ELSEIFQ=8U="ZBZDGDLGLPEPFZFFFFEEE"ELSEIFQ=9U="BABGSALPLMTMTPTFFFEEE"ELSEU="MMMTABGALPDTMMMFTFEFE
    43 GOTO20
    46 O1=80:GOSUB8:FORB=1TO3:FORA=60TO30STEP-10:POKE32641,A:Z7=USR(0):NEXTA,B:RETURN
    48 O1=100:O2=1:O3=211:GOSUB9:FORTT=0TO15:Z7=USR(0):NEXTTT:RETURN
    50 O2=30:O3=211:GOTO9
    55 SA=SA+RND(9)+9:IFSA>220THENSA=0:GOTO55ELSEO1=SA:GOTO8
    60 P$="":GOSUB37:PRINTW;" SIDE PLAYER'S NAME ( 10 LETTERS MAX )";:INPUTP$:IFLEN(P$)>10GOSUB35:GOTO60ELSERETURN
    71 W="   €™   ў¦™™™™™¦¦¦¦¦¦„   ™‘   ":RETURN
    72 W=" *Њїї µєїќ*ћЏ*ђї¬їњїїїЊђ ®їµє ":RETURN
    73 W="їііѓїїіі°·їЈі“їїєЏµїїѓіії»°іії":RETURN
    74 W="+ѕ+ є+Џјћ«•+ѕ+Є»Ії±·µ +Ѕ+—*їЏ+":RETURN
    75 W="ўї“Їќѓѓѓ «ќ®јќ® ёїґ ®џЈї‘— ѓѓѓ":RETURN
    76 W="їііѓ·ї»јђ··іЈі«ЅЇѕџѕ»ѓіії»*ј·ї":RETURN
    77 W=" ћ%%Ї *%%ѕћ%ѓ%**%°%ћџ%%* Ѕ%%ћ ":RETURN
    78 W=" љ:·« ©#·є—:»:«µ#·#є—»:Ґ µ»#– ":RETURN
    79 W=" Ё_·¦ ћ”ќ™¦_”Є™™Ё*Є¦™»_” ¦®Ё* ":RETURN
    80 W=" -^Њ¦-^ЊЊ™іії(--)їіі™Њ]- ЈЊЊ]-":RETURN
    81 W="  >Њ¦ +ЊЊ™>Ѕїѕ<+њї¬+™Њ<  ¦ЊЊ+ ":RETURN
    82 W=" [є[є [є[єµ[ї[єµ[ї[єµ[µ[ µ[µ[ ":RETURN
    83 W=STRING$(30,32):RETURN
    90 IFPEEK(32370)<>46THEN1015ELSEDEFSNGI-N:DEFSTRU-W:A=0:B=0:C=0:D=0:E=960:F=1:G=0:H=0:I=0:J=0:K=.0174533:L=0:M=0:N=0:O=896:P=0:S=0:T=0:Y=0:Z=0:C!=100000:KZ=1/C!:K9=10000:J9=12*K9:GOSUB37:DIMA(21),S(1,21),C(1,21),L(1,32),V(27),B(13),H(1,13),R(1,6)
    95 FORB=0TO832STEP128:FORC=0TO10STEP5:A(F)=B+C:F=F+1:NEXTC,B:FORB=1TO27:READW:V(B)=W:NEXT:FORF=1TO12:READA:B(F)=A:NEXT:CLS:IFPEEK(X-1)<>9CLS:Q=RND(10):P=25:T=1:GOSUB40:GOSUB46:GOSUB4:GOSUB3:FORB=1TO20:PRINT:NEXT:POKEX-1,9
    120 W="LEFT":GOSUB60:L$=P$:PRINTL$;", DO YOU WANT
    TO PLAY AGAINST THE COMPUTER (Y/N) ?":GOSUB37:GOSUB33:IFV="Y"THENCO=1:R$="   COMPUTER":PRINT:PRINTR$;" HAS THE RIGHT SIDE
    ":GOSUB38ELSEW="RIGHT":GOSUB60:R$=P$:GOTO130
    126 CLS:GOSUB37:INPUT"PICK COMPUTER OPPONENT
    1 GARBAGE SCOW
    2 SPACE TUG
    3 FREIGHTER
    4 EXPRESS CARGO
    5 SPACE LINER
    6 CADET
    7 FIGHTER JOCK
    8 SPACE ACE
    9 SUPER ACE
    10 ROGUE ASSASSIN";CO:IFCO<1ORCO>10GOSUB39:GOTO126
    130 CLS:ZA=O:PRINT"DO YOU WANT TO
    FIGHT IN 2 OR 3 DIMENSIONS
    ( ENTER 2 OR 3 )";:GOSUB37:INPUTDT:IFDT<2ORDT>3GOSUB35:GOTO130
    140 PRINT:PRINT:GOSUB37:INPUT"PICK SCENARIO:
    1 SMUGGLER
    2 REFUEL OPTION
    3 PHOENIX DECATHLON
    ";SN:IFSN<1ORSN>3GOSUB35:GOTO140
    150 CLS:PRINTTAB(18)"CODE  MODULE   MASS (KG)":FORX=1TO13:PRINTTAB(18)V(X)TAB(23)V(X+14)TAB(35)B(X)*1000:NEXT:PRINT"THE PLAYERS SHOULD WRITE DOWN THE MODULES FOR
    EACH SECTION BEFORE PROCEDING";:ZA=992:GOSUB30:P=0:T=0
    160 GOSUB2:IFT=0PRINTL$;ELSEPRINTR$;
    162 PRINT", ENTER MODULES";
    165 FORA=1TO19STEP3:FORC=0TO2:F=A+C:PRINT@A(F)+65+T*48,F;
    167 GOSUB33:IFASC(V)<65THEN167ELSEGOSUB25
    168 IFG=14GOSUB39:GOTO167
    170 NEXTC,A:P=48:IFT=0ANDCO=0THENT=1:GOTO160ELSEIFCO>0ANDT=0THENT=1:Q=CO:GOSUB40
    180 GOSUB2:PRINT@920,"MODULE CHECK";:FORT=0TO1:GOSUB181:NEXTT:GOSUB184:GOTO190
    181 Z=100:C=0:FORB=1TO21:F=S(T,B):IFF<13THENC(T,B)=Z:H(T,F)=H(T,F)+Z:L(T,7)=L(T,7)+B(F)*Z:C=C+Z
    182 NEXTB:L(T,6)=H(T,6)*Z:L(T,3)=H(T,12)/25:L(T,4)=H(T,9)/Z:L(T,30)=C:RETURN
    184 FORA=9TO11:GOSUB15:L(1,A)=L:NEXTA:L(1,11)=L(1,11)*(DT-2):RETURN
    190 W=", YOU ARE MISSING:":GOSUB850:A=0:ZA=936:IFS=1GOSUB2:PRINTL$;W;:GOSUB550:GOSUB30:GOSUB2
    192 A=1:IFR=1PRINTR$;W;:GOSUB550:GOSUB30:GOSUB2
    194 ZA=990:IFS+R>0PRINT"SORRY. YOU MUST START OVER";:GOSUB30:RUNELSEGOSUB2:PRINT@908,"SHIPS HAVE REQUIRED MODULES";:GOSUB30:GOSUB2
    196 GOSUB560:GOSUB875:IFS+R>0THEN194ELSEGOSUB2:PRINT@911,"ENGINE MOUNTS ARE LEGAL";:ZA=990:GOSUB30:GOSUB250:GOTO300
    250 GOSUB2:ZA=O:GOSUB602:GOSUB750
    251 GOSUB632:GOSUB705:GOSUB960:GOSUB785:RETURN
    300 SA=RND(20):GOSUB2:PRINT"TIME (SEC) =";TM*10;"
    SECRETLY WRITE DOWN COMMAND ENTRIES";:TM=TM+1:ZA=926:GOSUB30
    304 FORT=0TO1:IFT=0THENP$=L$ELSEP$=R$:IFCO>0THEN500
    305 GOSUB2:GOSUB306:GOTO310
    306 W="STATUS REPORT:":GOSUB1:PRINTW;" (Y/N)";:GOSUB37:GOSUB33:IFV="Y"THENFORY=0TO14STEP7:GOSUB1:PRINTW;:PRINT@E,;:FORQ=1TO7:X=Y+Q:PRINTUSING"##";X;:PRINT">";V(S(T,X));C(T,X);:NEXTQ:ZA=930:GOSUB37:GOSUB30:NEXTY
    307 RETURN
    310 L(T,31)=L(T,1):L(T,32)=L(T,2):GOSUB1:PRINT"HEADING MANEUVER
    1 = HOMING  2 = ANGLES  3 = N.C. 4 = DOCK";:B=1:GOSUB28:IFASC(V)=13THEN330ELSEIFF>4GOSUB39:GOTO310ELSEONFGOTO325,315,330,330
    315 V=", AZIMUTH ANGLE: ":A=0:B=360:C=31:GOSUB320:IFDT=2THEN330ELSEV=", ALTITUDE ANGLE: ":A=-90:B=90:C=32:GOSUB320:GOTO330
    320 GOSUB2:PRINT@E,P$;V;A;"TO";B;:PRINT@O,;:GOSUB6:U=STR$(L(T,C)):INPUTU:L=VAL(U):IFL<AORL>BTHENGOSUB39:GOTO320ELSEL(T,C)=L:RETURN
    325 GOSUB1:PRINT"HOME ON:
    1 = ENEMY SHIP  2 = ENEMY BASE  3 = HOME BASE";:B=4:GOSUB28:IFF>3GOSUB39:GOTO325
    330 GOSUB1:PRINT"SPEED CHANGE
    1 = MAX  2 = MIN  3 = SPECIFY  4 = N.C.";:B=5:GOSUB28:IFF>4GOSUB39:GOTO330ELSEIFF<>3THEN340
    335 GOSUB2:PRINT@E,P$;", SPECIFY SPEED ( KM/SEC )";:PRINT@O,;:U=STR$(L(T,28)):GOSUB6:INPUTU:T#=VAL(U):IFT#<0ORT#>1D+20GOSUB39:GOTO335ELSEL(T,28)=T#
    340 W=" INOPERATIVE ":GOSUB1:PRINT"PICK WEAPONS:1 = PHASERS  2 = DISRUPTORS 
    3 = TORPEDOES  4 = MISSILES  5 = NONE";:B=6:GOSUB28:IFF<1ORF>5GOSUB39:GOTO340ELSEONFGOTO348,350,360,365,380
    344 G=H(T,7)/20:P=H(T,10)/20:D=H(T,4)/10:F=L(T,6)/100:Q=9:IFG<QTHENQ=G
    346 IFP<QTHENQ=P
    347 IFF<QTHENQ=F:RETURNELSERETURN
    348 GOSUB344:IFQ=0GOSUB2:PRINTV(24);W;:GOSUB38:GOTO340
    349 GOSUB1:PRINT"PHASER UNITS (";Q;"UNITS MAX )";:B=0:GOSUB28:IFF>QTHENGOSUB39:GOTO348ELSEGOSUB5:L=F*100:GOSUB980:GOTO380
    350 GOSUB344:IFG<2ORD<4ORF<10GOSUB2:PRINTV(18);W;:GOSUB38:GOTO340ELSEGOSUB50:L=1000:GOSUB980:GOTO380
    360 D=3:A=26:C=250:GOTO370
    365 D=4:A=23:C=1000
    370 Z=0:B=0:IFL(T,D)=0ORL(T,8)<K9THEN340ELSEGOSUB1:PRINTV(A);:GOSUB28:IFF>L(T,D)GOSUB39:GOTO370ELSEGOSUB375:GOSUB799:GOTO380
    375 L(T,7)=L(T,7)-F*C:RETURN
    380 NEXTT:GOSUB2
    400 J=C!:X=0:GOSUB603:IFSN=1ANDM<K9THENGOSUB2:PRINT"SURPRISE!! ";R$;",S BASE IS FIRING PHASERS";:GOSUB5:B=0:FORQ=1TO25:Z=5:GOSUB950:GOSUB931:GOSUB942:NEXTQ
    405 FORT=0TO1:GOSUB990:NEXT
    410 GOSUB910:FORT=0TO1:S(T,0)=0:GOSUB625:IFR(T,6)<3GOSUB916
    412 NEXTT:FORT=0TO1:GOSUB924:NEXTT:FORT=0TO1:IFR(T,1)=1THEN425ELSE435
    425 ONR(T,4)GOSUB606,619,618
    435 NEXTT:FORX=0TO1:GOSUB635:NEXTX:GOSUB2:FORT=0TO1:A=T:GOSUB645:GOSUB685:GOSUB600:GOSUB904:NEXTT:GOSUB602:GOSUB251
    445 FORA=0TO1:B=(A-1)*-1:IFR(A,6)=3THENN=2*K9:P=5:U=V(26):GOTO448ELSEIFR(A,6)=4THENN=5*K9:P=9:U=V(23):GOTO448ELSE476
    448 IFA=0THENP$=L$ELSEP$=R$
    450 GOSUB630:IFL(A,22)>=NTHENGOSUB1:PRINTU;" MISSED BY";(L(A,22)-N)/100;"KM";:GOSUB48:GOSUB48:GOSUB11:GOTO476
    455 FORT=1TOR(A,0)
    456 Z=3:GOSUB950:IFS(B,H)=13ORC(B,H)=0THEN456ELSEGOSUB931:GOSUB19
    468 C(B,H)=C(B,H)-P*L*10:IFC(B,H)<0THENC(B,H)=0
    475 NEXTT
    476 NEXTA:GOSUB960
    477 Z=1:FORT=0TO1:GOSUB800:GOSUB820:NEXTT:GOSUB785:GOSUB2:GOSUB850:GOSUB580:U=", YOU LOSE":V=", YOU WIN":IFS+R=0THEN300ELSEGOSUB46
    480 IFS=1ANDR=0PRINTL$;U;:PRINT@E,R$;V;ELSEIFS=0ANDR=1PRINTL$;V;:PRINT@E,R$;U;ELSEPRINTL$;" AND ";R$;", YOU BOTH LOSE";
    490 ZA=999:GOSUB30:P$=L$:FORT=0TO1:GOSUB306:P$=R$:NEXTT:GOSUB2:INPUT"ENTER FOR ANOTHER GAME";V:RUN
    500 GOSUB2:CT=CT+1:FORT=0TO1:GOSUB625:NEXTT:N=0:T=1:Z=0:FORQ=13TO15:N=N+(L(0,Q)-L(1,Q))[2:NEXTQ:M=SQR(N):N=H(0,5)*(1E+6)/L(0,7)*(RND(2)-1):R(1,6)=5:IFM<20000-NANDL(1,3)>0THEND=3:C=250ELSEIFM<50000-NANDL(1,4)>0THEND=4:C=1000ELSE510
    502 F=L(1,D):IFF>9THENF=9
    504 R(1,0)=F:R(1,6)=D::GOSUB375:IFD=3GOSUB800ELSEGOSUB820
    506 GOTO518
    510 GOSUB344:IFG<2ORD<4ORF<10ORLD>20570THEN514ELSE516
    514 IFLD<J9ANDQ>0THENR(1,6)=1:R(1,0)=Q:L=Q*100:GOSUB980:GOSUB5:GOTO518
    516 IFG<2ORD<4ORF<10ORLD>J9THEN518ELSER(1,6)=2:L=1000:GOSUB980:GOSUB50
    518 ONSNGOTO520,522,542
    520 A=1:P=3:B=3:L=18:IFL(1,8)<K9THENA=4:GOTO540ELSE540
    522 IFCT=1THENA=2:C=RND(90)+(RND(2)-1)*270:D=RND(90):B=3:L=6.5ELSEIFCT<7THENA=3:B=3:L=6.5ELSEIFCT<23THENA=1:P=1:B=3:L=15ELSEIFCT<95ANDL(1,0)>5000THENA=3:P=1:B=3:L=5ELSEIFCT<95ANDL(1,0)<5100THENA=1:P=3:B=4:L=5
    524 IFL(1,8)<K9ANDCT>14THENA=4:CT=0
    540 GOSUB2:R(1,1)=A:R(1,4)=P:R(1,5)=B:L(1,28)=L:IFA=2THENL(1,31)=C:L(1,32)=D*(DT-2):GOTO400ELSE400
    542 A=1:P=1:B=3:L=9.79:GOTO540
    550 PRINT@960,;:U=", ":IFH(A,2)=0PRINTV(16);
    552 FORB=5TO8:IFH(A,B)=0PRINTU;V(B+14);
    554 NEXTB:RETURN
    560 U=CHR$(191)+"   "+CHR$(191):FORA=0TO1:FORB=5TO17STEP3:IFS(A,B)<13THEN570
    564 F=0:H=0:FORC=1TOB-2:IFS(A,C)<13THENF=1:GOTO566ELSENEXTC
    566 FORC=B+2TO21:IFS(A,C)<13THENH=1ELSENEXTC
    568 Y=A(B)+A*48:IFF=1ANDH=1PRINT@Y,U;:PRINT@Y+64,U;
    570 NEXTB,A:RETURN
    580 IFCO>0ANDR=1ANDSN=3GOSUB2:PRINTL$;", YOU WON ROUND";PS+1;:GOSUB46:GOSUB38ELSERETURN
    582 CO=CO+1:IFCO>10THENCO=1
    584 PS=PS+1:IFPS>9GOSUB11:GOSUB2:PRINTL$;", YOU ARE A SPACE ACE !!!";:GOSUB46:GOTO490
    586 FORX=0TO32:L(1,X)=0:NEXTX:FORX=0TO21:C(1,X)=0:NEXTX:FORX=0TO13:H(1,X)=0:NEXTX:P=48:Q=CO:T=1:GOSUB40:GOSUB181:GOSUB184:GOSUB250:R=0:S=0:CT=0:RETURN
    600 GOSUB55:L=L(A,0):N=COS(K*L(A,2))*L:L(A,16)=SIN(K*L(A,1))*N:L(A,17)=COS(K*L(A,1))*N:L(A,18)=SIN(K*L(A,2))*L:RETURN
    602 FORX=0TO1:J=X*C!:GOSUB603:L(X,8)=M:NEXTX:RETURN
    603 M=SQR((L(X,9)-J)[2+(L(X,10)-J)[2+(L(X,11)-J*(DT-2))[2):RETURN
    606 I=L(1,9)-L(0,9):J=L(1,10)-L(0,10):M=ATN(ABS(I/(J+KZ)))/K:GOSUB612
    608 MZ=ATN((L(1,11)-L(0,11))/(SQR(I[2+J[2)+KZ))/K:N=M-180:IFN<0THENN=N+360
    609 NZ=MZ*(-1):IFT=0THENL(0,31)=M:L(0,32)=MZ:RETURNELSEL(1,31)=N:L(1,32)=NZ:RETURN
    610 I=L-L(T,9):J=L-L(T,10):M=ATN(ABS(I/(J+KZ)))/K:GOSUB612:GOTO617
    612 IFI>0ANDJ<0THENM=180-MELSEIFI<0ANDJ<0THENM=180+MELSEIFI<0ANDJ>0THENM=360-M
    613 RETURN
    617 MZ=ATN((L-L(T,11))*(DT-2)/(SQR(I[2+J[2)+KZ))/K:L(T,31)=M:L(T,32)=MZ:RETURN
    618 IFT=0THENL=0:GOTO610ELSEL=C!:GOTO610
    619 IFT=0THENL=C!:GOTO610ELSEL=0:GOTO610
    625 FORQ=9TO11:L(T,Q+4)=L(T,Q)+L(T,Q+7):NEXTQ:RETURN
    630 L=0:FORQ=9TO11:L=L+(L(B,Q)-L(A,Q+4))[2:NEXTQ:L(A,22)=SQR(L):RETURN
    632 GOSUB55:L=0:FORQ=9TO11:L=L+(L(0,Q)-L(1,Q))[2:NEXTQ:LD=SQR(L):RETURN
    635 Y=3*H(X,5):L=L(X,6):IFL>YTHENL=1ELSEL=L/Y
    637 L(X,12)=H(X,5)*(1E+6)*L
    638 L=L(X,0):N=COS(K*L(X,32))*L:L(X,19)=SIN(K*L(X,31))*N:L(X,20)=COS(K*L(X,31))*N:L(X,21)=SIN(K*L(X,32))*L
    640 L(X,27)=1:L(X,25)=L(X,12)/L(X,7):N=0:FORQ=16TO18:N=N+(L(X,Q)-L(X,Q+3))[2:NEXTQ:L(X,26)=SQR(N):RETURN
    645 IFL(A,0)=0THENL(A,1)=L(A,31):L(A,2)=L(A,32)ELSEIF(L(A,31)=INT(L(A,1))ANDL(A,32)=INT(L(A,2)))ORR(A,1)=3THEN646ELSE650
    646 JP=1:L(A,27)=1:RETURN
    650 Q=0:M=L(A,26):N=L(A,25):IFM>=NTHEN655ELSEL(A,1)=L(A,31):L(A,2)=L(A,32):L(A,27)=1-M/(N+KZ):GOTO680
    655 JP=N/(M+KZ):L(A,27)=0:I=L(A,1):IP=JP+(1-COS(K*L(A,2)))*(1-JP):J=L(A,31):LP=ABS(J-I):IFLP<=180ANDI<JTHENI=LP*IP+I:ELSEIFLP>180ANDI<JTHENI=I-(360-LP)*IP:ELSEIFLP<=180ANDI>JTHENI=I-(LP*IP):ELSEI=I+(360-LP)*IP
    665 IFI>360THENI=I-360:GOTO665ELSEIFI<0THENI=I+360:GOTO665
    670 L(A,1)=I:I=L(A,2):J=L(A,32):LP=ABS(I-J):IFJ>ITHENI=I+LP*JPELSEIFJ<ITHENI=I-LP*JP
    672 IFI>90THENI=180-I:GOTO672ELSEIFI<-90THENI=-I-180:GOTO672
    675 L(A,2)=I
    680 L=L(A,12)*(1-L(A,27))*.3/C!:GOSUB980:RETURN
    685 C=R(A,5):IFL(A,27)=0ORC=4RETURN
    687 M=L(A,28)*1000:N=L(A,12)*L(A,27)/L(A,7):L=L(A,0):IFC=1THENM=L+N:ELSEIFC=2THENM=L-N
    690 IFM<0THENM=0
    692 JD=ABS(L-M):IFJD>NTHENJD=N
    694 IFM<LTHENJD=-JD
    695 L=L+JD:IFL<0THENL=0
    696 L(A,0)=L:L=ABS(L(A,7)*JD/C!)*.3:GOSUB980:RETURN
    705 C=9:GOSUB18:N=L:GOSUB18:M=L:GOSUB18:I=L:KS=.01:IFN<MTHENN=M
    710 IFN<ITHENN=I
    712 IFN/KS>12THENKS=KS*5ELSE720
    715 IFN/KS>12THENKS=KS*2:GOTO712
    720 KS=KS*100:C=9:GOSUB12:A=X:C=9:GOSUB13:B=X:C=10:GOSUB12:F=X:C=10:GOSUB13:G=X:C=11:GOSUB12:H=X:C=11:GOSUB13:P=X:GOSUB755:IFDT=2THENQ=61+A*2:R=8-F:S=61+B*2:T=8-G:SET(Q,R):SET(Q+1,R):SET(S,T):RETURN
    730 Q=47+A*2:R=8-F:S=47+B*2:T=8-G:X=8-H:Y=8-P:SET(Q,R):SET(Q+1,R):SET(S,T):SET(Q+30,X):SET(Q+31,X):SET(S+30,Y):RETURN
    750 GOSUB2:FORX=15TO911STEP64:PRINT@X,CHR$(225);:NEXTX:GOTO780
    755 U=CHR$(191):IFDT=2THENC=23:GOSUB770:PRINT@146,"Y";:RETURNELSEC=16:GOSUB770:C=31:GOSUB770:PRINT@144,"Y";:PRINT@174,"Z";:RETURN
    770 PRINT@C+320,STRING$(16,131);:FORX=CTOC+256STEP64:PRINT@X,U;CHR$(206);U;:NEXTX:PRINT@C+1,STRING$(14,131);:RETURN
    780 PRINT@466,"LEFT STATUS";:PRINT@483,"RIGHT STATUS";:FORX=0TO17STEP17:PRINT@527+X,"SP      F";:PRINT@591+X,"AZ      M";:PRINT@655+X,"AL      H";:PRINT@719+X,"TR      X";:PRINT@783+X,"MR      Y";:PRINT@847+X,"BC      Z";:NEXTX:RETURN
    785 FORA=0TO1:U="###":B=A*17:PRINT@529+B,;:PRINTUSING"###.#";L(A,0)/1000;:Y=1:FORX=594TO850STEP64:PRINT@X+B,;:PRINTUSINGU;L(A,Y);:Y=Y+1:NEXTX,A:IFDT=2THENL(1,11)=0:L(0,11)=0
    790 PRINT@30,LW;:PRINT@403,CHR$(221);:PRINT@403,"SF =";KS/10;" DISTANCE";LD/100;:FORA=0TO1:Y=6:FORX=537TO857STEP64:PRINT@A*17+X,;:PRINTUSING"#####";L(A,Y)/100;:Y=Y+1:NEXTX,A::RETURN
    799 IFD=4THEN820
    800 Y=0:IFH(T,12)=0ORL(T,3)=0THEN809
    801 FORQ=1TO21:IFS(T,Q)=12THEN802ELSENEXTQ:GOTO809
    802 FORG=0TO64STEP64:S=A(Q)+48*T+G+15360:FORH=STOS+4:IFPEEK(H)=91THENY=Y+1ELSE806
    804 IFZ=0GOSUB3:POKEH,32
    805 IFZ=0ANDY>=FTHENRETURN
    806 NEXTH,G
    808 NEXTQ
    809 IFZ=1THENL(T,3)=Y:RETURNELSERETURN
    820 Y=0:IFH(T,9)=0ORL(T,4)=0THEN836
    822 FORQ=0TO18STEP3:FORG=1TO3:X=G+Q:IFS(T,X)=9THEN824ELSE834
    824 IFG>1THENP=584ELSEP=569
    828 R=A(X)+T*48+15361+G/3:IFPEEK(R)+PEEK(R+1)+PEEK(R+64)+PEEK(R+65)=PTHENY=Y+1ELSE834
    830 IFZ=0THENPOKER,32:POKER+1,32:POKER+64,32:POKER+65,32:GOSUB3
    832 IFZ=0ANDY>=FTHENRETURN
    834 NEXTG,Q
    836 IFZ=1THENL(T,4)=Y:RETURNELSERETURN
    850 S=0:R=0:FORA=0TO1:IFH(A,2)=0ORH(A,5)=0ORH(A,6)=0ORH(A,7)=0ORH(A,8)=0ORL(A,6)<90THEN855ELSE860
    855 IFA=0THENS=1ELSER=1
    860 NEXTA:RETURN
    875 PRINT@916,"ENGINE TEST";:FORG=0TO1:FORF=1TO18:IFS(G,F)=5ANDS(G,F+3)<13THEN880
    878 NEXTF,G:RETURN
    880 GOSUB2:IFG=0THENS=1:PRINTL$;ELSER=1:PRINTR$;
    882 PRINT" IMPROPER ENGINE MOUNT ON MODULE";F;:ZA=990:GOSUB30:GOSUB2:GOTO878
    904 FORQ=9TO11:L(A,Q)=L(A,Q)+L(A,Q+7):NEXTQ:RETURN
    910 FORA=0TO1:GOSUB600:NEXTA:GOSUB632:M=L(1,16)-L(0,16):N=L(1,17)-L(0,17):MZ=L(1,18)-L(0,18):I=M+L(1,9):J=N+L(1,10):NZ=MZ+L(1,11):JP=SQR(M[2+N[2+MZ[2):IP=SQR((L(0,9)-I)[2+(L(0,10)-J)[2+(L(0,11)-NZ)[2)
    914 L=(LD[2-JP[2+IP[2)/(2*LD*IP+KZ):LP=-ATN(L/SQR(1-L*L+.001))+1.5708:LW=TAN(LP)*10:IFLW<0THENLW=LW*-1:RETURNELSERETURN
    916 IFLD>J9RETURNELSEX=H(T,11)/100:IFX>1THENX=1
    918 J=((1-LD/J9)*2+1/(LW+1))/3:J=J+X/10:IFJ>1THENJ=1
    920 IFRND(0)>(1-J)[2THENRETURNELSES(T,0)=1:RETURN
    924 GOSUB55:B=(T-1)*-1:IFR(T,6)>2RETURNELSEIFLD>J9THEN928ELSEIFR(T,6)=2THEN926ELSEIFS(T,0)=1THEN928ELSE930
    926 M=144010/(LD+KZ):IFM>40THENM=40
    927 FORS=1TOM:Z=5:GOSUB950:GOSUB942:NEXTS:RETURN
    928 GOSUB2:U=", YOU MISSED":IFT=0PRINTL$;U;:GOSUB48:GOSUB48:GOSUB2:RETURNELSEPRINT@936,R$;U;:GOSUB48:GOSUB48:RETURN
    930 FORS=1TOR(T,0):Z=5:GOSUB950:GOSUB931:GOSUB942:NEXTS:RETURN
    931 ONGGOTO932,934,936
    932 IFS(B,H+1)=1ANDC(B,H+1)>30L=.5:RETURNELSERETURN
    934 GOSUB932:GOSUB936:RETURN
    936 IFS(B,H-1)=1ANDC(B,H-1)>30L=.5:RETURNELSERETURN
    942 PRINT@Y,"*";:GOSUB4:PRINT@Y,".";:FORP=0TO(RND(2)-1)*40:NEXTP:IFS(B,H)=13PRINT@Y," ";
    945 C(B,H)=C(B,H)-10*L:IFC(B,H)<0THENC(B,H)=0:RETURNELSERETURN
    950 L=1:G=RND(3):F=RND(7)-1:H=F*3+G:Y=RND(Z)-1+(RND(2)-1)*64+A(H)+B*48:RETURN
    960 FORX=0TO1:L(X,29)=0:FORB=1TO13:H(X,B)=0:NEXTB:FORB=1TO21:F=S(X,B):H(X,F)=H(X,F)+C(X,B):L(X,29)=L(X,29)+C(X,B):NEXTB:L(X,5)=(L(X,29)/L(X,30))*100:T=X:N=H(X,6)*100:M=L(X,6):IFN<MTHENL=M-N:GOSUB980
    962 NEXTX:RETURN
    980 FORQ=6TO7:L(T,Q)=L(T,Q)-L:IFL(T,Q)<0THENL(T,Q)=0
    981 NEXTQ:RETURN
    990 GOSUB2:IFSN=1ANDL(1,8)<K9ANDR(1,1)=4PRINTR$;", YOUR SHIP HAS ARRIVED INTACT WITH";H(1,3)*1000;"KG
    OF CARGO AND";INT(H(1,8)/2);"PASSENGERS. YOU WIN.";:GOSUB46:GOTO490ELSEIFSN>1ANDR(T,1)=4ANDL(T,8)<K9THEN992ELSERETURN
    992 IFT=0PRINTL$;ELSEPRINTR$;
    994 GOSUB999:B=3:G=12:H=4:GOSUB997:B=4:G=9:H=1:GOSUB997:L(T,0)=0:L=L(T,6)-H(T,6)*100:GOSUB980:IFT=0THENJ=0ELSEJ=C!
    995 FORQ=9TO11:L(T,Q)=J:NEXTQ:IFDT=2THENL(T,11)=0:RETURNELSERETURN
    997 Z=L(T,B):S=0:L(T,B)=0:P=T*48:L=0:FORX=1TO19STEP3:FORC=0TO2:F=X+C:IFS(T,F)=GTHENGOSUB26:L(T,B)=L(T,B)+H:S=S+1:C(T,F)=100
    998 NEXTC,X:L(T,7)=L(T,7)+1000*(S-Z/H):RETURN
    999 PRINT", TRACTOR BEAMS HAVE DOCKED YOUR CRAFT.
    IT IS BEING SERVICED.";:GOTO11
    1010 DATA46,5,14,10,30,20,205,200,127,71,203,64,202,148,127,62,1,195,150,127,62,0,211,255,16,254,29,194,134,127,30,20,13,194,134,127,201,0,0,0,0,0,0,0,0,0,205,216,127,203,191,203,183,203,175,44,254,27,250
    1015 FORB=XTOX+114:READA:POKEB,A:NEXT:FORB=32370TO32540:READA:POKEB,A:NEXT:POKECL,128:POKECL+1,127:FORB=32541TO32570:POKEB,32:NEXT:CLS:PRINT@520,"TYPE IN RUN AND ENTER":DELETE1010-1050
    1020 DATA193,127,45,62,254,201,133,201,44,44,44,125,201,203,69,202,208,127,44,125,201,45,125,201,45,45,45,125,201,217,33,243,127,52,35,203,6,35,203,6,86,43,78,43,70,113,35,114,35,112,126,43,134,119,217,201
    1030 DATA46,2,14,17,30,10,62,1,50,223,126,33,224,126,34,221,126,205,185,126,205,216,127,203,191,203,183,203,175,44,254,27,250,154,126,45,62
    1040 DATA254,24,1,133,71,203,64,40,4,62,1,24,2,62,0,211,255,120,254,254,204,185,126,16,254,29,32,211,30,20,13,32,206,201,217,58,223,126,61,50,223,126,32,20,62,3,50,223,126,237,91,219,126,42,221,126,1,3,0,237,176,34,221,126,217,6,234,201
    1050 DATA0,0,0,0,0,32,140,144,191,191,191,173,191,185,35,191,191,190,191,183,191,191,47,143,186,175,157,191,153,39,32,47,166,175,166,153,145,153,166,160,137,140,45,146,132,95,134,46,32,32,32,46,32,32,32,32,46,32,32,39,32,46,32,32,32,44
    2400 DATAA,B,C,D,E,F,G,L,M,P,S,T,Z,X,ARMOR,BRIDGE,CARGO,DISRUPTOR,ENGINE,FUEL,GENERATOR,LIFE SUPPORT,MISSILE,PHASERS,SENSORS,TORPEDOES,ZERO,25,10,100,10,40,110,30,10,15,10,5,14
    
    
     
    gudleifr нравится это.
  14. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Большое спасибо!
    Только надо пояснить, что "страшные символы" в 70-х строках - псевдографика TRS-80 ("графическое представление" частей кораблей).
     
  15. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    true-grue и Ulysses нравится это.
  16. Bato-San Чеширский волк-киборг

    Bato-San

    Регистрация:
    24 июн 2010
    Сообщения:
    14.136
    минус такого подхода в том что далее:

    и, как результат, надо пояснить, чем диалект того или иного Бейсика отличается от всех остальных и как именно устроен тот или иной компьютер, исходники для которого предоставлены (распределение и организация обычной и видеопамяти, карты портов и их назначение, отображение таковых на участки памяти и многие иные нюансы, включая нюансы математики конкретного интерпретатора).

    Иначе все эти исходники просто мёртвый груз, который нельзя использовать по назначению легко и просто. Например запустить в том же GW-Basic, что бы посмотреть как это работает в реальности.
     
  17. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.148
    true-grue, имхо, подобная информация лучше всего подходит для нашей Вики: http://www.old-games.ru/wiki/
    Если там разместить, то точно не потеряется и можно красиво оформить.

    Та тема была в Мастерской, для того, чтобы люди делались собственными творениями.
     
    bl00dshot нравится это.
  18. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
    Хороший пример совмещения BASIC с кодом: программа на BASIC под заказ пользователя пишет программу в кодах (ладно-ладно, не пишет, а параметризует), к которой прицепляет еще и пользовательский BASIC-кусок... А заодно - введение в основы эдвенчур (и/или книг-игр). Не сказать, что решение очень уж элегантное (скорее, соблюдение главного BASIC-принципа: если написать быстрее, чем подумать - напиши), но, зато, компактное. Многие ли современные конструкторы не требуют от пользователя установки браузера?
     
    true-grue нравится это.
  19. Grue13 Ocelote.12

    Grue13

    Регистрация:
    26 апр 2006
    Сообщения:
    10.089
    На советских компьютерах БК-0010 была такая фирма - Android Corp - она писала игры на Бейсике с вкраплениями ассемблера (чтобы графика быстрее рисовалась, шла работа напрямую с видеопамятью).
     
  20. true-grue

    true-grue

    Регистрация:
    15 окт 2014
    Сообщения:
    161
    Считаю, что в теме об играх на Бейсике логично публиковать и ссылки на исходные тексты (когда их несложно отыскать, разумеется). Если найдутся посетители форума, которые, заинтересовавшись определенной игрой, столкнутся с трудностями разбора кода на экзотическом диалекте, то, думаю, Вы, как и я, будете только рады прийти на помощь. Насколько увлекательно иной раз разбирать подобные диалекты -- продемонстрировал на примере gudleifr (см. ссылку на его сайт выше). Самостоятельный же перевод всех публикуемых здесь игр на GW-Basic (или QBasic, или еще на что-то) с моей стороны невозможен по многим причинам. Да и непедагогично это просто-напросто! :)

    ---------- Сообщение добавлено в 22:39 ---------- Предыдущее сообщение размещено в 22:38 ----------

    Хорошее предложение, спасибо. Попробую разобраться, как им воспользоваться.
     
    Последнее редактирование: 19 окт 2014
  21. gudleifr

    gudleifr

    Регистрация:
    16 сен 2006
    Сообщения:
    2.592
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление