CODINGLISTINGS ★ Dump anything off the screen with this screen dump utility from ROLAND WADDILOVE ★

Dump anything off the screen (Computing With the Amstrad)Coding Listings
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

YOU'LL find this screen dump utility very useful. It allows you to make hard copies of any screen display in Mode 0 or 1, and it doesn't half help convince editors how good your arcade game really is - a picture is worth a thousand superlatives.

The program is capable of dumping both text and graphics, which means you can produce a dump out of anything you can create on the screen.

Applications aren't restricted to illustrating games of course. It would come in very handy producing graphs and so on for business programs. And you can have great fun dumping out simple drawings you have created. But how can you do all this? The first thing you need is a printer which is Epson compatible. This means something like a Kaga, Cannon PW 1080A and, of course, the Epsons themselves. If you do not have such a printer then I'm afraid it's hard luck.

The printer has to be Epson compatible so you can directly program the print head to operate in what's known as bit image mode — this is selected by sending the printer a few control codes.

Bit image mode is required to allow graphic displays to be dumped because it will print any dot pattern sent to it. The process is not unlike defining a character such as a space invader using the SYMBOL command.

When data is received by the printer, it is treated as a binary bit pattern and is printed in a vertical strip eight pixels high. So if five items of data were sent - 1, 2, 3, 4, 5 - it would be printed as:

0 0 0 0 0 128
0 0 0 0 0 64
0 0 0 0 0 32
0 0 0 0 0 16
0 0 0 0 0 8
0 0 0 1 1 4
0 1 1 0 0 2
1 0 1 0 1 1
1 2 3 4 5 - number sent

where "1" is a dot and "0" is a space. The least significant bit is at the bottom and the most significant at the top.

To dump the screen on the printer all that is required is to scan the screen horizontally, looking at the pixels, converting them to a number with an identical binary pattern and sending that number to the printer.

Unfortunately, the Amstrad can only send codes 0 to 127 to the printer - this is because bit seven of each code is ignored.

We now have a problem. The top bit of each column will be ignored. This means that only seven eighths of the column can be printed.

The way round this is to do each row twice, the first time print the top four bits of the column and the second time printing the bottom four. This reduces the speed by half but seems to be the only way.

We achieve this by changing the line feed so that it only moves up half the normal distance. Now the remainder of the column can be printed.

A screen dump in Basic would be very slow. For this reason the program is written in machine code.

The dump routine is tucked away at the end of memory. To avoid any possible corruption by a Basic program, the MEMORY command has been used to limit the memory available to Basic. For those of you who are interested, the dump program starts at location &AA00.

Now it's time for the program. Type it in and save it.

It should be noted that some Epson compatible printers are slightly different. The difference that affects us is the distance moved each line feed.

On the Epson the minimum line feed is 1/72nd of an inch. On some printers the minimum line feed is only 1/36th of an inch. If your printer is the latter you will have to change the sixth number in line 240 to 02 - it is 04 in the listing.

The check sum should also be changed to &4669 - in line 180. Otherwise a splayed dump will be produced.

Running the program sets up the machine code routine - this is stored as data statements. If you have mis-typed any data item the message ERROR will be displayed. Check through your program and change the data item in error.

When the data has been accepted you will be asked to enter the paper colour - in nearly all cases this will be 0.

This number is used to indicate to the dump program that the selected colour should not be printed. If the pen colour had been entered the dump would appear in reverse field -a negative of the screen.

Once RUN, the dump routine is ready to be used. You can now load in the program you wish to dump.

At the required point in your program you should put a CALL &AA00 command which will cause the screen to be dumped when the line is executed.

The program will dump any Mode 0 or 1 screen, as long as MEMORY is not changed or the micro reset.

Each time you need to dump a program you should do the following:

  1. Load in the dump program
  2. RUN it.
  3. Load in the program you wish to dump.
  4. Put a CALL &AA00 command in the program where a screen dump is required.
  5. RUN the program. Happy dumping!


★ PUBLISHER: Computing with the Amstrad
★ YEAR: 1985


» Dump  anything  off  the  screen    (Computing  with  the  Amstrad)    LISTINGDATE: 2013-09-20
DL: 197 fois
SIZE: 142Ko
NOTE: 2 pages/PDFlib v1.6

Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 286 millisecondes et consultée 1304 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.