home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 8 / amigaformatcd08.iso / in_the_mag / emulation / ql / qdos4amiga3.lha / TAS_README_txt < prev    next >
Text File  |  1995-09-20  |  4KB  |  105 lines

  1. ----------------------------------------------------------------
  2.  
  3. TAS INSTRUCTION PROBLEMS:
  4.  
  5. The Amiga hardware does not allow the CPU two contiguous bus
  6. cycles, so any read/modify/write cycle is dammed to fail. As a
  7. result, the TAS instruction doesn't work and can even mess up
  8. the next instruction fetch, causing privilege violations and
  9. illegal instructions
  10.  
  11. ----------------------------------------------------------------
  12.  
  13. NO_TAS
  14.  
  15. If a program fails because it contains TAS instructions, simply
  16. run it through NO_TAS and all your problems will be solved.
  17.  
  18. This program removes TAS instructions in recognised TURBO'ed and
  19. QLIB'ed tasks, substituting equivalent code. If the code is not
  20. thus recognised, TAS will be replaced by a Line-F instruction
  21. (which is programmed to emulate TAS but is not QL-compatible) or
  22. by extending the code.
  23.  
  24. FIXES FOR QLIBERATOR
  25.  
  26. The Q_Liberator runtime libraries contain a single TAS
  27. instruction...TAS $8F(A6) in v3.22 and TAS $8F(A4) in the
  28. library used with the budget compiler. As a result any program
  29. compiled to include libraries will also contain this
  30. instruction.
  31.  
  32. NO_TAS automatically recognises QLIB'ed tasks, removes the TAS
  33. instruction and substitutes equivalent code. The result is a
  34. task that is compatible with a 'real' QL and runs within
  35. Amiga-QDOS without problems.
  36.  
  37. FIXES FOR TURBO COMPILER
  38.  
  39. The TURBO compiler package contains a single TAS $8F(A6) in
  40. PARSER_task and two TAS instructions ( TAS $8F(a6) and
  41. TAS $17(a2) ) in CODEGEN_task. Any program compiled with TURBO
  42. may also contain these instructions.
  43.  
  44. NO_TAS automatically recognises TURBO'ed tasks, removes the TAS
  45. instructions and substitutes equivalent code. The result is a
  46. task that is compatible with a 'real' QL and runs within
  47. Amiga-QDOS without problems.
  48.  
  49. FIXES FOR NON QLIB/TURBO CODE
  50.  
  51. If the code is not recognisable as having been produced by QLIB
  52. or TURBO, NO_TAS will check the code and process it dependent on
  53. its size.
  54.  
  55. Under these circumstances a disassembly is shown and you will be
  56. asked whether or not to replace the code. Note however that the
  57. program may display TAS instructions where none are present
  58. (i.e. within program DATA). A good rule-of-thumb is that true
  59. CODE will usually be surrounded by other machine code
  60. instructions, whereas DATA will be liberally sprinkled with
  61. DC.Ws
  62.  
  63. SMALL CODE FIX
  64.  
  65. If the code is less than 32K in size, NO_TAS will attempt to
  66. replace all TAS instructions by a branch to an equivalent
  67. subroutine. The subroutine is tagged onto the end of the code,
  68. so any file processed in such a way will 'grow'. The result is a
  69. task that is compatible with both Amiga-QDOS and a 'real' QL,
  70. but which might confuse tasks that make assumptions upon their
  71. own length
  72.  
  73. LARGE CODE FIX
  74.  
  75. If the code is bigger than 32K in size, TAS instructions will be
  76. replaced by a Line-F instruction (which is programmed to emulate
  77. TAS - *see note). Line-F code is INCOMPATIBLE with a 'real' QL.
  78. Code modified in this way will cause a total system crash if run
  79. on a real QL (unless the appropriate Line $F code is installed
  80. on the host).
  81.  
  82. ----------------------------------------------------------------
  83.  
  84. RESTORE_TAS
  85.  
  86. Use this program to 'put-back' TAS instructions into programs
  87. that have been altered by NO_TAS.
  88.  
  89. ----------------------------------------------------------------
  90.  
  91. NOTE
  92.  
  93.   On 680X0 machines with co-processors attached, bits 9-11 of
  94.   the line $F instruction correspond to an ID used to select the
  95.   floating point unit, the memory management unit etc. The FPU
  96.   uses an ID of 0, whereas the MMU uses an ID of 1 (bit 9 set).
  97.  
  98.   In Amiga-QDOS the line $F instruction with co-processor ID 7
  99.   (bits 9-11 set) is programmed to emulate the TAS instruction
  100.   transparently. Since ID 7 is unused at present, the emulation
  101.   code should be compatible with current 68020, 68030 and 68040
  102.   machines.
  103.  
  104. ----------------------------------------------------------------
  105.