Sinclair Club #05
31 декабря 2001
  Софт  

Soft - Strange system programs: STS 5.1, ALASM 4.1.

<b>Soft</b> - Strange system programs: STS 5.1, ALASM 4.1.
      Oddities system software!



     (C) Alone Coder / Any



        STS 5.1 by STALKER


   STS 5.1 is a very strange Editor
line mode Hex Dump.

   If this line was a "" symbol, then
After you press Enter, when the string is copied into memory, 
the bytes will be skipped. The last byte string in this case 
will be taken from the previous version (which existed prior to 
editing), and, more simply, from the ceiling. 

   At this glitch already referred someone somewhere
(Go, find out now!), Leads to even
way to remedy that reduces the length of the buffer the user. 
Here is another way: 

Copy from # DE10 to # DE1B -> # DE0F
# DE1B: JR Z, # DE22

       DEC DE


   After such a correction bytes marked with the symbol "" will 
not change. 

   Corrections must be done not on a running STS'e, but the 
downloaded file to a different page sts5.1a! 


   Improper positioning of the 0-th
track after changing the drive - a chronic disease for all 
versions of STS. Version 6.2 Ivan Roshchin fixed, and over 5.1 
seem to be nothing is yet known ...


      ALASM 4.1 6x7 by ALEM


   ALASM has a glitch in the assembly,
associated with the intersection of the team address
# 8000. In most cases, this leads
to the fact that a piece of the team to address # 7FFF
inclusive, compiled fine, but the rest of the erasure start 
ALASM'a. 

   This bug has already been described MAX'om in the journal 
"Black Crow" # 3. Explained glitch the fact that during his 
work ALASM (as however, and other assemblers) moves

in the 2 nd page and its contents are old
at this time is stored in so-called System page (usually 4-th 
page). After exiting the assembly (as well as after RUN, DEBUG 
etc.) pages, of course, swapped back. 

   Prefiksirovannye teams that do not suffer. If the previous 
command has ended to # 7FFF, and the next is at # 8000,

then the problems will not arise too. And in general,
if you know about this glitch, it can be
control. For example, the initialization procedure in my AC 
Edit calmly crosses # 8000. Another thing that I had neither 
me:)). 

   A better, of course, just write your program in the fast 
memory. 

   In going through the address # C000 glitch is not
arises.


   There is another glyuchok in ALASM, which
fix nevozmozhno.On associated with a specific single-pass 
method kompilyatsii.Pravda, you first need to explain how it 
works one-pass compiler.


   The compiler scans the text of the program from top to 
bottom, assembliruya team, defining the labels and affixing 
certain parameters teams in their address chast.Esli compiler 
encounters the expression is not defined above tag, it displays 
a message error. If he meets is simply not

already defined a label, then it writes the name
this label and the address of the address part of the team
(Sorry, pun) in tablitsu.Kogda mark will be determined, all the 
blank address of commands Organization, which should contain 
the address of the tags are filled, and their occurrence 
removed from the table. 

   Now, attention! How could compile
a fragment?

      DUP 7

       LD A, (BC)

       XOR (HL)

       AND 240

       XOR (HL)

       LD (DE), A

       INC B; +0

       INC H; +1

       INC D; +2

       LD A, D; +3

       AND 7; 4

       CALL Z, DDEU; +6

      EDUP

       ORG $ -9

       JP PRRQ; +0

PR1ST PUSH BC; +3

       PUSH DE; +4

       PUSH HL; +5

       BIT 0, C; +6

       JR Z, PR1STL; +8

       ...

DDEU LD A, E

       ADD A, 32

       LD E, A

       RET C

       LD A, D

       SUB 8

       LD D, A

       RET

   Insides DUP'a otkompilyatsya 7 times
then the current address is moved to command INC B (for 
convenience, I have to command offset of this address), and ...


   But the label DDEU is not defined yet! AND
after it determines its value
will be written by a relative at 7
parameter in the command CALL, which at the moment will no 
longer exist! The result will be broken by any innocent BIT 
Team and JR! 

   Therefore, these pieces should be written as follows:

      DUP 6

       LD A, (BC)

       XOR (HL)

       AND 240

       XOR (HL)

       LD (DE), A

       INC B

       INC H

       INC D

       LD A, D

       AND 7

       CALL Z, DDEU

      EDUP

       LD A, (BC)

       XOR (HL)

       AND 240

       XOR (HL)

       LD (DE), A

       ...

   Better yet, make maker.


   Gluck with the 11-character name of the disk mode directory 
ALASM'e: If the drive name has all 11 characters, then the next 
may appear completely random characters arbitrary number. 
Correct the seal 11-character name should be taken into account 
As the end of the name: 1) the end of the sector, 2) B # 0, 3) 
fixed 7-bit (Which, incidentally, when you print to reset).


   Probably, many lack the Help alasma.Ego at startup so you 
can kill (the command itself Help on this, of course, is not 
affected): 

# B77E: JP # 8B8F


   However, even exempt the following
15 bytes. Although, strictly speaking, they can win
and elsewhere: Coding of the masters so
The original that their programs more streamlined and optimized 
... 

   In these 15 bytes (more precisely, we only need 13) and we 
place our program print the drive name: 

# B781: LD A, (HL)

       AND 127

       RET Z

       CALL # 8C96

       OR (HL)

       RET M

       INC L

       JR NZ, # B781

       RET


   And changing the link below:

# 99D1: CALL # B781


   Naturally, all this have to do it is yet again not working 
alasme, and the downloaded at # 8000 file alasm67. 





Other articles:

From the authors - "Read our publication and your soul will be crystal Spectrum'ovskaya net. "

Demopati - Announcement ASCII'2002.

Programming - a very effective way to improve the performance of the interpreter BASIC (48 Basic), integrated into the ZX-Spectrum, the processing of large data sets.

Iron - Sprinter? Questions and answers!

Contest - The attention of the competition, "Your Game"!

Soft - Strange system programs: STS 5.1, ALASM 4.1.

Chaos Constructions'2001 - Cusick shares his impressions about the next festival of computer art.

Soft - description of a new version of the GFX UTILITY v0.5.

phONOmania - a database of phone numbers active ZX scenery.

Announcement - advertising and announcements.

Authors - The editors of the newspaper.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
Hit Parade - the hit parade of Russian pop.
Prikolchik - Prikolchik's Navapolatsk?. What letter comes to us in the laboratory.
Iron - a detailed description of modems.

В этот день...   21 November