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 >
Wrap
Text File
|
1995-09-20
|
4KB
|
105 lines
----------------------------------------------------------------
TAS INSTRUCTION PROBLEMS:
The Amiga hardware does not allow the CPU two contiguous bus
cycles, so any read/modify/write cycle is dammed to fail. As a
result, the TAS instruction doesn't work and can even mess up
the next instruction fetch, causing privilege violations and
illegal instructions
----------------------------------------------------------------
NO_TAS
If a program fails because it contains TAS instructions, simply
run it through NO_TAS and all your problems will be solved.
This program removes TAS instructions in recognised TURBO'ed and
QLIB'ed tasks, substituting equivalent code. If the code is not
thus recognised, TAS will be replaced by a Line-F instruction
(which is programmed to emulate TAS but is not QL-compatible) or
by extending the code.
FIXES FOR QLIBERATOR
The Q_Liberator runtime libraries contain a single TAS
instruction...TAS $8F(A6) in v3.22 and TAS $8F(A4) in the
library used with the budget compiler. As a result any program
compiled to include libraries will also contain this
instruction.
NO_TAS automatically recognises QLIB'ed tasks, removes the TAS
instruction and substitutes equivalent code. The result is a
task that is compatible with a 'real' QL and runs within
Amiga-QDOS without problems.
FIXES FOR TURBO COMPILER
The TURBO compiler package contains a single TAS $8F(A6) in
PARSER_task and two TAS instructions ( TAS $8F(a6) and
TAS $17(a2) ) in CODEGEN_task. Any program compiled with TURBO
may also contain these instructions.
NO_TAS automatically recognises TURBO'ed tasks, removes the TAS
instructions and substitutes equivalent code. The result is a
task that is compatible with a 'real' QL and runs within
Amiga-QDOS without problems.
FIXES FOR NON QLIB/TURBO CODE
If the code is not recognisable as having been produced by QLIB
or TURBO, NO_TAS will check the code and process it dependent on
its size.
Under these circumstances a disassembly is shown and you will be
asked whether or not to replace the code. Note however that the
program may display TAS instructions where none are present
(i.e. within program DATA). A good rule-of-thumb is that true
CODE will usually be surrounded by other machine code
instructions, whereas DATA will be liberally sprinkled with
DC.Ws
SMALL CODE FIX
If the code is less than 32K in size, NO_TAS will attempt to
replace all TAS instructions by a branch to an equivalent
subroutine. The subroutine is tagged onto the end of the code,
so any file processed in such a way will 'grow'. The result is a
task that is compatible with both Amiga-QDOS and a 'real' QL,
but which might confuse tasks that make assumptions upon their
own length
LARGE CODE FIX
If the code is bigger than 32K in size, TAS instructions will be
replaced by a Line-F instruction (which is programmed to emulate
TAS - *see note). Line-F code is INCOMPATIBLE with a 'real' QL.
Code modified in this way will cause a total system crash if run
on a real QL (unless the appropriate Line $F code is installed
on the host).
----------------------------------------------------------------
RESTORE_TAS
Use this program to 'put-back' TAS instructions into programs
that have been altered by NO_TAS.
----------------------------------------------------------------
NOTE
On 680X0 machines with co-processors attached, bits 9-11 of
the line $F instruction correspond to an ID used to select the
floating point unit, the memory management unit etc. The FPU
uses an ID of 0, whereas the MMU uses an ID of 1 (bit 9 set).
In Amiga-QDOS the line $F instruction with co-processor ID 7
(bits 9-11 set) is programmed to emulate the TAS instruction
transparently. Since ID 7 is unused at present, the emulation
code should be compatible with current 68020, 68030 and 68040
machines.
----------------------------------------------------------------