Emulatore 8086!

« Older   Newer »
  Share  
view post Posted on 6/12/2019, 14:38
Avatar

Noioso

Group:
Professionisti
Posts:
403

Status:


Ora ci ho preso gusto :D e, dopo una veloce ripassata ad un vecchio abbozzato emulatore Z80 (sempre scritto in C molto tempo fa)..
ho deciso di affrontare la preda grossa!!
Cavolo che casino: cioè, è molto "simmetrico" come si dice, anche se meno di un RISC... ma ppiù dei vecchi 8bit.

Però appunto è abbastanza complesso, e non ho praticamente mai scritto software in linguaggio macchina sui PC, ne conosco un po' le basi, i segmenti, i registri, le istruzioni... non come il 6502 che va a memoria :)

Ho anche cercato in giro, e non ho trovato molto - cmq non per PIC. Ne ho trovato uno ma... un programmatore pazzo si è inventato delle Macro mostruose praticamente in-debuggabili ;) e... alla fine ritengo sia meglio il mio (!)

Con il solito PIC32 a 200MHz, eseguo le istruzioni in media all'incirca in 600-700nS: considerando che un 8086 impiega in media 10-20 cicli per istruzioni, il mio in pratica sta girando come un 8086 (anzi, 80186, siamo già un pizzico oltre :) ) a 25MHz (considerando che il PC/XT originale andava a 4.77MHz, significava ~2-4uS per istruzione)

Emulata la CGA in modo testo e grafica (sul solito TFT piccolo quindi zoomato oppure no), la tastiera, l'RTC, il buzzer, led di diagnostica, la seriale, la parallela (più o meno :) ) ...

Ora voglio arrivare a caricare COMMAND.COM !

Attached Image: pc_PIC2

pc_PIC2

 
Top
view post Posted on 6/12/2019, 14:41
Avatar

Noioso

Group:
Professionisti
Posts:
403

Status:


(con test di memoria e ricerca floppy/hd)

Attached Image: pc_PIC3

pc_PIC3

 
Top
view post Posted on 7/12/2019, 12:55
Avatar

Immane Rompiball

Group:
Administrator
Posts:
18,287
Location:
Orlo esterno della cintura di Orione stella 1957

Status:


Come? Paragoni 8086 a 6502? :o:
Sei stato contaminato dal Genco... :o:
Oppure sei caduto in bagno e picciato una brutta testata nel lavandino. Hai mica delle visioni di un coso che sembra una Y che serve a viaggiare nel tempo? :o
 
Web  Top
view post Posted on 7/12/2019, 15:32
Avatar

Noioso

Group:
Professionisti
Posts:
403

Status:


ahah no ma ti dirò che stanotte ci pensavo, a quella y luminescente... :D

Non era un paragone ma stavo raccontando l'evoluzione del progetto: son partito dalla medesima base del 6502 (scritta nel 1996... quindi vedi che il viaggio c'è!) e ho espanso e aggiunto...
In pratica, è una grossa jump-table con 256 valori: sono poi le ramificazioni il casino!

E un po' l'emulazione dell'hardware (per quanto di base)
 
Top
view post Posted on 8/12/2019, 12:06
Avatar

Immane Rompiball

Group:
Administrator
Posts:
18,287
Location:
Orlo esterno della cintura di Orione stella 1957

Status:


Ahhh ecco! Io ho sempre odiato il 6502 per il suo modo poco intelligente e molto incasinato di indirizzare ogni cosa con solo due registri. Non iniziare a dire che però c'è quel vantaggio e quell'altro ecc... perchè ho tentato in lungo ed in largo di impararlo ad usare in modo proficuo a suo tempo con il Pommodore 64 e non ne ho cavato niente. Troppo lontano dal concetto di cambridge code dei primi anni e sviluppato con una certa logica intelligente e non di convenienza. Per questo io considero il 6502 un processore praticamente inutilizzabile se si vuol programmare senza usare qualche sorta di linguaggio evoluto.
Poi ci sono altre ragioni per cui lo odio dal profondo e che forse un giorno vi racconterò. ;)
 
Web  Top
view post Posted on 8/12/2019, 14:46
Avatar

Noioso

Group:
Professionisti
Posts:
403

Status:


trovo fantastico immaginare che ci siano motivazioni personali recondite per odiare una CPU :D !!

Mah io lo conobbi a memoria in quegli anni là, del C64 appunto: nonostante avessi studiacchiato lo Z80 su Nuova elettronica qualche anno prima (ma ero davvero piccolo e poi quel computer non lo comprammo mai), lo ZX spectrum non mi ispirava e così ci diedi dentro col C64 e in assembler scrissi delle cose MOLTO complesse! Di sicuro era limitato e forse pure "stupido" ma cmq in qualche modo si faceva tutto.

Lo Z80 lo ripresi in mano nel 92 quando feci le mie schede per la domotica, che portai avanti per un 7 anni, fino ai primi microcontrollori, gli SGS (e poi i PIC). Anche l'8051 non l'ho mai toccato se non di sfuggita, pure lui non mi ispirava

ah invece "affascinante" fu il primo RISC, l'Acorn dell'Archimedes che presi nel 1989: quello sì che è "simmetrico" ed era molto particolare! Be' tant'è che poi son diventati gli ARM
 
Top
view post Posted on 9/12/2019, 19:08
Avatar

Immane Rompiball

Group:
Administrator
Posts:
18,287
Location:
Orlo esterno della cintura di Orione stella 1957

Status:


Nei lontani anni 70 girava l'idea che i computer andassero in "simpatia" con certi persone si con altre no. E a dimostrarlo era l'odio di alcune persone per certi computer e l'amore di certi computer per certi altri esseri umania. Alcuni chip avevano una struttura "mentale" ad indindirizzo indicizzato indicato da un indirizzo contenuto nella memoria indicizzata dalla somma di un registro e di un puntatore che veniva incrementato o decrementato. Tutto questo a tanti come me stimolavano la parte cerebrale che induceva a prendere un buon martello e massacrare il chip in questione, perchè preferivamo avere un registro indice della memoria dati tipo HL dello Z80 e lavorare con quello piuttosto che IX e IY due soli registri che ogni volta dovevi pushare e o poppare. È solo una questione di impostazione mentale. Come i moderni "telefoni" io continuo a preferire il disco combinatore alle petulanti richieste di Alexa. ;)
 
Web  Top
view post Posted on 9/12/2019, 21:19
Avatar

Noioso

Group:
Professionisti
Posts:
403

Status:


ah be' sì, da quel punto di vista ti do ragione, qua e là è capitato anche a me, tipo i PIC32 in assembler sono un discreto sclero - e infatti per fortuna si va benone con il C!
 
Top
view post Posted on 10/12/2019, 15:13
Avatar

Noioso

Group:
Professionisti
Posts:
403

Status:


more

Attached Image: pic_pc3

pic_pc3

 
Top
8 replies since 6/12/2019, 14:38   83 views
  Share