Euphoric is an Oric1/Atmos emulator. This version is not a definitive one, but it is good enough to be widely distributed and it will surely make Oric enthusiasts feel a lot of nostalgia, and I hope it will be a favorable factor for them to meet again. The up-to-date version will always be on a web server, URL : http://www.ensica.fr/LOCAL/ORIC/euphoric.html There you will also find the latest information, tools and programs for the Oric. Euphoric runs on PCs only for now, but you can chose between DOS and Linux. The DOS version is expected to be soon fully DPMI compatible and runnable under the DOS boxes of Windows 3.1, OS/2, and Windows NT 3.5. A multi-platform Unix version is also in stage, thanks to O.Balet's help. Before asking any question, you must be aware that you need an Oric rom image to run euphoric. So, you must be a real Oric user to use euphoric; you can read your oric rom with an eprom programmer, use a tape transfer utility, a parallel link utility, or delegate me this task through the web server if you don't want to open your box or risk the life of your Oric. Questions and Answers Q1: How to contact me and get some help, or just tell me a program works or does not work... Q2: It doesn't work : I get "svgalib: Cannot get I/O permissions" Q3: It doesn't work : I get "Not running in graphics-capable virtual console" Q4: It doesn't work : I get "Oric.ROM not found" Q5: I used readtape to get my ROM : it is more than 16384 bytes... Q6: CLOAD doesn't work... Q7: I've got multi-part programs or protected programs... Q8: My protected program doesn't load, help! Q9: My program loads but then the emulator crashes... Q10: How to quit Euphoric ? R1: Send me a mail at frances@ensica.fr R2: Euphoric needs the right to access VGA physical IO ports. It uses some routines of the svgalib library. As every other application using svgalib, the program must be 'setuid root'. Become root, verify that root owns the program and set the setuid bit ("chmod u+s euphoric") then quit super-user mode, you should start the emulator. R3: Euphoric uses svgalib. This library allows to develop graphical applications while not using X-Window. It doesn't work under X11 (it doesn't have to), you must start the emulator under a virtual console. R4: Euphoric reads a ROM from the file Oric.ROM (Unix users, take note of the case) in the current directory. You can use an Oric 1 rom, an Atmos rom, or every rom you write. If an Oric 1 or Atmos rom is detected (address of the reset vector), it will be patched accordingly to allow tape commands. R5: You need to get rid of the file header. If you saved the ROM on tape without a name (ie. CSAVE "",A#C000,E#FFFF), it should be 16398 bytes. Just use the unix command : dd if=oric.old of=Oric.ROM bs=1 skip=14 If you are a DOS user, load the file with debug, then : -R CX 4000 -W10E -Q R6: The name you specify in a CLOAD command is taken without modification under the host operating system. With Unix, lowercase et uppercase is meaningfull, so if you ask for CLOAD "MYPROG", uppercase name MYPROG has to be a file name in current directory. You can use a path with CLOAD, eg. CLOAD"FILES/MYPROG" with Unix or CLOAD"D:\FILES\MYPROG" with Dos, but be careful since the Oric cuts the file name and keeps only 16 character. R7: readtape reads only the first file found in the wave file. When recording, sample each program in a different file, or cut the file with your graphical utility (find the pauses). Rename the files with the original name found by readtape, if needed. If it doesn't work, it might be that a multi-part program don't use names since the tape is sequential. If you cannot hack into the program to introduce names, use the following : concatenate the parts in a file named "Tape" (note the uppercase under unix). Under the emulator, just use CLOAD"" (the "Tape" file will be used for the first loading omitting the file name, and for every next loading, without "rewinding" the file). Just use cat under Unix to catenate files. With Dos, use the command : COPY FILE1+FILE2+...+FILEN /B TAPE R8: The format chosen for programs should accomodate the most used protections (change of the header during loading, different synchro characters, etc). The "Tape" file will evolve in next versions to a bit file very close to the contents of the tape, without a strong penalty in file size (13 bits for 8). If it is not enough, I will introduce another format keeping track of the length of bits. R9: There is still missing code in this emulator, I need to complete my VIA emulation, eg. the two timers keep running at 100 Hz. I need to emulate undocumented opcodes, too, some programs may use them. Send me your program so I could diagnose the problem. If a program works, tell me too, I will maintain a list of good/partial/bad compatibility. R10: Key F10 exits the emulator cleanly. I currently have a problem under Linux with key Ctrl-C since svgalib gets it before me, and exits the emulator.