[A83] Re: Conditional bcall()ing


[Prev][Next][Index][Thread]

[A83] Re: Conditional bcall()ing




>From: "Joe Pemberton" <dArkSk8eR@buffbody.com>
>Reply-To: assembly-83@lists.ticalc.org
>To: assembly-83@lists.ticalc.org
>Subject: [A83] Re: Conditional bcall()ing
>Date: Mon, 29 Oct 2001 18:00:27 -0600
>MIME-Version: 1.0
>Received: from [195.67.128.9] by hotmail.com (3.2) with ESMTP id 
>MHotMailBDA73986000F4136E80EC343800906DF0; Mon, 29 Oct 2001 16:04:41 -0800
>Received: from towerguard. (mx-1.sollentuna.net [195.67.128.9])by 
>mx-1.sollentuna.net (Postfix) with ESMTPid 067BB18041; Tue, 30 Oct 2001 
>01:04:23 +0100 (CET)
>Received: with LISTAR (v1.0.0; list assembly-83); Tue, 30 Oct 2001 01:04:22 
>+0100 (CET)
>Received: from greekemail.com (unknown [208.158.96.117])by 
>mx-1.sollentuna.net (Postfix) with ESMTP id 5BA3D18040for 
><assembly-83@lists.ticalc.org>; Tue, 30 Oct 2001 01:04:21 +0100 (CET)
>Received: from buffbody.com [192.168.1.22] by greekemail.com  
>(SMTPD32-6.00) id A2452E900D4; Mon, 29 Oct 2001 18:39:01 +0000
>From assembly-83-bounce@lists.ticalc.org Mon, 29 Oct 2001 16:05:22 -0800
>Delivered-To: lists.ticalc-assembly-83@mx-1.sollentuna.net
>Message-ID: <41200110230002731@buffbody.com>
>X-EM-Version: 5, 0, 0, 4
>X-EM-Registration: #01E0520310450300B900
>X-Priority: 3
>X-Mailer: My Own Email v4.00
>X-listar-version: Listar v1.0.0
>Sender: assembly-83-bounce@lists.ticalc.org
>Errors-To: assembly-83-bounce@lists.ticalc.org
>X-original-sender: dArkSk8eR@buffbody.com
>Precedence: bulk
>X-list: assembly-83
>
>
>
>----------------------------------------------
>Original Message
>From: "Tijl Coosemans"<tijl.coosemans@mail.be>
>Subject: [A83] Re: Conditional bcall()ing
>Date: Mon, 29 Oct 2001 21:45:34 +0100
>
> >
> >> From: Tijl Coosemans <tijl.coosemans@mail.be>
> >>
> >> > From: Emir Sakic <saka@hotmail.com>
> >> >
> >> > Right, my fault about lables.
> >> > jr 3 gave me error with $9327 as start address, thanx for clearing 
>it.
> >> >
> >> > Anyway to conclude:
> >> > #define bcall_z(addr) jr nz,$+5 \ rst 28h \ .dw addr
> >> > :)
> >
> >> indeed, as taken from the Ion.inc file
> >>
> >> #define bcall(xxxx)	rst 28h \ .dw xxxx
> >> #define bcallz(xxxx)	jr nz,$+5 \ rst 28h \ .dw xxxx
> >> #define bcallnz(xxxx)	jr z,$+5 \ rst 28h \ .dw xxxx
> >> #define bcallc(xxxx)	jr nc,$+5 \ rst 28h \ .dw xxxx
> >> #define bcallnc(xxxx)	jr c,$+5 \ rst 28h \ .dw xxxx
> >>
> >> I think somebody has already sent this, but since I didn't remember... 
>:)
> >
> >BTW: Even though it's a byte bigger, a 'jp' would be faster than a 'jr'.
>(Not that the gain in speed
> >is very large compared to a 'bcall'.)
>
>Yes, but the problem with that is that if you use a jp instead of a jr the
>jump would NOT be relative, and you could NOT use the #define statement to
>make the whole bcall_z(xxxx) thing.  Why?  Simple - you would need a label
>right after the bcall to jump to if nonzero is set.  And if you used the
>"#define jp nz, label \ rst 28h \ .dw xxxx", you would always jump to
>"label" =p not good.  You <i>could</i> just not use #define and write in
>     jp nz, label
>     bcall(xxxx)
>     label
>each time you want to do bcallz(xxxx), but that would defeat the point of
>the whole #define thing =)
> >-----------------------------------------------------
> >Mail.be, Free WebMail and Virtual Office
> >http://www.mail.be
> >
> >
> >
> >
>
>_____________________________________________
>Free email with personality! Over 200 domains!
>http://www.MyOwnEmail.com
>
>
>

The $ feature of TASM can work for any 16-bit value, so it would work fine 
with jp.  (you just need to add an extra byte to the offset)

TASM converts the absolute address of a JR to a reletive address, so that's 
why $ works there.


_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp