Preservation Preserving is not just about storing computers, disks - - PowerPoint PPT Presentation

preservation
SMART_READER_LITE
LIVE PREVIEW

Preservation Preserving is not just about storing computers, disks - - PowerPoint PPT Presentation

Retrocomputer Preservation Preserving is not just about storing computers, disks and books in a hangar FOSDEM Brussels, 2 & 3 February 2019 Original Original Hard Hard Soft Soft machine mach ine ? Emula Emulation tion ?


slide-1
SLIDE 1

Original Original mach machine ine ? Hard Hard Emula Emulation tion ? Soft Soft Emulation Emulation ?

FOSDEM Brussels, 2 & 3 February 2019

Preserving is not just about storing computers, disks and books in a hangar

Retrocomputer

Preservation

slide-2
SLIDE 2

Retrogaming & Retrocomputing

A French non-profit organization for the preservation of videogame and computer heritage

V 2019.02.01

slide-3
SLIDE 3

*our vision

To preserve heritage videogames and

  • computers. To show

them to people. Silicium manages an ever-growing collection and a regular exhibition schedule.

slide-4
SLIDE 4

Back in 1994, it was so obvious that computers should be

  • preserved. We then decided to gather and shelter many
  • bsolete computers, videogames, software, books… and

testimonies. Once we were seen like Zorg planet inhabitants, but today everyone feels the need to preserve computer heritage. Silicium has some answers.

03

about about silicium silicium

A 25-year history

slide-5
SLIDE 5

René René S Speranza peranza

President & cofounder

Has never achieved to transcend the 16-color palette.

  • ur team today

04

Benoit Triquet Benoit Triquet

Digital specialist

Not everyone can whisper the true language of the machine to the computer.

Valérie Amiel Valérie Amiel

Management expert

Explains us how to pop around things we need.

slide-6
SLIDE 6

*our

  • ur

collection

The heart of Silicium lies in its unmatched collection

  • f 1965 to 2015 computing

representatives, which are readily available for studies, display & exhibitions

slide-7
SLIDE 7

* our action

It’s hard to describe what Silicium preserves. Here’s what we consider important.

It all begun with compact Hewlett- Packard HP-85. Instead of being recycled, it launched the idea

  • f computer

preservation in 1989.

Com Computers puters

People ask us to show some fun. Videogames seem to be the right answer. And we know that even the hardcore computer can be fun to play with.

Videogames Videogames

*

Tons of iron, loads of

  • paper. We try to

maintain the whole thing together in

  • rder to keep the

spirit of computing vivid and unforgettable.

Everything Everything

06

slide-8
SLIDE 8

*our

  • ur

experience

With more than 100 members and a 25-year history, Silicium tries to

  • ffer a true savoir-faire.
slide-9
SLIDE 9

* our expertise

Silicium not only manages a huge collection. We also promote this heritage in many ways.

Exhibitions Exhibitions

The main link with people

Expertise Expertise

Need an expert in DEC minicomputers or in Philips Videopac ? Ask Silicium.

Publis Publisher her

Silicium regularly publishes books and games.

Manage community Manage community

Mysilicium forum is a hub for enthusiasts to share their passion.

Con Conference ference

This heritage has a long story to tell.

Preservation Preservation

Unfortunately, many old machines need to be repaired. Silicium experts play a major role.

08

slide-10
SLIDE 10

* Silicium in pictures

Some fine examples of Silicium activities.

01 01 2013 Odyssud Gameplay was a big exhibition, 02 02 Nothing could be done without enthusiasts and a huge collection, 03 03 . French TV captures an old computer screen drawing live, 04 04 Old technology requires some specific skills to maintain machines in working order.

Let’s achieve our main goal : opening a permanent exhibition.

09

slide-11
SLIDE 11

Early ASICs in 8-bit British micros…

Hardware Hardware rots rots

Mass-storage emulators

Me Media dia rots rots

Digitize Reverse-engineer

Do Document cumentatio ation rots rots

We do repair computers but nothing is forever

Retrocomputer Preservation

Preserving is not just about storing computers, disks and books in a hangar

10

slide-12
SLIDE 12

Projects Techniques for retro development

11

FPGA-Based emulators Frédéric Requin (co-founder of ArcadeRetroGaming) Gregory Estrade (@Torlus, http://lvt.tl/) Retro Peripherals Projects Projects we use or make at Silicium Projects Projects by our members Reverse Engineering

slide-13
SLIDE 13

* Retro mass-storage devices

Tape Decks Hard Drives

3€ generic « SD2IDE » work best in our experience CF-to-IDE are passive, depend on your CF card IDE-to-mSATA are less compatible Open source SCSI2SD We use v5 manufactured by Itead Audio interface is easy: smartphone with headphone jack Digital interfaces are proprietary Atari 800: no emulators but A8CAS

  • pen source software for digitizing

copy-protected tapes and use in emulators

12

slide-14
SLIDE 14

Floppy disks

  • A floppy drive is « dumb », mostly analog

electronics

Most 8-bit micros do not have a floppy controller

  • Easy: digital serial port

Atari 800: an Arduino is enough,

  • pen-source SIO2SD ebay, lotharek.pl

BBC Micro: software-defined so anything works, we use Ctorwy31 MMC drive

  • Hard: processor bus

Oric floppy controller boards are remade

  • Standard non-PC controller

Like Apple II where we use CFFA3000, BigMessOfWires FloppyEmu, …

14

slide-15
SLIDE 15

Shugart-like floppy drives

15

slide-16
SLIDE 16

Shugart-like floppy drives

  • Beware of pinout differences between true Shugart and PC

industry standard drives

– Motor-on and drive select lines

  • Non-standard ribbon cables: Amstrad CPC

– 26-pin ribbon cable to 34-pin PC => 2-way success – Beware of reversed +5V and +12V !!!

  • HxC is the best: resilient hardware, highly compatible

– By JF Del Nero with contribs from Torlus – Hardware is open source :) firmware is not :(

  • Gotek drives are inexpensive

– Must-have: FlashFloppy open source firmware

16

slide-17
SLIDE 17

* reverse engineering

The case of the Squale by Apollo 7

French microcomputer

  • nly 3 prototypes built

1 preserved by French museum CNAM Reverse engineered by Greg Estrade and JF Del Nero Emulator now available

http://hxc2001.free.fr/Squale/ http://torlus.github.io/2015/04/10/cnam-squale

slide-18
SLIDE 18

* FPGA-based emulators

(co-founder of ArcadeRetroGaming)

MCC (Multiple Classic Computer) emulates a C64 J68, a Verilog implementation

  • f Motorola 68000

Fred Fred

*

31

(@Torlus, http://lvt.tl/)

Sega Megadrive/Genesis Nec PC-Engine/TurboGrafx Atari Jaguar all developed in Verilog on Altera Cyclone Ported to the MiSTer open source project Successor to the MiST FPGA open source project Uses Cyclone V eval board, inexpensive, huge FPGA

Greg Greg

*

slide-19
SLIDE 19

PC PC Engine Engine

A real Nec PC-Engine Is priceless :-) and in excess of 200€ on eBay

It’s demo time !

18

MiSTer MiSTer

Greg’s FPGA core for MiSTer on DE10-nano 140€ to 200€ depending on daughterboards

Raspberry Pi Raspberry Pi

Batocera Linux on Raspberry Pi 3B+ 50€

Bomberman ‘93 running on a…

slide-20
SLIDE 20

GTKWave VCD viewer Cosimulation in SystemVerilog Verification of J68 core against Musashi, the 68k emulator used by MAME Veritalor open source, Verilog simulator

* Retro hardware development

Greg and Fred use Verilator

19

slide-21
SLIDE 21

J68 to Verilator

20

mod

  • dule j68

68_soc ( input t rst_n, n, input t clk, input t uar art_rxd, input t uar art_cts_n _n, input t uar art_dcd_n _n,

  • utput

ut uar art_txd,

  • utput

ut uar art_rts_n _n,

Verilog Verilog top top-level level model model

ver erilator r $TOP_FI FILE.v $C $COMPILE_ E_OPT $TR TRACE_OPT PT -top top-module $ $TOP_FIL ILE -exe e $CP CPP_FILES ES cd d ./obj_d _dir mak ake -j j -f V$TOP_ P_FILE.mk mk V$TOP_ P_FILE

Com Compiled piled to to C++ C++ by Veri by Verilato lator

slide-22
SLIDE 22

Instantiation and simulation

21

int nt main(i (int argc gc, char r **argv, v, char * **env) { { Verila lated::co commandAr Args(argc gc, argv) v); Vj68_s _soc* top

  • p = new

w Vj68_so soc; while e (tb_sst step < NU NUM_STEPS PS) { to top->rst_ t_n = (tb tb_sstep p < (vlui uint64_t) t)24) ? 0 0 : 1; to top->clk k = top->clk ^ 1 1; to top->eval al(); if f (Verila lated::go gotFinish sh()) bre reak; } top top->f >final(); ); }

Instantiation Instantiation

// / in decl claration

  • ns

// Ini nit VCD t trace du dump Verila lated::tr traceEver erOn(true ue); Verila latedVcdC dC* tfp = = new Ve Verilated edVcdC; top top->t >trace(tf tfp, 99); ); tfp tfp->s >spTrace( e()->set_ t_time_re resolutio ion("1 ps ps"); tfp tfp->o >open(fil ile_name) e); // / in main in loop to top->eval al(); tfp fp->dump( p(tb_time me); if (Ve Verilated ed::gotFi Finish()) )) break; k; }

Add Add tracing tracing

slide-23
SLIDE 23

Simulating in Verilog

22

reg eg [15:0 :0] r_mem em_blk [0 [0:(1 << < ADDR_WI WIDTH) - 1]; 1]; reg eg [15:0 :0] r_q; // / 68k bus us activt vty always@( @(posedge ge clock) k) begin r_q <= <= r_mem_ m_blk[add ddress][1 [15:0]; if (wr wren) beg egin if ( (byteena na[0]) r_ r_mem_blk lk[addres ess][7:0] 0] <= da data[7:0] 0]; if ( (byteena na[1]) r_ r_mem_blk lk[addres ess][15:8 :8] <= da data[15:8 :8]; end end end end assign q q = r_q; q;

Feed Feed 68k 68k test test program program from from simulated simulated memo memory ry

slide-24
SLIDE 24

Simulating in Verilated C++

23 CART::CART(int w, bool debug, int size) … // Binar ary file l loading void CART::load(const char *name, vluint32_t begin, vluint32_t end) … // Cycle le evaluat ate void CAR ART::eval( l(vluint64 64_t cycle le, vluint nt8_t clk, k, // Cycl cle counte ter, clock ck vluint8_ 8_t ce_n, , vluint8_ 8_t oe_n, , // Contr trol signa nals vluint32 32_t a, // // Address ss vluint32 32_t &q, v vluint8_t _t &oe // / Outputs: s: data, o

  • utput en

enable ) { ) { if ( (!clk) re return; a &= &= 0x7ffff fff; swit itch(width th) { ca case 1: // 1 16 bits a &= ~1; 1; q = (me mem_array[ y[a] << 8) 8) | mem_a _array[a + + 1]; break; break; ca case 2: // // 32 bits ts a &= ~3; 3; q = (me mem_array[ y[a] << 24 24) | (mem em_array[a [a + 1] << << 16) | (me mem_array[ y[a + 2] < << 8) | ( (mem_arra ray[a + 3] 3] << 0); break; break; de default: q = mem_ m_array[a] a]; }

  • e =

= (!ce_n n && !(oe_ e_n & 1)) ) ? 1 : 0; 0;

  • e |

|= (!ce_n _n && !(oe

  • e_n & 2))

)) ? 2 : 0 0; …

Feed Feed 68k 68k test test program program from from simulated simulated memo memory ry

slide-25
SLIDE 25

SystemVerilog

24

imp mport "DP DPI-C" fu function n void dp dpi_trace ce_init() (); imp mport "DP DPI-C" fu function n dpi_tra race_fetc tch( input in integer s sr, input in integer p pc, input in integer u usp, input in integer s ssp, input in integer l lvl ); … always@( @(posedge ge clk) begin begin // Ins nstructio ion fetch ch if (w_ w_dbg_ife fetch) dpi_ i_trace_f _fetch({1 {16'd0, w w_dbg_sr sr_reg}, , w_dbg_p _pc_reg, , w_d _dbg_usp_ p_reg, w_ w_dbg_ssp sp_reg, { {29'd0, , w_dbg_i _irq_lvl} l}); … end end …

DPI DPI (Direct (Direct Programming Programming Interface) Interface)

slide-26
SLIDE 26

68k disassembler to DPI

25

#in include " "svdpi.h .h" ext xtern "C" C" { #in include « « musash shi/m68k. k.h" } voi

  • id dpi_t

_trace_fe fetch(int nt sr, in int pc, i int usp, p, int ss ssp, int t lvl) { m68k_d _disassem emble(dis is_buff, , prev_pc pc, M68K_ K_CPU_TYP YPE_68010 10); fprint ntf(fh_j, j, "PC=%0 %08lX %s %s\n", pr prev_pc, , dis_buf uff); fprint ntf(fh_j, j, "D0=%0 %08X %08X 8X %08X % %08X %08 08X %08X X %08X %0 %08X \n", ", regs[ s[0], reg egs[1], regs[2] 2], regs gs[3], r regs[4], ], regs[ s[5], reg egs[6], regs[7] 7]); …

Con Connect nect the the dis disass assemble embler r from from Musas Musashi hi to to the the DPI DPI

slide-27
SLIDE 27

Musashi trace dump

26

re reg = m68 68k_get_r _reg((voi

  • id *)NUL

ULL, M68K 8K_REG_PC PC); m68k_d _disassem emble(dis is_buff, , reg, M6 M68K_CPU_ U_TYPE_68 68010); fprint ntf(fh_m, m, "PC=%0 %08lX %s %s\n", re reg, dis_ s_buff); m68k_e _execute( e(1); // / Musashi hi run 1 1 instruc uction fprint ntf(fh_m, m, "D0=") "); for (i (i = (int nt)M68K_R _REG_D0; ; i <= (i (int)M68K 8K_REG_D7 D7; i++) ) { re reg = m68 68k_get_r _reg((voi

  • id *)NUL

ULL, (m68 68k_regis ister_t)i )i); fp fprintf(f (fh_m, "% "%08lX ", ", reg); ; }

Musas Musashi hi to to same same trace trace format format

PC= C=000002F 2F0 move vea.l A0, 0,A1 D0= 0=1155229 299 33774 74401 000 0000000 0 00000000 00 000000 0000 0000 000000 00 00000000 0 0000000 000 A0= 0=0000800 004 00008 08004 000 0000000 0 00000000 00 000000 0000 0000 000000 00 00000000 0 0000FFF FFC USP SP=000000 0000 SSP= P=0000FFF FFC SR=27 2710 XNZV ZVC=10000 00 PC= C=000002F 2F2 move ve.l #$0 $09010101 01,(A1)+ D0= 0=1155229 299 33774 74401 000 0000000 0 00000000 00 000000 0000 0000 000000 00 00000000 0 0000000 000 A0= 0=0000800 004 00008 08008 000 0000000 0 00000000 00 000000 0000 0000 000000 00 00000000 0 0000FFF FFC USP SP=000000 0000 SSP= P=0000FFF FFC SR=27 2710 XNZV ZVC=10000 00

…and diff traces

slide-28
SLIDE 28

download this

  • wnload this presentation

presentation

At silicium.org ! www.veripool.org/wiki/verilator gtkwave.sourceforge.net sio2sd.gucio.pl/wiki/English www.codesrc.com/mediawiki/index.php/SCSI2SD speedofmac.com/emulation/macifom.php github.com/keirf/FlashFloppy/wiki github.com/mist-devel/mist-board/wiki github.com/MiSTer-devel/Main_MiSTer/wiki github.com/Torlus/FPGAPCE github.com/MiSTer-devel/TurboGrafx16_MiSTer github.com/MiSTer-devel/Genesis_MiSTer

27

to go to go a a little little further further

Links to open source projects

slide-29
SLIDE 29

+33(0)5.61.85.90.33 info@silicium.org

Silicium Silicium.org .org

twitter.com/occitel facebook.com/siliciumasso

You can You can also also f find ind us at: us at:

* Contact us !

And share your projects. Silicium action is based on popular support. As the technological heritage is getting bigger each day, Silicium’s members are able to offer extensive knowledge in order to manage large-scale projects, up to the creation of a permanent museum.

28

slide-30
SLIDE 30

Original Original mach machine ine ? Hard Hard Emula Emulation tion ? Soft Soft Emulation Emulation ?

FOSDEM Brussels, 2 & 3 February 2019

Preserving is not just about storing computers, disks and books in a hangar

Retrocomputer

Preservation