
Wow, non ho ancora fatto niente, sono ancora
ottenere applausi è fantastico
quindi sì, come abbiamo appena detto che sarò
parlando oggi di emulare un 6502
sistema in JavaScript quindi prima di tutto a
un po ‘ di me stesso, il mio nome è opaco
dio bullone lavoro per un trading favoloso
compagnia qui a Chicago chiamata dlw
Sono contrattualmente obbligato a dire che lo siamo
le assunzioni vengono a parlarci quindi se questo parla
è interessante per te, non posso prometterlo
che usiamo 6502 s
ovunque nel nostro stack di trading, ma lo facciamo
avere cose altrettanto interessanti da fare
quindi vieni a parlare con me dopo o c’è
Katie che sta salutando dietro c’è
posso dirti molto di più su ciò che facciamo
comunque emulando un sistema 6502
basta andare a schermo intero ci siamo
beh, prima di tutto questa diapositiva è molto lontana
troppo high tech , torniamo indietro
ricorda questo tipo di cose va bene così
prima di tutto chi ha mai usato un 6502
computer basato sì, un buon numero di voi
Immagino che probabilmente non saresti qui se
lo faresti se tu non avessi così quello che è il
6502 è questo
è un computer a 8 bit prima realizzato
1975 quindi è solo un po ‘ più vecchio
di me tremilacinquecento e
dieci transistor tirato fuori e disposti
a mano da solo un piccolo gruppo di persone
strisciare su un grosso pezzo di acetato
come vorresti per un HP e
disegno in pennarello per cui tutte le
le tracce andrebbero e poi ascolterebbero poco
graficamente sicuro un restringersi verso il basso per ordinare
di queste dimensioni che penso di essere
Incredibile intendo nel mio giorno di lavoro al
momento che facciamo un po ‘come fpga
tipo di sviluppo e strumenti
dietro quello è sorprendente ma solo il
cosa che gli esseri umani stavano facendo
è semplicemente incredibile se non è quando è
non nudo oh aspetta un secondo che ho
appena avuto un abbondante sul mio know schermo
quando non lo è non l’hai fatto
una custodia di plastica sembra che sia così
ho migliaia di birilli all’esterno ma
esso
in realtà solo una piccola piccola cosa
all’interno di là così questi questi
i chip sir sono importanti perché nel
1980 sono il s65 o due insieme a
lo z80 era veramente responsabile per il
Il boom degli anni ’80 nell’home computing è stato un successo
chip a prezzi accessibili era potente e
sicuramente per me è stato il
tempo in cui i computer erano una specie di picking
e ho dovuto portarmi direttamente a me
essendo qui di fronte a te sai
diventando un programmatore di peltro
e parlerò un po ‘di più
che in un secondo così ho effettivamente contattato
su Twitter le persone che hanno ancora
i brevetti e i diritti per il 6502
e ho detto se hai qualche idea di come
molti di questi stanno pensando
sarebbero stati in poche centinaia di migliaia
pensando e quanti quanti computer
con loro ci sono stati fatti conoscere
forse centomila o forse mezzo
mezzo milione o qualcosa ma
apparentemente più di dieci miliardi di
queste cose sono state prodotte da solo
una società quindi probabilmente c’è molto
oltre che là fuori è abbastanza
incredibile quindi che tipo di computer era
la 6502 in qui puoi vedere che ce l’abbiamo
ho preso l’ Apple due, abbiamo l’Atari
800 e l’Atari 2600 della BBC micro e
c’è anche l’ animale domestico commodore il
commodore 64 the vic-20 era anche dentro
l’ originale Nintendo Entertainment
Sistema le narici era nel Tamagochi
animale domestico virtuale se ne hai mai uno
quelle cose davvero davvero irritanti
stava anche alimentando il Terminator
il film Terminator secondo se tu
freeze-frame ama la pinna all’interno del
primi cinque minuti se ricordi come
la DIA è il tipo di testo di
scorrendo verso il basso dello schermo e solo uno
selezionare casuale del computer senza senso se tu
blocca il fotogramma di cui fa effettivamente parte
il caricatore di avvio del booklet Apple 2 che è
stato smontato quindi è 6502 e
apparentemente è anche ciò che alimenta la curvatura
da Futurama ma il computer che sono
interessato a parlarti di quale
è un po ‘ironico perché qui sono dentro
Chicago parla con un americano in gran parte
il pubblico è una specie di strano inglese
il computer ha chiamato la BBC micro BBC
micro è stato realizzato da una società chiamata ghianda
nel 1981 e faceva parte della BBC
programma di alfabetizzazione informatica così questo è il
BBC piace il
Broadcasting Corporation britannico
La Broadcasting Corporation ha deciso
che volevano eseguire un’intera serie
di programmi educativi che spiegano cosa
questa cosa di calcolo newfangled era perché
era importante e per farlo
pensavano che avrebbero dovuto piacere
un sistema di computer sponsorizzato per andare
al fianco degli spettacoli televisivi, così escono
per offrire questa idea di come un
tipo accessibile di hackerabile credo che lo faremmo
dì al giorno d’oggi un sistema informatico e un
compagnia chiamata ghianda si avvicinò con il
design vincente e loro hanno prodotto
questo computer e come risultato di quella TV
serie è diventato uno dei più popolari
sistemi nel Regno Unito e se continui
YouTube possiamo effettivamente andare a vedere il
il programma per computer con il PR britannico
ogr amme spelling e loro sono
programmi universalmente terribili ora ma
si sa che erano lì al
all’inizio e certamente ha avuto molto
di persone interessate in esso significava anche
ce n’erano tonnellate in giro simili
scuole così un sacco di persone nel Regno Unito per
questa è la loro prima idea di cosa
il computer è una specie di scatola da urlo
con i tasti rosso acceso in alto come a
sorta di storia di dimensioni appena rapidamente il
la ghianda della compagnia ha continuato a farne altre
computer dopo questo ed è a
testimonianza di come hackable il micro BBC
lo sapevi che siamo nel 1981 e come
parte del design c’era una sorta di
bus del secondo processore che potevi
connettere altri processori a loro
aveva come un altro 6502 come una sorta di
carta figlia o si potrebbe ottenere anche un
80 88 o alcuni degli altri 16 bit
chip di computer che erano in giro ma
le stesse ghiande decisero che lo erano
andando a fare il proprio processore per
la loro prossima generazione di computer
pensavo che in realtà potevano fare a
buon lavoro e sorta di ispirato dal
6502 semplicità e il loro design sono venuti
con un processore a 32 bit che era
originariamente spuntava ed era un secondo
processore per il micro della BBC hanno chiamato
questa macchina RISC ghianda e molti
molti anni dopo, quando la società Acorn
stesso ha piegato quella società che loro
scorciato per occuparsi dell’IP per quello
Chip non è stato rinominato Advanced RISC
macchine e lo sto garantendo
probabilmente ce ne sono un paio di centinaia
quelle cose in questa stanza adesso
alimentando tutti i nostri iPhone e i nostri
Android così in molti modi questo computer è
l’antenato logico della convenienza
dentro il tuo
sei fuori dal tuo telefono, così il bip ha avuto
32k di RAM il 32k di ROM che ha funzionato a due
megahertz un intero due megahertz e il
hardware collegato ad esso il modo in cui il
6502 funziona senza istruzioni
con cui si poteva parlare in modo univoco
hardware che hai semplicemente scritto per ordinare
di indirizzi di memoria magica e quelli
membro indirizzi di memoria magica sul bus
farebbe una sorta di mappatura al reale fisico
Hardware per piacere leggere il diritto a
tastiera si dovrebbe solo scrivere per leggere a
proprio da indirizzi particolari perché è
è così importante per me, credo
in molti modi l’ho già spiegato
e una sorta di seguito dal discorso
abbiamo avuto prima qui su come ottenere
i bambini entrano in programmazione quando stavo crescendo
il modo in cui sei entrato in programmazione
è che avevi il tuo computer che hai salvato
la tua paghetta forse hai comprato un
gioco ogni tanto e forse hai fatto
alcuni scambi illeciti di giochi copiati in
il parco giochi Shh ma ancora più importante
ogni ogni mese si dovrebbe andare a comprare
una delle riviste che potresti ottenere
dal giornalaio
e si dovrebbe leggere tutte le ultime
giochi e leggere tutto sul
l’ultimo tipo di cose che erano
uscendo per il tuo computer e al
indietro sarebbe il bagno di metà del
rivista sarebbe stampe che tu
vorrei solo digitare e quindi ci sarebbe
i giochi ci sarebbero esempi di simili
questo qui è un rendering simile a Fraxel
cosa e impareresti come programmare
una specie di osmosi che inserisci in questi
cose o la mamma la legge
a te lo tocchi via, lo faresti
digitare eseguirlo non funzionerebbe inevitabilmente
hai solo un po ‘di vedere l’ errore di sintassi
e tu vai e tu guardi la lista
e si scopre che si trattava di un colon o
non un punto e virgola e tutti questi tipi di
cose ma ma in un certo senso, allora impari
come eseguire il debug in modo primitivo, così ho ottenuto
abbastanza bravo a scrivere queste cose e io
ho imparato molto su questo e questo
Oh particolare zucchero, ho appena premuto
Troppe volte nessuno so che è questo
articolo di una rivista in particolare questo io
mi sono scritto con il mio buon amico di
scuola usato per ottenere cinquanta sterline per cinquanta
sterline che è come ottanta dollari
per aver inviato un programma che ha ottenuto
pubblicato sulla rivista in modo che mantenuto
noi dentro in dolci e caramelle per abbastanza a
sacco di tempo quando eravamo lì, quindi ero
circa 15 quando questo è uscito e di
Ovviamente l’altra ragione è che di questo tipo
di
i sistemi informatici sono interessanti
a causa dei giochi giusti questo è davvero
a cosa servono i computer, come tutti sappiamo
e così il micro BBC è particolarmente
leggendario per questo questo gioco che io
non so se qualcuno in questa stanza altro
rispetto alle persone che conosco che lo sanno
sì, ci sono alcune persone che hanno
ha riconosciuto i suoi giochi chiamati elite e
è un gioco o un’azione di trading spaziale 3d
il gioco è uno di quelli che era uno
dei primi giochi intendo 1984 penso
ed è solo un gioco fantastico e da ottenere
ha schiacciato 32 K di RAM in cui la maggior parte
della memoria è ripreso con la
effettiva solo foto che stai guardando fuori
c’è solo incredibile e sono stato
abbastanza fortunato da entrare in contatto con uno
delle persone che hanno scritto il gioco e
di cui abbiamo discusso tutto ed è
è semplicemente fantastico pensare che la ragione
praticamente che loro hanno scritto questo
il gioco è che nessuno glielo ha detto
non potrebbe mai fare rendering 3d su a
due processori megahertz, quindi hanno solo
provato e si è scoperto che puoi e il mio
il preferito personale è questo qui che
è un gioco chiamato esilio è una fisica 2d
basato puzzle game è semplicemente incredibile cosa
potresti fare in un numero così limitato
di RAM una quantità così limitata di
la potenza di calcolo va bene, ecco perché io
amo il Beeb è per questo che adoro il 6502
i poteri è perché sulla terra posso vedere
Sue ti sta facendo una foto proprio ora
perché JavaScript bene cuz è divertente
mi diverte davvero
prendere qualcosa che è di basso livello
come il codice assembly su un computer
ed emulatore impossibilmente il sistema il
il più lontano più lontano da esso ma no
c’è una vera ragione per chiunque sia
mai giocato con emulatori sa che
è una specie di lungo scrupolo
processo di solito per ottenere uno su cui lavorare
il tuo sistema devi trovare le rom
dovete trovare il codice che devi
trova le versioni divertenti di Lib GDK
ha bisogno che tu debba eseguire la configurazione di te
devi trovare il compilatore giusto che esegui
fallo correre e poi ottieni un
segfault e quindi sei tipo oh cosa
è successo qui e tu sai tutto questo
kinda roba non sono molto non è un
ottima esperienza utente ma a tutti
capisce andare a una pagina web e
vedere qualcosa così è per questo
javascript va bene così ho intenzione di spiegare
tu come ho scritto un emulatore ma prima
lo facciamo che dovrò darti un
un po ‘ di background su cosa
è dentro ho perso il mio
il mio clicker mi sono appena reso conto di esserlo
premendo i tasti sulla tastiera qui
e ho un clicker da qualche parte oh, va bene
Mi limiterò a continuare a farlo
um so 6502 è un aha a 8 bit
grazie quindi è un processore a 8 bit
il che significa che tutti gli interni di
esso sono otto bit un’ampia ha tre fori
registra il primo registro quindi il
il più importante è l’accumulatore che
era di nuovo un registro a 8 bit che ha
essere utilizzato solo per il semplice scorrimento
l’ unico registro che potresti usare per
aritmetica quindi qualsiasi tipo di aggiunta
sottrarre il confronto doveva accadere con
l’accumulatore ce n’erano altri due
registri chiamati X & Y che hanno abbastanza
molto usato solo per l’indicizzazione in modo che tu potessi
usali come segnalini bottino e tu
potrei usarli per gradire l’indice in un
array ma a parte questo non è possibile
fare qualsiasi confronto o aritmetica su di loro
avevi un intero 256 byte di stack
anche se eri ovunque vicino a usare
più di circa 100 di loro si è
probabilmente nei guai il 6502 ha un
design interessante quindi è molto
limitato in termini di avere solo questi
tre registri ha trattato il fondo
256 byte di RAM leggermente diversi
dal resto della memoria e tanto
poiché c’erano solo codici op speciali
ti ha permesso di accedere a quegli indirizzi
che era più piccolo e più corto ovviamente
ogni byte che salvi in termini di memoria
è un byte in più nel tuo gioco o
la tua Europa o il tuo sistema operativo
qualunque cosa usare ma potrebbe anche trattare
coppie di valori nella pagina zero e
questo primo 256 byte di memoria ha
quasi come puntatori a 16 bit così è stato
il modo in cui hai fatto il giro del mondo
fatto che il resto del sistema era
solo 8 bit potresti usare due valori in
la pagina zero come puntatore a 16 bit
Spero di diventare un po ‘di più
chiaro in un secondo quindi questo è ciò che il
istruzioni assomigliano hai come
caricare e memorizzare due trasferimenti di registri
tra i registri push pop compare add
e sottrai tutto quel tipo di cose e
confronti e rami condizionali
rami quindi è più o meno quello che più
l’assemblaggio finisce per sembrare giusto
prendere una di quelle istruzioni il carico
un così questo è qualcosa che porta appena
un valore nell’accumulatore ci sono a
un sacco di modi in cui puoi portare valori
l’ accumulatore il primo e il più
modo ovvio è quello di portare in un effettivo
numero Voglio solo il numero 32 in
l’array
e questo è ciò che questa prima interruzione è
questo hash sarò chiamano hash molto
di voi ancora affondare sterlina penso che il
il nome corretto per quella cosa è octothorpe
che è solo attraverso argomenti con
Gli americani a riguardo non sono un chilo
questo è un po ‘come te
qui possiamo vedere questi sono gli opcode
ci sono davvero dolenti che posso
indicare qui pure
questi sono gli opcode che sono in realtà
essere interpretato dal processore in
digli cosa fare in modo che tu possa vederlo
l’opcode per il carico immediato è un 9 così
un 9 a 0 significa caricare a 0 che è 32
in un registro e poi il
le prossime due cose stanno leggendo dalla memoria
quindi ora un 5 significa caricare dalla memoria
indirizzo 70 in modo che legga qualcosa
dalla pagina di byte 17 a 0 e quindi caricare un 1
2 3 4 verrà caricato dall’indirizzo 1 2 3 4
e puoi vedere che c’è questo ragazzo qui
è un 5 e ha solo bisogno di un byte in più
questo ragazzo è un D e ha bisogno di 2 extra
byte quindi se stai usando un 0 Paige lo è
leggermente più efficiente, allora entriamo in
cose più avanzate dove iniziamo
vedere quei registri X e Y e quindi il
i primi due qui stanno leggendo da un offset
dall’indirizzo 1 2 3 4 in modo che tu possa pensare
questo come davvero leggere la X o la moglie
elemento in una matrice memorizzata all’indirizzo 1
2 3 4 e poi il vero killer 1 è questo
nel dirigere con tutte le parentesi finite
qui parentesi ciò che l’istruzione
significa che viene letto il valore all’indirizzo 70
poi ho letto l’indirizzo il valore a
l’indirizzo 71 considera questo come un 16-bit
puntatore quindi aggiungere Y ad esso e leggere il
byte da quell’indirizzo quindi c’è un ordinamento
della modalità indiretta in cui è possibile utilizzare a
puntatore a 70 e 71 per puntare a a
particolare pezzo di dati così come il tuo
routine di sprite che verrebbero scritte così
che useresti sai 70 e 71 è
la fonte dello sprite e 72 e 73
è sulla destinazione e tu
userei queste cose indirettamente
grazie a quelli, è davvero bello
concetto per darti una sorta di contesto
lo z80 aveva pensato che otto registri quello
potresti accoppiare in modo da avere un A o B
una C in una D e potresti usare B e C per
significa un registro a 16 bit ma lo z80 era
molto più lento in termini di esso per molti
molti più cicli per fare qualsiasi
cosa anche se correva leggermente
più veloce, quindi sono in qualche modo compensati e
questo è leggermente più rischioso leggermente
scusa più rischioso che è rischioso con a
piccolo C non rischioso non è spaventoso o
qualunque cosa va bene così hai un po ‘di
una sorta di fondamento su cosa cosa
sembra emulare un 6502
come iniziamo bene piuttosto semplice
veramente
proprio come il processore si aggiusta la rete
prendere le istruzioni successive che decodificate
e tu lo esegui che cosa fa
sembra che sia praticamente un
emulatore dare o prendere alcune centinaia
istruzioni che non ho messo sul
scivola qui, quindi abbiamo un A e x e
ay che stanno andando a rispecchiare il
registrare i contenuti di questi tre
registri di cui parlavo abbiamo
un contatore di programmi che capita
iniziare da un indirizzo particolare no
conta davvero per questo e poi abbiamo
un ciclo per sempre legge il prossimo byte che siamo
supponendo che esista una funzione chiamata read
mem che andrà via e leggerà
leggi la memoria qualunque cosa significhi che lo faremo
ne parliamo nel minuto leggere il
successivamente incrementando il contatore del programma
e poi cambiarlo cosa significa e
come abbiamo visto prima, un nove è il carico a
con un valore immediato quindi il codice per
che sarà uguale a leggere mem PC
plus plus leggiamo il prossimo byte
e poi lo metti nel registro
c’è un sacco di altre cose
Mi sto perdendo per questo, ma tu
avere l’idea
similmente come il tre qui è
due carichi di un indirizzo e quindi il codice
è un po ‘più complicato ma così
fai questo tu apri il tuo manuale
nel tuo laboratorio vai uno per uno
tutti i 160 codici documentati per
il 6502 e sei fatto bene tu sei
fatto se ti piace cambiare casualmente
valori all’interno di un array in memoria senza
effettivamente vedendo cosa diavolo sembra
in questo modo in realtà c’è bisogno di fare un po ‘
più lavoro prima che diventi più eccitante
di quello così abbiamo bisogno di parlare con il
mondo esterno e, naturalmente, il più
la cosa interessante di cui parlare è il
percorso video quindi di solito era un micro BBC
collegato a una TV se tu fossi molto
immagina di avere un monitor ma
alla fine equivaleva alla stessa cosa
c’era qualcosa che era ha un
scansione a fascio di elettroni 50 volte al secondo
e l’emissione di colori sullo schermo
c’era un chip dedicato all’interno del
computer di cui era responsabile
guidando quel raggio CRT e il
parli come qualsiasi altro dispositivo
era attraverso i / o mappati in memoria quindi alcuni di
i posti che potresti conservare ad alcuni di
quelli legge e scrive che la memoria lo farebbe
in realtà invece di andare su ROM o Ram
andavano ai circuiti o lo farebbero
vai ai registri su Hardware che era
all’interno della macchina così uno di quelli di nuovo
come dico sarebbe il chip video e il
video chip ha alcuni lo registra
ed è un chip relativamente complicato in
di per sé uno di quei registri
sarebbe ma quale indirizzo è lo schermo
memorizzato e tu dici che lo diresti
dove è stato memorizzato lo schermo e poi
ogni singolo tick dell’orologio o
orologio del segno di spunta mentre continuo a dire il
anche il video chip preleva un byte da
memoria e lo interpreterebbe
essendo ciò che i colori sto andando a
visualizzare qui e c’erano una varietà di
modi di interpretare il byte che sarà
leggi ma ciò significa che è tutto
tick singolo dell’orologio di cui ha bisogno la CPU
leggere qualcosa dalla memoria e il
il chip video deve leggere qualcosa da
memoria ora se qualcuno di voi ha mai guardato
a come funzionano le moderne schede grafiche
si sente parlare di dual ported o quad
Portato Ram dove puoi leggere e scrivere
allo stesso tempo e tu pensi bene
sicuramente questo deve significare che tu hai avuto molto
Ram costoso e complicato dentro a
Sistema basato su 6502 e la risposta è no
no questo era nel periodo d’oro in
calcolo quello là solo tempo in
calcolo quando Ram era più veloce del
processore così come è successo il ram corse
al doppio della velocità del processore e
quindi è stato possibile condividerlo
cooperativamente con il circuito video
a questo ciclo è stata data la CPU e poi
il ciclo successivo è stato dato al chip Ram
così come dico che alcuni registri ti hanno permesso
per configurare come il processore video
ha funzionato e potrebbe fare qualcosa come
semplice come leggere la bici dalla memoria e
genera otto pixel da e
come un tavolino aveva il chip video
la propria ROM e aveva il proprio set di
personaggi in modo da poter avere un personaggio
mappa per visualizzare dove sarebbe letteralmente
interpreti gli amari e chiedi di comprarlo
e scriverlo sullo schermo come quello
immagine o potresti metterlo in un
modalità bitmap in cui hai avuto un massimo
o modalità a 2 o 16 colori a bassa risoluzione
e ci sono altre parti di questo
è necessario per ottenere effettivamente il
avvia e avvia il sistema come potresti
capisco come la maggior parte dei tipi di
i sistemi operativi hanno bisogno di un modo per farlo
qualche lavoro periodico e quindi ci sono
i timer sul c’è un chip che è
differire
– generare segnali di temporizzazione così come faresti
fondamentalmente caricare un valore in esso di nuovo
scrivendo su uno di questi ricordi magici
indirizzi e quindi il timer avrebbe inizio
ticchettio e conto alla rovescia e quando
hit zero genererebbe un interrupt e
quindi la CPU quindi se la CPU sarebbe
interrotto il sistema operativo lo farebbe
vai a controllare qualsiasi cosa fosse necessaria per controllare
quindi è un problema piuttosto delicato , quindi noi
necessario per far funzionare il timer come
ben prima che apparisse qualcosa
lo schermo e tu sai che vuoi
emula il suono e cose e ancora
è solo una questione di apertura del
manuali hardware e tipo di andare
attraverso di loro tutti così vediamo cosa
sembra che se posso posso aver appena realizzato un
piccolo problema qui è che sarete
in grado di vedere questo ma non schiererà così questo
è così familiare a chiunque sia stato
in Gran Bretagna c’è almeno un ragazzo
chi l’ha visto prima di quel rumore
del sistema di avvio è
estremamente una sorta di reminiscenza ma data
che si tratta di un go-to conferenza Sono
andando a fare ciò che tutti hanno fatto di nuovo
1985 whoo così tanti grandi magazzini che
aveva computer che erano rimasti su sconosciuti
avrebbero finire con cose come questa
per correre su di loro così è carino
bello e così sai che io sono qui
la modalità in cui emula oh di
corso
c’è tanti mi dispiace che siamo in
la modalità mappa dei caratteri qui è questa
chiamato modalità 7 e così al momento cosa
Posso farlo se lo ripristino
Capito di sapere dove si trova il ricordo
lo schermo è memorizzato in modo tale da renderlo simile
Dimostrare un punto se ho digitato questo in
destra
7c 0 0 questo è un colpo questo è proprio come
Scrittura grezza in memoria intendo che lo è
incredibile cosa potresti fare e come
al giorno d’oggi ai bambini non piacerà mai ottenere il
opportunità di scrivere solo a caso
parti della memoria del loro computer ma da
mettendo come 65 l’ ASCII per un lì io
può mettere un A nella parte superiore dello schermo
e così via e tu sai se cambio a
modalità diversa posso iniziare a mostrarti
che oh dio non riesco a vedere quello che sto facendo
dove siamo noi per mettere questo diciamo solo
fare quattromila uguale a cinque cinque noi
può mettere un grande blob lampeggiante nel
a metà di questo sappiamo che questo è un
la modalità bitmap ha una risoluzione molto bassa come
puoi vedere improvvisamente quei personaggi
hai tutto gigante quindi è bello così
un’altra cosa che ovviamente vorresti
emulare
praticamente dritto è il
sistema del disco che è stato allegato a voi
sappi che a volte dovevi caricare
roba di cassetta se non fossi così
abbastanza fortunato da avere il disco rigido
Non ti sottoporrò allo stridio
orribile processo di caricamento di cinque minuti
qualcosa fuori dal nastro e quindi ecco questo
il sistema del disco che posso mostrare appena ha fatto
Capisco che sì, bugia gialla al
in fondo è il disco come lì così questo
è come uno dei giochi che sono venuti se
te se sei schizzato sul disco
sistema in modo da sapere che questo non sembra
particolarmente stimolante finora ed è
tutto in quella orribile modalità grafica ma
sai che il mio sistema funziona, è così
piuttosto bello, quindi ovviamente quello che stai dopo
fai è andare come un sito online
che ha un intero archivio di immagini del disco
e siete come bene sto andando giocare
quel gioco che amo tanto e se io
può trovare il puntatore del mouse lì è
andremo a caricare ora vorrei solo
mi piace dire che ho il permesso di usare
questa immagine che è bianca in realtà anche
controlla in github che stiamo per caricare
su quel gioco di trading spaziale e così noi
avere l’élite e siamo fantastici tranne noi
non diventare fantastico perché siamo come ah
beh, non sembra proprio come io
ricordalo , puoi dire la fotografia
chi sta meglio farò un’altra versione
questo in un minuto in cui puoi vederlo
con meno corruzione quindi puoi probabilmente
vedi che proprio sotto dove dice carico
nuovo comandante questo sta diventando un po ‘
una specie di torbida e ora è una specie di
una sorta di scrolling su di esso ora
e cose orribili stanno accadendo così
qualcosa non è giusto con il nostro
emulazione quindi cosa sta succedendo sulla terra
da li proviamo e troviamo la via del ritorno
eccoci qui, cosa è successo lì
bene come ho accennato prima il video
il chip è un dispositivo piuttosto semplice e tu
potrebbe cambiare il modo in cui interpreta
anche quei byte li ho citati
che ci sono diverse modalità che
hai avuto una risoluzione bassa
risoluzione alta colore basso colore tutto
quelli sono accompagnati da trade-off in
termini della quantità di memoria che esso
usato e quando hai solo 32 K di
RAM e la maggior parte di questo è dedicato al
sistema operativo ogni singolo byte
conta anche se stai scrivendo un 3d
renderer vuoi davvero avere ragione
toccando il meno possibile di memoria così
se stai usando un alto colore alto
modalità di risoluzione che stai scrivendo
più byte per disegnare la stessa quantità di
dati così erano le persone che scrivevano l’élite
furbi erano come bene
quello che vorremmo fare è avere la cima
due terzi o tre quarti qualunque
che è in alta risoluzione ma basso
colormode in modo che diventi praticamente un
buona efficienza della memoria ma poi quando
Ho la mia piccola piccola tabella alla
in basso qui che mostra il tuo tipo di microfono
come lo stato e dove sono sulla mappa
e tutto ne facciamo altri ancora
colori che schizzano fuori da cosa diavolo
come ha fatto a raggiungere questo non è
qualcosa che il chip video può fare ma non
è quello che avrebbero fatto è ogni volta la
chip video raggiungere la cima sapevo che il
il fascio di elettroni aveva appena raggiunto la cima
dello schermo genererebbe un
interrompere e dire hey sono in cima
di nuovo quello che farebbe l’élite
uno di quei timer per dire hey conta
giù e so esattamente quanto tempo
prende il fascio di elettroni per scansionare tutti
la strada fino a qui per circa tutto qui
e poi riprogrammare il video
hardware per dire ok ora siamo dentro
modalità multicolore e bassa risoluzione e
finché riesco a farlo abbastanza velocemente
Ho tutto il tempo necessario alla
fascio di elettroni per uscire dal lato qui
zoom indietro e start up qui prima
chiunque si accorge che si è tuffato, è gentile
del trucco di un mago e un po ‘come
tira la tovaglia sotto che è
fantastico, quindi perché il mio emulatore no
funziona bene ho sorvolato un intero
un sacco di dettagli su quanto alto
il ciclo è stato fatto in modo efficace
decidere quando disegnare la foto giusta I
era nel mio genere di codice di esempio
il ciclo while era solo un po ‘
per sempre bene a un certo punto devo
fermati e come disegnare lo schermo e così via
quello che stavo facendo in quello precedente
l’esempio stava funzionando proprio come so
8.000 codici operativi e poi dico ok ora
disegniamo lo schermo e sono tornato indietro
e ha disegnato 8.000 codici operativi e disegnato il
schermo che significava ovviamente che c’era
nessuna possibilità per me di osservare mai il
video nel posto giusto quindi come facciamo
aggiustalo bene devo tornare al mio
tavolo gigante di codici operativi che ho
tutte le mie dichiarazioni del caso e invece di
supponendo che tutti prendano lo stesso
tempo che devo dire va bene
caricamento di take immediati nei cicli della CPU
quindi devo girare il video e
i timer per due cicli ogni volta
vedi un carico AAA media quindi ho tipo di ottenuto
questa routine Co tra la CPU e il
resto dell’hardware intendo ovviamente in
la realtà sono tutti insieme
nello stesso tempo in un sistema reale, ma lo facciamo
quello e ora otteniamo un incorrotto
incorrotto è che una parola è la
Oh beep problemi JIT all’inizio così
ora come possiamo vedere, abbiamo un
display molto più pulito ma anche questo
non era perfetto e ho controllato su un
vera BBC questo succede anche su a
il vero beep vede il puntino qui che è
lampeggia un po ‘e qualche volta tu
vedi un piccolo punto qui non lo è
giustamente ci sono alcune altre cose
quello che sta succedendo ai tempi non lo era
perfetto quindi intendo come lo facciamo per tempo
mi perdonerai se avrò un gioco veloce
come è stato così lungo ma come seriamente
questa è la macchina dei due megahertz no
è fantastico, è fantastico come me
sapere che diventa più veloce quando non c’è niente
sullo schermo quindi questo è lo spazio
stazione Sono appena uscito da quello
quello che ho preso gli schermi per uscire e
inseguimi, vieni, possiamo vederne un altro
anche le navi avevano IA e tutto e
è come se tu sapessi dove siamo
questo sono io, questo è il prezzo di tutto il
merci in questo particolare posto c’è a
apparentemente la dittatura era tutto questo
fatto attraverso come un numero casuale seminato
generatore che a loro piace generato a
un sacco di roba e poi apparentemente
dovevano passare e controllare lì
non sono state parole cattive che vengono fuori come a
risultato del loro algoritmo casuale per tutti
le cose che ho fatto, ma comunque è grandioso
quindi è fantastico
grande attacco giusto è sufficiente
giusto così è bello e la cosa migliore
riguardo alla scrittura di un emulatore lo è una volta
hai fatto il duro lavoro e hai
tutte quelle cose ti hanno risolto all’improvviso
avere questa enorme suite di giochi che erano
sono disponibili per te e puoi bollire
via molte lunghe serate che si accumulano
vecchi giochi e godendo e il frutto di
il tuo lavoro e così uno dei miei
i favoriti erano questo che è uno sfacciato
ripudio del gioco arcade Galaga che
sì, non è questo
così mi passi le serate facendo questo
e il tuo oh oh bene è sfortunato
e quindi quello che hai veramente scoperto è
è quello che passi il tuo tempo a fare
eseguire il debug del software di altre persone o
piuttosto i problemi del tuo software
tranne tu non hai il codice sorgente
non hai idea di cosa stesse facendo
il primo posto quindi se scrivi un
emulatore il mio consiglio per te è come spendere
molto tempo come è possibile scrivere a
debugger decente così io qui dentro ho un
debugger a livello di istruzioni che posso impostare
punti di interruzione posso impostare i punti di osservazione che posso
inserire bit arbitrari di JavaScript da eseguire
a determinate condizioni è una manna dal cielo
ora sto barando qui perché in realtà
ricorda questo gioco della mia infanzia e
So esattamente che cos’è questo incidente ma oh
se riesco a ricordare il numero, lo farò
vai non pensavo che tu possa leggere questo
Ad ogni modo, così potresti dire la mia parola
questo ma quel blob grigio c’è a
Punto interrogativo punto interrogativo
Marchio così fondamentalmente c’è un punto in
su cui siamo bloccati qui è un
istruzioni per le quali non so bene
è un’istruzione indefinita ora di
corso su un PC moderno cosa succederebbe
se si colpisce un’istruzione non definita si
ottenere come una colpa seg in disaccordo di
morte o qualsiasi altra cosa dipende da quale
modalità in cui sei ma di base il
processore sa che hai provato a fare
qualcosa che non dovresti fare come su a
C’s 502 cosa succede bene suona semplicemente
su di te pensi così di fatto il mio caso predefinito
nel mio simile è l’istruzione switch
solo P C ++ continua così
chiaramente non è giusto, perché dovrebbero?
l’ho fatto se diamo un’occhiata a noi
può riportare il puntatore del mouse sul mio
schermo qui aiuta ci andiamo se noi
dai un’occhiata a quali sono i codici op
intorno a quell’istruzione divertente così
l’istruzione è hex 87 che non era in
il mio tavolo guardiamo quelli vicini
abbiamo 84 apparentemente un negozio perché 85
è store a 86 è store X 87 non è definito
hmm beh, c’è una sorta di schema in corso
qui sembra per questo tipo di
sequenza di bit che la CPU sta interpretando
è come un negozio qualcosa e poi
a seconda dei due bit inferiori 0 0 0 1
1 0 è la Y registra il registro o
il registro X va bene, quindi forse possiamo ottenere un
indizio su quale sia questa altra istruzione
sta facendo perché questo deve essere fatto
qualcosa
beh, per fortuna le persone sono molto più intelligenti di
mi sono preso il tempo di fare qualcosa
assolutamente incredibile quindi un grande grazie a
le persone visual 6502 per avermi permesso di fare
Questo
questo è uno schema circuitale del 6502 così
la ragione so che ce ne sono tre
mille 510
transistor è perché questi ragazzi hanno
decapare a 6502 hanno preso carichi e
carichi e carichi di alta risoluzione
fotografie della tintura che hanno poi
rasato lo strato superiore e fatto
ancora
e si sono rasati dal livello successivo
e fatto di nuovo hanno scritto
programmi per cucirli insieme allora
hanno scritto il riconoscimento dell’immagine
software che può trovare dove tutto il
i cancelli sono e hanno
ha decodificato l’intero transistor
netlist della 6502 quindi è fantastico
successo in sé e questo è dove io
ha ottenuto la foto all’inizio di
il 6502 Naked ma più di questo
sono stati in grado di scrivere emulatori e
simulatori per quella netlist e così posso
eseguire un 6502 virtuale e guardare ogni
single bit in aggiunta hanno
preso il tempo di decodificare
oltre e hanno funzionato dove il
l’accumulatore è immagazzinato là dove a
registro è dove si trova il registro X.
dove ci sono tutti questi tipi di cose
e così in questa immagine qui è come
un tiro di livello superiore non riesci a vedere chi
questo tizio dice che le istruzioni lo decodificano
risulta una sorta di array dall’aspetto regolare
per essere un ho intenzione di guardare i miei appunti
130 per 21 ROM ora è indirizzato in a
modo molto strano quindi non ho intenzione di andare
dentro ma efficacemente l’istruzione
quello che è stato letto è preso sono alcuni bit
sono capovolte da compilare dal
istruzioni e alcuni tempi supplementari
le informazioni vengono aggiunte per darti come a
21 bit come la ricerca che viene presentata a
la ROM e l’ output a 130 bit da quello
ROM sta eccitando varie parti del
alberi del circuito e non c’è micro
codifica o qualcosa del genere è solo
Piace bene se corrisponde a questo bit
modello quindi è necessario farlo su questo
sottociclo di questa istruzione e se tu
prenditi il tempo di decodificare il
intero tavolo come altri molto più intelligenti
le persone di me hanno fatto scoprire
che in quel caso dell’87 quello che sta succedendo è
sia il registro sia il registro X.
sono abilitati allo stesso tempo così come il
store sta per scrivere in memoria l’a
e la X sono presenti insieme
al bus ora si scopre che il
gli zeri vincono quindi quello che succede veramente è
a e X è scritto e infatti questo era
persone ben note hanno fatto esperimenti con
6502 s prima che decapitassero, no
tutto ciò che la gente sapeva di questo
è esattamente il motivo per cui in quel gioco è questo
l’ ascia del negozio un po ‘confusa
istruzione che memorizza effettivamente un e
X in modo da trovare una grande lista di tutti questi
codici op divertenti non definiti e tu riempi
il resto del tuo tavolo e così ora
invece di avere solo cento e
sessanta voci strane nel tuo caso loro
quando hai tutti e 256 tutti fanno
qualcosa di utile e ora puoi eseguire a
carico di giochi quindi ovviamente io questo questo
è un credo che questa è un’ammissione che posso
Ho già accennato al parco giochi
trasferimento di giochi MIT illeciti che potrei
potrebbe aver partecipato nella mia giovinezza ma così
questo gioco qui alieno è arrivato
cassette e io non potremmo mai farlo funzionare
sul mio computer perché in realtà avevo un
versione leggermente diversa del
BBC BBC master l’aggiornamento
diversione dove capita di usare a
versione diversa per 6502 giorni a 65
C 1 2 che sfortunato tutto il
gli opcode non definiti hanno funzionato diversamente
cose indefinite quindi gli piaceva un intero
un sacco di giochi non ha funzionato, quindi ho speso a
molti dei miei giochi di hacking della mia gioventù solo per
farli funzionare sul mio computer che è
esattamente perché sapevo dov’ero Alec
andando storto sapevo che non funzionava
il computer che avevo ma questo gioco
alienare e un sacco di altri giochi
correlati tutti scritti dallo stesso autore I
non potrei mai andare al lavoro e il motivo
perché quello era un sistema di protezione
su di loro che la maggior parte dei giochi ha fatto ma questi
sistemi di protezione non sono riuscito a rompere
come quindici anni nella mia camera da letto così
parliamo brevemente di ciò che a
sistema di protezione intendo dire che questo è DRM
la nascita di DRM si potrebbe dire così
L’essenza generale è che lo faresti
prendere il codice di gioco al autore del avrebbe
prendi il codice del gioco lo cifrano
in qualche modo e poi avrebbero posto
la routine di decrittografia appena prima di loro
immediatamente ha funzionato nel gioco stesso e
avrebbero a questo punto lo farebbero
hanno disabilitato tutti gli interrupt o
sistemarli a modo loro avrebbero
assicurati che il sistema operativo sia no
più coinvolti e avrebbero impostato
un po ‘nella RAM, il che significava anche quello
se premi il pulsante Mi piace riavvia
fornirebbe vuota tutta la RAM
quindi fondamentalmente non appena lo eri
eri chiuso dentro
allora la prossima cosa che accadrà sarebbe
il gioco avrebbe giocato e quindi non hai avuto
possibilità di fermarlo e dire posso
salva questo per favore e prendine una copia così
se è crittografato o decifrato sopra
perché non riesco a decodificarlo voglio dire che posso caricare
il codice giusto e posso vedere cosa
sta facendo e posso decodificarlo solo
è come se fosse più complicato
ora ovviamente così le chiavi di decodifica
includerebbe cose come i valori magici
che sono stati caricati dal nastro quindi se tu
sono stati in grado di parlare con il controller del nastro
direttamente puoi davvero ascoltare
qualcosa che non era normale
segnale del nastro alla fine del caricamento
e tipo di crackle
Sì questo è esattamente quello che mi aspettavo
e ora ho il figlio di una parte magica
della mia chiave che può decodificare il gioco e
ovviamente l’ assunto c’è
quando si utilizza il nastro su nastro
– mazzo lo fermeresti dopo il
i rumori si sono fermati e tu no
in realtà raccogliere quel bit o non lo farebbe
traduci pure
allo stesso modo per i giochi di dischi che avevano
questa protezione userebbe come diretta
parlare al controller del disco per piacere
leggi settori apparentemente cattivi che non lo erano
in effetti è male che copi programmi
non vedrebbe in modo che ciò impedirebbe
di copiare il gioco piuttosto che
impedendoti di smontarlo e
cambiandolo questo è un po ‘divertente il
il codice di decifrazione si userebbe spesso
come parte della chiave perché l’hai fatto
dici bene se non includesse se stesso
cosa mi avrebbe impedito di sostituire
l’ultima istruzione del
codice di decodifica con una dichiarazione di ritorno
come una piccola istruzione di ritorno loro
corremmo felicemente decodificare il
gioco e invece di correre via nella
il gioco si fermerebbe e potrei salvarlo
bene se ottieni se la crittografia
codice di decodifica utilizza se stesso sono i
opcodes di se stesso come parte della chiave se
Lo modifico in qualsiasi modo poi, naturalmente
corromperà il gioco e no
decodificare quindi è abbastanza bello ma lì
sono modi per aggirare che si può hack in giro
che um diventa davvero eccentrico a questo
puntualizza ora il gioco veramente buono potrebbe
i sistemi di protezione userebbero l’hardware
timer e registri hardware così mentre
stavano correndo da cui avrebbero letto
quei contatori della mappa della memoria che erano
per sempre contandoli in quello se
hai disturbato la quantità di tempo necessario
per fare la decifrazione in alcun modo
qualunque sia il timer non li fermerebbe
continuate ad andare avanti
valori falsi la chiave sarebbe corrotta
nel gioco non decodificare così tu
non potrebbe nemmeno gradire un singolo passo in profondità
anche se avessi un debugger ma tu
non potrei fare un passo attraverso di essa perché
lo disturberesti e nel
i registri sono un’altra cosa che ero una volta
nelle mie protezioni di gioco
sistemi che utilizzerei come la posizione di
il cursore hardware perché, naturalmente, se
sei single a passare il codice
probabilmente hai qualche sovrapposizione sul
schermo e stai spostando il cursore e
Mi aspettavo che tu leggessi la posizione di
il cursore e ER e poi il reale
i giochi veramente fantastici userebbero il
interrompere le informazioni che avrebbero impostato
i loro stessi gestori di interruzioni accadono
in un momento particolare e poi lo farebbero
mutare la chiave forse sarebbe proprio come
aggiungere uno alla chiave in modo casuale ogni volta
la padella degli interrupt per sparare quale quale
lo sapevi piuttosto sconcertante, quindi il mio
amico Richard e io il ragazzo che ho scritto
l’ articolo della rivista era che ci siamo seduti
e abbiamo pensato come faremo a crackare
questo gioco alienato usa tutti questi
cose e altro e così abbiamo pensato di farlo
scrivere un emulatore 6502 e poi possiamo
decodificare il gioco eseguendo il nostro emulatore
e fermarlo quando arriva alla fine
e abbiamo trascorso molte molte serate e
i pomeriggi dopo la scuola che cercano di ottenere
questo per funzionare, ma è necessario tale profondità
profonda conoscenza di quello che sta succedendo in
non ci riesci, sai che è così
sensibile al tempismo intendo un esempio
è come se ci fosse un’istruzione dentro
la protezione aliena 8 dove dice
ruotare questo indirizzo di memoria che significa
leggerlo sposta tutto di una mossa il
portare nel fondo e riscriverlo
fuori di nuovo ci vogliono sette cicli c’è
nessuna indicazione su quale ciclo fa il
leggere e quale ciclo fa il
scrivi e quelle cose sono molto
importante perché ogni singolo ciclo
il contatore sta ticchettando e così sei
ottenere valori diversi così e lo siamo
sto iniziando a finire il tempo qui, ma io sono
solo andando a vedere molto rapidamente
Visual 6502 che non è mio questo è
il tappo ragazzi hoody del 6502 questo è
il loro emulatore JavaScript di come a
livello transistor e si può sorta di
unico passaggio e vedere quali parti
del chip sono illuminati a quale ciclo e
ancora più importante se riesco a superare
a qui hai una lista di tutti i
cose che stanno succedendo all’interno del chip
e ogni ciclo così armato di questo
informazioni che potrei fare un passo avanti
e ho potuto scoprire quali cicli
stava leggendo e quali cicli era
scrivendo in modo che potessi effettivamente inserire il
emulazione che dovevo finalmente fare
eccolo perché non poteva davvero
vederlo in quell’ultima diapositiva così ho detto
sette cicli e sei cicli fanno una rotazione
così puoi vedere i primi tre cicli
sta leggendo l’ opcode e il basso e
il byte alto dell’indirizzo che è
andando
per ruotare poi in realtà lo legge
memoria allora fa ruotare quale
prende un ciclo e in una finale di esso
lo memorizza ma uno dei più
cose interessanti in questo è questo
in realtà scrive nel quarto ciclo
anche
non c’era spillo su quel sessantacinque
diciotto 6502 quindi nessuno dei pin in poi
questo chip che diceva se voleva
a parlare con la memoria o non solo
è successo ogni ciclo di blocco SEC così
tutto ciò che è rimasto sul bus su entrambi
lato indirizzo e il lato dati era in corso
appena trasmesso ora così avanti quel quarto
ciclicamente sta scrivendo il non modificato
valore che di nuovo non fa male, nessun fallo
va bene se scrivi due volte nella memoria
che differenza fa tranne quella
Fe per otto qui è uno di quelli
Timer hardware che scrivono effettivamente
ha un effetto collaterale che fa qualcosa
in realtà annulla un’interruzione
sta andando e può causare tutti i tipi di
le cose accadono quindi devi modellarlo
troppo velocemente come lo aggiustiamo
beh all’improvviso il tuo codice sta guardando a
molto più complicato non c’è più
come eseguire Hardware per due cicli al
Alla fine devo rendere conto di ogni singolo
ciclo mentre sta attraversando all’interno di un
l’istruzione è molto complicata
guardando ma in realtà è generato dal codice
da un tavolo quindi ho effettivamente un
grande tavolo di tutti i codici op
stessa cosa che ho usato per generare il
disassemblatore che attualmente uso e io
avere una sorta di motore di regole
capisce le regole di ciò che le cose fanno
ottenere scritto letto dal 6502 e it
posso emettere tutto questo codice, quindi non l’ho fatto
in realtà devo scrivere tutte queste cose così
non è così doloroso come sembra che non lo facciamo
ho davvero troppo tempo per andare oltre
questo ma c’è un altro strato di
complessità su questo cespuglio che è quello
l’hardware stesso funzionava a metà del
velocità della CPU, quindi abbiamo il marrone
correndo al doppio della velocità e il
hardware che funziona a metà della velocità e
per consentire alla CPU di accedere a
l’hardware che doveva essere rallentato
giù e così c’è questa cosa chiamata
ciclo di stretching dove arriva l’orologio
è tipo legato alto come
chi sono sulle redini e, naturalmente
a seconda che tu sia uniforme
o ciclo dispari rispetto all’hardware è
se ci vogliono tre cicli per tipo
entrare in un passo o in cinque cicli, quindi c’è un
molta sottigliezza in termini di tempi
così armato con tutto questo e un amico
il mio che è tornato nel Regno Unito ha ancora
uno di questi computer che esegue tonnellate di
esperimenti per me sono stato in grado di ottenere il
tutto ciò che decodifica e sono felice di dire
finalmente trent’anni probabilmente troppo tardi
o 25 anni dopo sono stato in grado di avere
alienato tutto bene, vado turbo
attraverso questo volevo solo farne alcuni
cose sulle cose di spettacolo così
JavaScript non è noto per essere un
linguaggio veloce anche se i ragazzi JIT sono
incredibile um mi piace solo dire un po ‘
cose che ho scoperto per la prima volta
di tutte le dichiarazioni switch è incredibile se
hai una dichiarazione molto grande per il cambiamento
squadre investigative comuni
all’interno come Chrome e Firefox si arrendono
a loro piace questo è un articolo
dichiarazione di un caso mi sto arrendendo così
lo interpretiamo semplicemente , quindi non farlo io
in realtà ha una ricerca binaria da trovare
l’ opcode per Chrome e credo di esserlo
usa una serie di tabelle di salto per Firefox
non fare la spedizione dinamica è davvero
bella cosa da fare puoi avere come a
cosa singola che indica a quale
di routine sta andando essere chiamata su cui
ciclo e continui a scrivere su di esso e
roba di nuovo le jits go woah
ogni volta che chiamo questa funzione lo fa
qualcosa di diverso non posso in linea
qualsiasi cosa e si arrende e va
torna a interpretare in modo sorprendente il ciclo
srotolamento è vivo e vegeto così tu
ricorda la vecchia tecnica del mi piace
prendendo uno snippet di codice e invece di
mettendolo in un loop in realtà solo
copiato il codice otto volte o qualsiasi altra cosa
che in realtà ha fatto una grande differenza in
termini del codice di loop al codice video
dove farò otto pixel in a
tempo che è un po ‘triste uso
matrici digitate per lo schermo che è gentile
di una WebGL senza trucchi è stata una grande vittoria
per me intendo che non fa quasi nulla
ma facendo la parte di presentazione usando
WebGL significava che ho effettivamente ottenere qualche
come multi-threading primitivo multi
dove la GPU sta facendo il blip sullo schermo
mentre sto proseguendo con il prossimo
frame e ho fatto alcune cose complicate
per posticipare il suono in modo che il suono sia completo
in un venire e parlare con me dopo ma
sai di nuovo gente che stiamo facendo
alcune cose interessanti con suoni come loro
sono stati campionati discorso era era era una cosa
come sedersi in modo molto stretto
loop cambiando il volume del suono
molto molto, molto velocemente, fresco così dentro
conclusione si può ottenere un sacco di
divertimento di fare questo genere di cose questo
non è il mio primo emulatore in effetti il mio mio
il primo emulatore era un Sega Master System
emulatore che ho letto non con un amico
in assemblea a braccio indietro quando e poi io
portato su JavaScript quindi ho avuto un po ‘
di una storia di fare questo genere di cose
ma è così gratificante soprattutto quando
una volta che inizi a pubblicare questa roba
ci sono persone i cui giochi sono questi
rimettiti in contatto con te o vuoi a
Almeno rispondi alle tue e-mail e io ero molto
fortunato che il ragazzo che ha scritto in
sono tornato da me dopo aver scritto un post sul blog
su come mi piacerebbe rompere lì come
formati di testo compresso che ero
cercando di amare un mio amico su un
mailing list voleva avere come a
nome hackerato all’interno dell’elite e aveva fatto
in Photoshop e sono come posso fare
uno meglio di una versione photoshopped
di questo posso darti una versione del
gioco che ha questo hack in esso ma è così
risulta che non riuscivo a trovarlo ero solo
lo sai che attanaglia attraverso questa cosa
cercando l’ ASCII che ero
mi aspettavo di cambiare e non c’era
così su un’odissea enorme di come fa
questo in realtà funziona e l’ho mandato via email
dopo ho detto hey penso di rovesciare
inter ha fatto il tuo string.format lui
Dice che è praticamente tutto e lui
mi ha rimandato questo che è un originale
scansione del tipo di fan feed simile
stampato del computer che lui e l’altro
l’autore aveva scritto come l’originale
elenco di stringhe simili a token che tu
riesco a malapena a vedere che sono così dispiaciuto, ma era così
comunque gratificante
Sono a buon punto nel tempo quindi ne ho una lista
risorse là si può andare e giocare
sul web è sulla fonte è tutto su
github visual 6502 è incredibile
anche facendo altri chip quindi guarda
il loro sito grande grazie alle persone
elencato lì e come l’uomo ha detto
per favore ricordati di votare questa sis, grazie
tu
ottenere applausi è fantastico
quindi sì, come abbiamo appena detto che sarò
parlando oggi di emulare un 6502
sistema in JavaScript quindi prima di tutto a
un po ‘ di me stesso, il mio nome è opaco
dio bullone lavoro per un trading favoloso
compagnia qui a Chicago chiamata dlw
Sono contrattualmente obbligato a dire che lo siamo
le assunzioni vengono a parlarci quindi se questo parla
è interessante per te, non posso prometterlo
che usiamo 6502 s
ovunque nel nostro stack di trading, ma lo facciamo
avere cose altrettanto interessanti da fare
quindi vieni a parlare con me dopo o c’è
Katie che sta salutando dietro c’è
posso dirti molto di più su ciò che facciamo
comunque emulando un sistema 6502
basta andare a schermo intero ci siamo
beh, prima di tutto questa diapositiva è molto lontana
troppo high tech , torniamo indietro
ricorda questo tipo di cose va bene così
prima di tutto chi ha mai usato un 6502
computer basato sì, un buon numero di voi
Immagino che probabilmente non saresti qui se
lo faresti se tu non avessi così quello che è il
6502 è questo
è un computer a 8 bit prima realizzato
1975 quindi è solo un po ‘ più vecchio
di me tremilacinquecento e
dieci transistor tirato fuori e disposti
a mano da solo un piccolo gruppo di persone
strisciare su un grosso pezzo di acetato
come vorresti per un HP e
disegno in pennarello per cui tutte le
le tracce andrebbero e poi ascolterebbero poco
graficamente sicuro un restringersi verso il basso per ordinare
di queste dimensioni che penso di essere
Incredibile intendo nel mio giorno di lavoro al
momento che facciamo un po ‘come fpga
tipo di sviluppo e strumenti
dietro quello è sorprendente ma solo il
cosa che gli esseri umani stavano facendo
è semplicemente incredibile se non è quando è
non nudo oh aspetta un secondo che ho
appena avuto un abbondante sul mio know schermo
quando non lo è non l’hai fatto
una custodia di plastica sembra che sia così
ho migliaia di birilli all’esterno ma
esso
in realtà solo una piccola piccola cosa
all’interno di là così questi questi
i chip sir sono importanti perché nel
1980 sono il s65 o due insieme a
lo z80 era veramente responsabile per il
Il boom degli anni ’80 nell’home computing è stato un successo
chip a prezzi accessibili era potente e
sicuramente per me è stato il
tempo in cui i computer erano una specie di picking
e ho dovuto portarmi direttamente a me
essendo qui di fronte a te sai
diventando un programmatore di peltro
e parlerò un po ‘di più
che in un secondo così ho effettivamente contattato
su Twitter le persone che hanno ancora
i brevetti e i diritti per il 6502
e ho detto se hai qualche idea di come
molti di questi stanno pensando
sarebbero stati in poche centinaia di migliaia
pensando e quanti quanti computer
con loro ci sono stati fatti conoscere
forse centomila o forse mezzo
mezzo milione o qualcosa ma
apparentemente più di dieci miliardi di
queste cose sono state prodotte da solo
una società quindi probabilmente c’è molto
oltre che là fuori è abbastanza
incredibile quindi che tipo di computer era
la 6502 in qui puoi vedere che ce l’abbiamo
ho preso l’ Apple due, abbiamo l’Atari
800 e l’Atari 2600 della BBC micro e
c’è anche l’ animale domestico commodore il
commodore 64 the vic-20 era anche dentro
l’ originale Nintendo Entertainment
Sistema le narici era nel Tamagochi
animale domestico virtuale se ne hai mai uno
quelle cose davvero davvero irritanti
stava anche alimentando il Terminator
il film Terminator secondo se tu
freeze-frame ama la pinna all’interno del
primi cinque minuti se ricordi come
la DIA è il tipo di testo di
scorrendo verso il basso dello schermo e solo uno
selezionare casuale del computer senza senso se tu
blocca il fotogramma di cui fa effettivamente parte
il caricatore di avvio del booklet Apple 2 che è
stato smontato quindi è 6502 e
apparentemente è anche ciò che alimenta la curvatura
da Futurama ma il computer che sono
interessato a parlarti di quale
è un po ‘ironico perché qui sono dentro
Chicago parla con un americano in gran parte
il pubblico è una specie di strano inglese
il computer ha chiamato la BBC micro BBC
micro è stato realizzato da una società chiamata ghianda
nel 1981 e faceva parte della BBC
programma di alfabetizzazione informatica così questo è il
BBC piace il
Broadcasting Corporation britannico
La Broadcasting Corporation ha deciso
che volevano eseguire un’intera serie
di programmi educativi che spiegano cosa
questa cosa di calcolo newfangled era perché
era importante e per farlo
pensavano che avrebbero dovuto piacere
un sistema di computer sponsorizzato per andare
al fianco degli spettacoli televisivi, così escono
per offrire questa idea di come un
tipo accessibile di hackerabile credo che lo faremmo
dì al giorno d’oggi un sistema informatico e un
compagnia chiamata ghianda si avvicinò con il
design vincente e loro hanno prodotto
questo computer e come risultato di quella TV
serie è diventato uno dei più popolari
sistemi nel Regno Unito e se continui
YouTube possiamo effettivamente andare a vedere il
il programma per computer con il PR britannico
ogr amme spelling e loro sono
programmi universalmente terribili ora ma
si sa che erano lì al
all’inizio e certamente ha avuto molto
di persone interessate in esso significava anche
ce n’erano tonnellate in giro simili
scuole così un sacco di persone nel Regno Unito per
questa è la loro prima idea di cosa
il computer è una specie di scatola da urlo
con i tasti rosso acceso in alto come a
sorta di storia di dimensioni appena rapidamente il
la ghianda della compagnia ha continuato a farne altre
computer dopo questo ed è a
testimonianza di come hackable il micro BBC
lo sapevi che siamo nel 1981 e come
parte del design c’era una sorta di
bus del secondo processore che potevi
connettere altri processori a loro
aveva come un altro 6502 come una sorta di
carta figlia o si potrebbe ottenere anche un
80 88 o alcuni degli altri 16 bit
chip di computer che erano in giro ma
le stesse ghiande decisero che lo erano
andando a fare il proprio processore per
la loro prossima generazione di computer
pensavo che in realtà potevano fare a
buon lavoro e sorta di ispirato dal
6502 semplicità e il loro design sono venuti
con un processore a 32 bit che era
originariamente spuntava ed era un secondo
processore per il micro della BBC hanno chiamato
questa macchina RISC ghianda e molti
molti anni dopo, quando la società Acorn
stesso ha piegato quella società che loro
scorciato per occuparsi dell’IP per quello
Chip non è stato rinominato Advanced RISC
macchine e lo sto garantendo
probabilmente ce ne sono un paio di centinaia
quelle cose in questa stanza adesso
alimentando tutti i nostri iPhone e i nostri
Android così in molti modi questo computer è
l’antenato logico della convenienza
dentro il tuo
sei fuori dal tuo telefono, così il bip ha avuto
32k di RAM il 32k di ROM che ha funzionato a due
megahertz un intero due megahertz e il
hardware collegato ad esso il modo in cui il
6502 funziona senza istruzioni
con cui si poteva parlare in modo univoco
hardware che hai semplicemente scritto per ordinare
di indirizzi di memoria magica e quelli
membro indirizzi di memoria magica sul bus
farebbe una sorta di mappatura al reale fisico
Hardware per piacere leggere il diritto a
tastiera si dovrebbe solo scrivere per leggere a
proprio da indirizzi particolari perché è
è così importante per me, credo
in molti modi l’ho già spiegato
e una sorta di seguito dal discorso
abbiamo avuto prima qui su come ottenere
i bambini entrano in programmazione quando stavo crescendo
il modo in cui sei entrato in programmazione
è che avevi il tuo computer che hai salvato
la tua paghetta forse hai comprato un
gioco ogni tanto e forse hai fatto
alcuni scambi illeciti di giochi copiati in
il parco giochi Shh ma ancora più importante
ogni ogni mese si dovrebbe andare a comprare
una delle riviste che potresti ottenere
dal giornalaio
e si dovrebbe leggere tutte le ultime
giochi e leggere tutto sul
l’ultimo tipo di cose che erano
uscendo per il tuo computer e al
indietro sarebbe il bagno di metà del
rivista sarebbe stampe che tu
vorrei solo digitare e quindi ci sarebbe
i giochi ci sarebbero esempi di simili
questo qui è un rendering simile a Fraxel
cosa e impareresti come programmare
una specie di osmosi che inserisci in questi
cose o la mamma la legge
a te lo tocchi via, lo faresti
digitare eseguirlo non funzionerebbe inevitabilmente
hai solo un po ‘di vedere l’ errore di sintassi
e tu vai e tu guardi la lista
e si scopre che si trattava di un colon o
non un punto e virgola e tutti questi tipi di
cose ma ma in un certo senso, allora impari
come eseguire il debug in modo primitivo, così ho ottenuto
abbastanza bravo a scrivere queste cose e io
ho imparato molto su questo e questo
Oh particolare zucchero, ho appena premuto
Troppe volte nessuno so che è questo
articolo di una rivista in particolare questo io
mi sono scritto con il mio buon amico di
scuola usato per ottenere cinquanta sterline per cinquanta
sterline che è come ottanta dollari
per aver inviato un programma che ha ottenuto
pubblicato sulla rivista in modo che mantenuto
noi dentro in dolci e caramelle per abbastanza a
sacco di tempo quando eravamo lì, quindi ero
circa 15 quando questo è uscito e di
Ovviamente l’altra ragione è che di questo tipo
di
i sistemi informatici sono interessanti
a causa dei giochi giusti questo è davvero
a cosa servono i computer, come tutti sappiamo
e così il micro BBC è particolarmente
leggendario per questo questo gioco che io
non so se qualcuno in questa stanza altro
rispetto alle persone che conosco che lo sanno
sì, ci sono alcune persone che hanno
ha riconosciuto i suoi giochi chiamati elite e
è un gioco o un’azione di trading spaziale 3d
il gioco è uno di quelli che era uno
dei primi giochi intendo 1984 penso
ed è solo un gioco fantastico e da ottenere
ha schiacciato 32 K di RAM in cui la maggior parte
della memoria è ripreso con la
effettiva solo foto che stai guardando fuori
c’è solo incredibile e sono stato
abbastanza fortunato da entrare in contatto con uno
delle persone che hanno scritto il gioco e
di cui abbiamo discusso tutto ed è
è semplicemente fantastico pensare che la ragione
praticamente che loro hanno scritto questo
il gioco è che nessuno glielo ha detto
non potrebbe mai fare rendering 3d su a
due processori megahertz, quindi hanno solo
provato e si è scoperto che puoi e il mio
il preferito personale è questo qui che
è un gioco chiamato esilio è una fisica 2d
basato puzzle game è semplicemente incredibile cosa
potresti fare in un numero così limitato
di RAM una quantità così limitata di
la potenza di calcolo va bene, ecco perché io
amo il Beeb è per questo che adoro il 6502
i poteri è perché sulla terra posso vedere
Sue ti sta facendo una foto proprio ora
perché JavaScript bene cuz è divertente
mi diverte davvero
prendere qualcosa che è di basso livello
come il codice assembly su un computer
ed emulatore impossibilmente il sistema il
il più lontano più lontano da esso ma no
c’è una vera ragione per chiunque sia
mai giocato con emulatori sa che
è una specie di lungo scrupolo
processo di solito per ottenere uno su cui lavorare
il tuo sistema devi trovare le rom
dovete trovare il codice che devi
trova le versioni divertenti di Lib GDK
ha bisogno che tu debba eseguire la configurazione di te
devi trovare il compilatore giusto che esegui
fallo correre e poi ottieni un
segfault e quindi sei tipo oh cosa
è successo qui e tu sai tutto questo
kinda roba non sono molto non è un
ottima esperienza utente ma a tutti
capisce andare a una pagina web e
vedere qualcosa così è per questo
javascript va bene così ho intenzione di spiegare
tu come ho scritto un emulatore ma prima
lo facciamo che dovrò darti un
un po ‘ di background su cosa
è dentro ho perso il mio
il mio clicker mi sono appena reso conto di esserlo
premendo i tasti sulla tastiera qui
e ho un clicker da qualche parte oh, va bene
Mi limiterò a continuare a farlo
um so 6502 è un aha a 8 bit
grazie quindi è un processore a 8 bit
il che significa che tutti gli interni di
esso sono otto bit un’ampia ha tre fori
registra il primo registro quindi il
il più importante è l’accumulatore che
era di nuovo un registro a 8 bit che ha
essere utilizzato solo per il semplice scorrimento
l’ unico registro che potresti usare per
aritmetica quindi qualsiasi tipo di aggiunta
sottrarre il confronto doveva accadere con
l’accumulatore ce n’erano altri due
registri chiamati X & Y che hanno abbastanza
molto usato solo per l’indicizzazione in modo che tu potessi
usali come segnalini bottino e tu
potrei usarli per gradire l’indice in un
array ma a parte questo non è possibile
fare qualsiasi confronto o aritmetica su di loro
avevi un intero 256 byte di stack
anche se eri ovunque vicino a usare
più di circa 100 di loro si è
probabilmente nei guai il 6502 ha un
design interessante quindi è molto
limitato in termini di avere solo questi
tre registri ha trattato il fondo
256 byte di RAM leggermente diversi
dal resto della memoria e tanto
poiché c’erano solo codici op speciali
ti ha permesso di accedere a quegli indirizzi
che era più piccolo e più corto ovviamente
ogni byte che salvi in termini di memoria
è un byte in più nel tuo gioco o
la tua Europa o il tuo sistema operativo
qualunque cosa usare ma potrebbe anche trattare
coppie di valori nella pagina zero e
questo primo 256 byte di memoria ha
quasi come puntatori a 16 bit così è stato
il modo in cui hai fatto il giro del mondo
fatto che il resto del sistema era
solo 8 bit potresti usare due valori in
la pagina zero come puntatore a 16 bit
Spero di diventare un po ‘di più
chiaro in un secondo quindi questo è ciò che il
istruzioni assomigliano hai come
caricare e memorizzare due trasferimenti di registri
tra i registri push pop compare add
e sottrai tutto quel tipo di cose e
confronti e rami condizionali
rami quindi è più o meno quello che più
l’assemblaggio finisce per sembrare giusto
prendere una di quelle istruzioni il carico
un così questo è qualcosa che porta appena
un valore nell’accumulatore ci sono a
un sacco di modi in cui puoi portare valori
l’ accumulatore il primo e il più
modo ovvio è quello di portare in un effettivo
numero Voglio solo il numero 32 in
l’array
e questo è ciò che questa prima interruzione è
questo hash sarò chiamano hash molto
di voi ancora affondare sterlina penso che il
il nome corretto per quella cosa è octothorpe
che è solo attraverso argomenti con
Gli americani a riguardo non sono un chilo
questo è un po ‘come te
qui possiamo vedere questi sono gli opcode
ci sono davvero dolenti che posso
indicare qui pure
questi sono gli opcode che sono in realtà
essere interpretato dal processore in
digli cosa fare in modo che tu possa vederlo
l’opcode per il carico immediato è un 9 così
un 9 a 0 significa caricare a 0 che è 32
in un registro e poi il
le prossime due cose stanno leggendo dalla memoria
quindi ora un 5 significa caricare dalla memoria
indirizzo 70 in modo che legga qualcosa
dalla pagina di byte 17 a 0 e quindi caricare un 1
2 3 4 verrà caricato dall’indirizzo 1 2 3 4
e puoi vedere che c’è questo ragazzo qui
è un 5 e ha solo bisogno di un byte in più
questo ragazzo è un D e ha bisogno di 2 extra
byte quindi se stai usando un 0 Paige lo è
leggermente più efficiente, allora entriamo in
cose più avanzate dove iniziamo
vedere quei registri X e Y e quindi il
i primi due qui stanno leggendo da un offset
dall’indirizzo 1 2 3 4 in modo che tu possa pensare
questo come davvero leggere la X o la moglie
elemento in una matrice memorizzata all’indirizzo 1
2 3 4 e poi il vero killer 1 è questo
nel dirigere con tutte le parentesi finite
qui parentesi ciò che l’istruzione
significa che viene letto il valore all’indirizzo 70
poi ho letto l’indirizzo il valore a
l’indirizzo 71 considera questo come un 16-bit
puntatore quindi aggiungere Y ad esso e leggere il
byte da quell’indirizzo quindi c’è un ordinamento
della modalità indiretta in cui è possibile utilizzare a
puntatore a 70 e 71 per puntare a a
particolare pezzo di dati così come il tuo
routine di sprite che verrebbero scritte così
che useresti sai 70 e 71 è
la fonte dello sprite e 72 e 73
è sulla destinazione e tu
userei queste cose indirettamente
grazie a quelli, è davvero bello
concetto per darti una sorta di contesto
lo z80 aveva pensato che otto registri quello
potresti accoppiare in modo da avere un A o B
una C in una D e potresti usare B e C per
significa un registro a 16 bit ma lo z80 era
molto più lento in termini di esso per molti
molti più cicli per fare qualsiasi
cosa anche se correva leggermente
più veloce, quindi sono in qualche modo compensati e
questo è leggermente più rischioso leggermente
scusa più rischioso che è rischioso con a
piccolo C non rischioso non è spaventoso o
qualunque cosa va bene così hai un po ‘di
una sorta di fondamento su cosa cosa
sembra emulare un 6502
come iniziamo bene piuttosto semplice
veramente
proprio come il processore si aggiusta la rete
prendere le istruzioni successive che decodificate
e tu lo esegui che cosa fa
sembra che sia praticamente un
emulatore dare o prendere alcune centinaia
istruzioni che non ho messo sul
scivola qui, quindi abbiamo un A e x e
ay che stanno andando a rispecchiare il
registrare i contenuti di questi tre
registri di cui parlavo abbiamo
un contatore di programmi che capita
iniziare da un indirizzo particolare no
conta davvero per questo e poi abbiamo
un ciclo per sempre legge il prossimo byte che siamo
supponendo che esista una funzione chiamata read
mem che andrà via e leggerà
leggi la memoria qualunque cosa significhi che lo faremo
ne parliamo nel minuto leggere il
successivamente incrementando il contatore del programma
e poi cambiarlo cosa significa e
come abbiamo visto prima, un nove è il carico a
con un valore immediato quindi il codice per
che sarà uguale a leggere mem PC
plus plus leggiamo il prossimo byte
e poi lo metti nel registro
c’è un sacco di altre cose
Mi sto perdendo per questo, ma tu
avere l’idea
similmente come il tre qui è
due carichi di un indirizzo e quindi il codice
è un po ‘più complicato ma così
fai questo tu apri il tuo manuale
nel tuo laboratorio vai uno per uno
tutti i 160 codici documentati per
il 6502 e sei fatto bene tu sei
fatto se ti piace cambiare casualmente
valori all’interno di un array in memoria senza
effettivamente vedendo cosa diavolo sembra
in questo modo in realtà c’è bisogno di fare un po ‘
più lavoro prima che diventi più eccitante
di quello così abbiamo bisogno di parlare con il
mondo esterno e, naturalmente, il più
la cosa interessante di cui parlare è il
percorso video quindi di solito era un micro BBC
collegato a una TV se tu fossi molto
immagina di avere un monitor ma
alla fine equivaleva alla stessa cosa
c’era qualcosa che era ha un
scansione a fascio di elettroni 50 volte al secondo
e l’emissione di colori sullo schermo
c’era un chip dedicato all’interno del
computer di cui era responsabile
guidando quel raggio CRT e il
parli come qualsiasi altro dispositivo
era attraverso i / o mappati in memoria quindi alcuni di
i posti che potresti conservare ad alcuni di
quelli legge e scrive che la memoria lo farebbe
in realtà invece di andare su ROM o Ram
andavano ai circuiti o lo farebbero
vai ai registri su Hardware che era
all’interno della macchina così uno di quelli di nuovo
come dico sarebbe il chip video e il
video chip ha alcuni lo registra
ed è un chip relativamente complicato in
di per sé uno di quei registri
sarebbe ma quale indirizzo è lo schermo
memorizzato e tu dici che lo diresti
dove è stato memorizzato lo schermo e poi
ogni singolo tick dell’orologio o
orologio del segno di spunta mentre continuo a dire il
anche il video chip preleva un byte da
memoria e lo interpreterebbe
essendo ciò che i colori sto andando a
visualizzare qui e c’erano una varietà di
modi di interpretare il byte che sarà
leggi ma ciò significa che è tutto
tick singolo dell’orologio di cui ha bisogno la CPU
leggere qualcosa dalla memoria e il
il chip video deve leggere qualcosa da
memoria ora se qualcuno di voi ha mai guardato
a come funzionano le moderne schede grafiche
si sente parlare di dual ported o quad
Portato Ram dove puoi leggere e scrivere
allo stesso tempo e tu pensi bene
sicuramente questo deve significare che tu hai avuto molto
Ram costoso e complicato dentro a
Sistema basato su 6502 e la risposta è no
no questo era nel periodo d’oro in
calcolo quello là solo tempo in
calcolo quando Ram era più veloce del
processore così come è successo il ram corse
al doppio della velocità del processore e
quindi è stato possibile condividerlo
cooperativamente con il circuito video
a questo ciclo è stata data la CPU e poi
il ciclo successivo è stato dato al chip Ram
così come dico che alcuni registri ti hanno permesso
per configurare come il processore video
ha funzionato e potrebbe fare qualcosa come
semplice come leggere la bici dalla memoria e
genera otto pixel da e
come un tavolino aveva il chip video
la propria ROM e aveva il proprio set di
personaggi in modo da poter avere un personaggio
mappa per visualizzare dove sarebbe letteralmente
interpreti gli amari e chiedi di comprarlo
e scriverlo sullo schermo come quello
immagine o potresti metterlo in un
modalità bitmap in cui hai avuto un massimo
o modalità a 2 o 16 colori a bassa risoluzione
e ci sono altre parti di questo
è necessario per ottenere effettivamente il
avvia e avvia il sistema come potresti
capisco come la maggior parte dei tipi di
i sistemi operativi hanno bisogno di un modo per farlo
qualche lavoro periodico e quindi ci sono
i timer sul c’è un chip che è
differire
– generare segnali di temporizzazione così come faresti
fondamentalmente caricare un valore in esso di nuovo
scrivendo su uno di questi ricordi magici
indirizzi e quindi il timer avrebbe inizio
ticchettio e conto alla rovescia e quando
hit zero genererebbe un interrupt e
quindi la CPU quindi se la CPU sarebbe
interrotto il sistema operativo lo farebbe
vai a controllare qualsiasi cosa fosse necessaria per controllare
quindi è un problema piuttosto delicato , quindi noi
necessario per far funzionare il timer come
ben prima che apparisse qualcosa
lo schermo e tu sai che vuoi
emula il suono e cose e ancora
è solo una questione di apertura del
manuali hardware e tipo di andare
attraverso di loro tutti così vediamo cosa
sembra che se posso posso aver appena realizzato un
piccolo problema qui è che sarete
in grado di vedere questo ma non schiererà così questo
è così familiare a chiunque sia stato
in Gran Bretagna c’è almeno un ragazzo
chi l’ha visto prima di quel rumore
del sistema di avvio è
estremamente una sorta di reminiscenza ma data
che si tratta di un go-to conferenza Sono
andando a fare ciò che tutti hanno fatto di nuovo
1985 whoo così tanti grandi magazzini che
aveva computer che erano rimasti su sconosciuti
avrebbero finire con cose come questa
per correre su di loro così è carino
bello e così sai che io sono qui
la modalità in cui emula oh di
corso
c’è tanti mi dispiace che siamo in
la modalità mappa dei caratteri qui è questa
chiamato modalità 7 e così al momento cosa
Posso farlo se lo ripristino
Capito di sapere dove si trova il ricordo
lo schermo è memorizzato in modo tale da renderlo simile
Dimostrare un punto se ho digitato questo in
destra
7c 0 0 questo è un colpo questo è proprio come
Scrittura grezza in memoria intendo che lo è
incredibile cosa potresti fare e come
al giorno d’oggi ai bambini non piacerà mai ottenere il
opportunità di scrivere solo a caso
parti della memoria del loro computer ma da
mettendo come 65 l’ ASCII per un lì io
può mettere un A nella parte superiore dello schermo
e così via e tu sai se cambio a
modalità diversa posso iniziare a mostrarti
che oh dio non riesco a vedere quello che sto facendo
dove siamo noi per mettere questo diciamo solo
fare quattromila uguale a cinque cinque noi
può mettere un grande blob lampeggiante nel
a metà di questo sappiamo che questo è un
la modalità bitmap ha una risoluzione molto bassa come
puoi vedere improvvisamente quei personaggi
hai tutto gigante quindi è bello così
un’altra cosa che ovviamente vorresti
emulare
praticamente dritto è il
sistema del disco che è stato allegato a voi
sappi che a volte dovevi caricare
roba di cassetta se non fossi così
abbastanza fortunato da avere il disco rigido
Non ti sottoporrò allo stridio
orribile processo di caricamento di cinque minuti
qualcosa fuori dal nastro e quindi ecco questo
il sistema del disco che posso mostrare appena ha fatto
Capisco che sì, bugia gialla al
in fondo è il disco come lì così questo
è come uno dei giochi che sono venuti se
te se sei schizzato sul disco
sistema in modo da sapere che questo non sembra
particolarmente stimolante finora ed è
tutto in quella orribile modalità grafica ma
sai che il mio sistema funziona, è così
piuttosto bello, quindi ovviamente quello che stai dopo
fai è andare come un sito online
che ha un intero archivio di immagini del disco
e siete come bene sto andando giocare
quel gioco che amo tanto e se io
può trovare il puntatore del mouse lì è
andremo a caricare ora vorrei solo
mi piace dire che ho il permesso di usare
questa immagine che è bianca in realtà anche
controlla in github che stiamo per caricare
su quel gioco di trading spaziale e così noi
avere l’élite e siamo fantastici tranne noi
non diventare fantastico perché siamo come ah
beh, non sembra proprio come io
ricordalo , puoi dire la fotografia
chi sta meglio farò un’altra versione
questo in un minuto in cui puoi vederlo
con meno corruzione quindi puoi probabilmente
vedi che proprio sotto dove dice carico
nuovo comandante questo sta diventando un po ‘
una specie di torbida e ora è una specie di
una sorta di scrolling su di esso ora
e cose orribili stanno accadendo così
qualcosa non è giusto con il nostro
emulazione quindi cosa sta succedendo sulla terra
da li proviamo e troviamo la via del ritorno
eccoci qui, cosa è successo lì
bene come ho accennato prima il video
il chip è un dispositivo piuttosto semplice e tu
potrebbe cambiare il modo in cui interpreta
anche quei byte li ho citati
che ci sono diverse modalità che
hai avuto una risoluzione bassa
risoluzione alta colore basso colore tutto
quelli sono accompagnati da trade-off in
termini della quantità di memoria che esso
usato e quando hai solo 32 K di
RAM e la maggior parte di questo è dedicato al
sistema operativo ogni singolo byte
conta anche se stai scrivendo un 3d
renderer vuoi davvero avere ragione
toccando il meno possibile di memoria così
se stai usando un alto colore alto
modalità di risoluzione che stai scrivendo
più byte per disegnare la stessa quantità di
dati così erano le persone che scrivevano l’élite
furbi erano come bene
quello che vorremmo fare è avere la cima
due terzi o tre quarti qualunque
che è in alta risoluzione ma basso
colormode in modo che diventi praticamente un
buona efficienza della memoria ma poi quando
Ho la mia piccola piccola tabella alla
in basso qui che mostra il tuo tipo di microfono
come lo stato e dove sono sulla mappa
e tutto ne facciamo altri ancora
colori che schizzano fuori da cosa diavolo
come ha fatto a raggiungere questo non è
qualcosa che il chip video può fare ma non
è quello che avrebbero fatto è ogni volta la
chip video raggiungere la cima sapevo che il
il fascio di elettroni aveva appena raggiunto la cima
dello schermo genererebbe un
interrompere e dire hey sono in cima
di nuovo quello che farebbe l’élite
uno di quei timer per dire hey conta
giù e so esattamente quanto tempo
prende il fascio di elettroni per scansionare tutti
la strada fino a qui per circa tutto qui
e poi riprogrammare il video
hardware per dire ok ora siamo dentro
modalità multicolore e bassa risoluzione e
finché riesco a farlo abbastanza velocemente
Ho tutto il tempo necessario alla
fascio di elettroni per uscire dal lato qui
zoom indietro e start up qui prima
chiunque si accorge che si è tuffato, è gentile
del trucco di un mago e un po ‘come
tira la tovaglia sotto che è
fantastico, quindi perché il mio emulatore no
funziona bene ho sorvolato un intero
un sacco di dettagli su quanto alto
il ciclo è stato fatto in modo efficace
decidere quando disegnare la foto giusta I
era nel mio genere di codice di esempio
il ciclo while era solo un po ‘
per sempre bene a un certo punto devo
fermati e come disegnare lo schermo e così via
quello che stavo facendo in quello precedente
l’esempio stava funzionando proprio come so
8.000 codici operativi e poi dico ok ora
disegniamo lo schermo e sono tornato indietro
e ha disegnato 8.000 codici operativi e disegnato il
schermo che significava ovviamente che c’era
nessuna possibilità per me di osservare mai il
video nel posto giusto quindi come facciamo
aggiustalo bene devo tornare al mio
tavolo gigante di codici operativi che ho
tutte le mie dichiarazioni del caso e invece di
supponendo che tutti prendano lo stesso
tempo che devo dire va bene
caricamento di take immediati nei cicli della CPU
quindi devo girare il video e
i timer per due cicli ogni volta
vedi un carico AAA media quindi ho tipo di ottenuto
questa routine Co tra la CPU e il
resto dell’hardware intendo ovviamente in
la realtà sono tutti insieme
nello stesso tempo in un sistema reale, ma lo facciamo
quello e ora otteniamo un incorrotto
incorrotto è che una parola è la
Oh beep problemi JIT all’inizio così
ora come possiamo vedere, abbiamo un
display molto più pulito ma anche questo
non era perfetto e ho controllato su un
vera BBC questo succede anche su a
il vero beep vede il puntino qui che è
lampeggia un po ‘e qualche volta tu
vedi un piccolo punto qui non lo è
giustamente ci sono alcune altre cose
quello che sta succedendo ai tempi non lo era
perfetto quindi intendo come lo facciamo per tempo
mi perdonerai se avrò un gioco veloce
come è stato così lungo ma come seriamente
questa è la macchina dei due megahertz no
è fantastico, è fantastico come me
sapere che diventa più veloce quando non c’è niente
sullo schermo quindi questo è lo spazio
stazione Sono appena uscito da quello
quello che ho preso gli schermi per uscire e
inseguimi, vieni, possiamo vederne un altro
anche le navi avevano IA e tutto e
è come se tu sapessi dove siamo
questo sono io, questo è il prezzo di tutto il
merci in questo particolare posto c’è a
apparentemente la dittatura era tutto questo
fatto attraverso come un numero casuale seminato
generatore che a loro piace generato a
un sacco di roba e poi apparentemente
dovevano passare e controllare lì
non sono state parole cattive che vengono fuori come a
risultato del loro algoritmo casuale per tutti
le cose che ho fatto, ma comunque è grandioso
quindi è fantastico
grande attacco giusto è sufficiente
giusto così è bello e la cosa migliore
riguardo alla scrittura di un emulatore lo è una volta
hai fatto il duro lavoro e hai
tutte quelle cose ti hanno risolto all’improvviso
avere questa enorme suite di giochi che erano
sono disponibili per te e puoi bollire
via molte lunghe serate che si accumulano
vecchi giochi e godendo e il frutto di
il tuo lavoro e così uno dei miei
i favoriti erano questo che è uno sfacciato
ripudio del gioco arcade Galaga che
sì, non è questo
così mi passi le serate facendo questo
e il tuo oh oh bene è sfortunato
e quindi quello che hai veramente scoperto è
è quello che passi il tuo tempo a fare
eseguire il debug del software di altre persone o
piuttosto i problemi del tuo software
tranne tu non hai il codice sorgente
non hai idea di cosa stesse facendo
il primo posto quindi se scrivi un
emulatore il mio consiglio per te è come spendere
molto tempo come è possibile scrivere a
debugger decente così io qui dentro ho un
debugger a livello di istruzioni che posso impostare
punti di interruzione posso impostare i punti di osservazione che posso
inserire bit arbitrari di JavaScript da eseguire
a determinate condizioni è una manna dal cielo
ora sto barando qui perché in realtà
ricorda questo gioco della mia infanzia e
So esattamente che cos’è questo incidente ma oh
se riesco a ricordare il numero, lo farò
vai non pensavo che tu possa leggere questo
Ad ogni modo, così potresti dire la mia parola
questo ma quel blob grigio c’è a
Punto interrogativo punto interrogativo
Marchio così fondamentalmente c’è un punto in
su cui siamo bloccati qui è un
istruzioni per le quali non so bene
è un’istruzione indefinita ora di
corso su un PC moderno cosa succederebbe
se si colpisce un’istruzione non definita si
ottenere come una colpa seg in disaccordo di
morte o qualsiasi altra cosa dipende da quale
modalità in cui sei ma di base il
processore sa che hai provato a fare
qualcosa che non dovresti fare come su a
C’s 502 cosa succede bene suona semplicemente
su di te pensi così di fatto il mio caso predefinito
nel mio simile è l’istruzione switch
solo P C ++ continua così
chiaramente non è giusto, perché dovrebbero?
l’ho fatto se diamo un’occhiata a noi
può riportare il puntatore del mouse sul mio
schermo qui aiuta ci andiamo se noi
dai un’occhiata a quali sono i codici op
intorno a quell’istruzione divertente così
l’istruzione è hex 87 che non era in
il mio tavolo guardiamo quelli vicini
abbiamo 84 apparentemente un negozio perché 85
è store a 86 è store X 87 non è definito
hmm beh, c’è una sorta di schema in corso
qui sembra per questo tipo di
sequenza di bit che la CPU sta interpretando
è come un negozio qualcosa e poi
a seconda dei due bit inferiori 0 0 0 1
1 0 è la Y registra il registro o
il registro X va bene, quindi forse possiamo ottenere un
indizio su quale sia questa altra istruzione
sta facendo perché questo deve essere fatto
qualcosa
beh, per fortuna le persone sono molto più intelligenti di
mi sono preso il tempo di fare qualcosa
assolutamente incredibile quindi un grande grazie a
le persone visual 6502 per avermi permesso di fare
Questo
questo è uno schema circuitale del 6502 così
la ragione so che ce ne sono tre
mille 510
transistor è perché questi ragazzi hanno
decapare a 6502 hanno preso carichi e
carichi e carichi di alta risoluzione
fotografie della tintura che hanno poi
rasato lo strato superiore e fatto
ancora
e si sono rasati dal livello successivo
e fatto di nuovo hanno scritto
programmi per cucirli insieme allora
hanno scritto il riconoscimento dell’immagine
software che può trovare dove tutto il
i cancelli sono e hanno
ha decodificato l’intero transistor
netlist della 6502 quindi è fantastico
successo in sé e questo è dove io
ha ottenuto la foto all’inizio di
il 6502 Naked ma più di questo
sono stati in grado di scrivere emulatori e
simulatori per quella netlist e così posso
eseguire un 6502 virtuale e guardare ogni
single bit in aggiunta hanno
preso il tempo di decodificare
oltre e hanno funzionato dove il
l’accumulatore è immagazzinato là dove a
registro è dove si trova il registro X.
dove ci sono tutti questi tipi di cose
e così in questa immagine qui è come
un tiro di livello superiore non riesci a vedere chi
questo tizio dice che le istruzioni lo decodificano
risulta una sorta di array dall’aspetto regolare
per essere un ho intenzione di guardare i miei appunti
130 per 21 ROM ora è indirizzato in a
modo molto strano quindi non ho intenzione di andare
dentro ma efficacemente l’istruzione
quello che è stato letto è preso sono alcuni bit
sono capovolte da compilare dal
istruzioni e alcuni tempi supplementari
le informazioni vengono aggiunte per darti come a
21 bit come la ricerca che viene presentata a
la ROM e l’ output a 130 bit da quello
ROM sta eccitando varie parti del
alberi del circuito e non c’è micro
codifica o qualcosa del genere è solo
Piace bene se corrisponde a questo bit
modello quindi è necessario farlo su questo
sottociclo di questa istruzione e se tu
prenditi il tempo di decodificare il
intero tavolo come altri molto più intelligenti
le persone di me hanno fatto scoprire
che in quel caso dell’87 quello che sta succedendo è
sia il registro sia il registro X.
sono abilitati allo stesso tempo così come il
store sta per scrivere in memoria l’a
e la X sono presenti insieme
al bus ora si scopre che il
gli zeri vincono quindi quello che succede veramente è
a e X è scritto e infatti questo era
persone ben note hanno fatto esperimenti con
6502 s prima che decapitassero, no
tutto ciò che la gente sapeva di questo
è esattamente il motivo per cui in quel gioco è questo
l’ ascia del negozio un po ‘confusa
istruzione che memorizza effettivamente un e
X in modo da trovare una grande lista di tutti questi
codici op divertenti non definiti e tu riempi
il resto del tuo tavolo e così ora
invece di avere solo cento e
sessanta voci strane nel tuo caso loro
quando hai tutti e 256 tutti fanno
qualcosa di utile e ora puoi eseguire a
carico di giochi quindi ovviamente io questo questo
è un credo che questa è un’ammissione che posso
Ho già accennato al parco giochi
trasferimento di giochi MIT illeciti che potrei
potrebbe aver partecipato nella mia giovinezza ma così
questo gioco qui alieno è arrivato
cassette e io non potremmo mai farlo funzionare
sul mio computer perché in realtà avevo un
versione leggermente diversa del
BBC BBC master l’aggiornamento
diversione dove capita di usare a
versione diversa per 6502 giorni a 65
C 1 2 che sfortunato tutto il
gli opcode non definiti hanno funzionato diversamente
cose indefinite quindi gli piaceva un intero
un sacco di giochi non ha funzionato, quindi ho speso a
molti dei miei giochi di hacking della mia gioventù solo per
farli funzionare sul mio computer che è
esattamente perché sapevo dov’ero Alec
andando storto sapevo che non funzionava
il computer che avevo ma questo gioco
alienare e un sacco di altri giochi
correlati tutti scritti dallo stesso autore I
non potrei mai andare al lavoro e il motivo
perché quello era un sistema di protezione
su di loro che la maggior parte dei giochi ha fatto ma questi
sistemi di protezione non sono riuscito a rompere
come quindici anni nella mia camera da letto così
parliamo brevemente di ciò che a
sistema di protezione intendo dire che questo è DRM
la nascita di DRM si potrebbe dire così
L’essenza generale è che lo faresti
prendere il codice di gioco al autore del avrebbe
prendi il codice del gioco lo cifrano
in qualche modo e poi avrebbero posto
la routine di decrittografia appena prima di loro
immediatamente ha funzionato nel gioco stesso e
avrebbero a questo punto lo farebbero
hanno disabilitato tutti gli interrupt o
sistemarli a modo loro avrebbero
assicurati che il sistema operativo sia no
più coinvolti e avrebbero impostato
un po ‘nella RAM, il che significava anche quello
se premi il pulsante Mi piace riavvia
fornirebbe vuota tutta la RAM
quindi fondamentalmente non appena lo eri
eri chiuso dentro
allora la prossima cosa che accadrà sarebbe
il gioco avrebbe giocato e quindi non hai avuto
possibilità di fermarlo e dire posso
salva questo per favore e prendine una copia così
se è crittografato o decifrato sopra
perché non riesco a decodificarlo voglio dire che posso caricare
il codice giusto e posso vedere cosa
sta facendo e posso decodificarlo solo
è come se fosse più complicato
ora ovviamente così le chiavi di decodifica
includerebbe cose come i valori magici
che sono stati caricati dal nastro quindi se tu
sono stati in grado di parlare con il controller del nastro
direttamente puoi davvero ascoltare
qualcosa che non era normale
segnale del nastro alla fine del caricamento
e tipo di crackle
Sì questo è esattamente quello che mi aspettavo
e ora ho il figlio di una parte magica
della mia chiave che può decodificare il gioco e
ovviamente l’ assunto c’è
quando si utilizza il nastro su nastro
– mazzo lo fermeresti dopo il
i rumori si sono fermati e tu no
in realtà raccogliere quel bit o non lo farebbe
traduci pure
allo stesso modo per i giochi di dischi che avevano
questa protezione userebbe come diretta
parlare al controller del disco per piacere
leggi settori apparentemente cattivi che non lo erano
in effetti è male che copi programmi
non vedrebbe in modo che ciò impedirebbe
di copiare il gioco piuttosto che
impedendoti di smontarlo e
cambiandolo questo è un po ‘divertente il
il codice di decifrazione si userebbe spesso
come parte della chiave perché l’hai fatto
dici bene se non includesse se stesso
cosa mi avrebbe impedito di sostituire
l’ultima istruzione del
codice di decodifica con una dichiarazione di ritorno
come una piccola istruzione di ritorno loro
corremmo felicemente decodificare il
gioco e invece di correre via nella
il gioco si fermerebbe e potrei salvarlo
bene se ottieni se la crittografia
codice di decodifica utilizza se stesso sono i
opcodes di se stesso come parte della chiave se
Lo modifico in qualsiasi modo poi, naturalmente
corromperà il gioco e no
decodificare quindi è abbastanza bello ma lì
sono modi per aggirare che si può hack in giro
che um diventa davvero eccentrico a questo
puntualizza ora il gioco veramente buono potrebbe
i sistemi di protezione userebbero l’hardware
timer e registri hardware così mentre
stavano correndo da cui avrebbero letto
quei contatori della mappa della memoria che erano
per sempre contandoli in quello se
hai disturbato la quantità di tempo necessario
per fare la decifrazione in alcun modo
qualunque sia il timer non li fermerebbe
continuate ad andare avanti
valori falsi la chiave sarebbe corrotta
nel gioco non decodificare così tu
non potrebbe nemmeno gradire un singolo passo in profondità
anche se avessi un debugger ma tu
non potrei fare un passo attraverso di essa perché
lo disturberesti e nel
i registri sono un’altra cosa che ero una volta
nelle mie protezioni di gioco
sistemi che utilizzerei come la posizione di
il cursore hardware perché, naturalmente, se
sei single a passare il codice
probabilmente hai qualche sovrapposizione sul
schermo e stai spostando il cursore e
Mi aspettavo che tu leggessi la posizione di
il cursore e ER e poi il reale
i giochi veramente fantastici userebbero il
interrompere le informazioni che avrebbero impostato
i loro stessi gestori di interruzioni accadono
in un momento particolare e poi lo farebbero
mutare la chiave forse sarebbe proprio come
aggiungere uno alla chiave in modo casuale ogni volta
la padella degli interrupt per sparare quale quale
lo sapevi piuttosto sconcertante, quindi il mio
amico Richard e io il ragazzo che ho scritto
l’ articolo della rivista era che ci siamo seduti
e abbiamo pensato come faremo a crackare
questo gioco alienato usa tutti questi
cose e altro e così abbiamo pensato di farlo
scrivere un emulatore 6502 e poi possiamo
decodificare il gioco eseguendo il nostro emulatore
e fermarlo quando arriva alla fine
e abbiamo trascorso molte molte serate e
i pomeriggi dopo la scuola che cercano di ottenere
questo per funzionare, ma è necessario tale profondità
profonda conoscenza di quello che sta succedendo in
non ci riesci, sai che è così
sensibile al tempismo intendo un esempio
è come se ci fosse un’istruzione dentro
la protezione aliena 8 dove dice
ruotare questo indirizzo di memoria che significa
leggerlo sposta tutto di una mossa il
portare nel fondo e riscriverlo
fuori di nuovo ci vogliono sette cicli c’è
nessuna indicazione su quale ciclo fa il
leggere e quale ciclo fa il
scrivi e quelle cose sono molto
importante perché ogni singolo ciclo
il contatore sta ticchettando e così sei
ottenere valori diversi così e lo siamo
sto iniziando a finire il tempo qui, ma io sono
solo andando a vedere molto rapidamente
Visual 6502 che non è mio questo è
il tappo ragazzi hoody del 6502 questo è
il loro emulatore JavaScript di come a
livello transistor e si può sorta di
unico passaggio e vedere quali parti
del chip sono illuminati a quale ciclo e
ancora più importante se riesco a superare
a qui hai una lista di tutti i
cose che stanno succedendo all’interno del chip
e ogni ciclo così armato di questo
informazioni che potrei fare un passo avanti
e ho potuto scoprire quali cicli
stava leggendo e quali cicli era
scrivendo in modo che potessi effettivamente inserire il
emulazione che dovevo finalmente fare
eccolo perché non poteva davvero
vederlo in quell’ultima diapositiva così ho detto
sette cicli e sei cicli fanno una rotazione
così puoi vedere i primi tre cicli
sta leggendo l’ opcode e il basso e
il byte alto dell’indirizzo che è
andando
per ruotare poi in realtà lo legge
memoria allora fa ruotare quale
prende un ciclo e in una finale di esso
lo memorizza ma uno dei più
cose interessanti in questo è questo
in realtà scrive nel quarto ciclo
anche
non c’era spillo su quel sessantacinque
diciotto 6502 quindi nessuno dei pin in poi
questo chip che diceva se voleva
a parlare con la memoria o non solo
è successo ogni ciclo di blocco SEC così
tutto ciò che è rimasto sul bus su entrambi
lato indirizzo e il lato dati era in corso
appena trasmesso ora così avanti quel quarto
ciclicamente sta scrivendo il non modificato
valore che di nuovo non fa male, nessun fallo
va bene se scrivi due volte nella memoria
che differenza fa tranne quella
Fe per otto qui è uno di quelli
Timer hardware che scrivono effettivamente
ha un effetto collaterale che fa qualcosa
in realtà annulla un’interruzione
sta andando e può causare tutti i tipi di
le cose accadono quindi devi modellarlo
troppo velocemente come lo aggiustiamo
beh all’improvviso il tuo codice sta guardando a
molto più complicato non c’è più
come eseguire Hardware per due cicli al
Alla fine devo rendere conto di ogni singolo
ciclo mentre sta attraversando all’interno di un
l’istruzione è molto complicata
guardando ma in realtà è generato dal codice
da un tavolo quindi ho effettivamente un
grande tavolo di tutti i codici op
stessa cosa che ho usato per generare il
disassemblatore che attualmente uso e io
avere una sorta di motore di regole
capisce le regole di ciò che le cose fanno
ottenere scritto letto dal 6502 e it
posso emettere tutto questo codice, quindi non l’ho fatto
in realtà devo scrivere tutte queste cose così
non è così doloroso come sembra che non lo facciamo
ho davvero troppo tempo per andare oltre
questo ma c’è un altro strato di
complessità su questo cespuglio che è quello
l’hardware stesso funzionava a metà del
velocità della CPU, quindi abbiamo il marrone
correndo al doppio della velocità e il
hardware che funziona a metà della velocità e
per consentire alla CPU di accedere a
l’hardware che doveva essere rallentato
giù e così c’è questa cosa chiamata
ciclo di stretching dove arriva l’orologio
è tipo legato alto come
chi sono sulle redini e, naturalmente
a seconda che tu sia uniforme
o ciclo dispari rispetto all’hardware è
se ci vogliono tre cicli per tipo
entrare in un passo o in cinque cicli, quindi c’è un
molta sottigliezza in termini di tempi
così armato con tutto questo e un amico
il mio che è tornato nel Regno Unito ha ancora
uno di questi computer che esegue tonnellate di
esperimenti per me sono stato in grado di ottenere il
tutto ciò che decodifica e sono felice di dire
finalmente trent’anni probabilmente troppo tardi
o 25 anni dopo sono stato in grado di avere
alienato tutto bene, vado turbo
attraverso questo volevo solo farne alcuni
cose sulle cose di spettacolo così
JavaScript non è noto per essere un
linguaggio veloce anche se i ragazzi JIT sono
incredibile um mi piace solo dire un po ‘
cose che ho scoperto per la prima volta
di tutte le dichiarazioni switch è incredibile se
hai una dichiarazione molto grande per il cambiamento
squadre investigative comuni
all’interno come Chrome e Firefox si arrendono
a loro piace questo è un articolo
dichiarazione di un caso mi sto arrendendo così
lo interpretiamo semplicemente , quindi non farlo io
in realtà ha una ricerca binaria da trovare
l’ opcode per Chrome e credo di esserlo
usa una serie di tabelle di salto per Firefox
non fare la spedizione dinamica è davvero
bella cosa da fare puoi avere come a
cosa singola che indica a quale
di routine sta andando essere chiamata su cui
ciclo e continui a scrivere su di esso e
roba di nuovo le jits go woah
ogni volta che chiamo questa funzione lo fa
qualcosa di diverso non posso in linea
qualsiasi cosa e si arrende e va
torna a interpretare in modo sorprendente il ciclo
srotolamento è vivo e vegeto così tu
ricorda la vecchia tecnica del mi piace
prendendo uno snippet di codice e invece di
mettendolo in un loop in realtà solo
copiato il codice otto volte o qualsiasi altra cosa
che in realtà ha fatto una grande differenza in
termini del codice di loop al codice video
dove farò otto pixel in a
tempo che è un po ‘triste uso
matrici digitate per lo schermo che è gentile
di una WebGL senza trucchi è stata una grande vittoria
per me intendo che non fa quasi nulla
ma facendo la parte di presentazione usando
WebGL significava che ho effettivamente ottenere qualche
come multi-threading primitivo multi
dove la GPU sta facendo il blip sullo schermo
mentre sto proseguendo con il prossimo
frame e ho fatto alcune cose complicate
per posticipare il suono in modo che il suono sia completo
in un venire e parlare con me dopo ma
sai di nuovo gente che stiamo facendo
alcune cose interessanti con suoni come loro
sono stati campionati discorso era era era una cosa
come sedersi in modo molto stretto
loop cambiando il volume del suono
molto molto, molto velocemente, fresco così dentro
conclusione si può ottenere un sacco di
divertimento di fare questo genere di cose questo
non è il mio primo emulatore in effetti il mio mio
il primo emulatore era un Sega Master System
emulatore che ho letto non con un amico
in assemblea a braccio indietro quando e poi io
portato su JavaScript quindi ho avuto un po ‘
di una storia di fare questo genere di cose
ma è così gratificante soprattutto quando
una volta che inizi a pubblicare questa roba
ci sono persone i cui giochi sono questi
rimettiti in contatto con te o vuoi a
Almeno rispondi alle tue e-mail e io ero molto
fortunato che il ragazzo che ha scritto in
sono tornato da me dopo aver scritto un post sul blog
su come mi piacerebbe rompere lì come
formati di testo compresso che ero
cercando di amare un mio amico su un
mailing list voleva avere come a
nome hackerato all’interno dell’elite e aveva fatto
in Photoshop e sono come posso fare
uno meglio di una versione photoshopped
di questo posso darti una versione del
gioco che ha questo hack in esso ma è così
risulta che non riuscivo a trovarlo ero solo
lo sai che attanaglia attraverso questa cosa
cercando l’ ASCII che ero
mi aspettavo di cambiare e non c’era
così su un’odissea enorme di come fa
questo in realtà funziona e l’ho mandato via email
dopo ho detto hey penso di rovesciare
inter ha fatto il tuo string.format lui
Dice che è praticamente tutto e lui
mi ha rimandato questo che è un originale
scansione del tipo di fan feed simile
stampato del computer che lui e l’altro
l’autore aveva scritto come l’originale
elenco di stringhe simili a token che tu
riesco a malapena a vedere che sono così dispiaciuto, ma era così
comunque gratificante
Sono a buon punto nel tempo quindi ne ho una lista
risorse là si può andare e giocare
sul web è sulla fonte è tutto su
github visual 6502 è incredibile
anche facendo altri chip quindi guarda
il loro sito grande grazie alle persone
elencato lì e come l’uomo ha detto
per favore ricordati di votare questa sis, grazie
tu
Please follow and like us: