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
>>
>>
>
>