Discussion Forum for all things Microbee
Microbee Assembler - Hello World - Printable Version

+- Discussion Forum for all things Microbee (https://microbeetechnology.com.au/forum)
+-- Forum: Microbee Forum (https://microbeetechnology.com.au/forum/forumdisplay.php?fid=1)
+--- Forum: Microbee Software and Documentation (https://microbeetechnology.com.au/forum/forumdisplay.php?fid=7)
+--- Thread: Microbee Assembler - Hello World (/showthread.php?tid=378)



Microbee Assembler - Hello World - snake - 25-09-2021

Does anyone have assembly code for a Hello World program that will run on a Microbee?


RE: Microbee Assembler - Hello World - someone - 25-09-2021

(25-09-2021, 08:08 PM)snake Wrote: Does anyone have assembly code for a Hello World program that will run on a Microbee?

Somebody does!
The constants and prefixes may vary according to the assembler you're using.
e.g. The # - indicates an immediate value & the % indicates a hexadecimal number
Code:
VDU  EQU  %F000
START:
   LD   HL,#CMSG_HELLO
   LD   DE,#VDU
   LD   BC,#CMSGENDED_HELLO - CMSG_HELLO
   LDIR
   RET

CMSG_HELLO:
   DB   "Hello, World"
CMSGENDED_HELLO:



RE: Microbee Assembler - Hello World - snake - 26-09-2021

Awesome!

Thanks.

I have z80asm running on a Mac using Sublime text, it's successfully compiling code for the Microbee.

[attachment=290]

This works.

What is the Microbee convention? .asm or .z80 ?


RE: Microbee Assembler - Hello World - snake - 26-09-2021

zasm is also working under MacOS using Sublime Text
https://k1.spdns.de/Develop/Projects/zasm/Distributions/


RE: Microbee Assembler - Hello World - someone - 26-09-2021

(26-09-2021, 12:35 AM)snake Wrote: ... What is the Microbee convention? .asm or .z80 ?

Whatever you want depending upon the toolchain you're using.
Back then we were limited by disk operating systems that only supported 8.3 filenames in the root directory.


RE: Microbee Assembler - Hello World - snake - 05-10-2021

VDU:  EQU  $F200
START:
  LD  HL,CMSG_HELLO
  LD  DE,VDU
  LD  BC,CMSGENDED_HELLO - CMSG_HELLO
  LDIR
  RET

CMSG_HELLO:
  db 'Hello World'
CMSGENDED_HELLO:


This code is giving me boxes on the screen instead of the characters, any suggestions?


RE: Microbee Assembler - Hello World - ChickenMan - 06-10-2021

(05-10-2021, 12:20 PM)snake Wrote: VDU:  EQU  $F200
This line should read 

VDU:  EQU  $F000


RE: Microbee Assembler - Hello World - Ernest - 07-10-2021

The $F200 is only the place on the screen that the output will start from.
I'm assuming that snake wants to start further down the screen than the top left corner $F000.

My concern is, where is the assembler getting the start address for the program itself to reside at, I don't see an origin address.
For auto running under Basic it would need to be $0900 from memory.
Without an origin the compiler my default to $0000 which is no good for the Microbee Basic.

But I will stand corrected here as 
A) I am not familiar with the assembler / compiler that snake is using. 
B) I'm super rusty when it comes to machine level programming. 

Ernest


RE: Microbee Assembler - Hello World - snake - 07-10-2021

Correct!

I was using ORG 400H and it needed to be ORG 900H because it was loading from basic.

Thanks to -
Quote:
Quote:Ewan J. Wordsworth
Microbee Technology Pty Ltd