ihom@nosc.ARPA (02/27/85)
The BDOS function code for "getting" and "setting" the user area is 20h. The contents of register E determines whether to get or set. If register E contains FFh, then the curent user area is returned in register A. Any other valid user number in register E will set you to that user. i.e. procedure change_users; const user_code = $0020; { BDOS call } current = $FF; var new_user : byte; begin writeln('Current user is: ',bdos(user_code,current)); write('New user? '); readln(new_user); bdos(user_code,new_user); end; --Irwin Hom {ihnp4, sdcsvax!bang}!crash!ihom bang!crash!ihom@nosc sdamos!crash!ihom@ucsd
37270588%sdcc3@sdcsvax.ARPA (02/27/85)
> Sorry to keep bugging you about this things but I've run into another little >problem, I need to be able to change the user area from the program. The >inline statement totally confused me and the Bdos function adjusts the wrong >register. Do you know how to change to the user area? ------------ The BDOS function code for "getting" and "setting" the user area is 20h. Perhaps you are not distinguishing hex from decimal or vice-versa (20h = 32d). Anyways, the contents of register E determines whether to get or set the user area. If register E contains FFh, then the curent user area is returned in register A. Any other valid user number in register E will set you to that user number. i.e. procedure change_users; const user_code = $0020; { BDOS call } current = $FF; var new_user : byte; begin writeln('Current user is: ',bdos(user_code,current)); write('New user? '); readln(new_user); bdos(user_code,new_user); { put new_user in register E to change } end; --Irwin Hom {ihnp4, sdcsvax!bang}!crash!ihom bang!crash!ihom@nosc sdamos!crash!ihom@ucsd