home *** CD-ROM | disk | FTP | other *** search
/ Antic Magazine 1985 January / Antic_Magazine_1985_01_Antic.atr / widetext.asm < prev    next >
Assembly Source File  |  2023-02-26  |  3KB  |  1 lines

  1. 0100 ;   w⑦i    d⇦e❎ l e❎t④t④e❎r②s③¢0110 ;     BY BILL MORRIS¢0120 ;¢0130 ONECHAR =$6FE ;  TEMPORARY¢0140 HALFCHAR =$6FF ;  HOLDERS¢0150 CHBAS =$2F4 ; CHAR SET POINTER¢0160 NUMBERS =$45 ; BORROWED FROM DUP¢0170 CAPS =$CC    ; SAFE FROM BASIC¢0180 CONTROL =$CE¢0190 LOWER =$47 ;ALSO BELONGS TO DUP¢0200  *=$0600¢0210  PLA    ; SETUP RETURN TO BASIC¢0220 ; LO BYTE OF PAGE # VARIABLES =0¢0230  LDA #0¢0240  STA $45 ; LO BYTE NUMBERS ADR¢0250  STA $CC ; LO BYTE CAPS ADR¢0260  STA $CE ; LO BYTE CONTROL CHARS¢0270  STA $47 ; LO BYTE LOWER CASE¢0280  SEC¢0290  LDA $59 ; PAGE # SCREEN MEMORY¢0300  SBC #1¢0310  STA $48 ; PAGE # LOWER CASE¢0320  SBC #1¢0330  STA $CF ; PAGE # CONTROL CHARS¢0340  SBC #1¢0350  STA $CD ; PAGE # CAPS¢0360  SBC #1¢0370  STA $46 ; PAGE # NUMBERS¢0380  LDY #0  ; SET COUNTER¢0390 ;  BEGIN SPREADING LETTERS,¢0400 ;ONE BYTE AT A TIME¢0410 START LDA $E000,Y ; COPY NUMBERS¢0420  STA (NUMBERS),Y ; STORE THEM¢0430  LDA $E100,Y  ; COPY CAPS¢0440  STA (CAPS),Y ; STORE UNCHANGED¢0450  STA ONECHAR ; MAKE EXTRA COPY¢0460  LSR A    ; SHIFT LEFT¢0470  LSR A    ; NYBBLE INTO¢0480  LSR A    ; RIGHT NYBBLE,LEAVING¢0490  LSR A    ; LEFT NYBBLE EMPTY¢0500  STA HALFCHAR ; FILE IT AWAY¢0510  LDA ONECHAR ; THAT EXTRA COPY¢0520  AND #$0F    ; KILL LEFT NYBBLE¢0530  JSR BIT3  ; SPREAD RIGHT NYBBLE¢0540  STA (CONTROL),Y ; STORE RIGHT¢0550 ;  HALF OF NEW LETTER¢0560  LDA HALFCHAR ; GET OTHER HALF¢0570  JSR BIT3 ; SPREAD IT¢0580  STA (LOWER),Y ; STORE LEFT HALF¢0590  INY ;COUNTER = COUNTER +1¢0600  CPY #26*8 ; 8 BYTES TO A LETTER¢0610 ;       26 LETTERS TO AN ALPHABET¢0620  BNE START ; NEXT Y¢0630 FINISH LDA $E000,Y ;STORE¢0640  STA (NUMBERS),Y   ;MISC.¢0650  LDA $E100,Y       ;CHARACTERS¢0660  STA (CAPS),Y      ;UNCHANGED¢0670  LDA $E200,Y¢0680  STA (CONTROL),Y¢0690  LDA $E300,Y¢0700  STA (LOWER),Y¢0710  INY¢0720  CPY #$FF       ; DONE¢0730  BNE FINISH¢0740  LDA $46   ; FIRST PAGE # NEW SET¢0750  STA CHBAS ; POKED INTO POINTER¢0760  RTS ; RETURN TO BASIC, BYE BYE¢0770 ;¢0780 ;  SUBROUTINE TO SPREAD HALF¢0790 ;  A BITE INTO THE FULL BYTE¢0800 ;¢0810 BIT3 TAX ; SAVE A COPY¢0820  AND #8  ; SEE IF BIT 3 IS ON¢0830  CMP #8  ;   00001000¢0840  BNE BIT2; IF NOT GOTO BIT2¢0850  TXA     ; GET THE COPY¢0860  CLC     ;¢0870  ADC #$B8; BIT 3 OFF, 6 & 7 ON¢0880 ;            11000000¢0890  JMP CLR2 ; BYPASS NEXT LINE¢0900 BIT2 TXA ; GET UNALTERED COPY¢0910 CLR2 TAX ; STASH LATEST VERSION¢0920  AND #4  ; SEE IF BIT 2 IS ON¢0930  CMP #4  ;   00000100¢0940  BNE BIT1; IF NOT, THEN BIT1¢0950  TXA¢0960  CLC¢0970  ADC #$2C  IF SO, DO THIS¢0980  JMP CLR1;   00110000¢0990 BIT1 TXA¢1000 CLR1 TAX¢1010  AND #2    ; BIT 1?¢1020  CMP #2    ; 00000010¢1030  BNE BIT0¢1040  TXA¢1050  CLC¢1060  ADC #$0A  ; BECOMES¢1070  JMP CLR0  ; 00001100¢1080 BIT0 TXA¢1090 CLR0 TAX¢1100  AND #1    ; 00000001¢1110  CMP #1¢1120  BNE BIT86¢1130  TXA¢1140  CLC¢1150  ADC #$02  ; 00000011¢1160  JMP CLR86¢1170 BIT86 TXA¢1180 CLR86 RTS  ; RETURN¢