home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ST-Computer Leser-CD 2000 January
/
LCD_01_2000.iso
/
anwend
/
luna146
/
module
/
commenta.s
< prev
next >
Wrap
Text File
|
1999-06-03
|
2KB
|
91 lines
; Commentary.fm (c)1999 Richard Gordon Faika
; Fügt ein Kommentarzeichen (das Semikolon), z.Bsp. für Assembler,
; an den Anfang des zu filternden Textstrings ein.
; --------------------------------------------------------------------
; Parameter holen
; --------------------------------------------------------------------
move 4(sp),d0 ; Funktionsnummer holen
move.l 6(sp),a0 ; Adresse Textstring holen
move.l 10(sp),a1 ; Adresse Arbeitspuffer holen
move 14(sp),d1 ; Länge String holen
;move 16(sp),d2 ; Länge Abeitspuffer
tst d0 ; Filtern?
beq filter
cmpi #1,d0
bne case1
bra GetInfo ; Info
case1:
cmpi #2,d0
bne case2
bra ModInit ; Init
case2:
cmpi #3,d0
bne noFunc
bra ModExit ; Exit
ModInit:
clr.l d0 ; es gibt nix zu Initialisieren
rts
ModExit:
clr.l d0 ; es gibt auch nix zu De-Initialisieren
rts
GetInfo: lea.l info(pc),a0 ; Zeiger auf Infotext zurück.
move.l a0,d0
rts
noFunc: moveq.l #-32,d0
rts
; --------------------------------------------------------------------
; Filterroutine
; --------------------------------------------------------------------
filter: tst d1 ; Stringlänge testen
beq exit0 ; wenn Null, nichts machen
move.b #';',(a1)+ ; Kommentar einfügen
; restlichen Text kopieren
lsr #1,d1 ; /2
bcc.b go2 ; glatt teilbar?
move.b (a0)+,(a1)+ ; nein, dann erstes Zeichen
go2:
lsr #1,d1 ; /2
bcc go_all ; glatt teilbar?
bra go24 ; nein, dann erst zwei Zeichen
go4:
move.b (a0)+,(a1)+
move.b (a0)+,(a1)+
go24:
move.b (a0)+,(a1)+
move.b (a0)+,(a1)+
go_all:
dbra d1,go4 ; immer 4 in einem Rutsch
clr.b (a1) ; String Nullterminieren
exit: move.l #1,d0 ; 0 = OK
rts
exit0: clr.l d0
rts
workbuf: dc.l 0
info: dc.b ' Commentary',0 ; Modulinfo für Popup, max. 24 Zeichen+Nullbyte
dc.b 'Richard Gordon Faika',0 ; Autorenname, max. 20 Zeichen+Nullbyte
dc.b 'DAS MODUL FÜGT DEM SELEKTIERTEN TEXT',0 ; max. 40 Zeichen+Nullbyte
dc.b 'EIN SEMIKOLON ZU TEXTANFANG EIN UND',0 ; max. 40 Zeichen ""
dc.b 'KOMMENTIERT SOMIT Z.BSP. TEXTE IN EINEM',0 ; max. 40 Zeichen ""
dc.b 'ASSEMBLERSOURCECODE.',0 ; max. 40 Zeichen ""