Innholdsfortegnelse:

Z80 MBC2 - Kompilér QP/M Bios og Loader på nytt: 6 trinn
Z80 MBC2 - Kompilér QP/M Bios og Loader på nytt: 6 trinn

Video: Z80 MBC2 - Kompilér QP/M Bios og Loader på nytt: 6 trinn

Video: Z80 MBC2 - Kompilér QP/M Bios og Loader på nytt: 6 trinn
Video: Z80-MBC: 4 ICs Z80 homebrew computer. PCB Version with CP/M 2.2 2024, November
Anonim
Z80 MBC2 - Kompilér QP/M Bios og Loader på nytt
Z80 MBC2 - Kompilér QP/M Bios og Loader på nytt

Hvis du, i likhet med meg, befinner deg i en posisjon der du må kompilere QP/M -bios for din MBC2 på nytt - så gjør du dette.

Jeg dokumenterte prosessen med hvordan jeg skulle kompilere den eksisterende versjonen. Det er opp til deg å gjøre endringer i de faktiske Bios -filene, hvis du trenger det. Jeg gjorde bare endringer for å kunne holde installasjonen av QP/M på linje med versjonen av CP/M 2.2 Bios jeg bruker (disse endringene vises ikke bare prosessen med hvordan)

Den første delen av prosessen er nesten identisk med CP/M 2.2 Bios, så hvis du allerede har installert datamaskinen din, kan du hoppe over den delen.

Hovedforskjellen er at QP/M må lastes fra det første sporet på oppstartsdisken - ikke en.bin -fil som CP/M 2.2, beskrevet nedenfor.

Rekvisita

En Windows -maskin for å kjøre kompilatoren på. Jeg brukte en virtuell Windows xp -maskin som kjører på en KVM, fordi den er veldig liten og vil aldri gå på internett. Men det fungerer under Windows 10 helt ok.

TASM 3.2 z80 -kompilatoren, søk etter dette på google, du bør ende opp på

En kopi av SD-zip-filen fra z80-mbc2-hjemmesiden, i skrivende stund var den

CPMTools for windows fra https://www.cpm8680.com/cpmtools/cpmtoolsWin32.zip dette er en 32 -biters versjon, men fungerer ok på 64 -biters systemer.

Trinn 1: Legge til programvaren til din datamaskin

Legge til programvaren til din datamaskin
Legge til programvaren til din datamaskin
Legge til programvaren til din datamaskin
Legge til programvaren til din datamaskin

Når du har startet Windows -maskinen, kan du kopiere eller laste ned filene som er nevnt i delen "du trenger" ovenfor.

Lag en fungerende katalog på maskinen din, jeg foreslår (for å unngå mye skrive- og skrivefeil) at du oppretter en katalog på stasjon C, for eksempel c: / z80mbc. Jeg anbefaler på det sterkeste at du unngår mellomrom i navnene, om mulig og lange katalogbaner. Hold det enkelt.

Lag en mappe inne i denne katalogen for TASM -filene å gå inn, c: / z80mbc / tasm

Lag en mappe for SD -kortbildet for å gå inn, c: / z90mbc / SD

Høyreklikk på hver av filene og trekk ut innholdet til katalogene du opprettet ovenfor. Så tasm.zip trekkes ut til c: / z80mbc / tasm og den redd zip -filen til c: / z80mbc / SD

For å gjøre noen av de neste trinnene enklere kan du også pakke ut cpmtool32.zip til en annen katalog, for eksempel c: / z80mbc / cpmtools.

Trinn 2: Legge til verktøyene dine i Windows Path

Legge til verktøyene dine i Windows Path
Legge til verktøyene dine i Windows Path
Legge til verktøyene dine i Windows Path
Legge til verktøyene dine i Windows Path

Avhengig av hvilken versjon av Windows du gjør, gjør du ett av følgende

Windows 10

Åpne egenskapsmenyen ved å høyreklikke på "Denne PC" -elementet fra et utforskervindu.

Klikk på "Avanserte systeminnstillinger", dette åpner et vindu som heter "Systemegenskaper" (Du kan også komme til systemegenskaper på andre måter, men jeg bruker ikke vinduer så mye, så dette er min måte!)

Klikk på "Miljøvariabler"

Windows XP

Klikk på startknappen, høyreklikk på "min datamaskin", så kan du klikke på egenskaper for å få "systemegenskaper".

Klikk på kategorien Avansert

Klikk på "Miljøvariabler"

Når du har vinduet Miljøvariabler på skjermen, må du gjøre to ting;

Legg til en ny variabel

I den øvre delen av vinduene, under "brukervariabler for …"

Klikk Ny

For Navnetype i TASMTABS

For Verditypen i c: / z80mbc / tasm

Endre PATH -variabelen

I den nedre delen av vinduet, under "Systemvariabler"

velg (uthev) bane, og klikk deretter på Rediger

På slutten av det eksisterende innholdet legger du til; c: / z80mbc / tasm; c: / z80mbc / cpmtools

(Ikke glem semikolonet i starten!)

Du må nå starte datamaskinen på nytt for at disse tilleggene skal tre i kraft.

Trinn 3: Testing Tasm

Testing Tasm
Testing Tasm
Testing Tasm
Testing Tasm
Testing Tasm
Testing Tasm

For å teste kan vi kompilere en eksakt kopi av det eksisterende QP/M BIOS, vi må gjøre litt mer forberedelse. Filene i denne katalogen er:

BIOS QPM271 - S150918.asm - Hoved -BIOS -filen, dette er mest sannsynlig filen du vil endre.

QPM271_ColdLoader - S160918.asm - dette er QP/M -lasteren, den leser de første sporene fra diskbildet til minnet. I et mer tradisjonelt CP/m -system vil dette bli referert til som en bootstrap og være i EEPROM eller ROM. Du trenger ikke å endre denne filen den allerede er samlet og på SD -kortbildet som QPMLDR. BIN

SYSGENQ - S140918.asm - Dette programmet brukes i forbindelse med QP/M -installasjonsprogrammet, igjen trenger du norammly ikke å endre det, det finnes allerede i oppstartsdisken som er klar til bruk. Den leser og skriver hovedsak sporene som ble brukt av kaldlasteren ovenfor.

Før vi tester vår TASM -installasjon trenger du en fil til, cpm22_Z80MBC2.asm, den er ikke i denne katalogen som standard, siden den er den samme filen som ble brukt for cpm 2.2. Vi trenger denne filen for å gi den originale CBIOS/CCP for den første oppstarten av QP/M. Du kan kopiere denne filen fra CPM_22_Custom_BIOS -katalogen.

Enten bruk Windows Explorer for å kopiere den eller fra en kommando (CMD) prompt

cd c: / z80mbc / sd / src / QPM_271_Custom_BIOS

kopier.. / CPM_22_Custom_BIOS / cpm22_Z80MBC2.asm

Du må nå endre denne filen for å inkludere QP/M BIOS, åpne filen med notisblokk:

søk etter "QPM" (CTRL-F, eller rediger meny og finn) Se bildet ovenfor

endre filen fra:

;-----------------------------------------------------------------------

; Z80-MBC2; ---------------------------------------------- -------------------------; #include "BIOS QPM271-S150918.asm"; Inkludert CBIOS for Z80-MBC2 #include "BIOS CPM22-S030818-R140319.asm"; Inkludert CBIOS for Z80-MBC2

Til:

;-----------------------------------------------------------------------

; Z80-MBC2; ---------------------------------------------- ------------------------- #include "BIOS QPM271-S150918.asm"; Inkludert CBIOS for Z80-MBC2; #include "BIOS CPM22-S030818-R140319.asm"; Inkludert CBIOS for Z80-MBC2

Du bør også sjekke verdien av iLoadMode i den kopierte cpm22_Z80MBC2.asm -filen, rundt linje 40:

;-----------------------------------------------------------------------

; Z80-MBC2; ---------------------------------------------- ------------------------- iLoadMode.equ 0; Sett til 1 for iLoad -modus (for testing),; satt til 0 for bildegenerering av spor 0; satt til 2 for generering av binær fil cpm22.bin; --------------------------------------- --------------------------------

Den må være på 0, dette er standard - men sjekk uansett!

Når du er ferdig, lagrer du filen.

du kan nå kjøre tasm:

tasm -b -g3 -80 cpm22_Z80MBC2.asm qpm22.bin

Legg merke til det forskjellige filnavnet for utdata, hvis alt går bra, bør du se utdata slik:

c: / z80mbc / sd / src / QPM_271_Custom_BIOS> tasm -b -g3 -80 cpm22_Z80MBC2.asm qpm22.bin

TASM Z80 montør. Versjon 3.2 september 2001. Copyright (C) 2001 Squak Valley Software oppgave: pass 1 fullført. oppgave: bestått 2 fullført. tasm: Antall feil = 0 c: / z80mbc / sd / src / QPM_271_Custom_BIOS>

Du er klar til å gjøre eventuelle endringer du trenger i BIOS! fil.

Trinn 4: Finn din sanntidsklokke -adresse

Før du installerer den nye versjonen av BIOS, må en del av QP/M -installasjonen kjenne oppføringsadressen for sanntidsklokkerutinene. Hvis du ikke angir dette, vil noen ganger funksjoner i QP/M returnere "Ingen klokke" som en feilmelding.

For å få adressen, rediger LST -filen som ble produsert når du kompilerer filen qpm22.bin, dvs.

notisblokk cpm22_Z80MBC2.lst

Søk etter TIMDAT-etiketten, Ctrl-f (eller finn) søk etter TIMDAT, du finner en seksjon som denne:

0855+ EC16; ====================================================== ===========================;

0856+ EC16; TIMDAT; 0857+ EC16; ====================================================== ===========================; 0858+ EC16; Dette er en QP/M-spesifikk rutine for QP/M-til-sanntidsklokke-grensesnittet; 0859+ EC16; for å utnytte tid/dato -stemplingfunksjonene til QP/M fullt ut.; 0860+ EC16; Adressen til TIMDAT må spesifiseres under QINSTALL via alternativet; 0861+ EC16; QDOS-installasjonsmenyen (se sidene 26-27 i QP/M Installasjonsveiledning); 0862+ EC16;; 0863+ EC16; MERK: Hvis RTC ikke er tilstede, gir IOS alle 0s byte. Dette er; 0864+ EC16; "tolket" av QP/M som en "NO CLOCK".; 0865+ EC16; ====================================================== ===========================; 0866+ EC16 TIMDAT 0867+ EC16 C3 19 EC jp USERCLK

Noter den andre kolonnen HEX -adressen, i dette tilfellet EC16. Ta verdien av linjen under kommentarene, like over JP USERCLK -hoppinstruksjonen. Der det står TIMDAT.

Nå som du har valen, kan du avslutte filen og fortsette med QP/M -salget

Trinn 5: Legg til Bios i et nytt diskbilde

I dette trinnet vil vi lage vår egen kopi av oppstartsdisken DS1N00. DSK og legge til vår egen versjon av BIOS for å fullføre installasjonen av QP/M

Til å begynne med må du lage en midlertidig mappe for stasjon C for å beholde arbeidskopiene dine. Åpne en CMD -melding og skriv inn følgende

cd c: / z80mbc

mkdir temp cd temp

Neste kopier det originale diskbildet fra SD -katalogen

kopier c: / z80mbc / sd / DS1N00. DSK.

Få gjeldende filer fra diskbildet:

cd c: / z80mbc / temp cpmcp -f z80mbc2 -d0 DS1N00. DSK 0:* disk0

Sekvensen ovenfor vil opprette en annen midlertidig mappe i temp -katalogen kalt disk0, de kopierer alle eksisterende filer fra diskbildet til katalogen. Bruk DIR etter for å kontrollere at du har filene.

Deretter kan vi formatere diskbildet som en ny disk, dette er den eneste enkle måten å legge til oppstartsporene på diskbildet, uten å måtte lage en helt ny disk fra bunnen av. Vær oppmerksom på at “-b” -alternativet bruker BIOS som vi har samlet ovenfor.

mkfs.cpm -f z80mbc2 -d0 -b c: / z80mbc / sd / src / QPM_271_Custom_BIOS / qpm22.bin DS1N00. DSK

Når oppstartssporene er oppdatert, kan du legge de originale filene tilbake til bildet:

cpmcp -f z80mbc2 -d0 DS1N00. DSK disk0/* 0:

Du har nå en oppstartbar disk, den starter faktisk CP/M ikke QP/M i neste trinn bruker vi QP/M -installasjonsprogrammet til å erstatte CBIOS -delen av CP/M -systemet

Sørg for at du har en fungerende kopi av oppstart -SD -kortet, og kopier deretter DS1N00. DSK -filen du oppretter i dette trinnet til rotmappen på SD -kortet, den erstatter den eksisterende filen.

Trinn 6: Start opp i ditt nye diskbilde

Koble en seriell terminal til z80mbc2

hold brukerbryteren, hold den inne, trykk og slipp tilbakestillingsbryteren. Når bruker -LED -en slukker og IOS -lampen blinker, slipper du brukerbryteren.

Du bør nå være på "Boot" -skjermen på terminalen, slik: Z80 -MBC2 - A040618

IOS - I/O delsystem - S220718 -R240620 IOS: Z80 -klokke satt til 8MHz IOS: Funnet RTC DS3231 -modul (26/10/20 16:46:45) IOS: RTC DS3231 temperatursensor: 20C IOS: Funnet GPE -alternativ IOS: CP/M Autoexec er AV IOS: Velg oppstartsmodus eller systemparametere: 0: Ingen endring (3) 1: Grunnleggende 2: Forte 3: Last OS fra disksett 1 (QP/M 2.71) 4: Autoboot 5: iLoad 6: Endre Z80 klokkehastighet (-> 4MHz) 7: Veksle mellom CP/M Autoexec (-> ON) 8: Endre disksett 1 (QP/M 2.71) 9: Endre RTC-tid/dato Angi ditt valg>

Bruk alternativ 8 for å endre disksettet til QP/M. Når du velger det, bør du laste inn QP/M BIOS. Jeg vil også anbefale å trykke reset, siden jeg har sett den første lasten etter at alternativ 8 mislyktes flere ganger. Som dette:

IOS: Current Disk Set 1 (QP/M 2.71)

IOS: Laster oppstartsprogram (QPMLDR. BIN)… Ferdig IOS: Z80 kjører fra nå Z80 -MBC2 QP/M 2.71 Cold Loader - S160918 Loading… done Custom Version of Z80 -MBC2 QP/M 2.71 BIOS - S150918 A>

Merk Jeg la til "Tilpasset versjon" ovenfor da jeg redigerte BIOS -filen, akkurat som en demo for dette trinnet.

På dette tidspunktet kjører du faktisk CP/M 2.2 Cbios med tilpasset BIOS for QP/M, så ting som TIME -kommandoen fungerer ikke, for eksempel hvis du skriver TIME (skal svare med dato+tid) får du CP/M 2.2 respons av TIME? - den tror det er en kommando på disken og finner den ikke.

Det er nå på tide å installere QP/M erstatning CBIOS på diskbildet.

Start programmet qinstall.com:

A> qinstall

QP/M 2.7 Installasjons-/konfigurasjonsprogram v2.1 QINSTALL bruker SYSGEN -programmet til å installere QP/M på disken. Etter at du har konfigurert systemet, blir du bedt om navnet på SYSGEN -programmet. Dette verktøyet bør være tilgjengelig på en av diskene dine. For at QINSTALL skal bli fullført, MÅ systembildet på disken og systemet som er i minnet være identisk. (Bruk for å avbryte programmet.) Vil du fortsette? (Y/N):

Svar deretter Y for å fortsette.

Du blir deretter spurt om QCP -innstillinger (du kan spille senere!) Si nå N.

Ønsker du å undersøke og/eller modifisere

standard QCP -innstillinger? (Y/N): N

Deretter blir du spurt om QDOS -innstillinger, trykk på Y

Ønsker du å undersøke eller modifisere

standard QDOS -innstillinger? (Y/N): Y

Du får en meny som denne:

*** Innstillinger for QDOS -systeminstallasjon ***

Lagre tegn oppnådd under konsollskanning. JA BIOS støtter BDOS -feilkodetabell ………. NO Adresse for klokkeslett/datohoppvektor …………. DISABLED Disk/brukersøkfunksjon ……………….. AKTIVERT Automatisk omlogging av disk …………………… AKTIVERT Gjenopprett første innstillinger Avslutt QDOS-installasjon Angi alternativ:

På dette tidspunktet må du skrive inn HEX -nummeret fra trinn 4 ovenfor (finn sanntidsklokke -adressen din)

Trykk på 2, og skriv inn HEX -adressen EC16, hvis du ikke har gjort noen endringer i bios, er det i mitt tilfelle EC04 siden jeg la til litt tekst osv.

Skriv inn adressen til klokkeslett/dato -vektoren i hex (0 til DISABLE): EC04

Nå kan du gå ut av QDOS -menyen og fortsette.

Det neste skjermbildet viser:

Skriv inn navnet på SYSGEN -programmet og trykk RETURN.

(Angi om nødvendig stasjon, ikke bruk. COM -utvidelse): SYSGENQ

Skriv inn spesialversjonen av sysgen, kalt SYSGENQ

Du vil da se:

*** Opprette 59k QP/M -bilde ***

QINSTALL vil nå utføre A: SYSGENQ. COM. Du må instruere A: SYSGENQ. COM for å lese systemsporene. Når READ er fullført, avslutt SYSGEN -programmet. Meldingen "*** QINSTALL søker etter systembilde ***" vil vises etterfulgt av ytterligere instruksjoner. Trykk for å fortsette -ELLER- for å avbryte -

Trykk på C for å fortsette:

SYSGENQ - S140918 - Z80 -MBC2

CP/M 2.2 SYSGEN-lignende verktøy Bruk bare til å installere QP/M 2.71 ved hjelp av QINSTALL. COM ADVARSEL: W-kommandoen overskriver systemsporet! Les systemspor og last inn til RAM eller skriv dem tilbake til disk? [R/W]>

Første gang du ser denne meldingen, velg R for å lese systemsporene, får du:

Leser … ferdig

*** QINSTALL søker etter systembilde *** Systembilde funnet fra 0900H. Installere QP/M. SYSGEN -programmet ditt vil nå fortsette utførelsen. Du må instruere programmet til å SKRIVE systemsporene. Trykk for å fortsette -ELLER- for å avbryte -

Trykk igjen på C for å fortsette:

SYSGENQ - S140918 - Z80 -MBC2

CP/M 2.2 SYSGEN-lignende verktøy Bruk bare til å installere QP/M 2.71 ved hjelp av QINSTALL. COM ADVARSEL: W-kommandoen overskriver systemsporet! Les systemspor og last inn til RAM eller skriv dem tilbake til disk? [R/W]>

Denne gangen trykker du på W for å skrive den nye QP/M og BISO tilbake til disksporene:

Skriver … gjort

A>

Du kan nå trykke reset og starte tilbake til din nye QP/M -bios. Hvis du nå skriver TIME ved ledeteksten, kjører den hele versjonen av QP/M og vil svare slik:

Z80 -MBC2 - A040618

IOS - I/O delsystem - S220718 -R240620 IOS: Z80 -klokke satt til 8MHz IOS: Funnet RTC DS3231 -modul (26/10/20 17:10:48) IOS: RTC DS3231 temperatursensor: 20C IOS: Funnet GPE -alternativ IOS: CP/M Autoexec er AV IOS: Current Disk Set 1 (QP/M 2.71) IOS: Laster oppstartsprogram (QPMLDR. BIN) … Ferdig IOS: Z80 kjører fra nå Z80 -MBC2 QP/M 2.71 Cold Loader - S160918 Loading … ferdig tilpasset versjon av Z80-MBC2 QP/M 2.71 BIOS-S150918 A> tid 26-okt-20 17:10:56 A>

Du er i gang med det nye BIOS, og legg merke til teksten "Egendefinert versjon" ovenfor. Du bør sannsynligvis lese resten av QP/M -dokumentasjonen på

Fin

Anbefalt: