summaryrefslogtreecommitdiff
path: root/drawbob.s
diff options
context:
space:
mode:
Diffstat (limited to 'drawbob.s')
-rw-r--r--drawbob.s25
1 files changed, 21 insertions, 4 deletions
diff --git a/drawbob.s b/drawbob.s
index 59e7b74..9ee19f1 100644
--- a/drawbob.s
+++ b/drawbob.s
@@ -75,6 +75,7 @@
** 10-Apr-91 CHH SaveMask wird jetzt im BitmStr übergeben / JNE und **
** JEQ Sprünge relativ gemacht **
** 23-Aug-91 CHH FlipFlag für AskJoy added **
+** 25-Jun-20 CHH SETNAME added **
** **
** Benutzung: Einmal 'InitDrawBob' aufrufen | Parameter: A0=BitMap **
** Resultat : Nix **
@@ -94,8 +95,8 @@
****************************************************************************
-BOBVERSION: EQU 3
-BOBREVISION: EQU 16
+BOBVERSION: EQU 3
+BOBREVISION: EQU 18
OPT O+,OW-,O5-,OW6+
@@ -134,6 +135,8 @@ BOBREVISION: EQU 16
; Achtung: Die Befehlstabelle ist rückwärts organisiert, also neue
; Kommandos hier am Anfang anfügen und nicht beim Label, gell!
; Die Kommando-Konstanten (BOBLOOP, ...) müssen GERADE sein!
+
+ dc.w SetNameFunc-BobolTab
dc.w JneFunc-BobolTab
@@ -1897,7 +1900,7 @@ TestJoyFunc: movem.l d2/a3,-(SP)
-BitTestFunc: bclr #SRB_ZEROFLAG,bob_sr(A0) ; ZeroFlag löschen
+BitTestFunc: bclr #SRB_ZEROFLAG,bob_sr(A0) ; ZeroFlag löschen
move.w 2(A2,d1.w),d0 ; zu testendes bit
move.l 4(a2,d1.w),a3 ; zu testende Adr
btst d0,(A3) ; bit testen
@@ -1907,7 +1910,7 @@ BitTestFunc: bclr #SRB_ZEROFLAG,bob_sr(A0) ; ZeroFlag löschen
bra ReturnNull4
-
+
JeqFunc: btst #SRB_ZEROFLAG,bob_sr(A0)
beq.s 1$
;sub.l a2,a3
@@ -1929,6 +1932,20 @@ JneFunc: btst #SRB_ZEROFLAG,bob_sr(A0)
bra ReturnNull4
+SetNameFunc:
+ lea 2(a2,d1.w),a3 ; in A3 ist nun der Pointer auf das dc.b "xx" im Makro (a3 darf in der Function überschrieben werden)
+ move.l a3,bob_Name(a0)
+ ; Länge des Namens ermitteln
+ moveq.l #2,d0 ; Länge des Kommandos + minimale Länge ist 1 Byte (null-terminated)
+1$: addq.l #1,d0
+ tst.b (a3)+
+ bne 1$
+ add.w d0,d1 ; PC erhöhen. Wert ist evtl. ungerade
+ ; aufrunden wenn Länge des Strings ungerade ist
+ move.w d1,d0
+ and.w #1,d0
+ add.w d0,d1
+ bra ReturnNull1
;-----------------------------------------------------------------------