Skip to main content
Added tape handling quote
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
  • String handling
  • No FAST and SLOW
  • UNPLOT/PLOT OVER
  • Additional (faster) method for storing integers
  • Maths
  • Multi-statement lines
  • Scrolling
  • ASCII
  • Text display: INVERSE, BRIGHT, FLASH, OVER, SCREEN$
  • String input: LINE
  • Pixel graphics: LINE, CIRCLE, DRAW, POINT. Also PLOT
  • Colour: BORDER, PAPER, INK, ATTR
  • Sound: BEEP
  • Typographical
  • Files and channels
  • Fixed video RAM
  • Input/Output: IN, OUT
  • Binary: BIN
  • Tape files: VERIFY and MERGE. Also modifiers: LINE, DATA(), DATA$(), CODE and SCREEN$
  • Faster, better tape loading and saving
  • String evaluation: VAL$
  • Microdrives: MOVE, ERASE, CAT, FORMAT
  • Functions: DEF FN and FN
  • Data: READ, RESTORE, DATA
  • User defined characters
  • Key repeat

The Spectrum alsoalso had this faster integer storage method. From The Complete Spectrum ROM Disassembly, by Logan, Ian; O'Hara, Frank, on page ii (in the Introduction):

However, if a 16 kB RAM pack was used and detected, then the video memory automatically maxed out its size. It is better explained on page 74, chapter 27 of the ZX81 BASIC manual:

It is better explained on page 74, chapter 27 of the ZX81 BASIC manual - the emphasis is mine:

The display file is the memory copy of the television picture. It begins with a NEWLINE character, & then has the twenty four lines of text, each finishing with a NEWLINE. The system is so designed that a line of text does not need space a full thirty two characters: final spaces can be omitted. This is used to save space when the memory is smallThis is used to save space when the memory is small.

When the total amount of memory (according to the system variable RAMTOP) is less than 3 1/4 K, then a clear screen - as set up at the start or by CLS - consists of just twenty five NEWLINEs. When the memory is bigger than a clear screen is padded out with 24*32 spaces & on the whole it stays at its full size; SCROLL, however, & certain conditions where the lower part of the screen expands to more than two lines, can upset this by introducing short lines at the bottom.

Faster, better tape loading and saving

From The Complete Spectrum ROM Disassembly, by Logan, Ian; O'Hara, Frank, on page i (in the Introduction), - the emphasis is mine:

The cassette handling routines.

It was a very unfortunate feature of the ZX 81 that so little of the monitor program for that machine was devoted to the cassette handling.

However in the Spectrum there is an extensive block of code and now the high standard of cassette handling is one of the most successful features of the machine.

BASIC programs or blocks of data are both dealt with in the same manner of having a 'header' block (seventeen bytes) that is SAVEd first. This 'header' describes the 'data block' that is SAVEd after it.

One disadvantage of this system is that it is not possible to produce programs with any 'security' whatsoever.

Key repeat

The Spectrum also had key-repeat, upon an extended key press. Which I don't think that the ZX81 had.

  • String handling
  • No FAST and SLOW
  • UNPLOT/PLOT OVER
  • Additional (faster) method for storing integers
  • Maths
  • Multi-statement lines
  • Scrolling
  • ASCII
  • Text display: INVERSE, BRIGHT, FLASH, OVER, SCREEN$
  • String input: LINE
  • Pixel graphics: LINE, CIRCLE, DRAW, POINT. Also PLOT
  • Colour: BORDER, PAPER, INK, ATTR
  • Sound: BEEP
  • Typographical
  • Files and channels
  • Fixed video RAM
  • Input/Output: IN, OUT
  • Binary: BIN
  • Tape files: VERIFY and MERGE. Also modifiers: LINE, DATA(), DATA$(), CODE and SCREEN$
  • Faster tape loading and saving
  • String evaluation: VAL$
  • Microdrives: MOVE, ERASE, CAT, FORMAT
  • Functions: DEF FN and FN
  • Data: READ, RESTORE, DATA
  • User defined characters

The Spectrum also had this faster integer storage method. From The Complete Spectrum ROM Disassembly, by Logan, Ian; O'Hara, Frank

However, if a 16 kB RAM pack was used and detected, then the video memory automatically maxed out its size. It is better explained on page 74, chapter 27 of the ZX81 BASIC manual:

The display file is the memory copy of the television picture. It begins with a NEWLINE character, & then has the twenty four lines of text, each finishing with a NEWLINE. The system is so designed that a line of text does not need space a full thirty two characters: final spaces can be omitted. This is used to save space when the memory is small.

When the total amount of memory (according to the system variable RAMTOP) is less than 3 1/4 K, then a clear screen - as set up at the start or by CLS - consists of just twenty five NEWLINEs. When the memory is bigger than a clear screen is padded out with 24*32 spaces & on the whole it stays at its full size; SCROLL, however, & certain conditions where the lower part of the screen expands to more than two lines, can upset this by introducing short lines at the bottom.

Faster tape loading and saving

  • String handling
  • No FAST and SLOW
  • UNPLOT/PLOT OVER
  • Additional (faster) method for storing integers
  • Maths
  • Multi-statement lines
  • Scrolling
  • ASCII
  • Text display: INVERSE, BRIGHT, FLASH, OVER, SCREEN$
  • String input: LINE
  • Pixel graphics: LINE, CIRCLE, DRAW, POINT. Also PLOT
  • Colour: BORDER, PAPER, INK, ATTR
  • Sound: BEEP
  • Typographical
  • Files and channels
  • Fixed video RAM
  • Input/Output: IN, OUT
  • Binary: BIN
  • Tape files: VERIFY and MERGE. Also modifiers: LINE, DATA(), DATA$(), CODE and SCREEN$
  • Faster, better tape loading and saving
  • String evaluation: VAL$
  • Microdrives: MOVE, ERASE, CAT, FORMAT
  • Functions: DEF FN and FN
  • Data: READ, RESTORE, DATA
  • User defined characters
  • Key repeat

The Spectrum also had this faster integer storage method. From The Complete Spectrum ROM Disassembly, by Logan, Ian; O'Hara, Frank, on page ii (in the Introduction):

However, if a 16 kB RAM pack was used and detected, then the video memory automatically maxed out its size.

It is better explained on page 74, chapter 27 of the ZX81 BASIC manual - the emphasis is mine:

The display file is the memory copy of the television picture. It begins with a NEWLINE character, & then has the twenty four lines of text, each finishing with a NEWLINE. The system is so designed that a line of text does not need space a full thirty two characters: final spaces can be omitted. This is used to save space when the memory is small.

When the total amount of memory (according to the system variable RAMTOP) is less than 3 1/4 K, then a clear screen - as set up at the start or by CLS - consists of just twenty five NEWLINEs. When the memory is bigger than a clear screen is padded out with 24*32 spaces & on the whole it stays at its full size; SCROLL, however, & certain conditions where the lower part of the screen expands to more than two lines, can upset this by introducing short lines at the bottom.

Faster, better tape loading and saving

From The Complete Spectrum ROM Disassembly, by Logan, Ian; O'Hara, Frank, on page i (in the Introduction), - the emphasis is mine:

The cassette handling routines.

It was a very unfortunate feature of the ZX 81 that so little of the monitor program for that machine was devoted to the cassette handling.

However in the Spectrum there is an extensive block of code and now the high standard of cassette handling is one of the most successful features of the machine.

BASIC programs or blocks of data are both dealt with in the same manner of having a 'header' block (seventeen bytes) that is SAVEd first. This 'header' describes the 'data block' that is SAVEd after it.

One disadvantage of this system is that it is not possible to produce programs with any 'security' whatsoever.

Key repeat

The Spectrum also had key-repeat, upon an extended key press. Which I don't think that the ZX81 had.

Info about Spectrum Integer and float handling
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66

It is unclear whether theThe Spectrum also had this faster integer storage method. From The Complete Spectrum ROM Disassembly, by Logan, Ian; O'Hara, Frank

The arithmetic routines

The Spectrum has two forms for numbers. Integer values in the range -65535 to +65535 are in an 'integral' or 'short' form whilst all other numbers are in a five byte floating point form.

The present version of the monitor is unfortunately marred by two mistakes in this part.

i. There is a mistake in 'division' whereby the 34th bit of a division is lost.
ii. The value of -65536 is sometimes put in 'short' form and at other times in 'floating-point' and this leads to troubles.

It is unclear whether the Spectrum also had this faster integer storage method.

The Spectrum also had this faster integer storage method. From The Complete Spectrum ROM Disassembly, by Logan, Ian; O'Hara, Frank

The arithmetic routines

The Spectrum has two forms for numbers. Integer values in the range -65535 to +65535 are in an 'integral' or 'short' form whilst all other numbers are in a five byte floating point form.

The present version of the monitor is unfortunately marred by two mistakes in this part.

i. There is a mistake in 'division' whereby the 34th bit of a division is lost.
ii. The value of -65536 is sometimes put in 'short' form and at other times in 'floating-point' and this leads to troubles.

Added integer quote, faster tape, and missing ZX81 characters
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
  • String handling
  • No FAST and SLOW
  • UNPLOT/PLOT OVER
  • Additional (faster) method for storing integers
  • Maths
  • Multi-statement lines
  • Scrolling
  • ASCII
  • Text display: INVERSE, BRIGHT, FLASH, OVER, SCREEN$
  • String input: LINE
  • Pixel graphics: LINE, CIRCLE, DRAW, POINT. Also PLOT
  • Colour: BORDER, PAPER, INK, ATTR
  • Sound: BEEP
  • Typographical
  • Files and channels
  • Fixed video RAM
  • Input/Output: IN, OUT
  • Binary: BIN
  • Tape files: VERIFY and MERGE. Also modifiers: LINE, DATA(), DATA$(), CODE and SCREEN$
  • Faster tape loading and saving
  • String evaluation: VAL$
  • Microdrives: MOVE, ERASE, CAT, FORMAT
  • Functions: DEF FN and FN
  • Data: READ, RESTORE, DATA
  • User defined characters

The ZX80 storedhandled all numbers as floating pointintegers. The ZX81 added floating point support but also added an "integer only" storage method, for numbers between -65535 to 65535, that was faster. It is unclear whether the Spectrum also hadfaster than the integerfloating point storage method. From Reusing code, reverse engineering and collaboration:

For the floating point routines, Vickers used a format almost identical to the 40-bit version of MBF. But he added the ability to store integer numbers in the range -65535 to 65535. The user doesn’t have to specify variable types. And it’s faster than BASICs that only store numbers as floating-point, such as Commodore’s.

It is unclear whether the Spectrum also had this faster integer storage method.

As a result, the inverse characters and half-tone "checkerboard" characters was lost on the Spectrum. However, the User defined characters, see section below, introduced with the Spectrum, and the INVERSE text modifier, could be used to work around these "lost" characters.

Faster tape loading and saving

The Spectrum improved the routines used for loading and saving for faster performance, over those used for the ZX81.

  • String handling
  • No FAST and SLOW
  • UNPLOT/PLOT OVER
  • Additional (faster) method for storing integers
  • Maths
  • Multi-statement lines
  • Scrolling
  • ASCII
  • Text display: INVERSE, BRIGHT, FLASH, OVER, SCREEN$
  • String input: LINE
  • Pixel graphics: LINE, CIRCLE, DRAW, POINT. Also PLOT
  • Colour: BORDER, PAPER, INK, ATTR
  • Sound: BEEP
  • Typographical
  • Files and channels
  • Fixed video RAM
  • Input/Output: IN, OUT
  • Binary: BIN
  • Tape files: VERIFY and MERGE. Also modifiers: LINE, DATA(), DATA$(), CODE and SCREEN$
  • String evaluation: VAL$
  • Microdrives: MOVE, ERASE, CAT, FORMAT
  • Functions: DEF FN and FN
  • Data: READ, RESTORE, DATA
  • User defined characters

The ZX80 stored all numbers as floating point. The ZX81 added an "integer only" storage method, for numbers between -65535 to 65535, that was faster. It is unclear whether the Spectrum also had the integer storage method.

  • String handling
  • No FAST and SLOW
  • UNPLOT/PLOT OVER
  • Additional (faster) method for storing integers
  • Maths
  • Multi-statement lines
  • Scrolling
  • ASCII
  • Text display: INVERSE, BRIGHT, FLASH, OVER, SCREEN$
  • String input: LINE
  • Pixel graphics: LINE, CIRCLE, DRAW, POINT. Also PLOT
  • Colour: BORDER, PAPER, INK, ATTR
  • Sound: BEEP
  • Typographical
  • Files and channels
  • Fixed video RAM
  • Input/Output: IN, OUT
  • Binary: BIN
  • Tape files: VERIFY and MERGE. Also modifiers: LINE, DATA(), DATA$(), CODE and SCREEN$
  • Faster tape loading and saving
  • String evaluation: VAL$
  • Microdrives: MOVE, ERASE, CAT, FORMAT
  • Functions: DEF FN and FN
  • Data: READ, RESTORE, DATA
  • User defined characters

The ZX80 handled all numbers as integers. The ZX81 added floating point support but also added an "integer only" storage method, for numbers between -65535 to 65535, that was faster than the floating point storage. From Reusing code, reverse engineering and collaboration:

For the floating point routines, Vickers used a format almost identical to the 40-bit version of MBF. But he added the ability to store integer numbers in the range -65535 to 65535. The user doesn’t have to specify variable types. And it’s faster than BASICs that only store numbers as floating-point, such as Commodore’s.

It is unclear whether the Spectrum also had this faster integer storage method.

As a result, the inverse characters and half-tone "checkerboard" characters was lost on the Spectrum. However, the User defined characters, see section below, introduced with the Spectrum, and the INVERSE text modifier, could be used to work around these "lost" characters.

Faster tape loading and saving

The Spectrum improved the routines used for loading and saving for faster performance, over those used for the ZX81.

Fixed typo with page number.
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
Loading
This should fill 7kB - to actually answer the question asked.
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
Loading
Added user defined characters
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
Loading
Minor enhancement.
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
Loading
Beautifying....
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
Loading
Minor correction.
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
Loading
Updated with more commands
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
Loading
Updated with more commands
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
Loading
Updated with more commands
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
Loading
Updated with more commands
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
Loading
Updated answer with ZX81 memory
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
Loading
Source Link
Greenonline
  • 5k
  • 2
  • 26
  • 66
Loading