home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 4: Phase Four / 17Bit_Phase_Four.iso / files / 3218.dms / 3218.adf / CLI / ROM.doc < prev    next >
Encoding:
Text File  |  1994-06-25  |  23.0 KB  |  530 lines

  1.          R.O.M. v2.6  USER'S DOCUMENTATION
  2.          =================================
  3.                18/05/1994
  4.  
  5. The HALF-BRAINS TEAM presents ROM version 2.6 updated as usual by DDT.
  6. This version is Public-Domain and can be copied and spreaded. Enjoy !
  7.  
  8.  
  9. WHAT'S ROM ?
  10. ============
  11.   R.O.M. stands for Resident Outrageous Monitor, that's more than a normal
  12. Monitor cause it has been expecially designed for total system control.
  13. However almost any kind of programmer can use it: it's a tool for all good
  14. coders, C-Programmers, curious people and, inevitably, filthy lamers.
  15. It may be called "the poors' cartridge" cause it remains resident in memory,
  16. until an Hard-Reset is performed or its code is trashed (of course it's not
  17. a real cartridge, since it's only a software prog).
  18. REMEMBER: in most cases normal resets do nothing to ROM.
  19. ROM has about 120K of SEKA-Source that makes up 36K of executable code; mem
  20. used by ROM is allocated, but, if you have FastMem you can load it and then
  21. kill the fastmem expansion. That will make ROM invisible to many programs.
  22. REMEMBER: ROM prefers to run on machines with more than 512K, cause if you
  23. have only this amount of memory many intros and games will load or decrunch
  24. over the ROM code !!!
  25. You must always remember that ROM is allergic to WorkBench, in future we'll
  26. fix this bug (but why should you use the WB ?).
  27. You can install ROM simply loading the file "ROM" from the CLI.     It will
  28. display some messages, then your CLI task will be free again.
  29. There are special commands for extended CPUs such as 68010, 68020, 68030 and
  30. 68040; you can obviously use ROM with a shitty 68000 but these special com-
  31. mands won't work (that does not mean "crash").
  32. If you want to allocate the ROM code from a specific memory address, just
  33. type it in HEX after the ROM filename; example:
  34.  
  35.   ROM $c50000
  36.  
  37. or simply
  38.  
  39.   ROM c50000
  40.  
  41. Instead, if you want ROM to choose itself the best address were to be allo-
  42. cated, just type:
  43.  
  44.   ROM
  45.  
  46. without any address; ROM will autoallocate.
  47.  
  48. REMEMBER: Since this new release 2.6, ROM has completely new autoalloc
  49.    routine that avoids many crashes because it uses also the AllocMem()
  50.    system call.
  51.    It behaves this way:
  52.    1: Call AllocMem() requesting FastMem and Reverse_Mode (Reverse_mode
  53.       will work only with kick 2.0 or greater; it tries to allocate ROM
  54.       from the highest FastMem address). If success then go to step 4..
  55.    2: Hardware check for ECS Agnus. If success then set ROM at address
  56.       $F0000; go to step 4..
  57.    3: Only 512k of ChipMem disposable; set ROM near $6C000
  58.    4: Try to system-allocate memory where ROM have been set.
  59.  
  60. REMEMBER: In the remote case that ROM fails to alloc itself or crashes your
  61.    machine, you'd better specify the memory address where to alloc ROM
  62.    as described above.
  63.  
  64.  
  65. REMEMBER: To use ROM you NEED a JOYSTICK !!!
  66.  
  67. When ROM is installed you have the following capabilities:
  68.  
  69.    JoyLeft        =  Freeze system
  70.    JoyLeft + JoyFire    =  Enter ROM gently (Try to)
  71.    JoyLeft + JoyFire + LMB    =  Enter ROM badly  (Forced to)
  72.    JoyDown        =  Decrease system speed (if SLOW mode is on)
  73.    JoyUp       =  Increase system speed (if SLOW mode is on)
  74.  
  75. REMEMBER: LMB stands for Left Mouse Button.
  76. To freeze the system just keep the joystick pressed to left.
  77. The "gentle entry" is used not to interfere with the Operating System, expe-
  78. cially when disk operations are in execution.
  79. While loading you can enter the ROM using the "gentle entry": ROM will flash
  80. the background color while system interferences may occurr; at the right
  81. moment you will enter the ROM.
  82. ATTENTION: as a precautionary measure don't enter ROM while drive is saving
  83.    or reading important files on an important disk.
  84. The "bad entry" is used when you want to enter ROM, no matter what the ope-
  85. rating system will say.  In this case remember that a bad entry while a disk
  86. operation is in execution will (almost surely) crash the system when you exit
  87. ROM and return to system.
  88. If no drive operations are in execution, using the bad entry should not dama-
  89. ge the system and sometimes the bad entry is a must.
  90. Since version 2.51 ROM has a Software-Entry; if you need to force ROM via
  91. Software, just JMP from your prog to the address shown by the "I" command
  92. (see the following command description).
  93.  
  94.  
  95. INSIDE R.O.M.
  96. =============
  97.   When you enter ROM some informations are displayed, then the "ROM>" prompt
  98. appears.  ROM uses DDT's smooth ultrapleasant font.
  99. Press the <HELP> key to display the commands_menu.
  100. Keep <CTRL> pressed to freeze scrolling.
  101.  
  102. Commands description:
  103. REMEMBER: arguments in square-brackets are optional.
  104. REMEMBER: if the argument is a number you can use an expression.
  105.    Example:   "RIP 5A+%1101 2000*2-A8"  is like typing  "RIP 67 3F58".
  106.    Bases are defined this way: [$]hex, !dec, %bin.
  107.  
  108.  
  109.  
  110. > M [addr] : Display the value of 256 bytes starting from addr (in hex and
  111.    ascii format).
  112.  
  113. > D [addr] : Disassemble 16 instructions starting from addr.
  114.  
  115. > ? expr : Print the value of the expression in HEX, DEC, and BIN format.
  116.  
  117. > ! : Exit and destroy ROM (ROM will be definitively discarded.).
  118.  
  119. > X : Exit from ROM (and set the defined breakpoints).
  120.  
  121. > R [reg value] : Change the content of the specified register or display
  122.    the registers content if no arguments are given.
  123.  
  124. > J [addr] : Jump to the subroutine at the specified address (JSR addr).
  125.  
  126. > G addr : Jump to the specified address (JMP addr).
  127.  
  128. > SM [addr] : Enter in ShowMem mode to display graphically the content of the
  129.    ChipMem at the specified address.
  130.    Move through ChipMem with the mouse, press the right button to incre-
  131.    ase the scroll speed (horizontal movements will be disabled).
  132.    Press:
  133.       "ESC" = escape from ShowMem
  134.       "H" = switch hires/lores
  135.       "<" and ">" = increase or decrease modulo quickly
  136.       RAmiga and RAlt = increase or decrease modulo step by step
  137.       Cursor Keys = smooth movements
  138.       "HELP" = execute the next instruction of the current program.
  139.          Keep it pressed if you want to see how the program
  140.          works in memory (program execution is very slow).
  141.          REMEMBER: Interrupts aren't executed.
  142.  
  143. > W [addr] : Single-Step execution of program starting from current PC or
  144.    specified address. (We call it "Walk").
  145.  
  146. > S : Skip the next instruction.
  147.  
  148. > RT addr tn n : Read n tracks starting from track tn at addres addr.
  149.    The drive is always df0:.
  150.  
  151. > F startaddr endaddr byte[,byte,...] : Fill memory range with the specified
  152.    data.  You can also use strings.
  153.    Example: F 70000 7A000 'Ciao',!32,'mamma !!'
  154.  
  155. > C begin end dest : Copy memory range to dest.
  156.  
  157. > RESET : Try to reset system without clearing memory (no hard-reset)
  158.  
  159. > I : Gives some infos on hardware, interrupts, registers and ROM's
  160.    SoftwareEntry.
  161.  
  162. > : addr byte[,byte,...] : Modify memory. Arguments are the same as in the
  163.    Fill instruction.
  164.  
  165. > B [addr]: Set breakpoint at specified address or display current breakpoint
  166.    list if no address is specified.
  167.  
  168. > BR [addr | ALL] : Remove breakpoint previously set at specified address.
  169.    Or, if you type "ALL" instead of the address, all breaks will be
  170.    removed.
  171.  
  172. > RIP beg end: Search for a soundtracker/noisetracker module in the specified
  173.    memory range.  If the ripper finds a song you can try to play it with
  174.    the NoiseTracker1.2_replay routine.
  175.  
  176. > TON : Trace mode on.  This is a VERY IMPORTANT COMMAND.  If trace mode is
  177.    on, every instruction is checked to make sure it won't kill the in-
  178.    terrupt requests and, in consequence, deactivate ROM.
  179.    Read the "TRICKS AND EXERCISES" paragraph for a concrete use of TON.
  180.    REMEMBER: When in trace mode the system runs many times slower than
  181.    normally.  Only interrupts runs at normal speed.
  182.    REMEMBER: Some programs are able to cheat the trace mode.  So if you
  183.    are a good coder you should help ROM nopping or replacing critical
  184.    instructions.  However some of them (expecially games) are too stro-
  185.    ng. (If you have an extended CPU you can try to change the VBR with
  186.    the "VBR" command).
  187.  
  188. > TOF : Trace mode off.
  189.  
  190. > BYE : Exit from ROM (without setting the breakpoints).
  191.  
  192. > NOP addr [n] : Nopper.  Put one or n NOP_instructions starting from addr.
  193.    Useful if you don't want to execute some instruction of a program.
  194.    REMEMBER: Previous instructions are definitively lost.
  195.    REMEMBER: Every NOP instruction is 2 bytes long.
  196.  
  197. > AF beg end addr : Find in the specified range all the instrucions that re-
  198.    fer explicitly to the specified address.
  199.  
  200. > P addr lenght period : Play memory starting from addr for the specified
  201.    lenght with the specified period  (Loop on).
  202.  
  203. > H startaddr endaddr byte[,byte,...] : Search in memory for the specified
  204.    data. (See the Fill instruction for the arguments description).
  205.    (We call it "Hunt").
  206.  
  207. > VER : Display version of ROM, Chuk, and DisAsm.
  208.  
  209. > TIME : Display the time passed since you entered ROM.
  210.  
  211. > SC addr : Use Copperlist at specified address.
  212.  
  213. > FSM addr : Fix (at the specified addr) and use a mini_CopperList that dis-
  214.    plays the last ShowMem screen.
  215.  
  216. > FC beg end : Find a CopperList in the specified memory range.  If a Copper-
  217.    List is found you can view it (using $DFF084) or fix and use it
  218.    (using $DFF080).
  219.    REMEMBER: Routines have yet some bugs !
  220.  
  221. > RL :   At last you can get a description of the hardware registers any time.
  222.    REMEMBER: Keep CTRL pressed to stop scrolling.
  223.    (We call it "RegList").
  224.  
  225. > SLOW [n | OFF] : Activate the Slow_Motion making a delay every n cycles or
  226.    Deactivate it if you type "OFF" instead of the cycles number.
  227.    REMEMBER: When the Slow_Motion is active you can anytime, out of ROM,
  228.    increase or decrease the system speed with Joystick_Up or Joystick_
  229.    Down.
  230.    REMEMBER: SLOW slows down also interrupts.
  231.  
  232. > HJ :   Search for the nearest JMP instruction close to the current PC.
  233.    Useful to put the correct breakpoint after a decrunch_routine.
  234.    (We call it "HuntJump").
  235.    REMEMBER: Works with almost all the decrunch_routines.
  236.  
  237. > PAL col0 col1 : Change the ROM screen color (pal0 for background; pal1 for
  238.    foreground).
  239.  
  240. > VBR addr : Change the VectorBaseRegister and copy the Vector_Table.
  241.    Useful if a nasty program loads over the Vector_Table.
  242.    REMEMBER: This commands works only with extended CPUs.
  243.  
  244. > PEV : Patch exception vectors so that if a system error occurs you will
  245.    enter the ROM and try to debug the prog. (No more guru).
  246.    When an error occurs the CapsLock-LED will blink a few times, then
  247.    the ROM will autoactivate.
  248.    That's called "ROM meditation". Sometimes the instruction that caused
  249.    the error won't be executed and you have to "NOP" it or to change the
  250.    instruction (using the ":" command) before leaving ROM to return to
  251.    system.
  252.  
  253. > WON <addr | PC> bplane bpmod : Activate the realtime longword watcher.
  254.    You will be able to see the content of an address or the current PC
  255.    while your program is running.
  256.    Bplane is the address of the bitplane where the addr/PC will be prin-
  257.    ted.  Bpmod is the modulo of the bitplane.
  258.    Example: "WON 54000 70000 !40" shows the content of address
  259.      $54000 printing it in the bitplane (LowRes) at $70000, modulo 40
  260.      (320/8=40).
  261.    Example: "WON PC 70000 !40" show the content of the PC prin-
  262.    ting it in the bitplane (HiRes) at $70000, modulo 80 (640/8=80)
  263.  
  264. > WOF : Disable realtime longword watcher.
  265.  
  266. > FIL : Switch the audio filter (ON/OFF).
  267.  
  268.  
  269. REMEMBER: Pressing RETURN without typing any command repeats the previous
  270.    one.
  271.  
  272.  
  273.  
  274.  
  275. TRICKS AND EXERCISES
  276. ====================
  277. Normal software, some intros and some simple games can be penetrated without
  278. using the trace mode.  This operation is very simple and doesn't require spe-
  279. cial tricks.  (You can try with "Marble Madness").
  280. Then here we'll treat only about programs that are wicked...
  281.  
  282. REMEMBER: If you have only 512Kb of memory it will be very difficult or sim-
  283.    ply impossible to penetrate some intros or games.
  284.  
  285. Let's say you want to penetrate into an intro using the ROM.
  286. You can reset your machine, activate the trace mode, load the intro and wait
  287. for some minutes while the intro decrunches. Then you should see the intro
  288. going slower.  So enter the ROM and disassemble or do what you want.
  289.   But you'd better:
  290.  
  291.    0) Reset the machine.
  292.    1) Load the intro.
  293.    2) Enter ROM while the nasty intro is decrunching (usually when many
  294.       color lines appears on the screen).
  295.    3) Use the HJ command (just type "HJ <RETURN>").
  296.    3.A) If no JMP is found the intro is very troublesome. If you aren't
  297.       a good coder, activate the trace mode ("TON <RETURN>"), exit
  298.       from ROM and wait until the whole intro have been decrun-
  299.       ched (some minutes...) then go to step 6...
  300.       Instead, if you are a good coder you'll understand what to
  301.       do (Haha !).
  302.       See now step 5...
  303.    3.B) If a JMP is found, set a breakpoint to the reported JMP address,
  304.       then exit from ROM.
  305.    4) If all's right when the decrunching is completed you will automa-
  306.       tically enter ROM...  Activate the Trace Mode and exit.
  307.    5) The intro should work (slowly but should work).  If nothing hap-
  308.       pens it's maybe cause the intro is making some setups so wait
  309.       for a minute. If nothing happens enter the ROM and turn off
  310.       the trace mode, then exit.  If nothing happens you should be
  311.       an expert to understand what's the matter.
  312.    6) Once penetrated, try to turn off the trace mode because many in-
  313.       tros will not deactivate ROM now.  But if ROM is deactiva-
  314.       ted you must keep the trace mode on.
  315.  
  316. REMEMBER: A few intros (and a few games) do not have a CopperList but write
  317.    directly into the hardregs.    Some of them do that only one time,
  318.    during the setup.
  319.    So if you enter the ROM and then exit it you will loose the old vals
  320.    in the hardregs cause they aren't restored; that causes the current
  321.    image to be lost. (Many times you'll see only a "Crazy DMA" effect).
  322.    Don't worry, re-enter the ROM and use the ShowMem to find what you
  323.    want to be displayed; then use the "FSM" command.
  324.  
  325. Let's say now that you want to RIP a module from an intro or a game.
  326. Penetrate the intro as described before and enter the ROM.
  327. Type now:   RIP 0 80000 <RETURN>
  328. That starts the Ripper that will search for a module between the specified
  329. memory range.
  330. If it finds a module press "P" to play it (press the Right Mouse Button to
  331. stop).
  332. If it wasn't the right module search further pressing "S"...
  333. If it was the right module write down the starting location and the lenght.
  334. If you think that resetting the machine the module will be damaged then copy
  335. the module into a FastMem location (If you have got other FastMem than that
  336. at $c00000 (fake fastmem) remember to use the former !!!).
  337. Now type:   RESET <RETURN>
  338. The Amiga will be resetted.
  339. Now load a monitor or the SEKA and save the range of memory where the module
  340. should be.
  341. REMEMBER: Some modules are modified not to be ripped.
  342. REMEMBER: Some songs are not ST/NT modules.
  343.    The Ripper doesn't work with Startrekker/Protracker-modules yet.
  344.    It doesn't work with strange or old versions of the ST.
  345.  
  346.  
  347.  
  348. VERSION 2.0 UPDATES
  349. ===================
  350. 1) Chuk (that is the ROM core, handles all interrupts, exceptions, tracing
  351.    and is the "master of the system") have been strenghtened.
  352. 2) Some ShowMem bugs fixed, now it should detect if you have 1MB of ChipRAM.
  353.    In addition you can decide the starting address using the command:
  354.    "SM addr".
  355. 3) The single-step command of the ShowMem have been debugged.
  356. 4) The Ripper have been improved and can now play the module it finds.
  357. 5) Added the "FC" command to search for CopperLists.
  358. 6) Added the "SC" command to set a CopperList starting from a specified addr.
  359. 7) Added the "HJ" command to search for the nearer JMP instruction (useful
  360.    to set quickly the right breakpoint in decrunch-routines).
  361. 8) Added the "FSM" command to display the ShowMem current screen also when
  362.    out of ROM.
  363. 9) Added the "SLOW" command to slow down the system at a decided speed.
  364. A) Added the "RL" command to show the hardware registers description.
  365. B) The "H" (hunt) command now works properly and better (see descriprion
  366.    above).
  367. C) Now you can exit from the ROM pressing the LMB (in case the keyboard is
  368.    freezed).
  369. D) Added the "PAL" command to modify the ROM-screen palette.
  370. E) The WHO command displays a never-boring (?!) message with greetings and
  371.    fuckings.
  372. F) New ROM_colorpalette (Bleuuurgh !).
  373.  
  374.  
  375. VERSION 2.51 UPDATES
  376. ====================
  377. 1) Extended CPUs supported.
  378. 2) New commands "WON","WOF","VBR","PEV".
  379. 3) Error handler with ROM_Meditation (with blinking capslock !!!!  We are the
  380.    only people capable of doing that, thanx to Pitagora !!!!).
  381. 4) Special Software-Entry to activate ROM via software too.
  382. 5) New ROM_colorpalette (Ah yeaah !).
  383. 6) Keyboard handler works also with the old Amiga 2000a  (Anche sul tuo, Da-
  384.    rio, HAHHHA !!)
  385. 7) DisAsm disassembles also some extended CPUs opcodes.
  386.  
  387.  
  388. VERSION 2.6 UPDATES
  389. ===================
  390. 1) You can now use ROM even if your kickstart is not located in the usual
  391.    space $f80000 to $ffffff (compatible with Rekick, ZKick and some new
  392.    Amiga models).
  393.    REMEMBER: That implies that ROM won't check if it's already active;
  394.              If you try to install ROM two times then... blame on you !
  395. 2) No more emergency-exit from ROM only pressing the left mouse button:
  396.    you have to press also the right mouse button. (That's to fix a nasty bug
  397.    that caused the exit from ROM when you have just entered it with BadEntry
  398.    mode).
  399. 3) Now the package includes the SYS64738 program that's useful if you
  400.    have an hard disk and want to boot from a floppy disk but you must set
  401.    some parameters (like trace mode) before booting starts.
  402.    The SYS64738 will reset without booting from your harddrive... you will
  403.    see the kickstart screen.
  404.    (Not checked with all configurations).
  405. 4) ShowMem deeply debugged and improved:
  406.    - Unsupported bugged alpha Fisho code for advanced copperlists handling
  407.      removed.
  408.    - DDFSTRT bug fixed.
  409.    - Use cursor keys for accurate movements
  410.    - New hardware check for 1Meg of chip mem.
  411. 5) Replaced the "." key with the "FIL" command to switch audio filter (the
  412.    amiga 600 hasn't the numeric keypad).
  413. 6) Improved hardware keyboard handler (fast and exciting key response).
  414.    Maybe it won't work with old keyboards (2000A) but I DONT CARE, OK ?!??
  415.    I simply cant check the program on all machines ! Ask commodore to make
  416.    compatible machines !!!  8^)
  417. 7) Hardware check and infoz on custom chips.
  418. 8) Infoz on the CPU (not yet hardware check, simply ask to system).
  419. 9) Autoalloc routine completely rewritten; now compatible with almost all
  420.    amiga models and configurations.
  421. A) Fixed a bug from previous release that sometimes caused the AllocMem()
  422.    and/or FreeMem() of memory allocated by ROM to fail.
  423. B) New colorpalette.
  424.  
  425.  
  426.  
  427. BUGS
  428. ====
  429. 1) ROM is allergic to WorkBench.
  430. 2) If you find a CopperList with the FC command, then fix it, then exit from
  431.    ROM and re-enter it and use again the FC command, when you try to view the
  432.    CopperList found sometimes you get the old fixed CopperList.
  433. 3) Joystick can't be obviously used normally.  But it's not a true bug: DDT's
  434.    ROM version 1.2 needed the RMB pressed to activate joystick's ROM funcs
  435.    but you had to be a polyp to use it.
  436.    That's why you can't play some games while ROM v2.5 is installed but...
  437.    do you need to ?
  438. 4) If you have 2Megs of ChipMem you can watch it with the ShowMem but the
  439.    address number display will reset if you go past the 1st MegaByte.
  440. 5) Argh ! With ECS machines the ShowMem's address number display will show
  441.    much trash under the number. That's due to a lame sprite routine by
  442.    Pitagora.
  443. 6) CapsLockLedBLink routine doesn't work with all Amiga models.
  444. 7) On some powerful CPUs the routine that checks if the current program is
  445.    in Kickstart_ROM fails. That means you will ever enter the ROM with the
  446.    gently_entry or ever enter the ROM -only- with bad_entry (See above...).
  447.    That should be a cache memory problem.
  448. 8) Maybe the routine that makes ROM resident at reset won't work on all
  449.    machines.
  450.  
  451.  
  452.  
  453. FUTURE VERSIONS
  454. ===============
  455. We are working for a new ROM version; soon on your ROM screens:
  456. 1) The ROMASM (line assembler).
  457. 2) Full AmigaDOS support.
  458. 3) "SW" ShowWave command (that's a ShowMem for samples).
  459. 4) Commandline history and editing.
  460. 5) Ripper will find Startrekker and Protracker modules too.
  461. 6) Realtime ShowMem.
  462. 7) Printer support
  463. 8) Support for 3rd mouse button
  464.  
  465.  
  466.  
  467. README
  468. ======
  469. ROM has many rivals:
  470. * Intuition monitors (RossiMon, ROMwack, AMon, AmigaMonitor, etc.): they are
  471.   useful but can't compete with the ROM as "no-system" features.
  472. * Resident monitors (Romcrack and others): ROM is far better  8^) .
  473. * SimBug : A very good monitor with direct assembler, DOS support, beautiful
  474.   editor and many interesting commands.
  475.   Yet it's good only for debugging normal progs. It's not resident and it
  476.   hasn't savage, incredible, commands like ROM has to take control over the
  477.   system.  With SimBug you can't enter into intros, games and demos and it
  478.   hasn't a powerful trace mode.
  479. * Cartridges monitors (Action Replay I to III): I owned one and found it very
  480.   useful cause it penetrate almost any software, has full DOS support, has
  481.   a pretty good (argh no mouse) grafix searcher... BUT....
  482.   ...but it doesn't work with extended CPUs, (I had to throw away my dear
  483.   68010, sigh !), it hasn't commands like "HJ","WON","J"(!!), etc.
  484.   Please, Lord Olaf, make an Action Replay that does that.
  485.  
  486.  We are searching for someone who can help us to make a Cartridge_R.O.M.
  487.  
  488. We hope that ROM will help you above all when debugging your C programs
  489. (Bleeurgh @*# !!!) or your 680x0 code (K0000000L !!!).
  490.  
  491.  
  492.        If you find any considerable bug write to:
  493.  
  494.       DDT (D.Paccaloni), via Agadir 10/A
  495.          20097 S.Donato Milanese (MI)
  496.                 ITALY
  497.  
  498.  
  499.  
  500. Or contact me in the HBT WHQ:
  501.  
  502.  
  503.      ____________/\_______ __  ---/\ _________ ____
  504.   ---\ __  _/\__/ /____/ // //\ -/ // /_  _  //_  /
  505.    -- \// //  \/ / ____\/ \//  \/ / \/ / / \/_ / /   Amiga  3000T
  506.    -   / // /\  / / __/ /\ / /\  //\  / / / _/ \/     1 GByte HD
  507.  -- /\/ // / / / / /   / // / / // / / / / /_/\_  4 Nodes (5th private)
  508. -- /_____//  \/  \/  --\// /  \/ \/  \/  \_____/    
  509.       --\/[SP]        -- \/_______   ____ ______       --/\      _____
  510.                         -- \__/\_ \/\\__ \\____/\ /\  /\/  \   /\\_  /
  511. 1200 to 16800 HST-DS     --- / / \ \/__/ /___ / //  \/   /\ \ / /__\/
  512.   Programmers BBS         - / /  / // __// _/ \// /\ \/\/  \ \\/__ \
  513.   ~~~~~~~~~~~~~~~       -- / /__/ / \ \_/ /_/\ / /_/\ \_____\ \__/ /
  514.     Sysop:SHARK          - \/____/   \__\_____\\____/\_______\/___/
  515.                               __ __     __     __ ___ __
  516.              |__|   |   ||\ ||_ |__    |__ \_/|__  | |_  |\/|
  517.                 |   |__ || \||__ __|    __| /  __| | |__ |  |
  518.                        __     __ __          __   ___ __        
  519.            |__| /\ |  |_  __ |_/|_/ /\ ||\ ||__    | |_  /\ |\/|
  520.            |  |/~~\|__|      |_\| \/~~\|| \| __|   | |__/~~\|  |
  521.          __  __    _           __     _   __          __ ___ __ __ __
  522.     |  ||  ||_/|  | \     |__||_  /\ | \ |  ||  | /\ |_/  | |_ |_/|__
  523.     |/\||__|| \|__|__|    |  ||__/~~\|__||_\||__|/~~\| \  | |__| \ __|
  524.              
  525.                    +39-2-58105803 : 4 Nodes Roll Over
  526.  
  527.                      LATEST PUBLIC DOMAIN AND DEMOS
  528.             Assembler / C / Rexx / Music / Images Conferences
  529.                       and ONLINE HELP FOR CODERS !
  530.