&&
------------------------------------------------------------------------------
                  CURSUS ASSEMBLER  -  FADEINOUTTYPE DEEL 3
------------------------------------------------------------------------------

Dit is deel 3, lees eerst deel 1 en 2.

; Deze routine wordt aangeroepen als een verkeerde invoer wordt gegeven. De
; routine drukt een tekst af met de juiste syntax.

Information:
       move.l  ExecBase,a6              ; ExecBase naar A6.
       lea     DosName,a1               ; "dos.library".
       jsr     OpenLibrary(a6)          ; Dos.Library openen.
       move.l  d0,DosBase               ; Pointer naar library opslaan.
       beq     End                      ; Fout, dan stoppen.

       move.l  DosBase,a6               ; DosBase naar A6.
       jsr     Output(a6)               ; Uitvoer naar de CLI.
       move.l  d0,d1                    ; Window-pointer opslaan.
       move.l  #InfTxt,d2               ; Adres van de informatie-tekst.
       move.l  #InfTxtEnd-InfTxt,d3     ; Lengte van de tekst.
       jsr     Write(a6)                ; Printen van de tekst.
       move.l  ExecBase,a6              ; ExecBase naar A6.
       jsr     Dos_Sluiten              ; Dos.library sluiten.
       rts                              ; Einde programma.
&&
; De kleurenmap in het scherm opslaan zodat de kleuren werkelijk veranderen.

WriteColorMap:
       lea     ChanColArea+6,a3         ; Adres van de kleurentabel naar A3.
       move.l  #3,d4                    ; 4 Keer door de lus.
WCMLoop:
       move.l  ViewPort,a0              ; Viewport naar A0.
       move.l  d4,d0                    ; Kleurregister naar D0.

       move.w  (a3),d5
       lsr.w   #8,d5
       move.b  d5,d1                    ; Rood-Waarde naar D1.

       move.w  (a3),d5
       lsr.w   #4,d5
       move.b  d5,d2                    ; Groen-Waarde naar D2.

       move.w  (a3),d5
       move.b  d5,d3                    ; Blauw-Waarde naar D3.

       jsr     SetRGB4(a6)              ; In de ColorMap zetten.

       sub.l   #2,a3                    ; Pointer 1 kleur omlaag = 2 bytes.
       dbra    d4,WCMLoop               ; Einde lus.
       rts                              ;
&&
; Een variabele laat ons later weten of de w-optie is gebruikt.

White:
       move.l  #$12345678,WhiteCode     ; Vlag voor white-option zetten.
       sub.l   #2,d0                    ; D0 corrigeren.
       rts                              ;

; Variabelen en buffers.

GraphicsName:  dc.b       "graphics.library",0
even
GraphicsBase:  blk.l       1,0
DosName:       dc.b       "dos.library",0
even
DosBase:       blk.l       1,0
ColorMap:      blk.l       1,0
ColorMemory:   blk.w       4,0
ChanColArea:   blk.w       4,0
ParaMPointer:  blk.l       1,0
ParaMLength:   blk.l       1,0
ViewPort:      blk.l       1,0
WhiteCode:     blk.l       1,0
FileLength:    blk.l       1,0
FileHandle:    blk.l       1,0
FileName:      blk.b       100,0
even
&&
; De informatie-tekst. Met een aantal kleuren-codes om het er leuker uit te
; laten zien.

InfTxt:        dc.b       10,13         ; De informatie-tekst.
               dc.b       $9b,"1;31;40mF"
               dc.b       $9b,"1;32;40mI"
               dc.b       $9b,"1;33;40mT"
               dc.b       $9b,"1;31;40m 1.1"
               dc.b       $9b,"0;31;40m - "
               dc.b       $9b,"0;31;40mFade"
               dc.b       $9b,"0;32;40mIn"
               dc.b       $9b,"0;33;40mType "
               dc.b       $9b,"0;31;40mVersion 1.1",10,10,13
               dc.b       $9b,"0;31;40mUSAGE: FIT <Filename> [w]",10
               dc.b       10,10,13,0
InfTxtEnd:
even

; De tussenopslag-buffer start met 12. Dat is het scherm-schoon-karakter.

TussenOpslag:  dc.b       12            ; Een Clear-Screen-karakter.
               blk.b       80*29,0      ; Tekstbuffer.
PRGEnd:
&&
De listing staat in de directory ASSEMBLER op deze diskette. Het is met SEKA
te assembleren.

Het kant en klare programma staat in de C-directory van deze diskette en heet
FIT.





















- EINDE ----------------------------------------------------------------------
&&
