SBC6502 - 14 - software. Basic programs: World War III, STARWARS 1. STARTREK.

By Administrator at decembra 09, 2017 13:25
Filed Under: SBC6502

 

 

Píše sa rok 1977, Vy máte k dispozícii počítač, 8bitový - síce nemá k dispozícii veľkú RAM, nemá k dispozícii ani grafické rozhranie ale Vy chcete hrať hru. Lenže to je problém. Dosť veľký problém. Máte síce špičkový počítač tej doby ale jeho obmedzenia sú poriadne veľké - ale ani to Vás nezastaví. (Nezabúdajte že stále chýbajú celé 4 roky do toho ako sa na trhu objaví počítač ZX-81 ... ktorý má v základe 1kB RAM.) Vyhrabal som dve hry z toho obdobia a teraz som ich upravil tak, aby tieto programy bežali na reálnom BASICu na doske SBC6502. Pôvodný BASIC v ktorom boli tieto programy napísané používal iné príkazy na INPUT a pár iných drobných vecí ale - podarilo sa mi to preložiť a oživiť.

Kto sa v tom vŕta tak vždy na niečo príde - akurát treba nastaviť pri štarte SBC6502  hodnotu TERMINAL WIDHT? na 80 znakov v riadku - obidva programy to potrebujú pre správne zobrazenie v Hyperterminálovom okne. 

My máme k dispozícii na doske SBC6502 celých 32.255 FREE BYTES RAM, teda v pohode to stačí na všetko čo sa objaví (vtedy poväčšine na takýchto počítačoch bolo maximum dostupnej RAM = 4Kbyte, maximálne 8kByte RAM - RAM bola vtedy mimoriadne drahá a tak sa s ňou vtedy šetrilo kde sa dalo a tvorili ju desiatky čipov (ešte odpočítajte RAM potrebnú na prevádzku systému a dostaneme sa niekde na 3.25kByte free RAM (platí pre 4kB RAM) - preto je jasné prečo sa grafika nejako v tej dobe nechytala, takže teraz sme vo výhode = jasní frajeri). Na SBC6502 na grafiku môžeme zabudnúť a tak sa tieto programy čo nevyužívajú grafiku na tohoto "prcka" náramne hodia.

Obidva programy svojím rozsahom už vybočujú zo spomínanej rady (prvý potrebuje cez 4kByte RAM a druhý potrebuje viac ako 12kByte RAM). Pôvodný program STARWARS bral dokonca cez 13.25kByte RAM, mne sa ho podarilo o 1kByte skrátiť - bezo zmeny funkcie. Dalo by sa tam dosiahnuť aj ďalšie významné skrátenie programu, ale zase nechcem nad tým sedieť do Vianoc, som rád že sa to vôbec na SBC6502 podarilo sprevádzkovať - a stále máte ešte cca 20kByte RAM voľnej, čiže rozhodne program v dnešnej dobe nebeží na doraz. Program STARWARS už nejakú pseudografiku používa. Ak si urobíte listing programu tak je vidieť že je celkom rozsiahly a aj tak neobsadí ani polovicu teraz dostupnej pamäte. Mňa to len utvrdzuje v tom že tých 32kByte RAM pre SBC počítače naozaj bohate stačí a nie je dôvod na to aby sa to nejako významne zväčšovalo. Predtým som si hovoril že je dôležité tú RAM zväčšiť čo najviac, teraz po istom časovom odstupe hovorím že 32kByte RAM stačí na všetko - teda na takýchto SBC mašinách. Ak si to postavíte pochopíte, inak je asi zbytočné na túto tému viac vysvetľovať.

Nakoniec som pridal v tomto dieli ešte väčšiu (dľžkou) hru STARTREK. Takže sem-tam nejaká ascii grafika, zázraky rozhodne nečakajte ...


Ale dosť bolo rečí - poďme na to!


Takže prižmúrte oči a hups! o viac ako 40 rokov dozadu ... sci-fi v reále. Príjemnú zábavu !

 

Obidva programy sú urobené tak že komunikujú cez Win Hyperterminál, nahrávajú sa pomocou záložky Transfer a v nej cez Send Text File ... :

Jednoduchý trik ako dosiahnuť rozlíšenie 80 znakov riadku (ak máme nastavených trebárs 72 znakov v riadku) - bez potreby reštartu SBC6502 stačí zadať príkaz POKE 15,80

 

 

 

Pretože sa jedná o čisté textové súbory tak sa to len jednoducho natiahne do Win Hyperterminálu a následne sa program spustí pomocou príkazu RUN. Ja Hyperterminál používam na WIN7 64bit (HT som si skopíroval z WinXP, pretože 7-ky už HT v sebe nemajú). Ale aj tak funguje bez problémov a na jednotku.

 

WORLD_WARIII_bas.txt (4,81 kb)

 

 

___________________________________________________________________________________________

 

Starwars1_bas.txt (12,32 kb)

 

____________________________________________________________

09.10.2018

 

 

Teraz už môže nasledovať ďalšia hra STARTREK, upravil som ju tak isto pre SBC6502 a dodal aj nejakú tú grafiku (program sa už celkom slušne natiahol svojou dĺžkou), hra bola pôvodne napísaná pre počítač UNIVAC:

STARTREK_bas.txt (17,97 kb)

 

Nasleduje návod do hry STARTREK - pre tých čo nevedia o čo ide:


..STRINFO...from MERITSS : GAME  12-15-77
THIS PROGRAM LISTS THE RULES FOR RUNNING BASIC PROGRAM STARTRK"
  
          T H E   S T A R S H I P   E N T E R P R I S E"
          =====   ===============   ==================="
  
      =///////////////////)                / \"
        `-----------   ---        ////////     \\\\\\\\"
                    [ ]           \\\\\\\\     ////////"
                    [ ]            /   /  ++++>"
                    [ ]          /   /"
                 //++++++++++++/   /+'"
                  (        . .. .   >(-"
                    +++...        +"
                           ++++//"
  
          THE GENERAL BACKGROUND AND SITUATION  "
          === ======= ========== === ========= "
  1. OUR BASIC ARMAMENT CONSISTS OF PHOTON TORPEDOES & PHASERS"
      A.PHOTON TORPEDOES"
        TORPEDOES ARE EFFECTIVE AT RANGES BETWEEN 200,000 AND 600,000"
        KM.THEY CAN BE FIRED ONLY DIRECTLY FORWARD OR DIRECTLY AFT."
        HOWEVER, WHEN SO FIRED THEY CAN HOME IN ON TARGETS AS MUCH AS"
        5 DEGREES OFF THE SHIP'S BEARING DUE TO AN AUTOMATIC GUIDANCE"
        SYSTEM.  HOWEVER, THE PROBABILITY OF THE AUTOMATIC GUIDANCE"
        TO DESTROY A KLINGON HEAVY CRUISER."
     B. PHASORS"
        BE FIRED FORWARD OR AFT IN ANY DIRECTION UP TO 45 DEGREES OFF"
        IS TO THE SHIP'S BEARING.  ON THE AVERAGE 8 PHASOR HITS ARE"
        REQUIRED TO DESTROY A KLINGON HEAVY CRUISER."
     2. KLINGON WEAPON CAPABILITES ARE ESSENTIALLY THE SAME AS OURS"
        EXCEPT THAT THEY POSSESS NEW-TYPE FIRE DIRECTION CAPABILITES"
        WHICH ALLOW THEIR PHASORS TO SCORE ALMOST CERTAIN HITS UPON"
        DIRECTION FROM THE BEARING LINE OF THE KLINGON CRUISER."
     3. THE COORDINATE AND AZIMUTH SYSTEM"
        AZIMUTHS AND BEARINGS ARE MEASURED IN A NAVIGATIONAL"
        COORDINATE SYSTEM, WITH 0 DEGREES ALONG THE POSITIVE"
        Y-AXIS, AND MEASURED IN A CLOCKWISE DIRECTION, I.E."
        90 DEGREES IS ALONG THE POSITIVE X-AXIS, 180 DEGREES"
        ALONG THE NEGATIVE Y-AXIS, AND 270 DEGREES ALONG THE"
        NEGATIVE X-AXIS."
        AZIMUTH IS A CLOCKWISE ANGLE FROM A LINE PASSING THROUGH"
        THE ENTERPRISE, PARALLEL TO THE POSITIVE Y-AXIS (0 DEGREES)"
        TO A LINE PASSING FROM THE ENTERPRISE TO THE KLINGON."
        ENTERPRISE AND KLINGON BEARINGS ARE THEIR COURSE ANGLES"
        MEASURED FROM A LINE PASSING THROUGH THE SHIP THAT IS"
        PARALLEL TO THE Y-AXIS."
        THE BEARING OF A SHIP IS THE DIRECTION THAT SHIP IS HEADING."
        AZIMUTH IS THE DIRECTION FROM THE ENTERPRISE TO THE KLINGON."
     4. WE ARE CAPABLE OF 4 BASIC TACTICAL MANEUVERS"
        ORDER TYPE 1 - WARP MANEUVER"
        CHANGE COURSE TO ANY DIRECTION, AND MOVE IN THAT DIRECTION AT"
        THE VIOLENCE OF HIS MANEUVER OR RISK DAMGE TO HIS SHIP.  SOME"
        MANEUVER WARP SPEEDS TIMES THE NUMBER OF DEGREES CHANGE OF"
        BEARING EXCEEDS 1000.  IF YOU GIVE SUCH A COMMAND, MR.SCOTT"
        WILL WARN YOU OF THE DAMAGE POTENTIAL.  YOU MAY OVERRIDE HIS"
        WARNING IF YOU DESIRE."
        ORDER TYPE 2 - EVASIVE ACTION"
        CHANGE COURSE TO ANY DIRECTION AND MOVE IN THAT DIRECTION "
        AT WARP 1 OR WARP 2 SPEED.  WHEN YOU HAVE MOVED TO THE NEW"
        POSITION TURN IN ANY DIRECTION AND FIRE ANY DESIRED WEAPON."
        NATURALLY AT THE TIME OF FIRING THE ENEMY WILL NOT BE AT HIS"
        PRESENT POSITION BUT AT THAT FOR THE NEXT CYCLE OF THE GAME."
        ORDER TYPE 3 - WEAPONS EXPLOITATION"
        CONTINUE ON PRESENT HEADING, FIRING TWICE.  FIRST SHOT WILL"
        BE FIRED FROM PRESENT POSITION AND WILL TAKE EFFECT WHEN "
        ENEMY IS HALFWAY BETWEEN PRESENT POSITION AND POSITION ON"
        NEXT GAME CYCLE.  SECOND SHOT WILL BE FIRED FROM OUR POSITION"
        AT END OF GAME CYCLE.  IT WILL TAKE EFFECT WHEN ENEMY IS AT"
        THE END OF HIS GAME CYCLE."
        ORDER TYPE 4 - FIRING MANEUVER"
        EXECUTE A MAXIMUM DECELERATION STOP, TURN IN ANY DIRECTION"
        AND FIRE AT ENEMY.  YOUR FIRING POSITION IS ASSUMED TO BE"
        YOUR PRESENT POSITION.  ENEMY IS HALFWAY BETWEEN PRESENT"
        POSITION AND NEW POSITION AT TIME SHOT TAKES EFFECT."
        NOTE - THIS MANEUVER IS DANGEROUS!  IT MAKES THE ENTERPRISE"
        A STATIONARY TARGET - A SITTING DUCK FOR KLINGON GUNNERS!"
     5. YOUR SHIP'S OFFICERS CAN PROVIDE 6 TYPES OF REPORTS IN"
        RESPONSE TO YOUR ORDERS IN A TACTICAL SITUATION.  GETTING"
        A REPORT DOES NOT COST YOU A CYCLE OF PLAY."
        ORDER TYPE 5 - BATTLE SUMMARY REPORT"
        FOR EACH CYCLE OF THE GAME, THE DAMAGE, BEARING, WARP AND"
        X AND Y POSITIONS OF THE ENTERPRISE & KLINGON ARE REPORTED"
        BY MR.SPOCK."
        ORDER TYPE 6 - WEAPONS DEPLOYMENT EFFECTIVENESS REPORT"
        MR.SPOCK REQUESTS YOUR ESTIMATE OF OWN AND ENEMY LOCATIONS"
        AT SOME TIME IN THE FUTURE, WHETHER KLINGON OR"
        ENTERPRISE IS FIRING AND BEARING OF SHIP DOING FIRING.  HE"
        GIVES A HIT PROBABILITY FOR EACH POSSIBLE TYPE OF"
        WEAPONS FIRE."
        ORDER TYPE 7 - FUTURE POSITION COMPUTATION REPORT"
        MR.SPOCK ASKS WHETHER YOU WANT A FUTURE POSITION COMPUTATION"
        FOR ENTERPRISE OR KLINGON, THEN REQUESTS BEARING AND WARP OF"
        IF THIS BEARING AND WARP ARE USED."
      ORDER TYPE 8 - COURSE & SPEED COMPUTATION"
        MR.SPOCK COMPUTES COURSE AND SPEED REQUIRED TO REACH A"
        DESIGNATED X AND Y COORDINATE POSITION."
      ORDER TYPE 9 - STRATEGIC SITUATION SUMMARY"
        MR. SPOCK GIVES THE CURRENT SITUATION."
      ORDER TYPE 10 - INTELLIGENCE PREDICTION OF NEXT KLINGON MOVE"
 
 
        SAVE THE FOLLOWING SUMMARY OF MANEUVER & REPORT TYPES"

     **********************************************************"
 
            TACTICAL MANEUVER ORDER TYPES"
        1 = WARP MANEUVER (ANY DIRECTION, ANY SPEED, NO FIRING)"
        4 = FIRING MANEUVER (STOP DEAD, FIRE ANY DIRECTION)"
            SHIP'S OFFICERS REPORTS (DO NOT COST A GAME TURN)"
        5 = BATTLE SUMMARY REPORT (VERY LONG IF GAME IS OLD)"
        6 = WEAPONS DEPLOYMENT & EFFECTIVENESS EVALUATION"
        7 = ANTICIPATED FUTURE POSITION COMPUTATION"
        8 = REQUIRED COURSE AND SPEED COMPUTATION"
        9 = STRATEGIC SIUATION SUMMARY"
       10 = INTELLIGENCE PREDICTION OF NEXT KLINGON MOVE"
 
     ********************************************************"
 
     NOW RUN PROGRAM  'GAME,STARTREK'  ! ! ! ! "
     P.S."
     IT IS RUMORED THAT NO ONE HAS BEEN ABLE TO WIN"
     3 CONSECUTIVE GAMES OF STARTRK AT THE GRANDMASTER LEVEL."
     GOOD LUCK."

___________________

Takže kto chce si to môže vyskúšať, je to naozaj iné ako keď v počítači máte priamo zabudovanú grafiku ...

Teraz môžete priamo nasať atmosféru tej doby - a o tom to je.

____________________________________________________________

Návrat do všetkých pokračovaní o SBC6502:

http://blog.3b2.sk/igi/post/SBC6502-0-UvodIntroduction.aspx

_____________________________________________________

Vaše hodnotenie, Rate post:

Comments

16. 6. 2018 18:56:29 #

trackback

Directory SBC6502

Directory SBC6502

Igi blog |

Info o autorovi

Volám sa Igor Gramblička, bydlisko: Bratislava, Slovakia. Môj nick: Igi. Blog je o mojich záujmoch, predtým som pracoval ako IT špecialista na počítačové siete a redakčné systémy pre viaceré denníky - až som pred rokmi nakoniec v jednom z nich zakotvil a kde som to potiahol až do konca mojej profesnej kariéry.

Rok, mesiac, počet článkov: