&X; CIO Routine to enable Plot, Draw)X; and Fill to work for ANTIC mode 'E' X; on ATARI 400/800 machines.(X;2.X; Partly based on 400/800 Operating System<X;F#X; All Equates are in main file.PX;ZX; Version 1.84 June 1987._X;`X;d MYCIO%n 'HOLD5R> FDRAWITR> FFILLIT PLOTIT:X;FILLIT FILLIT1:X;DRAWIT DRAWIT0 CIRTN2:X;PLOTITQCIOCHR, PATACHR6 RANGE@ OUTPLTJ:TX;^X; Actual Draw RoutinehX;rDRAWIT0QROWCRS| PNEWROW QCOLCRS PNEWCOLQCOLCRSPNEWCOLQ> PROWINC PCOLINC; QNEWROW SOLDROW PDELTAR EDRAWIT1Q> PROWINC QDELTARN>&,0O>: PDELTARD DRAWIT1;N QNEWCOLX SOLDCOLb PDELTAClQNEWCOLvSOLDCOLPDELTAC EDRAWIT2Q> PCOLINC QDELTACN> PDELTACQDELTACN>PDELTAC #DELTAC HDRAWIT2#DELTACDRAWIT2$> %> 'COLAC  DRAWIT3AC* PROWAC94 QOLDROW9> PROWCRS9H0R IDRAWIT3A\ QDELTACz2?QDELTACPCOUNTR PENDPT HDRAWIT3 QDELTAC RDELTAR EDRAWIT3 QDELTAR$>? DRAWIT3C PCOUNTR PENDPT5 QENDPT$V?.78W?B PROWAC9LDRAWIT4AQCOUNTRVLCOUNTR` HDRAWIT11j !DRAWIT10t DRAWIT11,~ QROWAC ODELTAR PROWAC DDRAWIT5 #ROWACDRAWIT5QROWAC RENDPT DDRAWIT6 HDRAWIT5A QROWAC RENDPT DDRAWIT6 DRAWIT5A, QROWCRS  OROWINC PROWCRS$>( SUBEND2 DRAWIT6,< QCOLACF ODELTACP PCOLACZ QCOLACdODELTACn PCOLACx RENDPT DDRAWIT8 HDRAWIT6A QCOLAC RENDPT DDRAWIT8DRAWIT6A*COLINC IDRAWIT6B "COLCRS QCOLCRSR> HDRAWIT7QCOLCRS FDRAWIT7"COLCRS IDRAWIT7DRAWIT6B#COLCRS" HDRAWIT7,#COLCRS6DRAWIT7$>@ SUBENDJDRAWIT8 RANGET OUTPLT^;h QCOUNTRrS>| PCOUNTRQCOUNTRS>PCOUNTR GDRAWIT10 !DRAWIT4A DRAWIT10, RETUR1:X;X; Check for valid rangeX; RANGEQ> RROWCRS DRNGERR FRNGERRQ>& RCOLCRS0 DRNGERR: FRNGERRX:v RNGERR77 !RETUR1X;X; Plot Point on ScreenX;OUTPLTQROWCRS POLDROW QCOLCRS POLDCOLOUTCH2QATACHRRM>\L>@f PCHARp CONVRTzOUTCH3QCHARSHIFTUVSHFAMT ESHIFT2T? !SHIFTUSHIFT2MDMASK PTMPCHR QDMASKN> M@ADRESS7 LTMPCHR P@ADRESS7:X; X; SUBEND; QROWAC9 SENDPT PROWAC9 QROWAC9 SENDPT( PROWAC92 :< X;F *X; Convert row/column to screen addressP X;Z CONVRTQROWCRSd 5n QCOLCRSx 5 PUTMSC QROWCRS PMLTTMP Q> PMLTTMP QMLTTMP T? UMLTTMP PHOLD1 %MLTTMP 'HOLD2 T? UMLTTMP T?" UMLTTMP, ,6 OHOLD1@ PMLTTMPJ QMLTTMPT OHOLD2^ PMLTTMPh %>r CONVR11| GCONVR2 TMLTTMP UMLTTMP !CONVR1 CONVR2%> QCOLCRS $> CONVR31 GCONVR4 0 VCOLCRS W? WTMPLBT !CONVR3 CONVR43 , OMLTTMP& PMLTTMP0 DCONVR5: #MLTTMPD CONVR5;N CONVR6WTMPLBTX ,b 0l ICONVR6v $TMPLBT QMLTTMP , OADRESS PADRESS POLDADR QMLTTMP OADRESS PADRESS POLDADR QDMASKT9 PDMASK PSHFAMT 7 PCOLCRS 7* PROWCRS4 :> X;H PUTMSCQSAVMSCR PADRESS\ QSAVMSCf PADRESSp :z X; DMASKT ===  =0= = X; X; Fill Area Routine X; FILFLG2  X; FILLIT1QFILDAT PATACHR PHACRS RANGE GETPLT PCHAR2 RFILDAT HFILLIT1A : FILLIT1AQHPOSP0 PHOLD4 Q> PHPOSP0 "COLCRS Q> RCOLCRS FFILLIT2 GETPLT RCHAR2 FFILLIT1A$FILLIT2#COLCRS.FILLIT2BQCOLCRS8 PLEFTCRSL FILLOOPM QLEFTCRSN RRIGHTCRSP EFILLIT4V #ROWCRS`Q>j RROWCRSt DFILLIT4~ QLEFTCRS PCOLCRS GETPLT RCHAR2 FFILLIT1AFILLIT2A#COLCRSQ> RCOLCRS DFILLIT4 QCOLCRS RRIGHTCRS FFILLIT4 GETPLT RCHAR2 FFILLIT2B !FILLIT2AFILLIT4QTMPCOL PCOLCRS QTMPROW PROWCRS "ROWCRSQ> RROWCRS FFILLIT9 FILLIT5"COLCRSQ> RCOLCRS FFILLIT6# GETPLT( RCHAR2- FFILLIT52FILLIT6#COLCRS7FILLIT6AQCOLCRS< PLEFTCRSF FILLOOPG QLEFTCRSH RRIGHTCRSJ FFILLIT9K "ROWCRSPQ>U RROWCRSZ FFILLIT9_ QLEFTCRSd PCOLCRSi GETPLTn RCHAR2s FFILLIT5xFILLIT7#COLCRSyQ>z RCOLCRS{ DFILLIT9| QCOLCRS} RRIGHTCRS~ FFILLIT9 GETPLT RCHAR2 FFILLIT6A !FILLIT7FILLIT9QHOLD4 PHPOSP0:X;FILLOOP OUTPLT #COLCRSQ> RCOLCRS DFILLOOP2 GETPLT RCHAR2 FFILLOOP QCOLCRSFILLOOP2PRIGHTCRS "RIGHTCRSQ FSTOPFILL: STOPFILL77 QHOLD5P:X; RIGHTCRS LEFTCRS  HOLD4  HOLD5 hX;|PHACRSQROWCRS PTMPROW QCOLCRS PTMPCOL:X;GETPLT CONVRT Q@ADRESS7 MDMASKSHIFTDVSHFAMT ESHIFT1V? ISHIFTDSHIFT1PCHAR:X; CHAR2