I have need to use programmable logic in the Alpha-X project and it was the perfect opportunity to learn some kind of HDL. I tried VHDL, but, I much prefer the Verilog variant, as it is the closest thing there is to ANSI C, and henceforth will use that rather.
The following design is beautifully simple and works every time, a simple SPI engine that uses two SPI byte transfers: [command] [data]
This means each transaction is two bytes, the first being a command code, the second being the data (if specified by the command)
For each command, an ACK or NAK is returned. And we have an asynchronous NRST input to reset the device when we boot the micro so that we initialize to a known state. The source for this module can be obtained here
As time goes by, there is one constant- one's memory sure does fade.
When I made this previous blog post, I thought about how far I have come with these bits and pieces of software and its quite interesting. I know I did some embedded code, well, an attempt at a cash register of sorts, with a graphic LCD and the only viable processor I had at the time, a PIC16C74A.
Now, as we know, that processor, is pretty ancient by today's standards - 4k of EPROM (yes, no such thing as FLASH) and 192 bytes of RAM. Now, to display graphics, and copious volumes of text there was just no way that was going to fly, but, I managed to make it work regardless. I did it by using an external EPROM and external memory that would be read to not only retrieve text, but also the fonts on the LCD.
Sadly I do not have any surviving photographs of that project (mainly due to not being able to afford a digital camera at the time) but, the code was developed between April and September 2001. All of it done, in DOS, on a very old IDT WinChip box that ran Windows 98.
The format of the fonts are the forerunner of what GraphLCD is today- indeed I am about to extract the fonts from that very old EPROM dump and incorporate them into the current library.
Not bad for an era where I had no idea how to code in any language except assembler. I had not even learnt C yet.
From the above it is clear no header byte was used, and this was done for three reasons:
1. My math in ASM was bad, hence why C remains the first choice of language for development of anything new, especially when it becomes formalized as an ISO standard.
2. That retarded PIC micro had abysmal math instructions, even adding numbers together was a pain in the arse as I recall.
3. Ease of readability. Back then I was not nearly as proficient as I am now. Remember at the time I did not even work in IT was mainly just postgrad and trying to find myself an engineering job.
Its that time of the year again, when WTC (we think code) pay MyBroadband to punt their recruitment drive. Except this year I find it pretty interesting. However before we go into this year's challenge, let's discuss a little about these people:
What We Think Code is?
In my opinion, they are what I would call a "finishing school" for DERIVCO, BBD and other body shops. This is clearly demonstrated on how they discriminate on age i.e. 17-35 year old people only. So basically that excludes a fuck-load of people in my age group who haven't had a chance to study IT, yet we're already fighting our way in the software development space. So basically, as I understand it, you get prepped for a role at one of the body shops, and probably with some kind of paper that doesn't hold nearly as much weight as the bona fide degree one would get from university.
I have actually spoken to them last year, when I was being banned by Spamcaster on MyBB, and while they seem to be a nice bunch, the whole business model is not clear. That is, however, not for me to judge, they obviously make money, but they are obviously trying to create a glut of software developers, pretty much like a glut of bean counters and lawyers. This is not good for any of us who code for a living, we will soon find ourselves being pushed out by these people.
So this year's challenge
In 2017 it appears people are looking for people who can hack. Considering all the crap that went down last year, its not surprising. Their challenge, which resembles the familiar Cicada3301 puzzles, are to be found here.
The challenge is a no-brainer actually, anyone who has even contemplated breaking, or made progress with Cicada3301, will find this a breeze.