home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mega Magazine 2
/
Mega_Magazine_02_1991___nl_Side_B.atr
/
ecoledit.arc
/
ECOLEDIT.SRC
< prev
next >
Wrap
Text File
|
1988-09-01
|
4KB
|
409 lines
*************************************
* *
* EXTRA COLOUR EDITOR MC ROUTINES *
* *
* (C)1990 FRANKENSTEIN OF THE HTT *
* *
*************************************
ORG $B800
PIC EQU $CB (AND $CC)
FNT EQU $CD (AND $CE)
DISP EQU $CB (AND $CC)
DUMMY EQU $CD
COLTAB EQU $0600
FNT0 EQU $9000
FNT1 EQU FNT0+$400
FNT2 EQU FNT1+$400
FNT3 EQU FNT2+$400
FNT4 EQU FNT3+$400
FNT5 EQU FNT4+$400
FNT6 EQU FNT5+$400
FNT7 EQU FNT6+$400
PMB EQU $B800
DISPLAY EQU $B000
DFW INITPM
DFW INITDL
DFW CURSOR
DFW SCREEN
DFW PICFNT
DFW FROMTAB
DFW TOTAB
* INITIALIZE PM
* Q=USR(INITPM)
INITPM PLA
LDA #3
STA 53277
LDA #PMB/256
STA 54279
LDA #46
STA 559
LDA #33
STA 623
LDX #0
TXA
WISP0 STA PMB+$380,X
INX
BPL WISP0
LDX #0
TXA
CLPM STA $D000,X
INX
CPX #9
BNE CLPM
RTS
* INITIALIZE DISPLAY SCREEN
* Q=USR(INITDL)
INITDL PLA
LDX #0
CHVUL TXA
STA DISPLAY,X
STA DISPLAY+120,X
STA DISPLAY+240,X
STA DISPLAY+360,X
STA DISPLAY+480,X
STA DISPLAY+600,X
STA DISPLAY+720,X
STA DISPLAY+840,X
INX
CPX #120
BNE CHVUL
RTS
* PLACE PM CURSOR ON X,Y POSITION
* Q=USR(CURSOR,X,Y,FILLBYTE)
CURSOR PLA
PLA ;NO HI
PLA ;X POS.
ASL
ASL
CLC
ADC #$30
STA $D003
PLA ;NO HI
PLA ;Y POS.
ASL
ASL
CLC
ADC #16
TAY
LDX #0
PLA ;NO HI
PLA ;FILL BYTE
BLOK STA PMB+$380,Y
INY
INX
CPX #4
BNE BLOK
RTS
* DISPLAY EDIT SCREEN
* A=USR(SCREEN)
SCREEN PLA
LDA #DL:L
STA $230
LDA #DL:H
STA $231
LDA #DLI1:L
STA $200
LDA #DLI1:H
STA $201
LDA #$C0
STA $D40E
LDA #FNT0:H
STA 756
RTS
DLI1 PHA
LDA #FNT1:H
STA $D40A
STA $D409
LDA #DLI2:L
STA $200
LDA #DLI2:H
STA $201
PLA
RTI
DLI2 PHA
LDA #FNT2:H
STA $D40A
STA $D409
LDA #DLI3:L
STA $200
LDA #DLI3:H
STA $201
PLA
RTI
DLI3 PHA
LDA #FNT3:H
STA $D40A
STA $D409
LDA #DLI4:L
STA $200
LDA #DLI4:H
STA $201
PLA
RTI
DLI4 PHA
LDA #FNT4:H
STA $D40A
STA $D409
LDA #DLI5:L
STA $200
LDA #DLI5:H
STA $201
PLA
RTI
DLI5 PHA
LDA #FNT5:H
STA $D40A
STA $D409
LDA #DLI6:L
STA $200
LDA #DLI6:H
STA $201
PLA
RTI
DLI6 PHA
LDA #FNT6:H
STA $D40A
STA $D409
LDA #DLI7:L
STA $200
LDA #DLI7:H
STA $201
PLA
RTI
DLI7 PHA
LDA #FNT7:H
STA $D40A
STA $D409
LDA #DLI1:L
STA $200
LDA #DLI1:H
STA $201
PLA
RTI
DL DFB 112,112,112
DFB $44
DFW DISPLAY
DFB 4,4+128
DFB $44
DFW DISPLAY+120
DFB 4,4+128
DFB $44
DFW DISPLAY+240
DFB 4,4+128
DFB $44
DFW DISPLAY+360
DFB 4,4+128
DFB $44
DFW DISPLAY+480
DFB 4,4+128
DFB $44
DFW DISPLAY+600
DFB 4,4+128
DFB $44
DFW DISPLAY+720
DFB 4,4+128
DFB $44
DFW DISPLAY+840
DFB 4,4
DFB $41
DFW DL
* CONVERT PICTURE TO FONT!
* Q=USR(PICFNT,PICADR,FONTADR)
PICFNT PLA
PLA
STA PIC+1 ;HI
PLA
STA PIC ;LO
PLA
STA FNT+1 ;HI
PLA
STA FNT ;LO
LDY #0
LDX #0
NEXTREG TXA
PHA
LDX #0
NEXTBYT TXA
PHA
* GOOI FNT POINTER OP DE STACK
LDA FNT
PHA
LDA FNT+1
PHA
LDX #0
NEXTCH LDA (PIC),Y
STA (FNT),Y
* VERHOOG PIC MET 1
* (VOLGENDE BYTE UIT PICTURE)
INC PIC
BNE NOHI
INC PIC+1
* VERHOOG FNT MET 8
* (VOLGENDE CHARACTER)
NOHI LDA FNT
CLC
ADC #8
STA FNT
BCC CLR
INC FNT+1
CLR INX
CPX #40
BNE NEXTCH
* HAAL OUDE FNT POINTER VAN DE STACK
PLA
STA FNT+1
PLA
STA FNT
* VERHOOG FNT MET 1
* (VOLGENDE BYTE IN CHARACTER)
INC FNT
BNE NOTJE
INC FNT+1
NOTJE PLA
TAX
INX
CPX #8
BNE NEXTBYT
* VERHOOG FNT MET 320 (8*40) -8!!
* (VOLGENDE REGEL)
LDA FNT
CLC
ADC #64-8
STA FNT
LDA FNT+1
ADC #1
STA FNT+1
PLA
TAX
INX
CPX #3
BNE NEXTREG
RTS
* INSERT 5TH COLOUR IN DISPLAY
* Q=USR(FROMTAB)
FROMTAB PLA
JSR SETDISP
FALL LDY #0
LDA COLTAB,X
STA DUMMY
NEXTBIT LDA DUMMY
AND #$80
ORA (DISP),Y
STA (DISP),Y
ASL DUMMY
INY
CPY #8
BNE NEXTBIT
LDA DISP
CLC
ADC #8
STA DISP
BCC SKIPY
INC DISP+1
SKIPY INX
CPX #120
BNE FALL
RTS
* CREATE COLOUR TAB. FROM DISPLAY
* Q=USR(TOTAB)
TOTAB PLA
JSR SETDISP
ALUS LDY #7
DOEDI LDA (DISP),Y
ASL
ROR COLTAB,X
DEY
BPL DOEDI
LDA DISP
CLC
ADC #8
STA DISP
BCC SKIPS
INC DISP+1
SKIPS INX
CPX #120
BNE ALUS
RTS
* SUBROUTINE
SETDISP LDA #DISPLAY:L
STA DISP
LDA #DISPLAY:H
STA DISP+1
LDX #0
RTS¯¯¯¯¯¯¯¯