A86: Re: Re: Input / Output


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

A86: Re: Re: Input / Output






>
>
>>
>>I have read this and I understand it pretty well, but I have one problem.
>>At the end it stores the OP1 into the Ans.
>
>
>It doesn't actually store the string at OP1, it creates a new variable (a
>string) that holds inputted string.  OP1 holds the name to the new variable
>in OP1.  So, if you call FINDSYM (rst $10), bde will point to the string.
I
>don't know of a call to display an absolutely addressed double length byte
>string, so this *should* put the string (limit of 9 bytes in length):
>
> rst $10                        ;findsym
> ld a,b
> ld h,d
> ld l,e                           ;put bde (abs pointer from findsym) into
>ahl
> call _GETB_AHL      ;A is byte at ahl
> push af                       ;temp save length
> ld a,b
> ex de,hl                       ;get ahl from bde again
> call _inc_ptr_ahl

I missed a call:
 call _SET_ABS_SRC_ADDR

> call _ABS_MOV10B_SET_D    ;move 10 bytes to OP1

Also, this should be call _ABS_MOV10TOOP1_noset instead.

> ld hl,_OP1
> pop af
> ld (hl),a
> call _putps
>
>
>  How do I display that now?  Is
>>there a way to display the OP1 and a way to display the Ans, all I need is
>>the call for it.. (and which header would help :)?  Thanks for any help..
>>Sorry if I sound confusing.. :)
>>
>>      call    _homeup          ; cursor to top left
>>      ld      hl,str_prmpt
>>   call _puts
>>      ld      de,_ioPrompt
>>      call    _mov10B          ; move prompt to prompt buffer , 21 max
>>      LD      hl,(_CLEANTMP)
>>      push    hl
>>      LD      hl,(_PTempCnt)
>>      LD      (_CLEANTMP),HL
>>      ld      a,0Ch
>>      ld   (_ASAP_IND),a    ; set for 'inputstring'
>>
>>      call    _exec_pg3        ; get string, op1 = var containing string
>>
>>      call    _stoans          ; store int 'Ans'
>>      pop     hl               ; HL=PREVIOUS CLEANTMP
>>      ld      (_CLEANTMP),hl
>>
>>
>
>