home *** CD-ROM | disk | FTP | other *** search
/ Antic Magazine 1984 December / Antic_Magazine_1984_12_Antic.atr / windows2.asm < prev    next >
Assembly Source File  |  2023-02-26  |  5KB  |  1 lines

  1. 0 ;WINDOWS2.ASM¢01 ; ..TEST INTO GRAPHICS SCREENS..¢02 ; BIT to BIT PAIR Expansion with¢03 ; conversion for 4 color Graphics¢04 ; with string input capability.¢05 ;  vs.2    by Dave Culbertson¢06 ;  (C) Jun 11,1984 CE Softwart¢07 ;¢08 ;EQUATES¢09 DAT   =   $CB     ;ADR OF RESULT STRING.¢10 SW    =   $CD     ;FLAG FOR 2 NIBBLES.¢11 TMP   =   $CE     ;HOLDS WORKING BYTE.¢12 COL   =   $CF     ;COLOR MODIFIER REG.¢13 COL1  =   $D0     ;COPY OF COLOR MODIFIER.¢14 YINR  =   $D1     ;Y POINTER INNER LOOP.¢15 YOUT  =   $D2     ;Y POINTER OUTER LOOP.¢16 CHR   =   $D3     ;ADR OF SOURCE STRING.¢17 PT    =   $D5     ;PTR INTO CS.¢18 INV   =   $D7     ;INVERSE FLAG.¢19 NUM   =   $D8     ;LEN OF STRING.¢20 NUM1  =   $D9     ;COPY OF LEN*2.¢21 TEA   =   $DA     ;TEMP AREA.¢22 PTR   =   $DB     ;PTR TO WORK AREA ($400).¢23 CS    =   756     ;PAGE PNTR OF CHAR SET.¢24 ;¢25       *=  $4000   ;IGNORE (RELOCATABLE)¢26        GET  THE   VARIABLES¢27 ;¢28       PLA ¢29       PLA ¢30       STA DAT+1¢31       PLA ¢32       STA DAT¢33       PLA ¢34       STA CHR+1¢35       PLA ¢36       STA CHR¢37       PLA ¢38       PLA ¢39       STA NUM     ;GET NUMBER OF CHRS¢40       ASL A¢41       STA NUM1    ;NUM1=NUM*2¢42       PLA ¢43       PLA ¢44       AND #3      ;ONLY BITS 1&2 OK.¢45       CLC ¢46       ROR A¢47       ROR A¢48       ROR A¢49       AND #192    ;ONLY PASS BITS 7&8.¢50       STA COL     ;STORE COLOR CODE.¢51       STA COL1    ;AND A COPY.¢52       LDA #0      ;POINT TO PAGE 4.¢53       STA PTR¢54       LDA #4¢55       STA PTR+1¢56 ; CONVERT FROM CHARACTER TO¢57 ; ADR OF PLACE IN CHARACTER SET¢58 BE    LDA #0      ;CLEAR WORK AREA.¢59       TAY ¢60 BF    STA (PTR),Y¢61       INY ¢62       CPY #16¢63       BNE BF¢64       LDA #255¢65       STA INV     ;NORMAL MODE.¢66       LDY #0      ;Y=0¢67       LDA (CHR),Y ;GET THE CHARACTER¢68       CMP #128    ;IS A <127?¢69       BCC T       ;YES GOTO T¢70       STY INV     ;SET INVERSE.¢71       EOR #128¢72 ;¢73 T     CMP #96     ;IS IT LOWERCASE?¢74       BCC U       ;NO,GOTO U.¢75       LDY #3      ;SET OFFSET.¢76       BCS Q       ;GOTO Q.¢77 ;¢78 U     CMP #64     ;IS IT UPPERCASE?¢79       BCC V       ;NO,GOTO V.¢80       LDY #1      ;SET PAGE 1.¢81       BCS Q       ;GOTO Q.¢82 ;¢83 V     CMP #32     ;IS IT A SYMBOL?¢84       BCC W       ;NO,GOTO W.¢85       BCS Q       ;YES,GOTO Q.¢86 ; 1st ISLAND TO BEGINNING.¢87 IS    CLC ¢88       BCC BE      ;GOTO BEGINNING.¢89 ;¢90 W     LDY #2      ;A GRAPHICS CHR!¢91 ;¢92 Q     AND #31     ;NOW ACC <32!¢93       ASL A       ;MULTIPLY BY 8!¢94       ASL A¢95       ASL A¢96       STA PT      ;INDEX INTO PAGE.¢97       CLC         ;MOVE PAGE OFFSET.¢98       TYA ¢99       ADC CS      ;ADD C.S. TO OFFSET.¢0100     STA PT+1    ;STORE IT.¢0101 ; MAIN ROUTINE¢0102     LDY #0¢0103     STY YINR¢0104     STY YOUT¢0105 S   LDX #0¢0106     STX SW¢0107     LDY YOUT¢0108     LDA (PT),Y¢0109     STA TMP¢0110 B   LDY YINR¢0111     LDA TMP¢0112     BMI C¢0113 ;¢0114     LDA (PTR),Y¢0115     ORA COL¢0116     STA (PTR),Y¢0117 C   CLC ¢0118     ROR COL¢0119     CLC ¢0120     ROR COL¢0121     ASL TMP¢0122     INX ¢0123     CPX #4¢0124     BNE B¢0125 ;¢0126     LDA INV     ;CHECK FOR INVERSE?¢0127     BEQ D¢0128     SEC         ;INVERT BITS¢0129     SBC (PTR),Y¢0130     STA (PTR),Y¢0131 D   LDA COL1    ;ADJUST FOR NEXT¢0132     STA COL¢0133     INC YINR¢0134     INC SW¢0135     LDA SW¢0136     CMP #2¢0137     BNE B¢0138 ;¢0139     INC YOUT¢0140     LDY YOUT¢0141     CPY #8¢0142     BNE S¢0143     BEQ K       ;HOP OVER ISLAND.¢0144 ; 2nd ISLAND TO BEGINNING¢0145 HOP CLC ¢0146     BCC IS      ;GOTO BEGINNING.¢0147 ; CONVERT DAT TO STRING FORMAT.¢0148 K   LDA DAT     ;PUSH DAT ON STACK¢0149     PHA ¢0150     LDA DAT+1¢0151     PHA ¢0152     LDY #0¢0153 AG  LDA (PTR),Y¢0154     STA (DAT),Y¢0155     INY ¢0156     CPY #2¢0157     BNE AG¢0158 J   LDA (PTR),Y¢0159     TAX ¢0160     INY ¢0161     LDA (PTR),Y¢0162     PHA ¢0163     INY ¢0164     STY TEA¢0165     LDY NUM1¢0166     TXA ¢0167     STA (DAT),Y¢0168     PLA ¢0169     INY ¢0170     STA (DAT),Y¢0171     CLC ¢0172     LDA DAT¢0173     ADC NUM1¢0174     STA DAT¢0175     BCC G¢0176     INC DAT+1¢0177 G   LDY TEA¢0178     CPY #16¢0179     BNE J¢0180     PLA         ;RECOVER & BUMP DAT¢0181     STA DAT+1¢0182     CLC ¢0183     PLA ¢0184     ADC #2¢0185     STA DAT¢0186     BCC I¢0187     INC DAT+1¢0188 I   INC CHR     ;INCREMENT CHR¢0189     BNE H¢0190     INC CHR+1¢0191 H   DEC NUM¢0192     BNE HOP     ;DO NEXT CHARACTER.¢0193     RTS ¢