Page 1 of 1

Go Bare Bones tutorial contains outdated information.

Posted: Fri May 27, 2016 12:28 pm
by pjmlp
Hi,

while searching for information related to bare metal Go uses, I discovered the Go Bare Bones tutorial.

It contains incorrect information regarding pointer arithmetic in Go.
# Go doesn't allow you to directly access memory or use pointers. A trick to get
# around this is to have a function that takes a 32bit value and returns it.
# Take a look at 'terminal.go' to see how we use this to access video memory.
Which is false, and there is actually another example which makes use of the way Go allows for pointer use

Code: Select all

func terminalPutEntryAt(c byte, color uint8, x uint8, y uint8){
  index := y * VGA_WIDTH + x
  addr := (*uint16)(unsafe.Pointer(buffer + 2 * uintptr(index)))
  *addr = makeVGAEntry(c, color)
}
Taken from https://github.com/jjyr/bootgo/blob/master/kernel.go

So I would like to make the Wiki reflect the right way of using Go features.

What is the Wiki update process?

Re: Go Bare Bones tutorial contains outdated information.

Posted: Fri May 27, 2016 12:44 pm
by kzinti
pjmlp wrote:What is the Wiki update process?
You edit it.

Re: Go Bare Bones tutorial contains outdated information.

Posted: Fri May 27, 2016 2:19 pm
by SpyderTL
The whole point of a wiki (like Wikipedia, for instance) is that anyone can edit it, and anyone else can change it back if your edit is wrong, in some way.

Your forum login and password should work on the Wiki site as well, if you have joined the Wiki group.

Details can be found here: http://forum.osdev.org/viewtopic.php?f=8&t=677