Errors 48 ROM

ZXNet echo conference «code.zx»

From Vyacheslav Mednonogov To All 3 September 1999

Get Msg, All! Interesting information from the book "Caches of the zx spectrum": ============================================= 9. ERRORS IN THE SYSTEM AUTHORS OF THE OPERATING SYSTEM AND BASIC INTERPRETER ZX SPECTRUM DID AN EXCELLENT JOB BUT COULD NOT AVOID A FEW MISTAKES 9.1. DIVISION ERROR UNDER ADDRESS #3200 THE VALUE #E1 IS PLACED INSTEAD OF #DA. B THE RESULT IS SOMETIMES THE LAST BIT IS LOST, RESULTING IN ERROROUS ROUNDINGS. THE CONSEQUENCES OF AN ERROR IS DEMONSTRATED PROGRAM: 10 LET A=A/B 20 IF A THEN GO TO 10 30 PRINT "RECEIVED ZERO" RUNNING IT WITH THE VALUES A=1 AND B=3, IN A SECOND WE WILL GET PRINT: "RECEIVED NULL". LAUNCHING IT AGAIN WITH MEANINGS A=1 AND B=2, LOOPING BECAUSE SPECTRUM BELIEVES THAT 2^-128=2^-128/2. 9.2. ERROR "-65536" THE AUTHORS MADE INACCURACY IN THE REPRESENTATION OF THIS NUMBER LA. ONCE IT IS STORED IN A FLOATING POINT REPRESENTATION THE ONE, THE OTHER - AS AN INTEGER IN THE 2'S COMPLETION CODE. THE CONSEQUENCES OF ambiguity APPEAR FOR EXAMPLE WHEN PERFORMING: Research Institute DIRECTIVES: PRINT - 65536. THE NUMBER -1 WILL APPEAR ON THE SCREEN. 9.3. ERROR CHR$8 THIS CONTROL CHARACTER SHOULD MOVE THE CURSOR TO ONE POSITION TO THE LEFT, OR TO THE END OF THE PREVIOUS LINE. EXACTLY THIS IS HAPPENING IN LINES 1...23, BUT FROM THE BEGINNING OF LINE 1IT IS IMPOSSIBLE TO GO TO THE END OF THE 0TH LINE. FOR THE CURIOUS FOR EFFECTS, PLEASE MOVE THE CURSOR TO THE LEFT OF THE FIELD (0,0). 9.4. ERROR CHR$9 THIS CHARACTER SHOULD MOVE THE CURSOR TO THE RIGHT BY ONE POSITION. HERE, HOWEVER, A SERIOUS MISTAKE HAS BEEN MADE: EVERYTHING IS NECESSARY DIFFICULT CALCULATIONS ARE PERFORMED, BUT THE AUTHORS FORGOT TO MODIFY ROLL SYSTEM VARIABLES. 9.5. ERROR "PRESS ANY KEY ..." IN SOME SITUATIONS SPECTRUM INTERRUPTES OPERATION AND WAITS PUSH BY PRESSING ANY KEY BY THE USER. ERROR LEADS TO BECAUSE THE COMPUTER DOES NOT RESPOND TO THE CS AND SS KEYS, ALTHOUGH IT RESPONSES TO BOTH IMMEDIATELY. 9.6. TICKET POINTER ERROR Suppose that the last line in the program has the number 1000. BY PRESSING 1001 AND “FNTER” AND THEN CS/1 TO THE BOTTOM PART OF THE SCREEN WILL BE SCANED BY LINE 1000, BUT TOGETHER WITH THE TICKET TICKER POINTER WHICH IS BEFORE THE ENTRY OF THE LINE MUST BE REMOVED. 9.7. DELETE ERROR WHEN YOU DELETE CONTENTS AT THE BOTTOM OF THE SCREEN USING CS/1, THE CURRENT LINE SCAN TO THE BOTTOM OF THE SCREEN PROGRAMS AND IT IS IMPOSSIBLE TO RETURN TO THE CONTROL SIZE OF THIS AREAS. YOU NEED TO PRESS "ENTER" AGAIN. 9.8. LEADING SPACE ERROR SOME KEY WORDS ARE NOT DISPLAYED WHEN ALWAYS SEPARATED BY SPACE FROM THE PRECEDING ONE: TRY IT FOR EXAMPLE, EXECUTE PRINT CHR$ 255;CHR$ 13;CHR$ 255 9.9. MODE ERROR KAFTER PRESSING THE KEY IN K MODE AND HOLDING IT IN IN THIS POSITION, THE KEY STARTS TO EXPAND. CURSOR CHANGES TO L OR C, BUT THE SYMBOL IS PRINTED IN MODE ALL THE TIME ME K. 9.10. SCREEN$ ERROR LOCATION #2570 SHOULD HAVE #C9 INSTEAD OF #C3. B AS A RESULT, THE PROGRAM WILL OUTPUT 22 INSTEAD OF THE EXPECTED NUMBER 12: 10 PRINT "1234567890" 20 LET A$=SCREN$(0,0)+SCREEN$(0,1) 30 PRINT A$ WE WILL GET AN EVEN MORE AMAZING PRINT IF AT THE END OF THE LINE 20 ADD +SCREEN$(0.2)+SCREEN$(0.4). VARIABLE SIGNS VALUE "55". THIS IS AN EASY ERROR. ADDING KNOW TO A$ COMPLETING SCREEN$(0,1) IN ALERTS, NOT IN ONE EXPRESSION. 9.11. STR$ ERROR WORKING WITH NUMBERS -1