Yuav ua li cas kuv zoo tu qab tso cov ntaub ntawv nyob rau hauv ib tug tsis paub hom ntawv los ntawm magnetic daim kab xev

prehistory

Ua ib tus hlub ntawm retro kho vajtse, kuv ib zaug yuav ZX Spectrum + los ntawm tus muag khoom hauv UK. Nrog rau lub khoos phis tawj nws tus kheej, kuv tau txais ob peb lub suab kaw nrog cov kev ua si (hauv thawj ntim nrog cov lus qhia), nrog rau cov kev pab cuam kaw rau hauv cov ntawv kaw lus tsis muaj cov cim tshwj xeeb. Kuj ceeb tias, cov ntaub ntawv los ntawm 40-xyoo-laus cassettes tau nyeem tau zoo thiab kuv tuaj yeem rub tawm yuav luag txhua qhov kev ua si thiab cov kev pab cuam los ntawm lawv.

Yuav ua li cas kuv zoo tu qab tso cov ntaub ntawv nyob rau hauv ib tug tsis paub hom ntawv los ntawm magnetic daim kab xev

Txawm li cas los xij, ntawm qee qhov cassettes kuv pom cov kaw lus uas tsis tau ua los ntawm ZX Spectrum computer. Lawv sounded txawv kiag li thiab, tsis zoo li cov ntaub ntawv los ntawm lub computer hais, lawv tsis pib nrog ib tug luv luv BASIC bootloader, uas feem ntau yog tam sim no nyob rau hauv lub kaw lus ntawm tag nrho cov kev pab cuam thiab kev ua si.

Qee lub sij hawm qhov no haunted kuv - Kuv yeej xav paub seb dab tsi tau muab zais rau hauv lawv. Yog tias koj tuaj yeem nyeem cov teeb liab lub suab raws li cov kab ke ntawm bytes, koj tuaj yeem nrhiav cov cim lossis txhua yam uas qhia txog keeb kwm ntawm lub teeb liab. Ib hom ntawm retro-archaeology.

Tam sim no uas kuv tau mus tag nrho txoj kev thiab saib cov ntawv sau ntawm lub cassettes lawv tus kheej, kuv luag vim

cov lus teb yog nyob rau hauv pem hauv ntej ntawm kuv ob lub qhov muag tag nrho
Ntawm daim ntawv lo ntawm sab laug cassette yog lub npe ntawm TRS-80 lub computer, thiab hauv qab lub npe ntawm cov chaw tsim khoom: "Tshuaj los ntawm Xov Tooj Cua Shack hauv Tebchaws Meskas"

(Yog hais tias koj xav khaws lub intrigue mus txog thaum kawg, tsis txhob mus nyob rau hauv lub spoiler)

Kev sib piv ntawm cov suab paj nruag

Ua ntej tshaj, cia peb digitize cov suab kaw. Koj tuaj yeem mloog nws zoo li:


Thiab raws li niaj zaus cov ntaubntawv povthawj siv los ntawm ZX Spectrum lub computer suab:


Nyob rau hauv ob qho tib si, thaum pib ntawm cov ntaubntawv povthawj siv muaj ib tug thiaj li hu ua pilot tone - lub suab ntawm tib zaus (hauv thawj cov ntaub ntawv nws luv heev <1 thib ob, tab sis txawv). Lub suab nrov taw qhia lub computer los npaj kom tau txais cov ntaub ntawv. Raws li txoj cai, txhua lub khoos phis tawj tsuas paub txog nws tus kheej "tus kheej" lub suab nrov los ntawm cov duab ntawm lub teeb liab thiab nws qhov zaus.

Nws yog ib qho tsim nyog los hais ib yam dab tsi txog lub teeb liab duab nws tus kheej. Piv txwv li, ntawm ZX Spectrum nws cov duab yog duab plaub:

Yuav ua li cas kuv zoo tu qab tso cov ntaub ntawv nyob rau hauv ib tug tsis paub hom ntawv los ntawm magnetic daim kab xev

Thaum kuaj pom lub suab nrov, ZX Spectrum qhia alternating liab thiab xiav tuav ntawm ciam teb ntawm lub vijtsam los qhia tias lub teeb liab tau lees paub. Pilot tone xaus synchro mem tes, uas taw qhia lub computer kom pib txais cov ntaub ntawv. Nws yog tus cwj pwm los ntawm lub sijhawm luv dua (piv rau lub suab nrov thiab cov ntaub ntawv tom ntej) (saib daim duab)

Tom qab lub sync mem tes tau txais, lub computer sau txhua qhov nce / poob ntawm lub teeb liab, ntsuas nws lub sijhawm. Yog tias lub sijhawm tsawg dua li qee qhov kev txwv, me ntsis 1 sau rau hauv lub cim xeeb, txwv tsis pub 0. Cov khoom raug sau rau hauv bytes thiab cov txheej txheem rov ua dua kom txog thaum N bytes tau txais. Tus naj npawb N feem ntau yog muab los ntawm header ntawm cov ntaub ntawv rub tawm. Lub loading sequence yog raws li nram no:

  1. pilot tone
  2. header (taw ntev), muaj qhov loj ntawm cov ntaub ntawv rub tawm (N), cov npe thiab hom
  3. pilot tone
  4. cov ntaub ntawv nws tus kheej

Txhawm rau kom paub tseeb tias cov ntaub ntawv raug thauj khoom kom raug, ZX Spectrum nyeem qhov hu ua parity byte (parity byte), uas yog xam thaum txuag cov ntaub ntawv los ntawm XORing tag nrho bytes ntawm cov ntaub ntawv sau. Thaum nyeem cov ntaub ntawv, lub khoos phis tawj suav cov parity byte los ntawm cov ntaub ntawv tau txais thiab, yog tias qhov tshwm sim txawv ntawm qhov khaws cia, qhia cov lus yuam kev "R Daim kab xev thauj khoom yuam kev". Hais lus nruj me ntsis, lub khoos phis tawj tuaj yeem tshaj tawm cov lus no ua ntej yog tias, thaum nyeem ntawv, nws tsis tuaj yeem paub txog lub plawv dhia (tsis nco qab lossis nws lub sijhawm tsis sib haum rau qee qhov kev txwv)

Yog li, tam sim no peb pom dab tsi lub teeb liab tsis paub zoo li:

Yuav ua li cas kuv zoo tu qab tso cov ntaub ntawv nyob rau hauv ib tug tsis paub hom ntawv los ntawm magnetic daim kab xev

Qhov no yog lub suab pilot. Cov duab ntawm lub teeb liab yog qhov txawv txav, tab sis nws yog qhov tseeb tias lub teeb liab muaj qhov rov ua dua luv luv pulses ntawm qee zaus. Ntawm qhov piv txwv zaus ntawm 44100 Hz, qhov kev ncua deb ntawm lub "peaks" yog kwv yees li 48 tus qauv (uas sib raug rau qhov zaus ntawm ~ 918 Hz). Cia peb nco qab daim duab no.

Tam sim no cia peb saib cov ntaub ntawv fragment:

Yuav ua li cas kuv zoo tu qab tso cov ntaub ntawv nyob rau hauv ib tug tsis paub hom ntawv los ntawm magnetic daim kab xev

Yog tias peb ntsuas qhov kev ncua deb ntawm ib tus neeg pulses, nws hloov tawm tias qhov kev ncua deb ntawm "ntev" pulses tseem yog ~ 48 tus qauv, thiab nruab nrab ntawm luv luv - ~ 24. Saib ua ntej me ntsis, kuv yuav hais tias thaum kawg nws tau muab tawm tias "kev siv" pulses nrog zaus ntawm 918 Hz ua raws li tsis tu ncua, txij thaum pib mus rau qhov kawg ntawm cov ntaub ntawv. Nws tuaj yeem xav tias thaum xa cov ntaub ntawv, yog tias muaj kev sib txuas ntxiv ntawm cov pulses, peb xav tias nws yog me ntsis 1, txwv tsis pub 0.

Yuav ua li cas yog lub sync mem tes? Cia peb saib qhov pib ntawm cov ntaub ntawv:

Yuav ua li cas kuv zoo tu qab tso cov ntaub ntawv nyob rau hauv ib tug tsis paub hom ntawv los ntawm magnetic daim kab xev

Tus tsav lub suab xaus thiab cov ntaub ntawv pib tam sim ntawd. Ib me ntsis tom qab, tom qab tshuaj xyuas ntau qhov sib txawv ntawm cov suab kaw, peb tuaj yeem pom tias thawj byte ntawm cov ntaub ntawv yeej ib txwm zoo ib yam (10100101b, A5h). Lub computer yuav pib nyeem cov ntaub ntawv tom qab nws tau txais.

Koj tuaj yeem them sai sai rau qhov kev hloov pauv ntawm thawj zaug siv mem tes tam sim tom qab qhov kawg 1st hauv sync byte. Nws tau pom ntau tom qab hauv cov txheej txheem ntawm kev tsim cov ntaub ntawv lees paub, thaum cov ntaub ntawv thaum pib ntawm cov ntaub ntawv tsis tuaj yeem nyeem tau ruaj khov.

Tam sim no cia peb sim piav qhia txog qhov algorithm uas yuav ua cov ntaub ntawv audio thiab thauj cov ntaub ntawv.

Chaw thau khoom

Ua ntej, cia peb saib ob peb qhov kev xav kom ua kom yooj yim algorithm:

  1. Peb tsuas yog xav txog cov ntaub ntawv hauv WAV hom;
  2. Cov ntaub ntawv suab yuav tsum pib nrog lub suab nrov thiab yuav tsum tsis txhob muaj qhov ntsiag to thaum pib
  3. Cov ntaub ntawv hauv paus yuav tsum muaj qhov piv txwv ntawm 44100 Hz. Nyob rau hauv cov ntaub ntawv no, qhov kev ncua deb ntawm cov ntaub ntawv pulses ntawm 48 cov qauv twb txiav txim siab thiab peb tsis tas yuav xam nws programmatically;
  4. Cov qauv qauv tuaj yeem yog ib qho (8/16 khoom / ntab taw tes) - txij li thaum nyeem ntawv peb tuaj yeem hloov nws mus rau qhov xav tau;
  5. Peb xav tias cov ntaub ntawv qhov chaw yog normalized los ntawm amplitude, uas yuav tsum stabilize qhov tshwm sim;

Kev nyeem algorithm yuav yog raws li nram no:

  1. Peb nyeem cov ntaub ntawv rau hauv lub cim xeeb, tib lub sijhawm hloov cov qauv qauv rau 8 khoom;
  2. Txiav txim siab qhov chaw ntawm thawj mem tes hauv cov ntaub ntawv suab. Ua li no, koj yuav tsum xam tus naj npawb ntawm cov qauv nrog qhov siab tshaj plaws amplitude. Rau kev yooj yim, peb yuav xam nws ib zaug manually. Cia peb khaws nws mus rau qhov sib txawv prev_pos;
  3. Ntxiv 48 rau txoj hauj lwm ntawm cov mem tes kawg (pos := prev_pos + 48)
  4. Txij li thaum nce txoj hauj lwm los ntawm 48 tsis tau lees tias peb yuav tau txais mus rau txoj hauj lwm ntawm cov ntaub ntawv siv mem tes tom ntej (kab kab xev tsis xws luag, kev ua haujlwm tsis ruaj khov ntawm daim kab xev tsav, thiab lwm yam), peb yuav tsum tau kho txoj hauj lwm ntawm pos pulse. Txhawm rau ua qhov no, muab cov ntaub ntawv me me (pos-8; pos + 8) thiab nrhiav qhov siab tshaj plaws tus nqi ntawm nws. Txoj hauj lwm sib raug mus rau qhov siab tshaj plaws yuav muab khaws cia rau hauv pos. Ntawm no 8 = 48/6 yog ib qho kev sim uas tau txais tas li, uas lav tias peb yuav txiav txim siab qhov siab tshaj plaws thiab yuav tsis cuam tshuam rau lwm yam impulses uas yuav nyob ze. Hauv qhov xwm txheej phem heev, thaum qhov kev ncua deb ntawm pulses tsawg dua lossis ntau dua 48, koj tuaj yeem siv qhov kev tshawb nrhiav yuam kev, tab sis nyob rau hauv qhov kev txiav txim ntawm tsab xov xwm kuv yuav tsis piav txog qhov no hauv algorithm;
  5. Ntawm cov kauj ruam dhau los, nws kuj tseem yuav tsum tau kuaj xyuas tias cov ntawv siv mem tes tau pom txhua. Ntawd yog, yog tias koj tsuas saib rau qhov siab tshaj plaws, qhov no tsis tau lees tias qhov kev xav tau tam sim no nyob rau hauv ntu no. Nyob rau hauv kuv qhov tseeb kev siv ntawm kev nyeem ntawv, kuv xyuas qhov sib txawv ntawm qhov siab tshaj plaws thiab qhov tsawg kawg nkaus amplitude qhov tseem ceeb ntawm ib ntu, thiab yog tias nws dhau ntawm qhov kev txwv, kuv suav qhov muaj qhov impulse. Cov lus nug tseem yuav ua li cas yog tias tsis pom cov mem tes siv. Muaj 2 txoj kev xaiv: ob qho tib si cov ntaub ntawv tau xaus thiab ntsiag to raws li, los yog qhov no yuav tsum raug suav tias yog kev nyeem ntawv yuam kev. Txawm li cas los xij, peb yuav tshem tawm qhov no kom yooj yim cov algorithm;
  6. Hauv cov kauj ruam tom ntej, peb yuav tsum txiav txim siab qhov muaj cov ntaub ntawv mem tes (ntsis 0 lossis 1), rau qhov no peb coj nruab nrab ntawm ntu (prev_pos; pos) middle_pos sib npaug rau Middle_pos := (prev_pos + pos) / 2 thiab hauv qee thaj tsam ntawm Middle_pos ntawm ntu (middle_pos-8;middle_pos +8) cia peb suav qhov siab tshaj plaws thiab qhov tsawg kawg nkaus amplitude. Yog tias qhov sib txawv ntawm lawv yog ntau tshaj 10, peb sau me ntsis 1 rau hauv qhov tshwm sim, txwv tsis pub 0. 10 yog qhov tas li tau txais kev sim;
  7. Txuag txoj haujlwm tam sim no hauv prev_pos (prev_pos := pos)
  8. Rov ua dua los ntawm kauj ruam 3 mus txog thaum peb nyeem tag nrho cov ntaub ntawv;
  9. Qhov tshwm sim me ntsis array yuav tsum tau txais kev cawmdim raws li ib pawg ntawm bytes. Txij li thaum peb tsis tau coj mus rau hauv tus account lub sync byte thaum nyeem ntawv, tus naj npawb ntawm cov khoom yuav tsis yog ntau yam ntawm 8, thiab qhov yuav tsum tau me ntsis offset kuj tsis paub. Hauv thawj qhov kev siv ntawm algorithm, kuv tsis paub txog qhov muaj nyob ntawm sync byte thiab yog li ntawd tsuas yog khaws 8 cov ntaub ntawv nrog cov lej sib txawv ntawm cov khoom sib txawv. Ib ntawm lawv muaj cov ntaub ntawv raug. Hauv qhov kawg algorithm, kuv tsuas yog tshem tawm tag nrho cov khoom mus txog A5h, uas tso cai rau kuv kom tau txais cov ntaub ntawv tso tawm kom raug.

Algorithm hauv Ruby, rau cov neeg nyiam
Kuv xaiv Ruby ua hom lus los sau qhov program, vim ... Kuv program rau nws feem ntau ntawm lub sijhawm. Qhov kev xaiv tsis yog kev ua haujlwm siab, tab sis txoj hauj lwm ntawm kev ua kom qhov kev nyeem ntawv nrawm li sai tau yog tsis tsim nyog.

# Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ 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*")

tshwm sim

Tau sim ntau qhov sib txawv ntawm cov algorithm thiab qhov tsis tu ncua, Kuv muaj hmoo tau txais qee yam nthuav dav:

Yuav ua li cas kuv zoo tu qab tso cov ntaub ntawv nyob rau hauv ib tug tsis paub hom ntawv los ntawm magnetic daim kab xev

Yog li, txiav txim los ntawm cov cim cov hlua, peb muaj ib qho kev pab cuam rau plotting graphs. Txawm li cas los xij, tsis muaj cov ntsiab lus tseem ceeb hauv cov ntawv nyeem. Tag nrho cov ntsiab lus yog encoded li bytes (txhua tus nqi> 80h). Tam sim no peb yuav tsum paub seb lub khoos phis tawj twg los ntawm 80s tuaj yeem txuag cov haujlwm hauv hom ntawv no.

Qhov tseeb, nws zoo ib yam li BASIC program. ZX Spectrum computer khaws cov kev pab cuam nyob rau hauv kwv yees li tib hom ntawv hauv nco thiab txuag cov kev pab cuam rau daim kab xev. Tsuas yog nyob rau hauv rooj plaub, kuv tau tshuaj xyuas cov ntsiab lus tawm tsam rooj. Txawm li cas los xij, qhov tshwm sim tau pom tseeb tsis zoo.

Kuv kuj tau tshawb xyuas BASIC lo lus tseem ceeb ntawm Atari nrov, Commodore 64 thiab ob peb lwm lub khoos phis tawj ntawm lub sijhawm ntawd, uas kuv tuaj yeem nrhiav cov ntaub ntawv, tab sis tsis muaj kev vam meej - kuv qhov kev paub ntawm cov khoos phis tawj retro tau dhau los tsis dav.

Ces kuv txiav txim siab mus tus sau, thiab tom qab ntawd kuv ntsia tau poob rau lub npe ntawm cov chaw tsim khoom Xov Tooj Cua Shack thiab TRS-80 lub computer. Cov no yog cov npe uas tau sau rau ntawm daim ntawv lo ntawm cov ntawv xov xwm uas tau pw ntawm kuv lub rooj! Kuv tsis paub cov npe no ua ntej thiab tsis paub txog TRS-80 lub computer, yog li nws zoo li rau kuv tias Xov Tooj Cua Shack yog lub chaw tsim khoom suab xws li BASF, Sony lossis TDK, thiab TRS-80 yog lub sijhawm ua si. Vim li cas ho tsis?

Computer Tandy/Xov tooj cua Shack TRS-80

Nws yog qhov zoo tshaj plaws uas cov ntaubntawv povthawj siv hauv cov lus nug, uas kuv tau muab ua piv txwv thaum pib ntawm tsab xov xwm, tau ua hauv lub computer zoo li no:

Yuav ua li cas kuv zoo tu qab tso cov ntaub ntawv nyob rau hauv ib tug tsis paub hom ntawv los ntawm magnetic daim kab xev

Nws muab tawm tias lub khoos phis tawj no thiab nws ntau yam (Model I / Model III / Model IV, thiab lwm yam) tau nrov heev nyob rau hauv ib zaug (ntawm chav kawm, tsis nyob hauv Russia). Nws yog noteworthy tias lub processor lawv siv kuj yog Z80. Rau lub computer no koj tuaj yeem nrhiav tau hauv Internet ntau cov ntaub ntawv. Hauv xyoo 80s, cov ntaub ntawv hauv computer tau muab faib rau hauv cov ntawv xov xwm. Tam sim no muaj ob peb emulators computers rau txawv platforms.

Kuv downloaded lub emulator wb 80gp thiab thawj zaug kuv tau pom tias lub computer no ua haujlwm li cas. Tau kawg, lub khoos phis tawj tsis txhawb cov zis xim; qhov kev daws teeb meem ntawm lub vijtsam tsuas yog 128x48 pixels, tab sis muaj ntau qhov txuas ntxiv thiab hloov kho uas tuaj yeem ua kom lub vijtsam daws teeb meem. Kuj tseem muaj ntau txoj hauv kev rau kev khiav hauj lwm rau lub khoos phis tawj no thiab cov kev xaiv rau kev siv cov lus BASIC (uas, tsis zoo li ZX Spectrum, hauv qee cov qauv tsis txawm tias "flashed" rau hauv ROM thiab ib qho kev xaiv tuaj yeem thauj khoom los ntawm lub disk, ib yam li. OS)

kuv kuj pom khoom siv hloov suab kaw rau hauv CAS hom, uas yog kev txhawb nqa los ntawm emulators, tab sis rau qee qhov laj thawj nws tsis tuaj yeem nyeem cov ntaub ntawv kaw los ntawm kuv cov cassettes siv lawv.

Tau txiav txim siab txog CAS cov ntaub ntawv hom ntawv (uas tau dhau los ua ib qho me ntsis-los-ntsis luam ntawm cov ntaub ntawv los ntawm daim kab xev uas kuv twb muaj ntawm tes, tshwj tsis yog lub header nrog lub xub ntiag ntawm sync byte), kuv tau ua ib qho ob peb qhov kev hloov pauv rau kuv qhov kev pab cuam thiab muaj peev xwm tso tawm cov ntaub ntawv CAS ua haujlwm uas ua haujlwm hauv emulator (TRS-80 Model III):

Yuav ua li cas kuv zoo tu qab tso cov ntaub ntawv nyob rau hauv ib tug tsis paub hom ntawv los ntawm magnetic daim kab xev

Kuv tsim qhov tseeb version ntawm qhov kev siv hluav taws xob hloov dua siab tshiab nrog kev txiav txim siab tsis siv neeg ntawm thawj mem tes thiab qhov kev ncua deb ntawm kev siv pulses raws li pob GEM, qhov chaws muaj nyob ntawm github.

xaus

Txoj kev uas peb tau taug kev dhau los ua ib txoj kev zoo siab rau yav dhau los, thiab kuv zoo siab tias thaum kawg kuv pom cov lus teb. Ntawm lwm yam, kuv:

  • Kuv xam tawm cov hom ntawv txuag cov ntaub ntawv hauv ZX Spectrum thiab kawm cov txheej txheem ROM built-in rau kev txuag / nyeem cov ntaub ntawv los ntawm cov ntawv kaw lus.
  • Kuv tau paub nrog TRS-80 lub khoos phis tawj thiab nws ntau yam, kawm txog kev ua haujlwm, saib cov qauv kev pabcuam thiab txawm tias muaj sijhawm los ua qhov kev debugging hauv cov lej tshuab (tom qab tag nrho, txhua tus Z80 mnemonics paub kuv)
  • Sau cov khoom siv hluav taws xob tag nrho rau kev hloov cov suab kaw rau CAS hom, uas tuaj yeem nyeem cov ntaub ntawv uas tsis lees paub los ntawm "kev ua haujlwm" hluav taws xob

Tau qhov twg los: www.hab.com

Ntxiv ib saib