Re: A83: Help me!


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

Re: A83: Help me!




Hey,
Won't this work...

loop:                   ;MAIN LOOP START
  ld   a,(z_d)
  call _setxxop1        ; acc -> op1.
  ld   a,10d
  call _setxxop2;       ; Load a into op2.
  call _fpmult          ; OP1 * OP2
  ld   a,(z_b)
  call _setxxop2        ; acc -> op2
  call _fpdiv
  call _intgr           ; Integer of OP1
  call _rndguard        ; Need this, otherwise you get OVERFLOW error.
  call _dispdigit
  call _op1toop3
  ld   a,(z_d)
  call _setxxop1        ; acc -> op1.
  ld   a,10d
  call _setxxop2;       ; Load a into op2.
  call _fpmult          ; OP1 * OP2
  call _op3toop2        ; E
  call _op1toop4
  ld   a,(z_b)
  call _setxxop1
  call _fpmult
  call _op1toop2
  call _op4toop1
  call _fpsub           ; OP1-OP2
  call _convop1
  ld   a,e
  ld   (z_d),a
  ld   a,(count)
  inc  a
  ld   (count),a
  ld   a,(count)
  ld   b, a       ;\ Here is my change
  ld   a,(z_b)    ;|
  inc a           ;|
  sub b           ;/
  jr   nz,loop
  ret

                     .-"""-.
                     / .===. \
                     \/ 6 6 \/
                     ( \___/ )
   _______________ooo__\_____/____________________
  /                                               \
 |  Revenant revenant_1@hotmail.com ICQ#3608935   |
 |         VISIT THE JAVASCRIPT REFERENCE         |
 |      http://www.geocities.com/~homosapian/     |
  \_____________________________ooo_______________/
                      |  |  |
                      |_ | _|
                      |  |  |
                      |__|__|
                      /-'Y'-\
                     (__/ \__)
>
>Ok dudes...I've tried and tried bugging this myself but it won't
>work...here's the pseudo-code.
>
>a and b are numbers given to the program via the basic "startup" 
program
>
>repeat:
>    E becomes "IntegerPartof((D*10)/B)"
>    Display E
>    D becomes (D*10)-(E*B)
>increment count
>repeat until count is equal to B+1...
>   
>Ok, you don't have to bother about the repeat code, that's working, but
>darn me if the calculations work.  They seem to work for the first
>two...can anyone help.  Here be the ASM :)...
>
>loop:                   ;MAIN LOOP START
>  ld   a,(z_d)
>  call _setxxop1        ; acc -> op1.
>  ld   a,10d
>  call _setxxop2;       ; Load a into op2.
>  call _fpmult          ; OP1 * OP2
>  ld   a,(z_b)
>  call _setxxop2        ; acc -> op2
>  call _fpdiv
>  call _intgr           ; Integer of OP1
>  call _rndguard        ; Need this, otherwise you get OVERFLOW error.
>  call _dispdigit
>  call _op1toop3
>  ld   a,(z_d)
>  call _setxxop1        ; acc -> op1.
>  ld   a,10d
>  call _setxxop2;       ; Load a into op2.
>  call _fpmult          ; OP1 * OP2
>  call _op3toop2        ; E
>  call _op1toop4
>  ld   a,(z_b)
>  call _setxxop1
>  call _fpmult
>  call _op1toop2
>  call _op4toop1
>  call _fpsub           ; OP1-OP2
>  call _convop1
>  ld   a,e
>  ld   (z_d),a
>  ld   a,(count)
>  inc  a
>  ld   (count),a
>  ld   a,(count)
>  ld   hl,(z_f)
>  cp   l
>  jr   nz,loop
>  ret
>
>_DispDigit:
>  ld a,1  ; byte size of string
>  call _dispop1a ; Display OP1 on graph screen
>
>  ld a,(pencol)
>;  add a,2
>  ld (pencol),a
>  cp 92
>  ret c                 ;If a<=92, return.
>  xor a                 ;A=0
>  ld (pencol),a
>  ld a,(penrow)
>  add a,6
>  ld (penrow),a
>  cp 57                 ;If a>57...
>  jr c,exit             ;Exit the program.
>  ret
>
>Help would be VERY much appreciated, thanks...
>

______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com