
PROGRAM LISTING: 86-09/FAXA.M65
þþ^4dQÒPæQ6 S>5@
PJTX;^†LEA.W h Q>5r
P| Q>4†PšX;¤‡MOVE.B ®Q¸PÂÌX;Ö‡MOVE.W à‡MOVE.B =ê‡MOVE.B =ôþX;
…POKE Q>4P&0X;:
…ALSO DPNXX;b†WRITE l$>v„@PLC€Q9Š;”S> žP9¨0² I„@PLC¼ÆX;ІMOVEM Ú$>ƒLMS@¶…MODEFOÀ…JMPWTAÊ‚CHü;;where keys sitÔˆPIXSTART;;status valuesÞ‡PIXDRAWè‡PIXOVERò…GHOST,;;BOO!ü‰ORINCOLORÀ†RANDOM
Ò…IRQENÒ;;Hardware†SDMCTL/;;DMA Shadow$†STICK0x;;Stick shadow.†AUDCTLÒ;;Audio Control8†POKMSK;;IRQEN shadowB†COLOR0Ä;;soft shadowsL†COLOR1†COLOR0V†COLOR2†COLOR0`†COLOR3†COLOR0j†COLOR4†COLOR0t†ATRACTM;;It's atractive~…PORTAƒESCö‚CR
;;Honest CRTOTAL.COLUMNSÜ;;512‹TIMER.DELAYQ;;06F2ŽBYTES.PER.LINE@(ŽNUM.SCAN.LINESà2“SCAN.LINES.ONSCREEN¶<ƒBPLŽBYTES.PER.LINEFƒNSLŽNUM.SCAN.LINESPƒSLO“SCAN.LINES.ONSCREENZ†SCREEN†BUFFER l†TWOPER ‹TIMER.DELAYv†ONEPER ©;;$0EA9€ˆMICROROW AŠŠTWOLINEROW TOTAL.COLUMNS”ŠONELINEROW TOTAL.COLUMNSžŠTIMERCOUNT ‹TIMER.DELAY¨X;²‡ST.LINE¼ A‚K AÆA‰ < >AÐA‰ - +AÚ
‰TEXT.LINEä!…JMPWT.
…DLIST8 X;B X;-------------------------L HƒBL1
X;
:
X;(
X;-------------------------2
BUILD.MODE.LINE<
%>Q>…MODEFP
P@‰POINTER.A7Z
3d
Q†MLADDRn
P@‰POINTER.A7x
3‚
Q†MLADDRŒ
P@‰POINTER.A7–
†ADD.W ‰POINTER.A=
†ADD.W †MLADDR=ƒBPLª
:´
X;¾
X;-------------------------È
†SCROLLÒ
Q†STICK0Ü
N>æ
P…STICKð
H‰TRY.RIGHTú
:X;
‰TRY.RIGHTP†ATRACT"M>…RIGHT,
FˆTRY.LEFT6X;@Q‹HORIZ.COUNTJR‹HORIZ.LIMITT
FˆTRY.LEFT^X;h#‹HORIZ.COUNTr†ADD.W ‡DISPLAY=|ˆTRY.LEFT†
Q…STICK
M>„LEFTšF†TRY.UP¤X;®Q‹HORIZ.COUNT¸F†TRY.UPÂX;Ì"‹HORIZ.COUNTÖ†SUB.W ‡DISPLAY=à
†TRY.UPê
Q…STICKôM>‚UPþ
FˆTRY.DOWNX;QŠVERT.COUNT
FˆTRY.DOWN&X;0"ŠVERT.COUNT:†SUB.W ‡DISPLAY=ƒBPLDˆTRY.DOWNN
Q…STICKX
M>„DOWNb
F…FIXDLlX;vQŠVERT.COUNT€RŠVERT.LIMITŠ
F…FIXDL”X;ž#ŠVERT.COUNT¨†ADD.W ‡DISPLAY=ƒBPL² …FIXDL¼ ŠBUILD.LISTÆ:ÐX;ÚX;-------------------------äŒCLEAR.SCREENî…POKE ‡INVMASK=ø†LEA.W †SCREEN=‰POINTER.B
†LEA.W ‡SCRSIZE=‰COUNTER.B
„CLS1
%>…POKE ‡COLMASK=€…POKE ˆADJCOUNT=Q…PORTAP I„PLT0ZX;dQ>…GHOSTx„PLT0‚Q>ŒN‡INVMASK–X; 6ª%>H…PRO1XàX;ê…POKE ‡COLMASK=€ô‡MOVE.B ˆSPEEDADJ=ˆADJCOUNTþ†ADD.W ‰POINTER.C= …PRO1X:X;- - - - - - - - - - - - -&„PRO20…POKE ‡COLMASK=€:‡MOVE.B ˆSPEEDADJ=ˆADJCOUNTD†LEA.W
‰PRINTBYTEP†BUFFER…BPUT ‡PRINTER=†BUFFER=(:2X;<X;--------------------------F‹PRINTFAXMAPP"…OPEN ‡PRINTER=…WRITE=…POKE †COLOR3=4&…POKE †SDMCTL="0::X;DX;--------------------------NŠDECIMALIZEX‡MOVE.W ‡DECIMAL=‰COUNTER.Db†LEA.W F…DECIXŠX;”†SUB.W ‰COUNTER.D=ž …DECI1¨<²†ADD.W ‡DECIMAL=¼-ƆSUB.W ‰COUNTER.D=Ð
E…DECI1Ú …DECIXäQ‡DECIMALî5øQ‡DECIMAL ŒDEC.TO.ASCII'‡DECIMAL&‡DECIMAL 7* ŒDEC.TO.ASCII4'‡DECIMAL>&‡DECIMALH:RX;\"X;- - - - - - - - - - - - - - -fŒDEC.TO.ASCIIp5zM>ð„V?ŽV?˜V?¢V?¬ †CHROUT¶?À7ÊM>Ô
†CHROUTÞ,èO>0òL>‰ORINCOLORü>X;:X;$X;--------------------------.ŒUPDATE.STATS8†LEA.W A<A=A>A=A+A=A-AA1A=A2A=A3A=AIAACA=ALA=ASA(‹LENKEYTABLE
ˆKEYTABLE2X;<ŒKEYJUMPTABLEF ŽPRINT.A.FAXMAPP ‹ADJUST.SYNCZ
…RESETd ‹CHANGE.SKIPn ŒLESS.COLUMNSx ŒMORE.COLUMNS‚ ‰MORE.TIMEŒ ‰LESS.TIME– ‹SET1LINESEC ‹SET2LINESECª ŒSETMICROMODE´ ŠINV.SCREEN¾ ŒCLEAR.SCREENÈ ˆLOAD.PIXÒ ˆSAVE.PIXÜX;æX;--------------------------ð„MAINú ‹INIT.SCREEN ŒUPDATE.STATS"…OPEN ˆKEYBOARD=„READ=F…MAIN1TX;^…BGET ˆKEYBOARD=‡KEYBUFF=hQ‡KEYBUFFr$>‹LENKEYTABLE| …MAIN2†RˆKEYTABLE9
F…MAIN3šX;¤0®
I…MAIN2¸X;Â
!…MAIN1ÌX;- - - - - - - - - - - - -Ö …MAIN3à PERFORM.ROUTINEê
!…MAIN1ôX;þX;--------------------------PERFORM.ROUTINEAT?&>0QŒKEYJUMPTABLE9:5DQŒKEYJUMPTABLE9N5X:bX;lX;--------------------------vŽPRINT.A.FAXMAP€…POKE †STATUS=‡PIXOVERŠ ŠSTOP.TIMER”!‹PRINTFAXMAPžX;¨X;--------------------------²‹ADJUST.SYNC¼…POKE ˆADJCOUNT=Æ:ÐX;ÚX;--------------------------ä …RESETîQ†STATUSø
R>‡PIXDRAWH‰GETFAXMAPX;Q‡CURRCOL L‡CURRCOL*
H…RESET4X;>!ŠINITFAXMAPHX;RX;--------------------------\
‰GETFAXMAPf…POKE †STATUS=ˆPIXSTARTp ‹START.TIMERz:„X;ŽX;--------------------------˜‹CHANGE.SKIP¢#‡COLSKIP¬Q‡COLSKIP¶R>
À D„CS11ÊX;Ô…POKE ‡COLSKIP=!‹START.TIMERX;X;--------------------------(‹SET2LINESEC2‡MOVE.W †TWOPER=ŠTIMERCOUNT<‡MOVE.W ŠTWOLINEROW=†NUMCOLF ŒUPDATE.STATSP!‹START.TIMERZX;dX;--------------------------nŒSETMICROMODEx‡MOVE.W †MICROM=ŠTIMERCOUNT‚‡MOVE.W ˆMICROROW=†NUMCOLŒ ŒUPDATE.STATS–!‹START.TIMER X;ªX;--------------------------´ˆSAVE.PIX¾ ŠSTOP.TIMERȆWRITE ˆTYPEMESS=‰TEXT.LINEÒX;Ü…BGET ˆKEYBOARD=‡KEYBUFF=æQ‡KEYBUFFðR>
MúHƒSP3X;!‰SAVEMICROƒSP3"R>
F,HƒSP46X;@
!ˆSAVEFULLJƒSP4T!ŒUPDATE.STATS^X;h"X;-----------------------------r
‰SAVEMICRO|!†WRITE ŠSAVINGMESS=‰TEXT.LINE† …OPEN „DISK==1>! F„SAF0H!X;R!R>
2\!
HˆSAVEFULLf!„SAF0p! ‡MOVE.B ‡KEYBUFF=ŠFILENAME.Xz!X;„!#…OPEN „DISK=…WRITE=1V" F„LDP0`"X;j"R>
2t" F„LDP0~"X;ˆ"!ŒUPDATE.STATS’"X;œ" X;- - - - - - - - - - - - - -¦"„LDP0°" ‡MOVE.B ‡KEYBUFF=ŠFILENAME.Xº"X;Ä""…OPEN „DISK=„READ=# X;- - - - - - - - - - - - - -#„LPX2#!†WRITE ŠLOADERMESS=‰TEXT.LINE(# …BGET „DISK=†SCREEN=‡SCRSIZE2#†CLOSE „DISK<#!ŒUPDATE.STATS
Back to previous page