home *** CD-ROM | disk | FTP | other *** search
/ RISCWORLD 5 / RISCWORLD_VOL5.iso / SOFTWARE / Issue6 / VICE / VICE.ZIP / doc / vice_2 < prev    next >
Encoding:
Text File  |  2005-01-25  |  24.7 KB  |  692 lines

  1. <HTML>
  2. <HEAD>
  3. <!-- This HTML file has been created by texi2html 1.52
  4.      from ../vice.texi on 23 January 2005 -->
  5.  
  6. <TITLE>VICE Manual - 2  About VICE</TITLE>
  7. </HEAD>
  8. <BODY>
  9. Go to the <A HREF="vice_1.html">first</A>, <A HREF="vice_1.html">previous</A>, <A HREF="vice_3.html">next</A>, <A HREF="vice_16.html">last</A> section, <A HREF="vice_toc.html">table of contents</A>.
  10. <P><HR><P>
  11.  
  12.  
  13. <H1><A NAME="SEC5" HREF="vice_toc.html#TOC5">2  About VICE</A></H1>
  14.  
  15. <P>
  16. VICE is the one and only <EM>Versatile Commodore Emulator</EM>.  It provides
  17. emulation of the Commodore C64, C128, VIC20, PET, PLUS4 and CBM-II computers
  18. within a single package.  The emulators run as separate programs, but have
  19. the same user interface, share the same settings and support the same
  20. file formats.
  21.  
  22. </P>
  23. <P>
  24. <STRONG>Important notice:</STRONG> If you have no idea what a Commodore
  25. 8-bit computer is, or have questions about how these machines are used,
  26. how the file formats work or anything else that is not strictly
  27. related to VICE, you should read the appropriate FAQs <EM>first</EM>, as
  28. that kind of information is not available here.  See section <A HREF="vice_14.html#SEC160">14  Contact information</A>. for
  29. information about how to retrieve the FAQs.
  30.  
  31. </P>
  32. <P>
  33. All the emulators provide an accurate 6502/6510 emulator, with emulation
  34. of all the opcodes (both documented and undocumented ones) and accurate
  35. timing.  Unlike other emulators, VICE aims to be cycle
  36. accurate; it tries to emulate chip timings as precisely as possible and
  37. does so <EM>efficiently</EM>.
  38.  
  39. </P>
  40. <P>
  41. Please do <EM>not</EM> expect the C128, PET, PLUS4 and CBM-II emulators to
  42. be as good as the C64 or VIC20 one, as they are still under construction.
  43.  
  44. </P>
  45. <P>
  46. <EM>Notice:</EM> This documentation is written for the Unix release of VICE.
  47.  
  48. </P>
  49.  
  50.  
  51.  
  52. <H2><A NAME="SEC6" HREF="vice_toc.html#TOC6">2.1  C64 emulator features</A></H2>
  53.  
  54. <P>
  55. The C64 emulator, called <SAMP>`x64'</SAMP>, features a fairly complete
  56. emulation of the VIC-II video chip: sprites, all registers and all video
  57. modes are fully emulated.  The emulation has been fully cycle-accurate
  58. since version 0.13.0.
  59.  
  60. </P>
  61. <P>
  62. A rather complete emulation of the SID sound chip is also provided.  All
  63. the basic features are implemented as well as most of the complex ones
  64. including synchronisation, ring modulation and filters.  There are two
  65. emulators of the SID chip available: one is the "standard" VICE
  66. emulator, available since VICE 0.12; the other one is Dag Lem's reSID
  67. engine.  The reSID engine is a lot more accurate than the standard
  68. engine, but it is also a lot slower, and only suitable for faster
  69. machines.
  70.  
  71. </P>
  72. <P>
  73. Naturally, also both CIAs (or VIAs, in some cases) are fully emulated
  74. and cycle accurate.
  75.  
  76. </P>
  77.  
  78.  
  79.  
  80. <H2><A NAME="SEC7" HREF="vice_toc.html#TOC7">2.2  C128 emulator features</A></H2>
  81.  
  82. <P>
  83. The C128 emulator, called <SAMP>`x128'</SAMP>, features a complete emulation of
  84. the internal MMU (<EM>Memory Management Unit</EM>), 80 column VDC screen, fast
  85. IEC bus emulation, Z80 emulation plus all the features of the C64 emulation.
  86. The following things are missing, though:
  87.  
  88. </P>
  89.  
  90. <UL>
  91. <LI>
  92.  
  93. 2 MHz mode;
  94. </UL>
  95.  
  96.  
  97.  
  98. <H2><A NAME="SEC8" HREF="vice_toc.html#TOC8">2.3  VIC20 emulator features</A></H2>
  99.  
  100. <P>
  101. The VIC20 emulates all the internal hardware, including the VIA chips.
  102. The VIC-I video chip is fully emulated except NTSC interlace mode, so most 
  103. graphical effects will work correctly.
  104.  
  105. </P>
  106. <P>
  107. Sound support is implemented, but is still at an experimental stage.  If
  108. you think it could be improved and know how to do so, feel
  109. free to contact us (see section <A HREF="vice_14.html#SEC160">14  Contact information</A>).
  110.  
  111. </P>
  112. <P>
  113. The VIC20 emulator now allows the use of the VIC1112 IEEE488 
  114. interface. You have to enable the hardware (by menu, resource, or
  115. commandline option) and then load the IEEE488 ROM (see for 
  116. example <CODE>http://www.funet.fi/pub/cbm/schematics/cartridges/vic20/ieee-488/325329-04.bin</CODE>, but you have to double the size to 4k for now).
  117. The IEEE-488 code is then started by <CODE>SYS45065</CODE>.
  118.  
  119. </P>
  120.  
  121.  
  122.  
  123. <H2><A NAME="SEC9" HREF="vice_toc.html#TOC9">2.4  PET emulator features</A></H2>
  124.  
  125. <P>
  126. The PET emulator emulates the 2001, 3032, 4032, 8032, 8096, 8296 and
  127. SuperPET (MicroMainFrame 9000) models, covering practically the whole series.
  128. The hardware is pretty much the same in each and that is why one single
  129. program is enough to emulate all of them.  For more detailed information
  130. about PET hardware please refer to the <TT>`PETdoc'</TT> file.
  131.  
  132. </P>
  133. <P>
  134. Both the 40 column and 80 column CRTC video chips are emulated (from the
  135. 4032 onward), but a few of the features are not implemented yet (numbers
  136. of rasterlines per char and lines per screen).  Fortunately, they are
  137. not very important for average applications.
  138.  
  139. </P>
  140. <P>
  141. Sound is available for the PET as well, but like the VIC20's it is still
  142. under construction.
  143.  
  144. </P>
  145. <P>
  146. The PET 8096 is basically a PET 8032 with a 64k extension board which
  147. allows remapping the upper 32k with RAM.  You have to write to a special
  148. register at <CODE>$fff0</CODE> to remap the memory.  The PET 8296 is a
  149. 8096 but with a completely redesigned motherboard with 128k RAM in
  150. total.  Of the additional 32k RAM you can use only some in blocks of 4k,
  151. but you have to set jumpers on the motherboard for it.  VICE uses the
  152. command line options <SAMP>`-petram9'</SAMP> and <SAMP>`-petramA'</SAMP>
  153. instead.  Also, the video controller can handle a larger address range.
  154. The PET 8x96 model emulations run the Commodore LOS-96 operating system
  155. - basically an improved BASIC 4 version with up to 32k for BASIC
  156. text and 32k for variables.  See <TT>`PETdoc'</TT> for more information.
  157.  
  158. </P>
  159. <P>
  160. The SuperPET also is a PET 8032 with an expansion board.  It can map 4k
  161. at a time out of 64k into the <CODE>$9***</CODE> area.  Also it has an ACIA
  162. 6551 for RS232 communication.  The 6809 that is built into the SuperPET
  163. is not emulated, though.
  164.  
  165. </P>
  166. <P>
  167. The PET computers came with three major ROM revisions, so-called BASIC
  168. 1, 2 and 4, all of which are provided.  The PET 2001 uses the version 1,
  169. the PET 3032 uses version 2, and the others use version 4.  The 2001 ROM
  170. is horribly broken with respect to IEEE488 (they shipped it before they
  171. tested it with the floppy drive, so only tape worked.  Therefore the
  172. emulator patches the ROM to fix the IEEE488 routines.
  173.  
  174. </P>
  175. <P>
  176. As well as other low-level fixes the 2001 patch obtains the load address
  177. for a program file from the first two bytes of the file.  This allows
  178. the loading of both PET2001-saved files (that have $0400 as their load
  179. address) and other PET files (that have $0401).  The PET2001 saves from
  180. $0400 and not from $0401 as other PETs do.
  181.  
  182. </P>
  183. <P>
  184. Moreover, the secondary addresses used are now <CODE>0</CODE> and <CODE>1</CODE> for
  185. load and save, respectively, and not arbitrary unused secondary
  186. addresses.
  187.  
  188. </P>
  189. <P>
  190. To select which model to run, specify it on the
  191. command line with the <CODE>-model MODEL</CODE> option, where
  192. <CODE>MODEL</CODE> can be one of a list of PET model numbers, all
  193. described in see section <A HREF="vice_7.html#SEC98">7.3.1  Changing PET model settings</A>
  194.  
  195. </P>
  196.  
  197.  
  198.  
  199. <H2><A NAME="SEC10" HREF="vice_toc.html#TOC10">2.5  CBM-II emulator features</A></H2>
  200.  
  201. <P>
  202. The CBM-II emulator emulates several types of CBM-II models.  Those
  203. models are known under different names in the USA and Europe.  In the
  204. States they have been sold as <CODE>B128</CODE> and <CODE>B256</CODE>, in Europe as
  205. <CODE>CBM 610</CODE>, <CODE>CBM 620</CODE> (low-profile case) or <CODE>CBM 710</CODE> and
  206. <CODE>CBM 720</CODE> (high-profile case with monitor). In addition to that
  207. now an experimental C510 emulation is included. The C510 (also known as
  208. P500) is the little brother of the C600/700 machines. It runs at roughly
  209. 1 MHz and, surprise, it has a VIC-II instead of the CRTC. Otherwise
  210. the different line of computers are very similar.
  211.  
  212. </P>
  213. <P>
  214. These computers are prepared to take a coprocessor board with an 8088 or
  215. Z80 CPU.  Indeed there are models <CODE>CBM 630</CODE> and <CODE>CBM 730</CODE> that
  216. supposedly had those processors.  However these models are not emulated.
  217.  
  218. </P>
  219. <P>
  220. The basic difference is the amount of RAM these machines have been
  221. supplied with.  The <CODE>B128</CODE> and the <CODE>CBM *10</CODE> models had 128k
  222. RAM, the others 256k. This implies some banking scheme, as the 6502 can
  223. only address 64k.  And indeed those machines use a 6509, that can
  224. address 1 MByte of RAM.  It has 2 registers at addresses 0 and 1.  The
  225. indirect bank register at address 1 determines the bank (0-15) where the
  226. opcodes <CODE>LDA (zp),Y</CODE> and <CODE>STA (zp),Y</CODE> take the data from.  The
  227. exec bank register at address 0 determines the bank where all other read
  228. and write addresses take place.
  229.  
  230. </P>
  231. <P>
  232. The business line machines (C6xx/7xx) have the RAM in banks 1-2, resp.
  233. 1-4. All available banks are used for BASIC, where program code is separated
  234. from all variables, resp. from normal variables, strings and arrays that
  235. are distributed over other banks. The C510 instead has RAM in banks 0 and 1,
  236. and uses bank 1 for program and all variables. Bank 0, though, can be 
  237. accessed by the VIC-II to display graphics.
  238.  
  239. </P>
  240. <P>
  241. Many models have been expanded to more than the built-in memory.  In fact
  242. some machines have been expanded to the full 1M.  Bank 15 is used as
  243. system bank, with only little RAM, and lots of expansion cartridge ROM
  244. area, the I/O and the kernal/basic ROMs.  Some models have been modified
  245. to map RAM into the expansion ROM area.  Those modifications can be
  246. emulated as well.
  247.  
  248. </P>
  249. <P>
  250. The different settings are described in see section <A HREF="vice_7.html#SEC103">7.4.1  Changing CBM-II model</A>.
  251.  
  252. </P>
  253.  
  254.  
  255. <H2><A NAME="SEC11" HREF="vice_toc.html#TOC11">2.6  The keyboard emulation</A></H2>
  256.  
  257. <P>
  258. There are two ways of emulating the keyboard in VICE.
  259.  
  260. </P>
  261. <P>
  262. The default way (<EM>symbolic mapping</EM>) is to map every key
  263. combination to the corresponding key combination on the real machine:
  264. for example, if you press <KBD>*</KBD>, which is bound to <KBD>Shift-8</KBD> on a
  265. U.S. keyboard, in the C64 emulator, the emulated machine will have just
  266. the <EM>unshifted</EM> <KBD>*</KBD> key pressed (as <KBD>*</KBD> is unshifted on the
  267. C64 keyboard).  Likewise, pressing <KBD>'</KBD> on the same U.S. keyboard
  268. without any shift key will cause the combination <KBD>Shift-7</KBD> to be
  269. pressed in the emulated C64.  This way, it becomes quite obvious what
  270. keys should be typed to obtain all the symbols.
  271.  
  272. </P>
  273. <P>
  274. There is, however, one problem with symbolic mapping: some keys really
  275. need to be mapped specially regardless.  The most important examples
  276. being, in the VIC20, C64 and C128 emulators, that <KBD>CTRL</KBD> is mapped
  277. to <KBD>Tab</KBD> and that the <KBD>Commodore</KBD> key is mapped to the left
  278. <KBD>Control</KBD>). The <KBD>RUN/STOP</KBD> key is mapped to the <KBD>ESC</KBD> key
  279. on the PC keyboard. The PET emulator, lacking the <KBD>Commodore</KBD> key
  280. but having an <KBD>ESC</KBD> key, uses the left <KBD>Control</KBD> key as
  281. <KBD>RUN/STOP</KBD> and the <KBD>ESC</KBD> key as <KBD>ESC</KBD> of course.
  282.  
  283. </P>
  284.  
  285. <P>
  286. The second way (<EM>positional mapping</EM>) is to map every key on the
  287. "real" keyboard to the key which has the same position on the keyboard
  288. of the emulated machine.  This way, no <KBD>Shift</KBD> key is forced by the
  289. program (with the exception of the function keys <KBD>F2</KBD>, <KBD>F4</KBD>,
  290. <KBD>F6</KBD> and <KBD>F8</KBD>, which require <KBD>Shift</KBD> on the Commodore
  291. keyboards), and the keyboard is more comfortable to use in those
  292. programs (such as some games) that require the keys to be in the correct
  293. positions.
  294.  
  295. </P>
  296. <P>
  297. <STRONG>Warning:</STRONG> unlike the real C64, VICE "presses" the <KBD>Shift</KBD>
  298. key <EM>together</EM> with the key to shift when the <KBD>Shift</KBD> must be
  299. forced.  In most cases this should work fine, but some keyboard routines
  300. are quite picky and tend not to recognize the shift key because of this.
  301. For instance, <KBD>F6</KBD> (which on the real C64 is obtained with
  302. <KBD>Shift + F5</KBD>) could be recognized as <KBD>F5</KBD>.  In that case, use
  303. the shift key manually (i.e., type <KBD>Shift + F5</KBD> in the example).
  304. Yes, we know this is a bug.
  305.  
  306. </P>
  307. <P>
  308. The <KBD>RESTORE</KBD> key is mapped to <KBD>Page Up</KBD> (or <KBD>Prev</KBD>) by
  309. default.
  310.  
  311. </P>
  312.  
  313.  
  314.  
  315. <H2><A NAME="SEC12" HREF="vice_toc.html#TOC12">2.7  The joystick emulation</A></H2>
  316.  
  317. <P>
  318. Joysticks can be emulated both via the keyboard and via a real joystick
  319. connected to the host machine (the latter only works on GNU/Linux
  320. systems).
  321.  
  322. </P>
  323. <P>
  324. There are two keyboard layouts for joystick use, known as <EM>numpad</EM>
  325. and <EM>custom</EM>.
  326.  
  327. </P>
  328. <P>
  329. The <EM>numpad</EM> layout uses the numeric keypad keys, i.e., the numbers
  330. <KBD>1</KBD>...<KBD>9</KBD> which emulate all the directions including the
  331. diagonal ones; <KBD>0</KBD> emulates the fire button.
  332.  
  333. </P>
  334. <P>
  335. The <EM>custom</EM> layout uses the keys <KBD>w</KBD>, <KBD>e</KBD>, <KBD>r</KBD>,
  336. <KBD>s</KBD>, <KBD>d</KBD>, <KBD>f</KBD>, <KBD>x</KBD>, <KBD>c</KBD>, <KBD>v</KBD> for the directions
  337. and <KBD>space</KBD> for the fire button instead.
  338.  
  339. </P>
  340.  
  341.  
  342.  
  343. <H2><A NAME="SEC13" HREF="vice_toc.html#TOC13">2.8  The disk drive emulation</A></H2>
  344.  
  345. <P>
  346. All the emulators support up to 4 external disk drives as
  347. devices 8, 9, 10 and 11.  Each of these devices can emulate virtual
  348. Commodore 1541, 1541-II, 1571, 1581, 2031, 2040, 3040, 4040, 1001, 8050 and 
  349. 8250 drives in one of four ways:
  350.  
  351. </P>
  352.  
  353. <UL>
  354. <LI>
  355.  
  356. using disk images, i.e., files that contain a dump of all the blocks
  357. contained in a real floppy disk (if you want more information about
  358. what a disk image is, consult the
  359. <CODE>comp.emulators.cbm</CODE> FAQ);
  360. <LI>
  361.  
  362. accessing file system directories, thus giving you the use of files
  363. without having to copy them to disk images; this also allows you to
  364. read and write files in the <CODE>P00</CODE> format (again, consult the
  365. <CODE>comp.emulators.cbm</CODE> FAQ for more info).
  366. <LI>
  367.  
  368. accessing a real device connected to the host machine. As of VICE 1.11
  369. it is possible to connect real drives like Commodore 1541 to the
  370. printer port of the host using the XA1541 or XM1541 cable. Currently
  371. this only works on Linux or Windows using the OpenCBM library. You can
  372. get it from <A HREF="http://www.lb.shuttle.de/puffin/cbm4linux">http://www.lb.shuttle.de/puffin/cbm4linux</A> (cbm4linux,
  373. Linux version) or from <A HREF="http://cbm4win.sf.net/">http://cbm4win.sf.net/</A> (cbm4win, Windows
  374. version).
  375.  
  376. <LI>
  377.  
  378. directly using the disk drive of the host. The 3.5" disk drive of the
  379. host can be used to read or write Commodore 1581 formatted disks.
  380. Currently this raw drive access feature is only available for Linux
  381. hosts.
  382. </UL>
  383.  
  384. <P>
  385. When using disk images there are two available types of drive
  386. emulation.  One of them the <EM>virtual drive</EM> emulation.  It does
  387. <EM>not</EM> really emulate the serial line, but patches the kernal ROM
  388. (with the so-called <EM>kernal traps</EM>) so that serial line operations
  389. can be emulated via C language routines.  This emulation is very fast,
  390. but only allows use of standard DOS functions (and not even all of
  391. them).  For real device or raw drive access it is required to enable
  392. this type of emulation.
  393.  
  394. </P>
  395. <P>
  396. The IEEE488 drives (2031, 2040, 3040, 4040, 1001, 8050 and 8250) do
  397. not use kernal traps. Instead the IEEE488 interface lines are
  398. monitored and the data is passed to the drive emulation. To use them
  399. on the C64, you need to enable the IEEE488 interface emulation. Only
  400. if the IEEE488 emulation is enabled, those drives can be selected.
  401.  
  402. </P>
  403. <P>
  404. The other alternative is a <EM>true drive</EM> emulation.  The
  405. Commodore disk drives are provided with their own CPU (a 6502 as the
  406. VIC20 and the PETs) and their own RAM and ROM.  So, in order to more
  407. closely emulate its features, a complete emulation of this hardware
  408. must be provided and that is what the <EM>hardware level</EM> emulation
  409. does. When the <EM>hardware level</EM> emulation is used, the kernal
  410. routines are remain unpatched and the serial line is fully emulated.
  411. The problem with this emulation is that it needs a lot of processing
  412. power, mainly because the emulator has to emulate two CPUs instead of
  413. one.
  414.  
  415. </P>
  416. <P>
  417. The PETs do not use a serial IEC bus to communicate with the floppy
  418. drive but instead use the parallel IEEE488 bus.  This does
  419. <EM>byte by byte</EM> transfers, as opposed to the <EM>bit by bit</EM>
  420. transfers of the C64 and VIC20, so making it feasible to emulate the
  421. parallel line completely while emulating the drive at DOS level only.
  422. The IEEE488 line interpreter maps the drives 8-11 (as described
  423. above) to the IEEE488 disk units, and no kernal traps are needed.
  424. The same emulation of the Commodore IEEE488 bus interface is
  425. available for the C64 and the VIC20. With IEEE488 drives you can have
  426. true 2031 emulation at unit #8, and still have filesystem access at
  427. units #10 or #11, because monitoring the IEEE488 lines does not
  428. interfere with the true drive emulation.
  429.  
  430. </P>
  431. <P>
  432. The IEEE488 disk drives 3040, 4040, 8050 and 8250 are Dual Drive
  433. Floppy Disks. This means that these drives handle two disks. To
  434. Accomplish the emulation, only one disk can be emulated, namely unit
  435. #8. The attached image, track display and LED display of unit #9 are
  436. used for the second drive of the dual disk drives. On unix the unit
  437. number display (8 or 9) in the emulation window changes to the drive
  438. number display (0 or 1).
  439.  
  440. </P>
  441. <P>
  442. The Commodore 3040, 4040, 1001, 8050 and 8250 disk drives are
  443. so-called "old-style" disk drives. Their architecture includes not
  444. one, but two processors of the 6502 type, namely a 6502 for the file
  445. handling and communication with the PET (IP), and a 6504 (which is a
  446. 6502 with reduced address space) for the drive handling (FDC). Both
  447. processors communicate over a shared memory area. The IP writes
  448. commands to read/write blocks to this area and the FDC executes them.
  449. To make the emulation feasible, the FDC processor is not emulated
  450. cycle-exactly as a 6504, but simply by checking the commands and
  451. executing them on the host. This provides a fast FDC emulation, but
  452. disallows the sending the FDC processor commands to execute code.
  453. Applications where this is necessary are believed to be rather
  454. seldom. Only the format command uses this feature, but this is
  455. checked for.
  456.  
  457. </P>
  458. <P>
  459. The dual disk drive 2040 emulates one of the very first CBM disk
  460. drives. This drive has DOS version 1. DOS1 uses an own disk type,
  461. that is closely related to the 1541 disk image. Only on tracks 18-24
  462. DOS1 disks have a sector more than 1541 disks. DOS1 disk images have
  463. the extension .d67.
  464.  
  465. </P>
  466. <P>
  467. The dual disk drives 3040 and 4040 use the same logical disk format
  468. as the VC1541 and the 2031. In fact, the 4040 was the first disk with
  469. DOS version 2. The 3040 emulated here originally was the same as
  470. 2040, only for the european 30xx PET series. As many of the original
  471. DOS1 disk drives were upgraded (a simple ROM upgrade!) to DOS2, I use
  472. the 3040 number for a DOS 2.0 disk drive, and 4040 for a revised DOS
  473. 2 disk drive. It is, however, not yet clear whether the disks here
  474. are write compatible to the 1541, as rumors exist that the write gap
  475. between  sectors is different. But read compatible they are. As VICE
  476. emulates the FDC processor in C and not as 6504 emulation, this does
  477. not matter in VICE.
  478.  
  479. </P>
  480. <P>
  481. The drives 1001, 8050 and 8250 do actually have the very same DOS
  482. ROM. Only the code in the FDC is different, which is taken care of by
  483. VICE. So for all three of those disk drives, only <CODE>dos1001</CODE> is
  484. needed. The DOS version used is 2.7.
  485.  
  486. </P>
  487.  
  488.  
  489. <H2><A NAME="SEC14" HREF="vice_toc.html#TOC14">2.9  Supported file formats</A></H2>
  490.  
  491. <P>
  492. VICE supports the most popular Commodore file formats:
  493.  
  494. </P>
  495.  
  496. <UL>
  497.  
  498. <LI>
  499.  
  500. <CODE>X64</CODE> (preferred) or <CODE>D64</CODE> disk image files; Used by the 1541, 2031, 3040, 4040 drives.
  501.  
  502. <LI>
  503.  
  504. <CODE>G64</CODE> GCR-encoded 1541 disk image files;
  505.  
  506. <LI>
  507.  
  508. <CODE>D67</CODE> CBM2040 (DOS1) disk image format
  509.  
  510. <LI>
  511.  
  512. <CODE>D71</CODE> VC1571 disk image format
  513.  
  514. <LI>
  515.  
  516. <CODE>D81</CODE> VC1581 disk image format
  517.  
  518. <LI>
  519.  
  520. <CODE>D80</CODE> CBM8050 disk image format
  521.  
  522. <LI>
  523.  
  524. <CODE>D82</CODE> CBM8250/1001 disk image format
  525.  
  526. <LI>
  527.  
  528. <CODE>T64</CODE> tape image files (read-only);
  529.  
  530. <LI>
  531.  
  532. <CODE>P00</CODE> program files;
  533.  
  534. </UL>
  535.  
  536. <P>
  537. An utility (<CODE>c1541</CODE>, see section <A HREF="vice_10.html#SEC147">10  c1541</A>) is provided to allow transfers
  538. and conversions between these formats.
  539.  
  540. </P>
  541. <P>
  542. Notice that the use of the <CODE>X64</CODE> file format is depreciated now.
  543.  
  544. </P>
  545. <P>
  546. <A NAME="IDX1"></A>
  547. You can convert an <CODE>X64</CODE> file back into a <CODE>D64</CODE> file with the
  548. UNIX <CODE>dd</CODE> command:
  549.  
  550. </P>
  551.  
  552. <PRE>
  553. dd bs=64 skip=1 if=IMAGE.X64 of=IMAGE.D64
  554. </PRE>
  555.  
  556. <P>
  557. See section <A HREF="vice_11.html#SEC152">11  The emulator file formats</A>. for a technical description of the supported file
  558. formats.
  559.  
  560. </P>
  561.  
  562.  
  563. <H2><A NAME="SEC15" HREF="vice_toc.html#TOC15">2.10  Common problems</A></H2>
  564.  
  565. <P>
  566. This section tries to describe the most common known problems with VICE,
  567. and how to resolve them.
  568.  
  569. </P>
  570.  
  571.  
  572.  
  573. <H3><A NAME="SEC16" HREF="vice_toc.html#TOC16">2.10.1  Sound problems</A></H3>
  574.  
  575. <P>
  576. VICE should compile and run without major problems on many UNIX systems,
  577. but there are some known issues related to the sound driver.  In fact,
  578. the sound code is the least portable part of the emulator and has not
  579. yet been thoroughly tested on all the supported platforms.
  580.  
  581. </P>
  582. <P>
  583. Linux, AIX and SGI systems should play sound without any problems; if
  584. you are running Linux please use a 2.x kernel, as VICE needs some
  585. features that were not implemented in older versions of the Linux sound
  586. driver.
  587.  
  588. </P>
  589. <P>
  590. <A NAME="IDX2"></A>
  591. On the other hand, HP-UX and Solaris machines are known to cause
  592. troubles.  If you think you can help debugging the code for these
  593. systems, your help would be really appreciated.  We are having troubles
  594. finding HP-UX and SUN consoles to work at...
  595.  
  596. </P>
  597. <P>
  598. <A NAME="IDX3"></A>
  599. Some problems have been reported with the proprietary version of the
  600. Open Sound System for Linux.  With a Crystal sound card, sound output
  601. was significantly delayed and, apparently, the allocated buffer size was 
  602. completely wrong.  This is not a VICE bug, but rather an OSS bug.
  603.  
  604. </P>
  605.  
  606.  
  607.  
  608. <H3><A NAME="SEC17" HREF="vice_toc.html#TOC17">2.10.2  Shared memory problems</A></H3>
  609.  
  610. <P>
  611. <A NAME="IDX4"></A>
  612. <A NAME="IDX5"></A>
  613. If you cannot start VICE because you get errors about shared memory, try
  614. to run it with the <SAMP>`+mitshm'</SAMP> command-line option (see section <A HREF="vice_6.html#SEC47">6.4.2  Video command-line options</A>).  This will completely disable usage of the MITSHM extensions,
  615. that are normally used to speed up the emulation window updates.  Of
  616. course, this will also result in a big loss in speed.
  617.  
  618. </P>
  619. <P>
  620. Reasons for this failure could be:
  621.  
  622. </P>
  623.  
  624. <UL>
  625. <LI>
  626.  
  627. IPC support has been disabled at the system level; some system
  628. administrators disable this for security reasons.  If <EM>you</EM> are the
  629. system administrator, use a kernel that has IPC support compiled in and
  630. enabled.
  631. <LI>
  632.  
  633. You are attempting to run the emulator across the network (i.e., the
  634. emulator runs on one machine, and the output is displayed on another
  635. machine that works as an X terminal) and for some reason VICE does not
  636. recognize this fact.  In this case, you have found a bug, so please report it
  637. to us.
  638. </UL>
  639.  
  640. <P>
  641. If you want to avoid running the emulator with <SAMP>`+mitshm'</SAMP> every
  642. time, run it once with <SAMP>`+mitshm'</SAMP> and then choose "Save settings"
  643. from the right-button menu.
  644.  
  645. </P>
  646.  
  647.  
  648. <H3><A NAME="SEC18" HREF="vice_toc.html#TOC18">2.10.3  Printer problems</A></H3>
  649.  
  650. <P>
  651. VICE supports the emulation of a printer either on the userport or as 
  652. IEC device 4. Unfortunately the Commodore IEC routines do not
  653. send all commands to the IEC bus. For example an <CODE>OPEN 1,4</CODE>
  654. is not seen on the IEC bus. Also a <CODE>CLOSE 1</CODE> after that
  655. is not seen. VICE can see from printing that there was an <CODE>OPEN</CODE>,
  656. but it cannot see when the close was. Also a "finish print job" 
  657. cannot be seen on the userport device.
  658. To flush the printer buffer (write to <CODE>print.dump</CODE> or to the 
  659. printer) now a menu entry can be used. Disabling and re-enabling the printer
  660. should work as well.
  661.  
  662. </P>
  663. <P>
  664. The printing services have not been extensively tested but apart
  665. from the problem mentioned above it should work fine now.
  666.  
  667. </P>
  668.  
  669.  
  670. <H3><A NAME="SEC19" HREF="vice_toc.html#TOC19">2.10.4  PET keyboard problems</A></H3>
  671.  
  672. <P>
  673. If you find that the German keyboard mapping (plus German charset) 
  674. does not print uppercase umlauts, then you are right. 
  675. The umlauts replace the [,\ and ] characters in the charset. The keys
  676. that make these characters do not have a different entry in the 
  677. PET editor ROM tables when shifted.
  678. Thus it is not possible to get the uppercase umlauts in the editor.
  679. Nevertheless other programs are reported to change the keyboard
  680. mapping table and thus allow the use of the shifted (uppercase) umlauts.
  681.  
  682. </P>
  683. <P>
  684. Anyway, the VICE keyboard mappings are far from being perfect and we are open
  685. to any suggestions.
  686.  
  687. </P>
  688. <P><HR><P>
  689. Go to the <A HREF="vice_1.html">first</A>, <A HREF="vice_1.html">previous</A>, <A HREF="vice_3.html">next</A>, <A HREF="vice_16.html">last</A> section, <A HREF="vice_toc.html">table of contents</A>.
  690. </BODY>
  691. </HTML>
  692.