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