8-Bit Software

The BBC and Master Computer Public Domain Library

Back to 8BS Or Back to Disassembly


Page Last Altered:

AE57 =TIME$

Submitted by Steve Fewell

Description:

Increment the BASIC Text Pointer B offset (to skip the dollar sign character.
Set Y to #&06 and X to #&00, so that &0600 (the SWA) is the first byte of the OSWORD parameter block.
Zero the first byte of the parameter block (to pass an empty string to the OSWORD call).
Execute the OSWORD &0E command to obtain the TIME$ value and place it in the parameter block (the SWA).
Set the SWA length (byte &36) to #&18 (the fixed length of a TIME$ value).
Exit with A = #&00 (as the current value is a String and is located in the SWA).


Disassembly for the =TIME$ routine

AE57   230 027 E6 1B INC &1B
AE59   169 014 A9 0E LDA#&0E
AE5B   162 000 A2 00 LDX#&00
AE5D   160 006 A0 06 LDY#&06
AE5F   156 000 006 9C 00 06 STZ &0600
AE62   032 241 255 20 F1 FF JSR &FFF1
AE65   169 024 A9 18 LDA#&18
AE67 & 128 038 80 26 BRA 38 --> &AE8F Set SWA length (&36) to A and exit with A = 0

 


 Back to 8BS
Or