source: thomson/code/3rdparty/sources4-divers/Contacthoms/ECHOCAR.ASM@ ceffc47

main
Last change on this file since ceffc47 was ceffc47, checked in by Adrien Destugues <pulkomandy@…>, 10 years ago

Add that collection of 3rdparty source I had lying on my disk for some time...

git-svn-id: svn://localhost/thomson@51 85ae3b6b-dc8f-4344-a89d-598714f2e4e5

  • Property mode set to 100644
File size: 3.4 KB
Line 
1****************************************
2* *
3* ECHOCAR.ASM *
4* *
5* Contacthoms No 13 page 10 *
6* *
7*--------------------------------------*
8* *
9* Programme en assembleur pour avoir *
10* l'écho de la souris à l'écran. *
11* *
12****************************************
13
14 TITLE ECHO DU CARACTERE
15
16GETL EQU $E818 Acq. coor. X,Y
17SELMEM EQU $E7C3 Select. for/color
18NBCOL EQU $605F 40 ou 80 colonnes
19MEMECR EQU $4000 Adr deb mem écran
20*
21*
22*
23 ORG $DF00
24ECHO00 EQU *
25 PSHS X,Y,U,D
26*
27* Acquisition coordonnées point visé
28*
29ECHO10 EQU *
30 JSR GETL
31 BCS ECHO99
32*
33* Le point visé est-il le même ?
34*
35 TFR Y,D
36 ANDB #$F8
37 PSHS D
38 TFR X,D
39 ANDB #$F8
40 PSHS D
41 CMPD XPREC,PCR
42 BNE ECHO20 NON: inverse
43 LDD 2,S
44 CMPD YPREC,PCR
45 BNE ECHO20 NON: inv mm point
46 LEAS 4,S
47 BRA ECHO10 Attend changement
48*
49* Remise point prec en vidéo normal
50*
51ECHO20 EQU *
52 LDX XPREC,PCR
53 BMI ECHO30 Première fois
54 LDY YPREC,PCR
55 BSR INVERS
56*
57* Met le point en vidéo inverse
58*
59ECHO30 EQU *
60 LDX 0,S
61 STX XPREC,PCR
62 LDY 2,S
63 STY YPREC,PCR
64 BSR INVERS
65 LEAS 4,S
66ECHO99 EQU *
67 PULS X,Y,U,D,PC
68*
69* Met un caractère en vidéo inverse
70*
71* Entrée x,y coordonnées point
72* du début du caractère.
73*
74INVERS EQU *
75 PSHS X,Y,U,D
76*
77* Calcul adresse début du caractère
78* dans écran.
79*
80 LDU #MEMECR
81 TFR Y,D
82 LDA #40
83 MUL
84 LEAU D,U
85 TFR X,D
86 LSRA
87 RORB
88 LSRA
89 RORB
90 LSRB
91 LDA #01
92 ORA >SELMEM Force plan forme
93 TST NBCOL 40 ou 80 colonnes
94 BPL INVE20
95 LSRB
96 BCC INVE20 Pair-->forme
97 LDA #$FE 80 col mais col
98 ANDA >SELMEM Impair-->couleur
99INVE20 EQU *
100 LEAU B,U U=adr deb caract
101 STA >SELMEM
102*
103* Met le caractère en vidéo inverse
104*
105 LDA #8
106INVE70 EQU *
107 COM ,U
108 LEAU 40,U
109 DECA
110 BNE INVE70
111*
112* Fin
113*
114INVE99 EQU *
115 PULS X,Y,U,D,PC
116*
117*
118XPREC FDB -1
119YPREC FDB -1
120 END
121
122****************************************
123* *
124* PROGRAMME BASIC D'ACCOMPAGNEMENT: *
125* *
126* 10 BANK0:CLEAR,&HDFEF *
127* 20 LOADM"ECHOCAR.BIN" *
128* 30 CLS:LOCATE0,0,0 *
129* 40 ATTRB1:PRINT"EN 40 COLONNES" *
130* 50 GOSUB 100 *
131* 60 CONSOLE,,,,1 *
132* 70 ATTRB1:PRINT"EN 80 COLONNES" *
133* 80 GOSUB 100 *
134* 90 CONSOLE,,,,0:SCREEN4,6,6:END *
135* 100 BANK0 *
136* 110 DO *
137* 120 EXEC &HDF00 *
138* 130 IF MTRIG(0) THEN EXIT *
139* 140 LOOP *
140* 150 IF MTRIG(0) THEN 150 *
141* 160 RETURN *
142* *
143****************************************
144
145* Un appui (prolongé !) sur le bouton
146* gauche de la souris vous fait passer
147* en 80 colonnes.
Note: See TracBrowser for help on using the repository browser.