Sida aan xogta qaab aan la garanayn uga soo ceshay cajalad birlab ah

prehistory

Anigoo ah qof jecel qalabka retro, waxaan mar ka iibsaday ZX Spectrum+ iibiye jooga UK. Marka lagu daro kombuyuutarka laftiisa, waxaan helay dhowr cajaladood oo maqal ah oo leh ciyaaro (baakadaha asalka ah ee tilmaamaha), iyo sidoo kale barnaamijyo lagu duubay cajalado aan lahayn calaamado gaar ah. Waxaa la yaab leh, xogta cajalado 40-sano jir ah ayaa si fiican loo akhrin karaa waxaana awooday inaan ka soo dejiyo ku dhawaad ​​dhammaan ciyaaraha iyo barnaamijyada iyaga.

Sida aan xogta qaab aan la garanayn uga soo ceshay cajalad birlab ah

Si kastaba ha ahaatee, cajaladaha qaar waxaan ka helay cajalado aan si cad u samayn kombayutarka ZX Spectrum. Waxay u dhawaqeen gabi ahaanba kala duwanaansho iyo, si ka duwan duubitaannada kumbuyuutarka ee la sheegay, kuma aysan bilaabin bootloader gaaban oo Aasaaska ah, kaas oo inta badan ku jira duubista dhammaan barnaamijyada iyo ciyaaraha.

In muddo ah tani way i dhibtay - runtii waxaan doonayay inaan ogaado waxa iyaga ku qarsoon. Haddii aad u akhrin karto ishaarka maqalka ee isku xigxiga bytes, waxaad raadin kartaa jilayaal ama wax kasta oo tilmaamaya asalka calaamada. Nooc ka mid ah dib-u-fiirinta qadiimiga.

Hadda oo aan jidka dhan maray oo aan eegay calammada cajaladaha laftooda, waan dhoola caddeeyaa sababtoo ah

jawaabtu waxay ahayd mid indhahayga hor taagan oo dhan
Calaamadda cajalka bidix waxa ku yaal magaca kumbiyuutarka TRS-80, oo wax yar ka hooseeya magaca soo saaraha: "Waxa soo saaray Radio Shack ee Maraykanka"

(Haddii aad rabto inaad sii waddo khiyaanada ilaa dhammaadka, ha hoos gelin khasriga)

Isbarbardhigga calaamadaha maqalka

Marka hore, aynu digitize ka dhigno cajaladaha la duubay. Waxaad dhagaysan kartaa waxay u egtahay:


Iyo sida caadiga ah duubista kumbuyuutarka ZX Spectrum wuxuu u dhawaaqaa:


Labada xaaladood, bilowga duubista waxaa jira wax loogu yeero codka duuliyaha - dhawaaq isku mid ah (duubista hore aad bay u gaaban tahay <1 ilbiriqsi, laakiin waa la kala saari karaa). Codka duuliyaha ayaa kombuyuutarku u tilmaamaya inuu isu diyaariyo inuu helo xogta. Sida caadiga ah, kombuyuutar kastaa wuxuu ku aqoonsanayaa kaliya dhawaaqa duuliye ee "u gaar ah" qaabka calaamadda iyo inta jeer ee ay tahay.

Waa lagama maarmaan in wax laga sheego qaabka calaamadda lafteeda. Tusaale ahaan, ZX Spectrum qaabkeedu waa leydi:

Sida aan xogta qaab aan la garanayn uga soo ceshay cajalad birlab ah

Marka la ogaado codka tijaabada, ZX Spectrum wuxuu soo bandhigayaa baararka guduudan iyo buluugga ah ee soohdinta shaashadda si ay u muujiyaan in calaamadda la aqoonsaday. Codka duuliyuhu wuu dhammaanayaa garaaca wadnaha synchro, kaas oo u sheega kombayutarka inuu bilaabo helida xogta. Waxaa lagu gartaa muddo gaaban (marka la barbar dhigo codka tijaabada iyo xogta ku xigta) (eeg sawirka)

Ka dib marka la helo garaaca isku dhafka ah, kumbuyuutarku wuxuu diiwaangeliyaa kor u kac kasta / hoos u dhac kasta oo calaamad ah, isagoo cabbiraya muddada. Haddii muddadu ay ka yar tahay xad go'an, bit 1 ayaa lagu qoraa xusuusta, haddii kale 0. Qaybaha waxaa lagu soo ururiyaa bytes oo habka ayaa lagu celiyaa ilaa N bytes laga helayo. Lambarka N waxaa badanaa laga soo qaataa madaxa faylka la soo dejiyay. Isku xigxiga loading waa sida soo socota:

  1. codka duuliyaha
  2. madaxa (dhererka go'an), ka kooban cabbirka xogta la soo dejiyey (N), magaca faylka iyo nooca
  3. codka duuliyaha
  4. xogta lafteeda

Si loo hubiyo in xogta si sax ah loogu shubay, ZX Spectrum wuxuu akhriyaa waxa loogu yeero sinnaanta byte (Parity byte), kaas oo la xisaabiyo marka faylka la kaydinayo iyadoo la XOR saarayo dhammaan baytyada xogta qoran. Marka la akhrinayo fayl, kombuyuutarku wuxuu xisaabiyaa byte-ka sinnaanta xogta la helay, haddii natiijadu ka duwan tahay tan la keydiyay, wuxuu soo bandhigayaa fariinta qaladka "R Tape loading error". Marka si adag loo hadlo, kombuyuutarku wuxuu soo saari karaa fariintan wakhti hore haddii, marka la akhrinayo, aanu aqoonsan karin garaaca wadnaha (la seegay ama mudada uu soconayo aysan u dhigmin xad gaar ah)

Haddaba, aan hadda aragno sida uu u eg yahay calaamad aan la garanayn:

Sida aan xogta qaab aan la garanayn uga soo ceshay cajalad birlab ah

Tani waa codka tijaabada. Qaabka calaamaduhu aad buu u kala duwan yahay, laakiin way caddahay in calaamaduhu ka kooban yahay soo noqnoqda garaaca gaaban ee soo noqnoqda. Inta jeer ee muunad ee 44100 Hz, masaafada u dhaxaysa "sare" waa qiyaastii 48 muunad (taas oo u dhiganta inta jeer ee ~ 918 Hz) Aan xasuusanno jaantuskan.

Aynu hadda eegno jajabka xogta:

Sida aan xogta qaab aan la garanayn uga soo ceshay cajalad birlab ah

Haddii aan cabbirno masaafada u dhaxaysa garaaca wadnaha, waxaa soo baxday in masaafada u dhaxaysa garaaca "dheer" ay weli tahay ~ 48 muunado, iyo inta u dhaxaysa kuwa gaaban - ~ 24. In yar oo hore u sii eegaya, waxaan dhihi doonaa in dhamaadka ay soo baxday in "tixraac" garaaca wadnaha ee soo noqnoqda ee 918 Hz ay ​​si joogto ah u socdaan, laga bilaabo bilawga ilaa dhamaadka faylka. Waxaa loo qaadan karaa in marka la gudbinayo xogta, haddii garaaca garaaca dheeraad ah la kulma inta u dhaxaysa garaaca tixraaca, waxaan u tixgelinaynaa sida bit 1, haddii kale 0.

Ka warran garaaca garaaca wadnaha? Aynu eegno bilawga xogta:

Sida aan xogta qaab aan la garanayn uga soo ceshay cajalad birlab ah

Codka duuliyuhu wuu dhammaanayaa xogtuna waxay bilaabmaysaa isla markiiba. Wax yar ka dib, ka dib markii aan falanqeynay dhowr cajaladood oo kala duwan, waxaan awoodnay inaan ogaano in byte-ka ugu horreeya ee xogta had iyo jeer ay isku mid yihiin (10100101b, A5h). Kumbuyuutarku waxa laga yaabaa inuu bilaabo akhrinta xogta ka dib marka uu helo.

Waxa kale oo aad fiiro gaar ah u yeelan kartaa isbeddelka garaaca wadnaha tixraaca ugu horreeya isla markiiba ka dib 1aad ee ugu dambeeya ee byte-ga sync. Waxa la ogaaday in badan ka dib habka loo samaynayo barnaamijka aqoonsiga xogta, markii xogta bilowga faylka aan loo akhrin karin si adag.

Hadda aan isku dayno inaan sharaxno algorithm ka shaqeyn doona faylka maqalka ah iyo rarka xogta.

Soodejinaya Xogta

Marka hore, aan eegno dhowr male-awaal si aan u ilaalino algorithm-ka mid fudud:

  1. Waxaan kaliya tixgelin doonaa faylasha qaabka WAV;
  2. Faylka maqalku waa inuu ku bilaabmaa dhawaaq tijaabo ah waana inaanu ku jirin aamusnaanta bilowga
  3. Faylka isha waa inuu lahaadaa qiyaas muunad ah 44100 Hz. Xaaladdan oo kale, masaafada u dhaxaysa garaaca tixraaca ee 48 muunado ayaa mar hore la go'aamiyay oo uma baahnid inaan xisaabiyo barnaamij ahaan;
  4. Qaabka muunada ahi waxa uu noqon karaa mid kasta (8/16 bits/points floating point) - maadaama marka wax la akhrinayo aan u rogi karno midka la rabo;
  5. Waxaan u maleyneynaa in feylka isha uu caadi ahaan yahay xajmiga, taas oo ah in ay dejiso natiijada;

Algorithm-ka akhrisku wuxuu noqon doonaa sida soo socota:

  1. Waxaan u akhrinay faylka xusuusta, isla markaana u beddelaya qaabka muunada ilaa 8 bits;
  2. Go'aami booska garaaca garaaca koowaad ee xogta maqalka. Si tan loo sameeyo, waxaad u baahan tahay inaad xisaabiso tirada muunada oo leh baaxadda ugu badan. Si ay u fududaato, waxaanu ku xisaabin doonaa hal mar gacanta. Aynu ku kaydino doorsoomiyaha prev_pos;
  3. Ku dar 48 booska garaaca wadnaha u dambeeya (pos:= prev_pos + 48)
  4. Maaddaama kordhinta booska 48 aysan dammaanad qaadin inaan heli doono booska garaaca garaaca xiga ee xiga (ciladaha cajaladaha, hawlgalka aan xasilloonayn ee habka wadista cajaladda, iwm.), waxaan u baahanahay inaan hagaajino booska garaaca garaaca wadnaha. Si aad tan u samayso, qaado qayb yar oo xog ah (pos-8;pos+8) oo ka hel cabbirka ugu sarreeya. Booska u dhigma inta ugu badan waxa lagu kaydin doonaa boos. Halkan 8 = 48/6 waa tijaabo si joogto ah loo helay, taas oo dammaanad qaadaysa inaan go'aamin doono ugu badnaan sax ah oo aan saameyn ku yeelan doonin dareenka kale ee laga yaabo inay u dhow. Xaalado aad u xun, marka masaafada u dhaxaysa garaaca wadnaha ay aad uga yar tahay ama ka weyn tahay 48, waxaad hirgelin kartaa raadinta qasabka ah ee garaaca wadnaha, laakiin gudaha xadka maqaalka anigu ku tilmaami maayo algorithm;
  5. Talaabadii hore, waxa kale oo lagama maarmaan noqon doonta in la hubiyo in garaaca garaaca wadnaha la helay gabi ahaanba. Taasi waa, haddii aad si fudud u raadiso ugu badnaan, tani ma dammaanad qaadayso in dareenku ku jiro qaybtan. Hirgelintaygii ugu dambeeyay ee barnaamijka akhriska, waxaan hubiyaa farqiga u dhexeeya qiimaha ugu sarreeya iyo ugu yaraan qayb, iyo haddii ay dhaafto xad gaar ah, waxaan xisaabinayaa joogitaanka dareenka. Su'aashu waxay sidoo kale tahay waxa la sameeyo haddii garaaca tixraaca aan la helin. Waxaa jira 2 doorasho: ama xogtu way dhammaatay oo aamusnaanta ayaa raacda, ama tan waa in loo tixgeliyaa khalad akhris. Si kastaba ha ahaatee, waxaan uga tagi doonaa tan si aan u fududeyno algorithm;
  6. Tallaabada xigta, waxaan u baahanahay inaan go'aamino joogitaanka garaaca xogta (bit 0 ama 1), tan waxaan qaadaneynaa bartamaha qaybta (prev_pos;pos) middle_pos oo la mid ah middle_pos : = (prev_pos+pos) / 2 iyo Xaafadaha dhexe ee qaybta (midd_pos-8;midd_pos +8) aynu xisaabino baaxadda ugu badan iyo ugu yaraan. Haddii farqiga u dhexeeya uu ka badan yahay 10, waxaan ku qornaa xoogaa 1 natiijada, haddii kale 0. 10 waa tijaabo joogto ah oo la helay;
  7. Ku keydi booska hadda ee prev_pos (prev_pos := pos)
  8. Ku celi bilawga talaabada 3 ilaa aynu akhrino faylka oo dhan;
  9. Soo koobida xoogaa yar ee ka soo baxay waa in loo kaydiyaa qaab bytes ahaan. Maaddaama aynaan xisaabta ku darsan isku-darka byte-ka marka la akhrinayo, tirada-bits-ku waxa laga yaabaa in aanay noqon tiro 8 ah, iyo waxa loo baahan yahay in la dhimo sidoo kale lama garanayo. Hirgelinta koowaad ee algorithm-ka, ma aanan ogeyn jiritaanka sync byte oo sidaas darteed si fudud u badbaadiyay 8 faylasha oo leh tirooyin kala duwan oo jajab ah. Mid ka mid ah ayaa ka koobnaa xog sax ah. Algorithm-ka kama dambaysta ah, waxaan si fudud uga saaraa dhammaan jajabyada ilaa A5h, taas oo ii ogolaanaysa inaan isla markiiba helo faylka saxda ah ee wax soo saarka

Algorithm ee Ruby, ee kuwa xiiseynaya
Waxaan u doortay Ruby luqadda lagu qoro barnaamijka, sababtoo ah... Inta badan waan barnaamijiyaa. Ikhtiyaarka maaha wax-qabad sare, laakiin hawsha samaynta xawaaraha akhriska sida ugu dhakhsaha badan ee suurtogalka ah maaha mid u qalma.

# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ gem 'wavefile'
require 'wavefile'

reader = WaveFile::Reader.new('input.wav')
samples = []
format = WaveFile::Format.new(:mono, :pcm_8, 44100)

# Π§ΠΈΡ‚Π°Π΅ΠΌ WAV Ρ„Π°ΠΉΠ», ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Mono, 8 bit 
# Массив samples Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· Π±Π°ΠΉΡ‚ со значСниями 0-255
reader.each_buffer(10000) do |buffer|
  samples += buffer.convert(format).samples
end

# ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° (вмСсто 0)
prev_pos = 0
# РасстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°ΠΌΠΈ
distance = 48
# Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ расстояния для окрСстности поиска локального максимума
delta = (distance / 6).floor
# Π‘ΠΈΡ‚Ρ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ строки ΠΈΠ· "0" ΠΈ "1"
bits = ""

loop do
  # РассчитываСм ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°
  pos = prev_pos + distance
  
  # Π’Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° Ссли Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»ΠΈΡΡŒ 
  break if pos + delta >= samples.size

  # ΠšΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ pos ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ максимума Π½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ [pos - delta;pos + delta]
  (pos - delta..pos + delta).each { |p| pos = p if samples[p] > samples[pos] }

  # Находим сСрСдину ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ° [prev_pos;pos]
  middle_pos = ((prev_pos + pos) / 2).floor

  # Π‘Π΅Ρ€Π΅ΠΌ ΠΎΠΊΡ€Π΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π² сСрСдинС 
  sample = samples[middle_pos - delta..middle_pos + delta]

  # ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ Π±ΠΈΡ‚ ΠΊΠ°ΠΊ "1" Ссли Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π° ΠΎΡ‚Ρ€Π΅Π·ΠΊΠ΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 10
  bit = sample.max - sample.min > 10
  bits += bit ? "1" : "0"
end

# ΠžΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅ΠΌ синхро-Π±Π°ΠΉΡ‚ ΠΈ замСняСм всС ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π±ΠΈΡ‚Ρ‹ Π½Π° 256 Π±ΠΈΡ‚ Π½ΡƒΠ»Π΅ΠΉ (согласно спСцификации Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°) 
bits.gsub! /^[01]*?10100101/, ("0" * 256) + "10100101"

# БохраняСм Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Ρ„Π°ΠΉΠ», упаковывая Π±ΠΈΡ‚Ρ‹ Π² Π±Π°ΠΉΡ‚Ρ‹
File.write "output.cas", [bits].pack("B*")

natiijada

Markii aan isku dayay dhowr nooc oo algorithm iyo joogto ah, waxaan nasiib u yeeshay inaan helo wax aad u xiiso badan:

Sida aan xogta qaab aan la garanayn uga soo ceshay cajalad birlab ah

Markaa, anagoo ku qiimaynayna xargaha jilayaasha, waxaanu haynaa barnaamij lagu sawirayo garaafyada. Si kastaba ha ahaatee, ma jiraan ereyo muhiim ah oo ku jira qoraalka barnaamijka. Dhammaan ereyada muhiimka ah waxaa loo koodh ahaan u dhigma bytes ahaan (qiimo kasta> 80h). Hadda waxaan u baahanahay inaan ogaano kumbiyuutarka 80-meeyadii ee kaydin kara barnaamijyada qaabkan ah.

Dhab ahaantii, waxay aad ugu egtahay barnaamijka AASAASIGA AH. Kumbuyuutarka ZX Spectrum wuxuu u kaydiyaa barnaamijyo isku qaab ah oo xusuusta ah wuxuuna kaydiyaa barnaamijyada duubista. Haddii ay dhacdo, waxaan ka hubiyay ereyada muhiimka ah miis. Si kastaba ha ahaatee, natiijadu waxay ahayd mid xun.

Waxa kale oo aan hubiyay ereyada aasaasiga ah ee Atari caanka ah, Commodore 64 iyo kombiyuutarro kale oo badan oo wakhtigaas ah, kuwaas oo aan awooday inaan helo dukumeenti, laakiin aan ku guulaysan - aqoontayda noocyada kombiyuutarada retro waxay noqdeen kuwo aan sidaas u ballaaranayn.

Kadib waxaan go'aansaday inaan tago liiska, ka dibna indhahaygu waxay ku dhaceen magaca soo saaraha Radio Shack iyo kumbuyuutarka TRS-80. Waa magacyadii ku qornaa calammada cajaladihii miiskayga saarnaa! Magacyadan hore uma aqaanin oo kombayutarka TRS-80 ayaan aqoon u lahayn, markaa waxay iila muuqatay in Radio Shack uu yahay mid soo saara cajaladaha maqalka ah sida BASF, Sony ama TDK, TRS-80-kuna uu ahaa wakhtiga dib-u-ciyaarista. Maxaa diidaya?

Computer Tandy/Radio Shack TRS-80

Waxay u badan tahay in codkii la duubay ee aan tusaale ahaan u soo qaatay bilawgii maqaalka, in lagu sameeyay kombuyuutar sidan oo kale ah.

Sida aan xogta qaab aan la garanayn uga soo ceshay cajalad birlab ah

Waxaa soo baxday in kumbuyuutarkan iyo noocyadiisa (Model I/Model III/Model IV, iwm) ay ahaayeen kuwo aad loo jecel yahay hal mar (dabcan, maahan Ruushka). Waxaa xusid mudan in processor-ka ay isticmaaleen uu isna ahaa Z80. Kumbiyuutarkan waxaad ka heli kartaa internetka xog badan. Sanadihii 80aadkii, macluumaadka kombuyuutarka ayaa la qaybiyay majaladaha. Hadda waxaa jira dhowr ku dayashada kombiyuutarada loogu talagalay goobo kala duwan.

Waxaan soo dejiyey emulator-ka trs80gp oo markii ugu horeysay waxaan awooday inaan arko sida uu u shaqeeyo kumbuyuutarka. Dabcan, kombuyuutarku ma taageeri wax soo saarka midabka; xallinta shaashaddu waxay ahayd kaliya 128x48 pixels, laakiin waxaa jiray kordhin iyo wax ka beddello badan oo kordhin kara xallinta shaashadda. Waxa kale oo jiray xulashooyin badan oo loogu talagalay nidaamyada hawlgalka ee kumbuyuutarkan iyo xulashooyinka hirgelinta luqadda AASAASIGA ah (kuwaas oo ka duwan ZX Spectrum, moodooyinka qaarkood xitaa β€œflash” lama gelin ROM-ka oo ikhtiyaar kasta ayaa laga soo dejin karaa diskka, sida OS laftiisa)

Sidoo kale waan helay utility in cajaladaha maqalka ah loo beddelo qaabka CAS, kaas oo ay taageerayaan ku-sameeyayaasha, laakiin sababo jira awgeed ma suuroobin in la akhriyo cajaladaha cajaladayda anigoo isticmaalaya.

Markii aan ogaaday qaabka faylka CAS (kaas oo noqday nuqul ka mid ah xogta cajaladdii aan horey gacanta ugu haystey, marka laga reebo madaxa oo ay weheliso byte isku dhafan), waxaan sameeyay wax yar oo isbedel ah oo ku yimid barnaamijkayga waxaana awooday inuu soo saaro faylka CAS ee shaqeeya kaas oo ka shaqeeyay emulator (TRS-80 Model III):

Sida aan xogta qaab aan la garanayn uga soo ceshay cajalad birlab ah

Waxaan naqshadeeyay nooca ugu dambeeyay ee utility beddelka iyadoo si toos ah go'aaminta garaaca ugu horreeya iyo masaafada u dhaxaysa garaaca tixraaca sida xirmo GEM ah, koodhka isha ayaa laga heli karaa at Github.

gunaanad

Waddadii aan soo marnay waxa ay noqotay safar soo jiidasho leh oo aan hore u galnay, waxaanan ku faraxsanahay in ugu dambayntii aan helay jawaabta. Waxyaabaha kale, waxaan:

  • Waxaan ogaaday qaabka loo kaydiyo xogta ZX Spectrum oo aan bartay habka ku dhex dhisan ROM-ka ee kaydinta/akhrinta xogta cajaladaha maqalka ah
  • Waxaan bartay kumbuyuutarka TRS-80 iyo noocyadiisa, waxaan bartay nidaamka qalliinka, fiiri barnaamijyada muunada iyo xitaa waxaan fursad u helay inaan qalad ku sameeyo koodhadhka mashiinka (ka dib oo dhan, dhammaan mnemonics Z80 waa ay yaqaanaan aniga)
  • Waxa uu qoray utility dhamaystiran oo loogu badalo cajaladaha maqalka qaabka CAS, kaas oo akhriyi kara xogta aan aqoonsan "rasmiga ah" utility

Source: www.habr.com

Add a comment