home *** CD-ROM | disk | FTP | other *** search
/ Mega Magazine 2 / Mega_Magazine_02_1991___nl_Side_B.atr / ecoledit.arc / ECOLEDIT.SRC < prev    next >
Text File  |  1988-09-01  |  4KB  |  409 lines

  1. *************************************
  2. *                *
  3. *  EXTRA COLOUR EDITOR MC ROUTINES  *
  4. *                *
  5. *  (C)1990 FRANKENSTEIN OF THE HTT  *
  6. *                *
  7. *************************************
  8.  
  9.     ORG $B800
  10.  
  11. PIC    EQU $CB        (AND $CC)
  12. FNT    EQU $CD        (AND $CE)
  13. DISP    EQU $CB        (AND $CC)
  14. DUMMY    EQU $CD
  15.  
  16. COLTAB    EQU $0600
  17. FNT0    EQU $9000
  18. FNT1    EQU FNT0+$400
  19. FNT2    EQU FNT1+$400
  20. FNT3    EQU FNT2+$400
  21. FNT4    EQU FNT3+$400
  22. FNT5    EQU FNT4+$400
  23. FNT6    EQU FNT5+$400
  24. FNT7    EQU FNT6+$400
  25.  
  26. PMB    EQU $B800
  27. DISPLAY    EQU $B000
  28.  
  29.     DFW INITPM
  30.     DFW INITDL
  31.     DFW CURSOR
  32.     DFW SCREEN
  33.     DFW PICFNT
  34.     DFW FROMTAB
  35.     DFW TOTAB
  36.  
  37. * INITIALIZE PM
  38. * Q=USR(INITPM)
  39.  
  40. INITPM    PLA
  41.  
  42.     LDA #3
  43.     STA 53277
  44.     LDA #PMB/256
  45.     STA 54279
  46.     LDA #46
  47.     STA 559
  48.  
  49.     LDA #33
  50.     STA 623
  51.  
  52.     LDX #0
  53.     TXA
  54. WISP0    STA PMB+$380,X
  55.     INX
  56.     BPL WISP0
  57.  
  58.     LDX #0
  59.     TXA
  60. CLPM    STA $D000,X
  61.     INX
  62.     CPX #9
  63.     BNE CLPM
  64.  
  65.     RTS
  66.  
  67. * INITIALIZE DISPLAY SCREEN
  68. * Q=USR(INITDL)
  69.  
  70. INITDL    PLA
  71.  
  72.     LDX #0
  73. CHVUL    TXA
  74.     STA DISPLAY,X
  75.     STA DISPLAY+120,X
  76.     STA DISPLAY+240,X
  77.     STA DISPLAY+360,X
  78.     STA DISPLAY+480,X
  79.     STA DISPLAY+600,X
  80.     STA DISPLAY+720,X
  81.     STA DISPLAY+840,X
  82.     INX
  83.     CPX #120
  84.     BNE CHVUL
  85.  
  86.     RTS
  87.  
  88. * PLACE PM CURSOR ON X,Y POSITION
  89. * Q=USR(CURSOR,X,Y,FILLBYTE)
  90.  
  91. CURSOR    PLA
  92.  
  93.     PLA        ;NO HI
  94.     PLA        ;X POS.
  95.     ASL
  96.     ASL
  97.     CLC
  98.     ADC #$30
  99.     STA $D003
  100.  
  101.     PLA        ;NO HI
  102.     PLA        ;Y POS.
  103.     ASL
  104.     ASL
  105.     CLC
  106.     ADC #16
  107.     TAY
  108.     LDX #0
  109.  
  110.     PLA        ;NO HI
  111.     PLA        ;FILL BYTE
  112. BLOK    STA PMB+$380,Y
  113.     INY
  114.     INX
  115.     CPX #4
  116.     BNE BLOK
  117.  
  118.     RTS
  119.  
  120. * DISPLAY EDIT SCREEN
  121. * A=USR(SCREEN)
  122.  
  123. SCREEN    PLA
  124.  
  125.     LDA #DL:L
  126.     STA $230
  127.     LDA #DL:H
  128.     STA $231
  129.  
  130.     LDA #DLI1:L
  131.     STA $200
  132.     LDA #DLI1:H
  133.     STA $201
  134.  
  135.     LDA #$C0
  136.     STA $D40E
  137.  
  138.     LDA #FNT0:H
  139.     STA 756
  140.  
  141.     RTS
  142.  
  143. DLI1    PHA
  144.     LDA #FNT1:H
  145.     STA $D40A
  146.     STA $D409
  147.     LDA #DLI2:L
  148.     STA $200
  149.     LDA #DLI2:H
  150.     STA $201
  151.     PLA
  152.     RTI
  153.  
  154. DLI2    PHA
  155.     LDA #FNT2:H
  156.     STA $D40A
  157.     STA $D409
  158.     LDA #DLI3:L
  159.     STA $200
  160.     LDA #DLI3:H
  161.     STA $201
  162.     PLA
  163.     RTI
  164.  
  165. DLI3    PHA
  166.     LDA #FNT3:H
  167.     STA $D40A
  168.     STA $D409
  169.     LDA #DLI4:L
  170.     STA $200
  171.     LDA #DLI4:H
  172.     STA $201
  173.     PLA
  174.     RTI
  175.  
  176. DLI4    PHA
  177.     LDA #FNT4:H
  178.     STA $D40A
  179.     STA $D409
  180.     LDA #DLI5:L
  181.     STA $200
  182.     LDA #DLI5:H
  183.     STA $201
  184.     PLA
  185.     RTI
  186.  
  187. DLI5    PHA
  188.     LDA #FNT5:H
  189.     STA $D40A
  190.     STA $D409
  191.     LDA #DLI6:L
  192.     STA $200
  193.     LDA #DLI6:H
  194.     STA $201
  195.     PLA
  196.     RTI
  197.  
  198. DLI6    PHA
  199.     LDA #FNT6:H
  200.     STA $D40A
  201.     STA $D409
  202.     LDA #DLI7:L
  203.     STA $200
  204.     LDA #DLI7:H
  205.     STA $201
  206.     PLA
  207.     RTI
  208.  
  209. DLI7    PHA
  210.     LDA #FNT7:H
  211.     STA $D40A
  212.     STA $D409
  213.     LDA #DLI1:L
  214.     STA $200
  215.     LDA #DLI1:H
  216.     STA $201
  217.     PLA
  218.     RTI
  219.  
  220. DL    DFB 112,112,112
  221.     DFB $44
  222.     DFW DISPLAY
  223.     DFB 4,4+128
  224.     DFB $44
  225.     DFW DISPLAY+120
  226.     DFB 4,4+128
  227.     DFB $44
  228.     DFW DISPLAY+240
  229.     DFB 4,4+128
  230.     DFB $44
  231.     DFW DISPLAY+360
  232.     DFB 4,4+128
  233.     DFB $44
  234.     DFW DISPLAY+480
  235.     DFB 4,4+128
  236.     DFB $44
  237.     DFW DISPLAY+600
  238.     DFB 4,4+128
  239.     DFB $44
  240.     DFW DISPLAY+720
  241.     DFB 4,4+128
  242.     DFB $44
  243.     DFW DISPLAY+840
  244.     DFB 4,4
  245.     DFB $41
  246.     DFW DL
  247.  
  248. * CONVERT PICTURE TO FONT!
  249. * Q=USR(PICFNT,PICADR,FONTADR)
  250.  
  251. PICFNT    PLA
  252.  
  253.     PLA
  254.     STA PIC+1    ;HI
  255.     PLA
  256.     STA PIC        ;LO
  257.  
  258.     PLA
  259.     STA FNT+1    ;HI
  260.     PLA
  261.     STA FNT        ;LO
  262.  
  263.     LDY #0
  264.  
  265.     LDX #0
  266. NEXTREG    TXA
  267.     PHA    
  268.  
  269.     LDX #0
  270. NEXTBYT    TXA
  271.     PHA
  272.  
  273. * GOOI FNT POINTER OP DE STACK
  274.  
  275.     LDA FNT
  276.     PHA
  277.     LDA FNT+1
  278.     PHA
  279.  
  280.     LDX #0
  281.  
  282. NEXTCH    LDA (PIC),Y
  283.     STA (FNT),Y
  284.  
  285. * VERHOOG PIC MET 1
  286. * (VOLGENDE BYTE UIT PICTURE)
  287.  
  288.     INC PIC
  289.     BNE NOHI
  290.     INC PIC+1
  291.  
  292. * VERHOOG FNT MET 8
  293. * (VOLGENDE CHARACTER)
  294.  
  295. NOHI    LDA FNT
  296.     CLC
  297.     ADC #8
  298.     STA FNT
  299.     BCC CLR
  300.     INC FNT+1
  301.  
  302. CLR    INX
  303.     CPX #40
  304.     BNE NEXTCH
  305.  
  306. * HAAL OUDE FNT POINTER VAN DE STACK
  307.  
  308.     PLA
  309.     STA FNT+1
  310.     PLA
  311.     STA FNT
  312.  
  313. * VERHOOG FNT MET 1
  314. * (VOLGENDE BYTE IN CHARACTER)
  315.  
  316.     INC FNT
  317.     BNE NOTJE
  318.     INC FNT+1
  319.  
  320. NOTJE    PLA
  321.     TAX
  322.     INX
  323.     CPX #8
  324.     BNE NEXTBYT
  325.  
  326. * VERHOOG FNT MET 320 (8*40) -8!!
  327. * (VOLGENDE REGEL)
  328.  
  329.     LDA FNT
  330.     CLC
  331.     ADC #64-8
  332.     STA FNT
  333.     LDA FNT+1
  334.     ADC #1
  335.     STA FNT+1
  336.  
  337.     PLA
  338.     TAX
  339.     INX
  340.     CPX #3
  341.     BNE NEXTREG
  342.  
  343.     RTS
  344.  
  345. * INSERT 5TH COLOUR IN DISPLAY
  346. * Q=USR(FROMTAB)
  347.  
  348. FROMTAB    PLA
  349.  
  350.     JSR SETDISP
  351.  
  352. FALL    LDY #0
  353.     LDA COLTAB,X
  354.     STA DUMMY
  355. NEXTBIT    LDA DUMMY
  356.     AND #$80
  357.     ORA (DISP),Y
  358.     STA (DISP),Y
  359.     ASL DUMMY
  360.     INY
  361.     CPY #8
  362.     BNE NEXTBIT
  363.     LDA DISP
  364.     CLC
  365.     ADC #8
  366.     STA DISP
  367.     BCC SKIPY
  368.     INC DISP+1
  369. SKIPY    INX
  370.     CPX #120
  371.     BNE FALL
  372.  
  373.     RTS
  374.  
  375. * CREATE COLOUR TAB. FROM DISPLAY
  376. * Q=USR(TOTAB)
  377.  
  378. TOTAB    PLA
  379.  
  380.     JSR SETDISP
  381.  
  382. ALUS    LDY #7
  383. DOEDI    LDA (DISP),Y
  384.     ASL
  385.     ROR COLTAB,X
  386.     DEY
  387.     BPL DOEDI
  388.     LDA DISP
  389.     CLC
  390.     ADC #8
  391.     STA DISP
  392.     BCC SKIPS
  393.     INC DISP+1
  394. SKIPS    INX
  395.     CPX #120
  396.     BNE ALUS
  397.  
  398.     RTS
  399.  
  400. * SUBROUTINE
  401.  
  402. SETDISP    LDA #DISPLAY:L
  403.     STA DISP
  404.     LDA #DISPLAY:H
  405.     STA DISP+1
  406.  
  407.     LDX #0
  408.  
  409.     RTS¯¯¯¯¯¯¯¯