; *********************************************** ; * VISBIB: BIBLIOTHEQUE DE SOUS PROGRAMMES * ; * MACROS D'AFFICHAGE * ; * VERSION AVEC CADRE> * ; *********************************************** .TITLE VISBIB .IDENT /VISBIB V02/ .VSECT VISBIB .LIST MEB .LIST TTM ;------------------------------------------------ ;MACROS STANDARDS .MACRO PUSH,ARG MOV ARG,-(SP) .ENDM .MACRO POP,ARG MOV (SP)+,ARG .ENDM .MACRO CALL,ARG JSR PC,ARG .ENDM .MACRO RET RTS PC .ENDM ;------------------------------------------------ ;CADRE: MODIFIABLE PAR PRGGRRMME MINK:: .WORD 0 MINX:: .WORD 0 MINY:: .WORD 0 MAXK:: .WORD 7 MAXX:: .WORD 383. MAXY:: .WORD 255. ;------------------------------------------------ ;CONSTANTES UTILES COLRIX=17755: MASK3=1777 MASK9=177000 ;------------------------------------------------ ;**** VISINI: INITIALISATION DE L'ECRAN A R,V,B ; R0 -> [R,VbB] VISINI: PUSH R0 PUSH Rl PUSH R2 JSR PC,VISCOL ; 4R1=RVB BIC #177000,R1 ; SUPPRIMER LE CODAGE DE VISCOL BIS #10000,R1 MOU Rl,@#COLRIX MOV #7777,R1 1$: SOB R1,1X POP R2 POP R1 POP R0 RET ;------------------------------------------------ ;**** VISPOC: VISUALISATION D'UN POINT DE COULEUR ; R0 -> [R,V,B,X,Y] ;**** RAPPOC: VISUALISER UN POINT DE COULEUR PREPARE ; R0 -> [c,X,Y] C=4RVB VISPOC:: PUSH R0 PUSH R1 PUSH R2 MOV (R0)+,R1 ; R1=ROUGE BIC #MASK3,R1 ASL R1 ASL R1 ; R1=RRR--- MOV (R0)+,R2 ; R2=BLEU BIC #MASK3,R2 ADD R2,R1 ASL R1 ASL R1 ASL R1 ; R1=RRRBBB--- MOV (R0)+,R2 ; R2=VERT BIC #MASK3,R2 ADD R2,R1 BR POC RAPPOC:: PUSH R0 PUSH R1 PUSH R2 MOV (R0)+,R1 POC: BIS #40000,R1 MOV (R0)+,R2 ; R2=X BLT 1$ BIC #MASK3,R2 CMP R2,MINX BLT 1$ CMP R2,MAXX BGT 1$ MOV R2,@#COLRIX MOV (R0)+,R2 ; R2=Y CMP R2,MINY BLT 1$ CMP R2,MAXY BGT 1$ CIC #MASK3,R2 BIS #2000,R2 ; CODE Y MOV R2,@#COLRIX ; CHARGER MOV R1,@#COLRIX ; COULEUR MOV R1,@#COLRIX 1$: POP R2 POP R1 POP R0 RET