   10 REM ***********************************
   20 REM    Screen Grab to PCX Converter
   30 REM           By Robin Nixon
   40 REM Adapted for Notebook by Tim Surtell
   50 REM ***********************************
   60 REM NC200 Version
   70 REM Downloaded from Tim's Amstrad NC Users' Site
   80 REM http://www.ncus.org.uk
   90 :
  100 CLS:DIM A% 40,B% 128:PROCassemble
  110 FOR J%=1 TO 128
  120   READ B%?J%
  130 NEXT
  140 PRINT "GRAB2PCX: Press any key for the File Selector...";:G$=GET$
  150 file$=FNselect:IF file$="" THEN CLS:END
  160 IF LEFT$(file$,2) <> "s." THEN PRINT "Not a screen grab..."':GOTO 140
  170 file2$=LEFT$(file$,1)+RIGHT$(file$,1)+".pcx"
  180 handlein=OPENIN(file$)
  190 handleout=OPENOUT(file2$)
  200 FOR J%=1 TO 128
  210   BPUT #handleout,B%?J%
  220 NEXT
  230 PRINT "GRAB2PCX: Creating file: ";file2$'
  240 PRINT "Processing line (of 128):"
  250 PRINT:PRINT "When finished this program will"
  260 PRINT "offer to convert another file."
  270 FOR K%=1 TO 128
  280   VDU 31,25,2:PRINT ;K%
  290   FOR J%=1 TO 60
  300     BPUT #handleout,&C1
  310     BPUT #handleout,BGET #handlein
  320   NEXT
  330   FOR N%=1 TO 4
  340     D%=BGET #handlein
  350   NEXT
  360 NEXT
  370 CLOSE #handlein
  380 CLOSE #handleout
  390 GOTO 150
  400 :
  410 REM PCX header block
  420 :
  430 DATA &A,5,1,1,0,0,0,0,&DF,1,&7F,0,0,0,0,0
  440 DATA 0,0,0,&FF,&FF,&FF,0,0,0,0,0,0,0,0,0,0
  450 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  460 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  470 DATA 0,1,&3C,0,1,0,0,0,0,0,0,0,0,0,0,0
  480 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  490 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  500 DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  510 :
  520 DEF FNselect
  530 CALL A%
  540 IF buffer?0 = 0 THEN CLS:=""
  550 R$=""
  560 FOR J%=0 TO 11
  570   IF buffer?J% THEN R$=R$+CHR$(buffer?J%) ELSE J%=12
  580 NEXT
  590 =R$
  600 :
  610 DEF PROCassemble
  620 FOR PASS=0 TO 2 STEP 2
  630   P%=A%
  640   [
  650   OPT PASS
  660   CALL &B8C3
  670   LD DE,buffer
  680   JR C,found
  690   LD A,0
  700   LD (DE),A
  710   RET
  720   .found
  730   LD B,12
  740   .loop
  750   LD A,(HL)
  760   LD (DE),A
  770   INC HL
  780   INC DE
  790   DJNZ loop
  800   RET
  810   .buffer
  820   ]
  830 NEXT
  840 ENDPROC
