notes

/Home ....
....

ceturtdiena, 2012. gada 6. septembris

C uz MSX programmēšana


Svarīgi: WebMSX nu jau MSX2, var lietot arī jsMSX1.
Latvija vēsturiski ir MSX zeme aiz Japānas. Noteikti atradīsies Yamaha konsoļu fanāti, izslāpuši pēc kāda C koda uzrakstīšanas, mums bija lielisks PSRS skolām ražots melns MSX2 ar lielām ērtām kursora pogām.
Ja vēlamies nopietnu izstrādi, lietosim rīkus SDCC vai z88dk . Pilnīgi iespējams ir radīt kādu spēļuku 80-to gadu stilā, fani par to parūpējušies. Zemāk piedāvāju emulētus kompilatorus, kuri darbojās jau toreiz, tikai piemēra un jautrības pēc.
Tam vajag (tālāk precīzi soļi):
1. Uzinstalēt blueMSX . Tas ir labākais un ātrākais MSX emulators.
2. Lejuplādē un atarhivē šo arhīva failu, kas satur katalogu MyC un dokumentāciju, lai nav jāmeklē par MSX pa visu pasauli. Otrs ir SOLIDC kompilators un failiņš ir šis.
3. Startē blueMSX un norādi kā pirmo disku katalogu MyC, pieliekot ķeksi pie Reset After Insert.
4. BlueMSX opcijās uzreiz uzliec maksimālo ātrumu 999%
5. Viss gatavs. Reboot un darbojas.

MyC
SolidC

Kā programmēt? Vienkārši.
Viss, kas jāzina:
  katalogā MyC ir HELLO.C, kas ir MSX C programma. Atver turpat Window-sā ar Notepad un raksta.
Pēc saglabāšanas blakus atvērtajā emulatorā 1.diskam pieliek to pašu MyC katalogu (obligāti jāuzmanās lai tā saturs nepārsniedz 720Kb) un uzreiz viss startēsies no jauna līdz pat "HELLO WORLD" uzrakstam, ko drukā priekš MSX-DOS1*  nokompilētais HELLO.COM.
*Vēsturiski bija MSX1 un MSX2 konsoles (dzelži). MSX2 bija daudz labāka. MSX-DOS ir sistēma (programmatūra), kur pirmā versija lieliski darbojās arī uz MSX2. 


Ja gribās redzēt grafikas piemēru, emulatorā tagad startējam MKQ un iegūstam skrejošas līnijas.



Debug lietošana atkrīt. Emulatoram ir debugeris, bet tam C nav paredzēts.
Par C programmu:

#include <stdio.h>
main()
{
printf("HELLO WORLD\n");
getch();
}

Visparastākais C.  Ir gan unsigned integer tipi, gan MSX grafikas iespējas. Var rezervēt vietu atmiņā, definēt struktūru tipus. Pārbaudīju 16bitu skaitļu masīvus, tiešām viss darbojas. Bet nevajag pārcensties, viss ir ļoti kompakts dažos kilobaitos un nedaudz specifisks -mainīgo tipi savi, jādefinē lai linkeris saprot, utt. Izlasot aprakstiņus, var lietot visas MSX funkcionalitātes, cik nu to it. Daudzpakāpju mazie .COM parseri, kompileri un linkeri pērvērš assemblerā un tad izpildāmā COM modulī. Var piekļūt beisikam un spraitoties, bet tas jālasa tehniskos aprakstos.
Protams, uzreiz programmējot assemblerā, kods sanāk vēl kompaktāks, tomēr nez vai kāds ar to cīnīsies. Dižās spēles uz MSX visas rakstītas assemblerā. Nākamajā rakstā izvērsos par MSX programmēšanu assemblerā, kas ļoti vien ir iespējams arī uz Windows. Ja tā dziļi MSX iepatīkas, tad šo vajag apskatīt.

Dažas nianses darba uzlabošanai, ja tas nepieciešams:
Windows padara katalogu MyC tikai lasīšanas režīmā. Lai no MSX kautko dabūtu ārā uz PC, vajag lietot diska imidža failu - 720Kb disketi. Savukārt tam nepieciešama sava menedžera programma, līdzīgi kā Zip. Šeit esmu sagatavojis MyC katalogu kā vienu diska imidžu , ko var lejuplādēt un lietot kā disk1. Neērtības ir nelielas, jo tāpat programmēšana notiek virzienā Notepad->Emulators
Notepad nav labākais redaktors, ja tiek programmēts C valodā. Kļūdīties ar iekavām ir viegli. Turklāt šādi programmējot sanāks soli-pa-solim lēnām iebarot MSX konsolei pareizāko C salikumu.

Vilku bedres:
Ir C varianti, kas uz emulatora nedarbosies dēļ prasības pēc MSX-DOS2. Tad jāuzliek TurboR MSX versija. Agrākās spēles visas rakstītas uzreiz assemblerā. Pieejamas kā kārtridži (.ROM failiņi), vai disku imidži (.DSK failiņi). Darbojās uz emulēta MSX2. Citas programmēšanas valodas (basic, pascal, fortran) nebija īsti kompilējamas bināros vērā ņemamos moduļos.

Domas kāpēc:
MSX beisiks nebija slikts. Paskālu arī izmantoja daudzi. Bet pati konsole bija aizraujoša spēļmantiņa. Emulatoru šajā gadsimtā var izmantot kā visparastāko programmu ar valodu programmēšanas apgūšanai. Nekas jau daudz gudrāks pasaulē neparādās pirmajiem soļiem. Nopietni. Reku tauta taisa visādas spēlītes. Vispār zilais lodziņš ar lieliem burtiem totāliem ābečniekiem taisni kā taisīts. Mūsdienās čaiņikiem ir SmallBasic. MSX varēja beisikā uzzīmēt kontūru un ar PAINT x,y iepildīt krāsu - brīnišķīgs rīks mazo grafisko uzdevumu realizēšanai. Un beisiku iemanījušies arī nokompilēt ar xbasic.
BlueMSX var ierakstīt video failu ar ekrānā notiekošo, starp citu. Var kādu prezentāciju uzfilmēt. Mazam failam arī var piekļūt. Skaņa arī programmējama, bija izcils neatkarīgs čips, kas netraucēja spēli. Spraiti mazu spēlīšu radīšanai. Peli gan var panākt, emulējot jaunāku modeli. Tā visi konstruēja kursorus un tvarstīja klaviatūras buferi.

MSX nekur neizmirst tāpat kā DOSBox, ROM kasetes būs un Z80 8-bitu pročus arī vēl ražo. Par SDCC kompilatoru 8-bitu procesoriem var palasīt šeit, arī te, ja nu ļoti gribās iegrimt C valodā priekš tiem.

Ir arī MSX uz androīdiem, ja kas.

2012.septembris

Nav komentāru:

Ierakstīt komentāru