Previous column ComputerAnswers    Next column ComputerAnswers

Logo

ComputerAnswers Column 26


COMPUTER ANSWERS FEBRUARY 1987



Copyright 1984-1989 Simon N Goodwin

(* SUB: Please make sure the overmatter (Wordstar config, Cryptic Costopoulos, Commodore 128 text) runs this month *)

APRICOT INFO

I need the address of the "Apricot User" magazine mentioned in the September PCW, and subscription details.
Z.A.B Creaser, Istanbul, Turkey.

Apricot User used to be published by VNU, but it closed when Apricot abandoned their own range and decided to sell ersatz IBM computers instead. As you're doubtless aware, many of Apricot's older models ended up in Turkey, particularly in colleges.

There is still one title supporting users of 'real' Apricot computers. 'Apricot File' is a monthly newsletter published by refugees from the magazine '16-bit Computing'. The content is fairly technical. A year's subscription costs £50 within the UK, £60 in Europe and £65 anywhere else accessible to Air Mail.

Sample copies are available free from Apricot File, PO Box 509, London N1 1YL (01 833 3501).



SPECTRUM ROM BUG

I have found a bug in the Spectrum ROM which I have not heard mention of before. The problem involves the SCREEN$ function, which is meant to return the code of a character on the screen.

Assume that the screen is blank and Q=2. When I type in PRINT Q=1 AND SCREEN$(5,5)<>"X" I get the reply: 9.1391161E-30. I have not yet comprehended the philosophical meaning of such an answer. As the statement is a logical expression I expected the answer 0 or 1.
J.S Youngman, Coltishall, Norfolk.

This bug crops up very rarely and is easy to avoid, once you know about it. In general the Spectrum ROM is remarkably bug-free, mainly because it was directly adapted from ZX-80 and ZX-81 BASIC. SCREEN$ was a new function introduced on the Spectrum.

The problem occurs because, within ZX BASIC, SCREEN$ returns two copies of the resultant character, rather than one. The 'spare' character overwrites the result of the AND statement. The strange number you cite is the floating-point value corresponding to a space character! There are two ways to avoid the bug. The first requires an EPROM programmer - copy the Spectrum's ROM, changing the byte at location 9597 from 193 to 201. Alternatively, read the screen at the start of a statement, like this: PRINT SCREEN$(5,5)<>"X" AND Q=1 , so that the extra character does not get in the way any more.

This bug appears on ALL versions of the Spectrum. Sinclair never altered the ROM, although material was added for the Spectrum 128. This has preserved compatibility at the expense of retaining some small bugs; Microsoft have followed much the same policy with their BASIC, whereas many other companies (Acorn, Oric, Atari) make frequent changes, both to fix serious bugs and add features. Unless a fault is major, changes tend to cause more problems than they solve.

The quirks of the Spectrum ROM are discussed in Ian Logan's book 'Understanding your Spectrum', published by Melbourne House.



COMPUTER FRAUD

Is it possible for a specialist engineer to obtain information from a computer store which is protected by password access, by circuit manipulation or other means, when he or she is not authorised?
Desmond Cox, Dublin, Eire.

In a word - yes. However, system designers know this, and can make unauthorised access to a system difficult or almost impossible.

Most fraud or theft of information from computer systems occurs because of human error rather than poor software or hardware design. For instance a printout of confidential data may be stolen, a password may be disclosed or someone with access to the required information might be bribed or blackmailed into disclosing it. In general this is much easier than obtaining information through technical effort.

Technical 'hacking' is still possible, despite all the efforts of system designers. It is generally very difficult and requires a good deal of time, luck and skill. Such an approach is rarely attractive to criminals - technical hacking is usually performed by naive enthusiasts with benign, or at least non-criminal, intentions.

Often a system will be able to detect hacking even if it cannot stop it. In such cases the perpetrators are either told off, charged in the High Court or hired by their targets, depending, it seems, upon the publicity involved.

There is one especially easy way to obtain confidential data. You can 'snoop' on data displayed in a report on a working screen. All TV-type displays generate an electric and magnetic field as they paint the screen. This happens with TVs, monitors, oscilloscopes, and anything else with a cathode-ray display.

The field varies in direct relation to the display, and can be detected with simple hardware at a range of up to 100 metres. All you have to do is get a second display running in sympathy with the field of the first, and you can see anything that the original operator can read.

I can confirm how easy this is from personal experience. When I was at University five years ago I used to intercept the display of a friendly hacker with a home-made computer, 13 storeys below me. The same is possible in any office-block, or from the street outside.

One way to stop this kind of snooping is to install costly and inconvenient metal screens between the display and the putative receiver. These screens stop the field leaking out. Alternatively you can use perimeter fences and security guards to keep snoopers out of range of sensitive data - the problem, in both cases, is guessing the sensitivity of receiving equipment.



CP/M ON THE PC

I am considering buying an Amstrad PC, but I don't want to lose the software investment I have in CP/M applications.
C.H Whitford, Horston Hill, Leicester.

Has anyone written a CP/M Plus emulator for the PC-1512? Can I attach a three inch disk drive to the RS232C port on the PC to read and write disks from the Amstrad 8512 word-processor?
John S. David, Camberwell, London.

First, a word of explanation for readers to whom these questions look like sweepings from a typesetter's floor! Early business micros used a program called CP/M, later refined into CP/M Plus, to control displays, disks, printers and so on, so that these could be treated alike by business programs, whatever their exact specification. CP/M was small, slow and simple. It only worked with early microprocessors - in particular the 8080 and 8085 from Intel (who subsidised early development work) and the cheap and popular Zilog Z80, which is used in Amstrad's word- processors and home computers.

In 1981, IBM, and many manufacturers since, decided to use a different range of chips, starting with components numbered 8088 and 8086. These were developments of the 8080 but had several differences - they would not run the same programs. IBM choose a different, although similar, operating system for their machines, called MSDOS or PCDOS.

Programs for CP/M systems will not run on MSDOS computers because CP/M is not present, and the processor is wrong. You must fix both of these problems if you want to run CP/M on a PC. There are two options. Either you give the software what it wants, by adding a second processor and CP/M software to your system - or you use a program that makes the PC pretend to be a CP/M system. The first approach is expensive; the second doesn't always work! Programs for CP/M systems will not run on MSDOS computers because CP/M is not present, and the processor is wrong. You must fix both of these problems if you want to run CP/M on a PC. There are two options. Either you give the software what it wants, by adding a second processor and CP/M software to your system - or you use a program that makes the PC pretend to be a CP/M system. The first approach is expensive; the second doesn't always work!



Link to the top of this document    Link to the main index
Previous column ComputerAnswers    Next column ComputerAnswers