program bwbitmap; uses graphics,crt; var filename : string; FileChar : file of word; colour : byte; data, data2 : word; Index, i, code : integer; XSCAN, XSCAN2, YSCAN, YSCAN2 : word; begin { *** START OF PROCEDURE *** } asminitgraphics(5); { clearpalettearray; asminitpalette; Load_Bitmap_palette(filename); } assign (FileChar,paramstr(1)+'.bmp'); reset(FileChar); colour:=15; if paramstr(2) <> '' then begin Val(ParamStr(2), i, code); colour:=i; end; seek(filechar,31); {***********************************} {*********** Load Fax **************} {seek(filechar,bitmapfileposition);} yscan2 := 480; yscan:=0; repeat { *** Start Of Plot Bitmap *** } XScan2 := 0; XScan := 0; Repeat {--------------------} read(FileChar,data); data2:=swap(data); if data and 128=128 then AsmPutPixel(XScan2,YScan2,colour); if data and 128=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data and 64=64 then AsmPutPixel(XScan2,YScan2,colour); if data and 64=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data and 32=32 then AsmPutPixel(XScan2,YScan2,colour); if data and 32=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data and 16=16 then AsmPutPixel(XScan2,YScan2,colour); if data and 16=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data and 8=8 then AsmPutPixel(XScan2,YScan2,colour); if data and 8=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data and 4=4 then AsmPutPixel(XScan2,YScan2,colour); if data and 4=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data and 2=2 then AsmPutPixel(XScan2,YScan2,colour); if data and 2=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data and 1=1 then AsmPutPixel(XScan2,YScan2,colour); if data and 1=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data2 and 128=128 then AsmPutPixel(XScan2,YScan2,colour); if data2 and 128=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data2 and 64=64 then AsmPutPixel(XScan2,YScan2,colour); if data2 and 64=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data2 and 32=32 then AsmPutPixel(XScan2,YScan2,colour); if data2 and 32=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data2 and 16=16 then AsmPutPixel(XScan2,YScan2,colour); if data2 and 16=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data2 and 8=8 then AsmPutPixel(XScan2,YScan2,colour); if data2 and 8=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data2 and 4=4 then AsmPutPixel(XScan2,YScan2,colour); if data2 and 4=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data2 and 2=2 then AsmPutPixel(XScan2,YScan2,colour); if data2 and 2=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; if data2 and 1=1 then AsmPutPixel(XScan2,YScan2,colour); if data2 and 1=0 then AsmPutPixel(XScan2,YScan2,0); Xscan2 := Xscan2 + 1; XScan := Xscan + 1; {--------------------} until (XScan = 640 div 16); yscan2 := yscan2 -1; until (yscan2=0) or (keypressed); { *** End Of Plot Bitmap *** } {*************************************************} close(FileChar); REPEAT UNTIL KEYPRESSED; asmclosegraph; end. {------------------------------------------------------------------------}