DispatchCode
Utente Èlite
- Messaggi
- 2,504
- Reazioni
- 2,048
- Punteggio
- 144
Rieccomi dopo un pò di tempo! Qualcuno appassionato di golf? :)
Anche questa volta voglio proporre qualcosa, e no, non si tratta di una partita a golf. :lol:
Scherzi a parte, qualche tempo fa ho notato questo CodeGolf che ho provveduto a salvare tra i segnalibri: https://codegolf.stackexchange.com/questions/4732/emulate-an-intel-8086-cpu
Riporto schematicamente ciò che dovrà essere implementato; link utili, il binario da eseguire, e il codice sorgente, li trovate al link qui sopra.
Spero di vedere qualche partecipante o almeno qualche domanda, considerando che è un contest a parer mio interessante/stimolante. :D
Aspetterò qualche soluzione o qualche giorno prima di linkare la mia; lascio solo lo screen del mio output sotto spoiler:
Anche questa volta voglio proporre qualcosa, e no, non si tratta di una partita a golf. :lol:
Scherzi a parte, qualche tempo fa ho notato questo CodeGolf che ho provveduto a salvare tra i segnalibri: https://codegolf.stackexchange.com/questions/4732/emulate-an-intel-8086-cpu
Riporto schematicamente ciò che dovrà essere implementato; link utili, il binario da eseguire, e il codice sorgente, li trovate al link qui sopra.
- Only the following opcodes need to be implemented:
- mov, push, pop, xchg
- add, adc, sub, sbb, cmp, and, or, xor
- inc, dec
- call, ret, jmp
- jb, jz, jbe, js, jnb, jnz, jnbe, jns
- stc, clc
- hlt, nop
- As a result of this, you only need to calculate the carry, zero and sign flags
- Don't implement segments. Assume cs = ds = ss = 0.
- No prefixes
- No kinds of interrupts or port IO
- No string functions
- No two-byte opcodes (0F..)
- No floating point arithmetic
- (obviously) no 32-bit things, sse, mmx, ... whatever has not yet been invented in 1979
- You do not have to count cycles or do any timing
Start with ip = 0 and sp = 100h.
Input: Your emulator should take a binary program in any kind of format you like as input (read from file, predefined array, ...) and load it into memory at address 0.
Output: The video RAM starts at address 8000h, every byte is one (ASCII-)character. Emulate a 80x25 screen to console. Treat zero bytes like spaces.
Spero di vedere qualche partecipante o almeno qualche domanda, considerando che è un contest a parer mio interessante/stimolante. :D
Aspetterò qualche soluzione o qualche giorno prima di linkare la mia; lascio solo lo screen del mio output sotto spoiler:
