home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 10 / amigaformatcd10.iso / -in_the_mag- / emulation / beebinfo / beebemufaq-0.01.text < prev   
Text File  |  1996-12-06  |  15KB  |  537 lines

  1.  
  2.  
  3. BBC information v0.01
  4.  
  5. by Wouter Scholten
  6.  
  7. Some useless game info:
  8.  
  9. Killer Gorilla has a an interesting bug: On the first screen jump to the
  10. left into the fire and you'll end up near the gorilla, unfortunately quit
  11. dead.
  12.  
  13. Did you know that the machine code in Planetoid is approx. 6.6K, in Rocket
  14. Raid 4.2 K (both excl. init code) and in Hopper a measly 2.4K?
  15.  
  16. ---------------------------------------------------------------------------
  17.  
  18.  
  19.  
  20. Game versions
  21.  
  22.    * Snapper: v1, v2
  23.  
  24.    * Defender > Planetoid v1 > Planetoid v2 > super defender.
  25.  
  26.      Planetoid v2 is supposed to have an easier to use scanner like the
  27.  
  28.      original defender, showing when an alien gets on screen. Also texts
  29.  
  30.      were non flashing
  31.  
  32.    * Hopper: v1, v2, german version what's different in v1?
  33.  
  34.    * Monsters v1,v2 what's different in v1?
  35.  
  36.    * Arcadians: v?, german version
  37.  
  38.    * Missile base: v?, german version
  39.  
  40.  
  41.  
  42. Aliases
  43.  
  44.  
  45.  
  46.    * super defender: modified defender (slightly different basic loaders)
  47.  
  48.    * Star Swarm (acornsoft): tetrapod, actually starswarm is a bit
  49.      different; the bullets don't bounce off the walls.
  50.  
  51.    * R*thur: Bouncer (Q*Bert clone)
  52.  
  53.    * Planetoid: Defender, actually this is an early, buggy, version of
  54.      Planetoid.
  55.  
  56.    * Zany kong jr (1984): Killer Gorilla 2 (1988) (Superior soft.)
  57.  
  58.    * Danger UXB = Blockman (Micro Power)
  59.  
  60.    * Carnival = Carousel (Acornsoft)
  61.  
  62.    * Centipede = Bug Blaster (Alligata)
  63.  
  64.    * Deathstar (Superior) = Sinistar (Atari)
  65.  
  66.    * Skirmish = Joust
  67.  
  68.  
  69. ---------------------------------------------------------------------------
  70.  
  71.  
  72. 1. Reading and writing 5 1/4 BBC disks on a PC:
  73.  
  74. You can use anadisk (simtel: msdos/diskutil/anad207.zip) to read disks and
  75. FDC (an improved version of FDCDEMO) to read and write disks. 3 bugs were removed:
  76.  
  77. 1) the drive was not reinitialized after eg. DD
  78. 2) FORMAT didn't work for any format with minsector<>1.
  79. 3) ASCII conversion in SHOW was wrong
  80.  
  81. and various commands added (single side reading/writing, CATalogue of files
  82. on side 0/1, ignore errors).
  83.  
  84. Commands: DDINHD, CYL 80 (only for 1.2M drive) , DOUBLESTEP (for 40tr disk
  85. in 1.2M drive), FD0 if the 5 1/4 drive is your first drive, and for double
  86. density : DD, SECTORS 18. Now you can read thedisk with 'READ filename'
  87. (both sides), READ0 reads side 0, READ1 reads side1 or write a file to it
  88. with WRITE/WRITE0/WRITE1.
  89.  
  90.  
  91. 3. Emulator no go's:
  92.  
  93.  
  94.  
  95.                              emulator no go's
  96.  
  97.  !6502em     Boffin, Commando (works but _very_ slow), Firetrack, Super
  98.  (v1.21)     Invaders, Killer Gorilla (works but is unplayably fast).
  99.  
  100.  xbeeb v0.3  Elite, Meteors, Fortress.
  101.  
  102.  BeebEm      Zalaga, Meteors, Contraption, Castle quest, Nutcraka
  103.              Boffin, Firetrack, Fortress, Nutcraka, Manic Miner, Match
  104.  
  105.  Horizon     Day, Repton 2 (the author admits that the latter 3 don't work
  106.              because he hasn't yet implemented all the 'required' invalid
  107.              opcodes.)
  108.  
  109.  
  110.  
  111. Comment: Match day also doesn't work on my BBC, the screen is messed up
  112. with parts of men etc. Is this because of different 6502's? I thought the
  113.  
  114. program was corrupted on disc but I got another copy from someone else with
  115.  
  116. the same problems. The same problem occurs with Stryker's run. I have two
  117.  
  118. copies neither of which run on my BBC.
  119.  
  120. ---------------------------------------------------------------------------
  121.  
  122. 4.1 Using diskimages:
  123.  
  124. 1.BeebEm/Beebwin: you probably need to set an environment variable in
  125. beebem to use single sided diskimages. Eg. for BeebWin: Set
  126. BeebDiscLoad=S:80:\beebfile\beebim.1 before starting windoze to access a
  127. single sided diskimage named beebim.1)
  128.  
  129. Windows '95 Beebem information
  130. The Problem:
  131.  BeebWin uses an environment variable to define the disc image it uses.
  132.  
  133. Solution:
  134.  Write a DOS batch file that sets the environment variable then calls
  135. BeebWin.  Write two batch files (one for single sided discs, the other
  136. for double sided discs, they look like this:
  137.  
  138. <SSD.BAT>
  139. @echo off
  140. SET BeebDiscLoad=S:80:%1
  141. BeebWin
  142.  
  143. <DSD.BAT>
  144. @echo off
  145. SET BeebDiscLoad=D:80:%1
  146. BeebWin
  147.  
  148. Then create shortcuts for both, the short cut must have the 'close after
  149. execution' property set.
  150.  
  151. Now double click on both types of disc, assuming no file type mapping
  152. exists already Windoze will ask whether you want to associate the file
  153. type with an application.  Use the browse button to locate the shortcut
  154. for the appropriate batch file and click apply. You can now load Beebwin
  155. with a particular disc image by double clicking on it!
  156.  
  157. 2. For !6502em and !65host you need to split the files with BEEBARC.
  158.  
  159. 3. For MacBeebEm/Horizon use bbcim.cc to extract files and the utility
  160.  
  161. included with MacBeebEm (to combine the bare files and the addresses in the
  162. cat file). If you don't have a command line change the source code by
  163. adding 'argc=1;' in main.
  164.  
  165. 4. For xbeeb also use bbcim.cc and rename the catalogue file (remove the
  166. first couple of lines)
  167.  
  168.  
  169.  
  170. 4.2 Using archive files:
  171.  
  172. 1. BeebEm: make a diskimage with 'bbcim -a new.bbc *' to put all files of
  173. the current dir in a diskimage new.bbc. (in dos you will probably have to
  174. give a list of files which is what the shell in unix does, if you don't
  175. like this switch to linux. I will NOT put wildcard expansion in bbcim)
  176.  
  177. 2. !6502em/!65Host: use Darren Salt's BEEBARC (contains UN/INF).
  178.  
  179. 3. MacBeebEm/Horizon : use the utility included with MBE.
  180.  
  181. 4. xbeeb: to get filenames right in one go do: bbcim -x *
  182.  
  183.  
  184.  
  185. 4.3 Problems:
  186.  
  187. Programs may need to be loaded higher (PAGE=&1900 on a BBC with Acorn DFS,
  188. 1900 in beebem, E00 on a cassette system and also E00 in some emulators and
  189. on BBC's with either a Opus CHALLENGER drive with RAM DISK or a Solidisk SWR DFS. If there are problems, see for example PLANETOID which loads PLANET2
  190. high and then moves it down to E00). 
  191. NOTE: all emulators should have PAGE at &E00 (there's no good reason to emulate a DFS). Cracking the protection is better.
  192.  
  193.  
  194. ---------------------------------------------------------------------------
  195.  
  196.  
  197.  
  198. 5. Cassette transfer & CRC checking on the BBC
  199.  
  200. If you want to transfer cassette software to disk the first thing you need
  201. in many cases is to *LOAD a locked file.
  202.  
  203. type the following:
  204.  
  205. P%=&C00
  206. [PHA: LDA &3CA:AND #&FE:STA &3CA:PLA:RTS]
  207. ?&220=0:?&221=&C
  208. *FX14,4
  209.  
  210. Now you can *LOAD the program.
  211.  
  212.  
  213.  
  214. Here's a small BBC program to calculate CRC's (as in bbcim) bbc-crc. Type
  215. it in on your beeb to check that files transferred correctly to the PC
  216. (mac, whatever).
  217.  
  218.  10 FOR N%=0 TO 2 STEP 2
  219.  20 P%=&2000
  220.  30 [OPT N%
  221.  40 .mloop
  222.  50 JSR &FFD7:BCS end
  223.  60 LDX #8
  224.  70 EOR &71:STA &71
  225.  80 .lp
  226.  90 LDA &71:BPL skip0
  227. 100 EOR #8:STA &71:LDA &70:EOR #&10:STA &70
  228. 110 .skip0
  229. 120 ASL &70:ROL &71:BCC skip1:INC &70
  230. 130 .skip1
  231. 140 DEX:BNE lp
  232. 150 JMP mloop
  233. 160 .end
  234. 170 RTS
  235. 180 ]
  236. 190 NEXT
  237.  
  238. 200 INPUT"Which file";F$
  239. 210 Y%=OPENIN(F$)
  240. 220 IF EOF#Y% CLOSE #Y%:END
  241. 230 !&70=0:CALL &2000
  242. 240 CLOSE #Y%
  243. 250 PRINT" ";F$;": crc="~!&70
  244. _____________
  245.  
  246. The following code is used in bbcim to calculate the same CRC's:
  247.  
  248.      unsigned int crc=0;
  249.      while (1)
  250.       {
  251.        fread(&byte,1,1,fp);
  252.        if (feof(fp)) break;
  253.        length +=1;
  254.        crc ^=(byte << 8);
  255.        for(int k=0;k<8;k++)
  256.         {
  257.           if (crc & 32768) crc=(((crc ^ 0x0810) & 32767) << 1)+1;
  258.           else crc =crc << 1;
  259.          }
  260.       }
  261.  
  262.  
  263. ------------
  264. BBC connections:
  265. Looking at the back of the BBC:
  266.  
  267. Cassette connections:
  268.  
  269.         1     2
  270.        3       4
  271.         5     6
  272.            7
  273.  
  274. 1 and 2:cassette motor control
  275. 3      :input
  276. 4,6    :output
  277. 7      :0 v
  278.  
  279.  
  280.  
  281. Serial port:
  282.  
  283.     E     A
  284.        C
  285.     D     B
  286.  
  287. A : data in
  288. B : data out
  289. C : 0v
  290. D : CTS
  291. E : RTS
  292. ___________________________________________________________________________
  293.  
  294. BBC disk formats:
  295. DFS/DDOS:
  296. 40/80 track single density/double density
  297. sd: 10 sectors per track, sector startno = 0
  298. dd: 18 sectors per track, sector startno = 0
  299. track startno =0.
  300. 256 bytes per sector
  301. ___________________________
  302.  
  303.  
  304. File formats:
  305. Diskimage.....
  306.  
  307. NEW ARCHIVE FORMAT:
  308. $.ELITE  : bare file
  309. $.ELITE.inf : info text file containing
  310.  
  311.      '$.ELITE   FF0E00 FF8023 Locked CRC=XXXX NEXT $.ELITE2'
  312.      The $.ELITE is optional but if present the files may be renamed
  313.      to say a and a.inf. $.ELITE is then the real filename.
  314.  
  315.      A CRC is included for various reasons (to check fileconversion
  316.      software, serial- or disk- file transfer to/from a bbc, etc.)
  317.      The CRC is calculated with the algorithm from the BBC user guide p. 399
  318.      (The same algorithm as used for the cassettte and rom filing system).
  319.  
  320.      'Locked' may be abbreviated to 'L'.
  321.  
  322.      NEXT may be used for CHAIN"" or *RUN as used on cassette systems.
  323.  
  324.      file length may be included (after the execution address) but is
  325.      unnecessary.
  326.  
  327.  
  328. ---------------------------------------------------------------------------
  329.  
  330.  
  331.  
  332. 7. Emulation:
  333.  
  334.  
  335.  
  336. The general emulation FAQ from the newsgroup comp.emulators.misc. contains lots of information on available emulators and where to get them.
  337.  
  338.  
  339.  
  340. ---------------------------------------------------------------------------
  341.  
  342. 8. The BBC emulators: speeds, file formats and screen size
  343.  
  344.  
  345.  
  346. Speed test programs:
  347.  
  348.  
  349.  
  350.   1. To test decode speed:
  351.  
  352.      10FOR X=1 TO 1000
  353.      20Y=SIN X
  354.      30NEXT
  355.  
  356.  
  357.  
  358.      BBC B: 25.33 s,   !6502em: 25.59 (arm 610),
  359.      xbeeb 0.3 on my 486-66, 8MB, S3 864 (256 colour mode): 16.5s
  360.      MacBeebEm Horizon Powermac 7200 (PPC601-90/256K cache): 11.5 s
  361.  
  362.  
  363.  
  364.   2. To test graphics speed:
  365.  
  366.      10MODE 2
  367.      20A=RND(-100)
  368.      30FOR N%=1 TO 200
  369.      40GCOL RND(255),RND(255)
  370.      50PLOT 85,RND(1280),RND(1024)
  371.      60NEXT
  372.  
  373.  
  374.  
  375.      BBC B: 21.83 s,   !6502em: 21.95 (arm610),
  376.      xbeeb 0.3 on my 486-66, 8MB, S3 864 (256 colour mode): 65 s
  377.      MacBeebEm Horizon PPC601-90: 12-19 s (15 to 25 frames/s)
  378.  
  379.  
  380.  
  381.   3. To test the mode 7 speed:
  382.  
  383.      10MODE 7
  384.      20FOR N%=1 TO 2000
  385.      30PRINT N%
  386.      40NEXT
  387.  
  388.  
  389.  
  390.      BBC B: 21.36 s,   !6502em: 21.41 (arm610),
  391.      xbeeb 0.3 on my 486-66, 8MB, S3 864 (256 colour mode): 33.5 s.
  392.      MacBeebEm Horizon PPC601-90: 12-18 s (15-25 frames/s)
  393.      , beebwin on 486-66: ca. 115 s
  394.  
  395.  
  396.      The emulator !6502em runs at precise BBC speed (not just on these
  397.      benchmarks) which means that it is decoding a lot faster that e.g.
  398.      beebem and probably also xbeeb.
  399.  
  400.      Q: shouldn't parts of the emulators be programmed in assembler?
  401.      R: but that isn't portable. Just when you've got a X11 program that
  402.      works on all computers!
  403.      A: So what, a house isn't portable but do you prefer to live in a
  404.      tent?
  405.  
  406.  
  407.  
  408.  
  409. 8.1 File formats:
  410.  
  411.    * Beebem: diskimage (SINGLE SIDED)/interleaved diskimage (DOUBLE SIDED)
  412.  
  413.    * xbeeb: separate files with names as on the BBC. Catalogue file
  414.      contains LOAD/EXEC adresses.
  415.  
  416.    * !6502em: separate files with LOAD/EXEC adresses in the file
  417.      attributes.
  418.  
  419.    * !65host: separate files with LOAD/EXEC adresses in the file
  420.      attributes.
  421.  
  422.    * MacBeebEm: separate files with a header of 10 bytes containing the
  423.      load/exec addresses.
  424.  
  425.  From the documentation for MacBeebEm:
  426.  
  427. "The storage of BBC files is made more troublesome by the need to store the
  428. load and execute addresses for each file somewhere. The 'directory'
  429. approach was finally rejected in favour of keeping the information in a
  430. small header at the start of each file. The header consists of 10 bytes in
  431. the following format.
  432.  
  433.  
  434.           Offset                  Byte                  Comment
  435.  
  436.                 0                       255                    Must always
  437. be 255
  438.                 1                       L-LO                  Load address
  439.                 2                       L-HI
  440.                 3                       E-LO                    Execute address
  441.                 4                       E-HI
  442.                 5                 *                     Checksum
  443.                6..9             0               Four spare bytes
  444.         10.. EOF             data        File data proper
  445.  
  446.  
  447. The checksum * is computed as  (L-LO + L-HI + E-LO + E-HI) & 255. If this
  448. check fails or if the first byte is not 255, MacBeebEm will refuse to load
  449. the file. The last 4 bytes are currently unused and may take any value."
  450.  
  451. MacBeebEm comes with a program which generates this header, so all
  452. MacBeebEm users really need are the raw files and a list of the load/execute
  453.  addresses for each file.
  454.  
  455.  
  456.  
  457.  
  458. 8.2 Screen size:
  459.  
  460.    * BeebEm 640*256: why ? Robert Schmidt has recompiled it (beebwin for
  461.      winsuck95) with the right aspact ratio for mode 1,2,4,5,6,7, not mode
  462.      0 and 3.
  463.  
  464.    * xbeeb : 640*512 (2*2 pixels in 320*256 mode etc.)
  465.  
  466.    * MacBeebEm: 320*256 (teletext 320*250), or 480*384 (interpolated), what
  467.      about MODE 0? It is not displayed in a higher resolution (but sets the
  468.      nearest pixels in the previous modes)
  469.  
  470.    * Horizon: 320 x 256, 480 x 384, 640 x 448 and 640 x 480
  471.      Notes: 1) The reason for the second to last setting is that a standard
  472.      Apple 14" monitor has a resolution of 640x480, but needs room for the
  473.      menu bar and window title.
  474.  
  475.      2) In 640x480, Horizon is just pixel doubling, so mode 0 is still
  476.      missing every second pixel.
  477.  
  478.    * !6502em: full screen, 320*256 or 640*256
  479.  
  480.  
  481.  
  482. Note: these are the standard resolutions, but where the source is available
  483. you can always change this.
  484.  
  485. ---------------------------------------------------------------------------
  486.  
  487. BBC pages:
  488.  
  489.  
  490.  
  491.   1. Robert Schmidt's BBC page excellent
  492.      http://www.idt.unit.no/~robert/bbc/bbc.html
  493.  
  494.   2. James Fidell's xbeeb page.
  495.  
  496.   3. BBC archives:
  497.  
  498.      ftp://micros.hensa.ac.uk/micros/bbc
  499.  
  500.      ftp://ftp.uni-stuttgart.de/pub/systems/acorn/6502
  501.  
  502.      ftp://maekong.ohm.york.ac.uk/pub/BBC
  503.  
  504.      ftp://ftp.dcs.ed.ac.uk/pub/ajcd/BBC
  505.  
  506.  
  507.  
  508. For a description of available BBC emulators see the comp.em.misc.FAQ and
  509. Robert Schmidt's emulator information pages for up to date information.
  510.  
  511.  
  512.  
  513. Where to find BBC B emulators:
  514.  
  515.  
  516.   1.  Beebem (X11 and windoze). v0.06 has sound! Runs at BBC speed on a P90
  517.       (at least, and only under linux).
  518.       See also Robert Schmidt's page for an enhanced version of beebwin.
  519.       ftp://ftp.compsoc.man.ac.uk/pub/beebem/
  520.  
  521.   2.  xbeeb page (X11, by James Fidell). v0.3 has sound (not as good as
  522.       beebem's I'm told).
  523.       http://www.OiT.co.uk/~james/BBCMicro/Xbeeb/
  524.  
  525.   3.  PC: Tom Seddon's bbc emulator
  526.       http://www.ncl.ac.uk/~n5013784/bbc-emu.htm
  527.  
  528.   4.  Mac: Horizon information and the demo program (limited version of the
  529.       commercial one).
  530.       http://www.cityscape.co.uk/users/jx91/horizon.html>Mac: Horizon
  531.  
  532.   5.  !6502em: commercial (15 pounds) Also emulates Masters (information).
  533.       http://www.comlab.ox.ac.uk:80/oucl/users/robin.watts/wss/products.html
  534.  
  535.   6.  !65host: Free, but needs to be patched on Risc PC's (see Acorn's ftp site)
  536.  
  537.