Ad: Click Here

Digital Antic PROGRAM LISTING: 89-09a/PRTSCRN.M65

þþj%è+X***************************************ò+X* ATARI PRINTSCREEN                   *ü+X* This program was written using      *+X* MAC65.  By Steve Derderian          *+X* (c) 1989 ANTIC PUBLISHING, INC.     *+X* Date Written:  November 2, 1988     *$+X*                                     *.+X***************************************8X*B3…START…STARTâ+X***************************************ì+X*                                     *ö+X* This program consists of three      *+X* responsible for loading the program *+X* at START ($4000), modifying the     *+X* rest of the program to run at LOMEM *(+X* (actual address unknown until run   *2+X* time), and moving the program to    *<+X* LOMEM.                              *F+X*                                     *P+X* The following section of the        *Z+X* program is not moved to LOMEM so it *d+X* does not take up any memory in your *n+X* computer.                           *x+X*                                     *‚+X***************************************ŒX*–$>P;;for the printer´FƒP02;;device handler.¾2;;Each handler entryÈ2;;consists of threeÒ2;;bytes.ÜHƒP01;;Not found, try again.æX*ðƒP02Q†HATABS9;;Found P:.ú#P‚C0%>ÿ;;vector to point to

$&†VKEYBD '†VKEYBD;;(section three).
X*(
0:;;Return to DOS (or the OS if system reset).2
X*<
+X***************************************F
+X*                                     *P
+X* This is section three.  It is the   *Z
+X* part of the program that actually   *d
+X* performs the screen print function. *n
+X* (This is why we did all of that     *x
+X* stuff above.)                       *‚
+X*                                     *Œ
+X* This section is called each time a  *–
+X* key is pressed.                     * 
+X*                                     *ª
+X***************************************´
X*¾
=ƒP09Q†KBCODE;;Pick up the code from the keyboard register.È
"R>Ê;;Was it <SHIFT><CONTROL>P?Ò
FƒP11;;YES!Ü
X*æ
(ƒP10!ÿÿ;;NO! - Let the OS handle it.ð
X*ú
+ƒP11A;;Since this is an interupt routine#5;;we are responsible for saving!C;;all of the registers.  (The&5;;A-register was saved by the OS.)"+Q†POKMSK;;We don't have to do this, but ,!5;;we want to save POKMSK too.6X*@(M>?;;0011 1111 Turn off keyboard andJ!P†POKMSK;;break key interupts.T
P…IRQENY.;;Allow SIO Interrupts...^X*h,Q> ;;Was the character < a space?lDƒP16;;YES!v-A;;NO! - bring it back.  It was OK before.€R>
|;;Virgule?ŠHƒP16;;NO! - print it”Q>³;;YES! - change to solidžX*¨ ƒP16$>"‚C1
X*
%ƒP19"‚C2;;Decrement our 40 counter 
-HƒP21;;It's not zero.  Aren't we done yet?*
X*4
%Q>
;;It was zero, do a line feed.>
$>M‚C1p
R>ÿ;;Did we hit -1?z
#FƒP22;;YES! - We're almost done.„
X*Ž
Q‚C2˜
#HƒP13;;Haven't filled a line yet¢
/FƒP12;;UNCONDITIONAL - reset the 40 counter.¬
X*¶
'ƒP22"†SAVMSC;;Restore the pointerÀ
"†SAVMSC;;to screen RAM.Ê
"†SAVMSCÔ
X*Þ
Q>ÿ;;Clear the key press soè
*P†KBCODE;;we don't get stuck in a loop.ò
X*ü
7;;Restore the interuptP†POKMSK;;request register.
P…IRQEN 7;;Restore the CPU registers.$?.78>B7L9;;Return from the interupt.VX*`+X***************************************j+X*                                     *t+X* The following table is used to      *~+X* convert the ATASCII graphics        *ˆ+X* character to the equilivant         *’+X* IBM printer character.  If you have *œ+X* Panasonic, Epson, or any other      *¦+X* printer that supports IBM graphics  *°+X* characters, this should work fine.  *º+X* The table will also protect you     *Ä+X* from the escape or other printer    *Î+X* control characters.                 *Ø+X*                                     *â+X* If this program does not work       *ì+X* properly with your printer, you may *ö+X* have to modify this table.          *+X***************************************"†OUTTBLA”àÃá¼´·/\âãäåæçèéêÉÄÅAAŒëìíÂÐîÀ¨ïðñòA(X*2+X***************************************<+X*                                     *F+X* The following table is used to      *P+X* convert screen characters to        *Z+X* ATASCII characters.  DON'T CHANGE   *d+X* IT.                                 *n+X*                                     *x+X***************************************‚†INTATA =@=…RUNAD@'	…START;;Tell DOS to run the program

Back to previous page