Golly!
I think i am surprised every time by how fast it comes around.
I mean, 5 months since we last spoke, its just too long, I know, we really should keep in touch more often.
I saw your mother the other day, she looked well, yeah mine is fine also, hip still causing problems mind you, but well.
Give my regards to your sister and look, we really must meet up for a drink soon, oh yeah i know! - Anyway keep in touch this time; I know we are as bad as each other, see-ya!


--------------------THE START--------------------

29th July
Well i guess i should draw a close to this endeavor.
I am surrounded by part packed cases for the early drive to the airport on sunday and i have wee kids running about as the neighbours are away tonight and i am keeping them out the way while they sort the caravan.
I sit here drinking a bottle of original Guinness (as my home brew stout is not ready yet) listening to Focus - At the Rainbow on 8-Track, having yet again achieved very little - which is a poor code for 'nothing'.

So where am i then?
Well i continued playing with the bits of bobs of something larger i wish to create, this time a for-next loop as it were. STX - TAX - CMP 0 - BNE. It didn't work or course. However, what stumped me this time was trying to figure out which version to use, op-code wise. I mean, take CMP, i have C1, C5, C9 and CD to choose from. Actually i also have D1, D5, D9 and DD too!
I mean for fucks sake!
Either way, while i had marginal success on the Electron at winter time, this has proven to be significantly harder than i thought it would be. Its very nice working at this level as i am genuinely learning stuff. I mean, take the idea of twos compliment.
It had never occurred to me that if you were building a binary 'Arithmetic Machine' making one that can do negative numbers would complicate things quite a lot. The need, therefore to develop a way to handle them in a binary system easily / cheaply was required, hence twos compliment. Its a wonderful thing, even if it buggered up my head somewhat.

What else was good?
Well i did figure swapping memory contents about, that was good. I discovered how to pass things to the Micro-KIM display, even if it was clunky and ultimately incomplete from my original idea of success. And I also figured out how to decrease the contents of a memory location as well as add them and transfer them to other memory locations.
All basic, basic stuff, but stuff i hadn't done before and therefore from that very low standard, its been a SUCCESS!!!!!

Erm... everyone else?
Well we had a greater number of drop outs this time around and given the difficulty i personally had trying to keep going, i can sympathise. It simply seemed very hard to keep it together this month. Harder than normal. However there have been some interesting things going on from enough people to keep it all interesting.
So to all who were not broken, lying in a heap at the first hurdle, i give you my thanks for keeping it interesting in the month of July.
All the best buddie-boys, all the best.
See you the other side of the year.

28th July
Well after some twitter encouragement from Urbancamo and some pointing out of a school-boy error from Gcoville, this twos compliment thing does at least make more sense. Its still not working you understand, as to use it they way i want to use it, i.e to simply create a pause, ala for-next loop, i need to make sure that i am doing the loop correctly, but it is a step in the correct direction.
However, look at the time!
I have tomorrow and a wee bit of saturday before heading off to Brighton with the wife and kid, i have no time to do anything of import!

Still i might magage to count down, or loop or to slow down the display flicker or or or...
This has to go down as my second most pathetic effort at an RC, the first being when i was selling my house, that was bad. Oh and the time i had RSI and couldn't use a computer, that was also bad. Oh oh, and the....

27th July
Sigh! - Mostly i am frustrated and annoyed.
The last time i was this frustrated and annoyed was when i discovered how jumping worked, address wise. I cannot seem to make any headway. I light parts of the segment on a given display and i can replicate it across all six, but i cannot for the life of me figure out how to do different segments on different displays. Yet another school-boy error i am sure, but its got me stumped.
Sigh.

I also tried a wee look at this twos compliment lark. On the one hand i thought i got it. If moving forward from a branch then you count the displacement and convert to hex. Easy i thought. If i am going backwards however then its a negative jump and so you need this twos compliment malarky. However, when i was mucking about with the math it seemed to me you could get the same number.

My displacement is -5, i.e i am jumping backwards.
5 - Decimal
101 - Binary
010 - Flipping
011 - Add 1
Now from here i either have 3 Decimal or 3 Hex. If i do what my book says i would cut the number in half and convert each side to a Hex value and from there make my Hex address. Like this-
011 cant be cut in half, so-
0011 - which becomes 00 and 11
And then when converted to hex - 03
Now *clearly* i am doing it all wrong, as in what way would the machine know this was a twos compliment number? It wouldn't, so from that, clearly i have made an error.
A big fat waste of time today has been retro wise. I should collect stamps. Or bird watch, i did that as a lad. A gold crest always brought a smile, or the calls of skylarks and lapwings. Sniff...!

26th July
Howdy! - I am back!
Well it was a difficult week work wise and i had an interview to prepare for which took effort and i was working late each night. I did get a couple of days in Aviemore which was nice, but of course no retro stuff.

Last night i was too pooped to do anything, today i messed around a bit with BBSes. I visited Aliennerds newly set up and while as he said there is nothing much there, it was nice to drop by for a cup of tea.

After that i tried to dial up the HecNet number i was given. This is more Urbancamos thing as its all about the VAX-DEC world, but i gave someone a free copy of 300BaudMagazine once, and they gave me dial up access. Sadly it didn't work, which is a shame as its a fully featured place and its dial-up from the UK, so cheap for me to use. The number just dialed out.
After that i wandered around the Plasma Sphere BBS which is an Archimedes (ARM-RISC) hangout, which still seems active to a degree. It remembered my logon info and i hadnt been there since 2007. Its quite big and worth a look if you are UK based. There are precious few UK dial-up BBS around after all. After about 20mins, it crashed my computer and i had to reboot. I then tried another UK board and another Acorn one at that called Arcade. I didn't have all the time i wanted to look around there as the kid wanted fed, but it seems to have a weekly online chat facility.

Best go, she seems hungry!

18th July
Well as said this is the sleepy week so nothing happening here. In fact all week is going to be a problem as i have a job interview to prepare for on the 25th. Hurrah! - Sigh! - Help!

This is the software i am planning to use. I have no manual and don't know how it works. I think there is a German station that still broadcasts un-encoded RTTY, so i read.

17th July
Still no further forward.

I did manage to get two figures on the display but its inexact, clunky as hell and only sort of works as you can see. Just some X - Y swapping really. Not any sense of control. It should have been possible to get the display to flash the images rather than just have a static blur, but to do that i would need the equivalent of a For-Next Loop to make a pause. I did look around at how that would work and it is pretty similar to a BASIC For-Next except i would need to tell it where to go after it had counted the required number of times. How would i tell it where to go after?
Yes, back to addresses being described by two's compliment. I have no option, i must tackle the metal block i have over this.
Bum!

Saying that i am not sure when this will occur as the working week begins tomorrow, and as said, i am working late each night and then away to Aviemore in the highlands for the weekend. I will have time before the 25th July, just not the sort of focused mental time i have had this week. So i may do stuff or i may try the RTTY thing. Actually i will try the RTTY thing, as i have been meaning to do it for a while now. Seems fun, will never work, but seems fun.
Once i fail at that i will try again with the display on the Micro-KIM and after that it wil be the 25th and i will have another four days of playing with some energy before i finish up to go Brighton for the family holiday.
Ah cannae wait!

16th July
Some days are Sunday, even when it is not a Sunday.
Today was one of those days. It was rainy and dull and everyone in the house was kind of sleepy even though we did not get up until 10am. Such a Sunday feeling.
With that, the day was sleepy doomed quite early on. I did try and look at some code from another program - Bandit - from the book of KIM, but was half hearted about it. I also realsied that i didn't actually have a copy of the KIM programming manual, so i got that and had a look-see. It does not go into display routines in a way i would want, but it does explain all the op-codes in a KIM specific way, so should be of use to me, even at my level.

Looking for someway to be retro-productive i thought i would check out LC575s hypercard stack for old Mac machines. The full thing comes in at 10-12mb, so i sadly couldn't run it on the SE i have, heck i only have about 5mb on the drive left. So i then spent a dumb amount of time trying to get a 'Classic Environment' running on the G5 i have or on the Clamshell iBook i have running OSX. After a lot of frustration i failed and gave up.
I then decided to just install OS9 on the iBook. This has also turned out to be a pain in the arse which took a number of hours, rather than the usual 30mins for a copy of OS9. And only when in this little mini hell did i remember the problem classic MacOS has with files downloaded or made somewhere else, in that it looks at a PDF and says to you , "Yes i may have Adobe running over here, but just because you have a file with a PDF extension doesn't mean i am going to trust it, i mean thats a PC thing isn't it, recognising files by an extension. No i don't do that!"
I know there are workarounds and i know, it did mean that some of the obvious virus exploits didn't work on Mac as they did on Windows, but it is still a pain in the arse.
Anyway after many hours getting the install right and an equal amount of time trying to get WiFi working ( i had set my router to G only rather than B / G ) i then struggled to get files on to the bloody machine. But after getting iCab and Stuffit up and running i was good to go. In short i set up a machine fully just so i could look at a hypercard stack. For fucks sake!
Anyway, it was quite good, i liked it. Shame it cant run on the older 68000 Macs, but a good effort and if he finishes it i imagine it will be one of those files that bounces around the net.

What else, well tomorrow is the Sunday before i am back at work and the early starts and late nights begin again. I am unlikely to get anything creative done next week. Just too bloody tired to be thinking math. I might if energy allows get the Dragon 32 out to see if i can get the RTTY software i found for it to work. I have a short wave radio; its a long shot, but it just might work.

15th July
Well things seemed to get a bit involved today.
Firstly, i didn't achieve what i wanted to do. But i did find a different way to do something which pleased me somewhat. Each of the six displays has its own address that you feed through SBD. I was able to fill each segment by stashing the six addresses somewhere 0010 to 0015 for example, and then calling them in turn to light each of the displays. All looped of course. Today i discovered the magic of DEY. Each display address is two away from the other. So i start at the top, in this case 13 and using DEY or DEX twice, then the addresses fall into line to give 13 - 11 - 0F - 0D - 0B - 09 which are each fed through SBD. I believe they call this programming!
As far as being able to light the segments across the board in a controled way, i am no further forward.

Firstly, within the code there is a line that feeds a value to SAD, this lights the segments of the displays. However the values it will accept do not match the segment values in the Book of KIM, the one that allowed me to do the lower case 't' previously. The problem seems to be a line that says B5 - 60.

Now this is where it starts to get complicated. Both the SAD and SBD values are declared at the start as coming from the X and Y registers. Indeed when passed to SBD the value is passed using 8C STY. The X register value however is somehow passed to SAD (relates to the segments) through the accumulator using 8D STA. This i can only assume happens through B5 which is LDA (Zero page indexed by X) the 60 i think is a RTS command. Anyway B5, seems quite complicated, at a guess, it loads equal values that are found in X, provided X is stored zero page. erm.... ummm...
If my reasoning of that is correct, the codes for letters and segment control are not as simple or as few as the display addresses so i can't just DEX them, or can i? At this point i am thinking that the routine i found may not be the panacea for my current problem as i had hoped.

The other thing i have a need to deal with is branching. There i was assuming that BNE - (branch not equal) and BPL - (branch plus) would have as their values the address to branch too, instead they seem to use something called displacement and twos compliment. Displacement seems to be the number of jumps it will take from the branch to where you want to go. You pretty much count it. Twos compliment? Well here is how one beginners book tried to explain it to me:-
1) To work out the two's compliment of a number, say 6 (this is your displacement), first write down the number in binary.
2) Then you change all the 0s to 1s and the 1s to 0s. This is called "flipping the bits" or "complementing" a number. The result is called the "one's complement".
3) Next add 1. The result is the two's compliment of the number.
4) Convert to hex.

Erm.. i got the start and the end, number two is weird but number three; add one. Add one to what? Golly.

I have much reading to do. On a positive tho, i managed to do the thing below and i do have a rudimentary understanding of it too!

14th July
Bugger all!
I did cycle a fair bit with the kid and went to the beach however. Later the family sat down to watch an 8mm cine, edited version of The Creature of the Black Lagoon. The full film taken down to 15mins and silent. It was pretty good and a number of decades since i last saw Gill-man. Cant help but think it must have been hard to swim in that suit. Anyway, i think i may have to try and eBay score a few more films of that sort.

Retro wise i looked at the Farmer Brown code and i found a routine that is able to light all sections of the display. Its quite short and half the code i have seen and used before. I need to figure out INC (some sort of counter for waiting?), BNE, DEY (Decrease Y?) and BPL. If i was going to start somewhere this seems like a good place to begin.
But not tonight as i am a bit puggled after two days in the sun. I am Scots you know, we don't do sun. Anything over 20c is inhuman!
Good excuse for ice lollies tho.

13th July
Didn't do much today, i caught a bit of the sun out at some farm park thing with the kid. Llamas, cows, donkeys and forts with big slides. The ice cream was nice. Either way i was less retro inclined.
I did try and display two characters again, but this time i passed one through X and one through Y - it didn't seem to change the outcome. I still had two letters displayed, but they were the same and both were the last letter called. The Book of KIM when talking about this, suggests a 'delay loop before moving on to the next character' - i know its not the case (it can't be) but that sounds like you are only able to display one thing at a time, which can't be right. Hmmm.
In an effort to try and see how its done i loaded up Farmer Brown from the book of KIM. It uses graphics of the sort i am trying to do - animated as well, hence the blur.

Sadly the program when running only ever gave me the ant, which was a simple dash. Bit of bad luck. Anyway i found the ant code and changed it to the elephant - 1st image, the lower part of the F is the trunk. And the bird, which i am sure you can figure out yourself. Unfortunately the animals are stuck at the end as data to be called upon, so i am going to have to figure a way through the program first. In short i think i am going to need to learn some new assembly codes.

12th July - UPDATE

I passed it through the X register and it worked. A2 for loading to X and 8E for pushing it to SAD. That would stored in Zero page...erm...umm..was it 'Immediate'? ...erm...
Either way at this point it works. Well kinda, i can't seem to get two different characters to appear, so i need to figure that out. Just duplicating the lines but with a different character value doesn't work, it just prints the second character twice. From that can i assume that i need to preserve X if i want a second character....so erm... ok, it means something, but i don't know what!

12th July
What i done learned today!
SAD 1740
PADD 1741
SBD 1742
PADD needs to be set to 7F to set the directional registers (umm!), this seems to be done by passing the value through the accumulator. SBD is used to pick the particular display segment, running from left to right, the values would be:-
09 - 0B - 0D - 0F - 11 - 13. Again, you pass this value through A.
My issue is trying to then turn on the various parts of each segment display. I have the values needed to make various letters a small 't' for example and i know i need to pass it to SAD at 1740. However, its not working. I can light each display independently, but it lights all segments of that display unit. Clearly my order or how i am passing it to SAD is at fault.

11th July
Mutha' Fuckin' JMP locations!!
Right then, the first time i encountered JMP it was written as 4C 08 02 and was labeled JMP LOOP. So guess what, i thought it was a loop command of sorts. Which of course it isn't. JMP is 4C, the rest is the address to JMP too! For fucks sake!!
Sigh...
Amazingly, when i first started playing with JMP i was still using the location 0208 and it was still working. I can only assume things were just very very simple at that point and the jump was inexact but not critical. Sigh...
Anyway with that, today i managed to place two numbers in a... well, here is the very very very simple thing i did, which has taken hours of head banging.

0010 99
0011 66
0200 A5 10
0202 A6 11
0204 85 11
0206 86 10
0208 85 FB
020A 86 FA
020C 85 F9
020E 20 1F 1F
0211 4C 0E 02

As you no doubt can tell, (I assume you are not as thick as me.) all it does is place 99 in the accumulator and 66 in the X register. These are then swapped over; A to X, X to A. The values in A are placed in the left and right segments of the display while X is displayed in the middle. This will look like this:- 66-99-66. Run the program again and it will reverse to 99-66-99.
Piece of piss really. Told you it was a school boy error.

Anyway, i suppose i need to go back and re-look at some of the other things that i was trying and failing to do over the last couple of days and see if i can get them to work. I really need to figure out how to turn on the individual bits of the display tho, this SCANDS routine looped is a pretty rubbish way of doing things.

10th July
Well i think i need to get back to basics. Really, i do. Generally i find that if i have these sort of problems i can plonk myself down within the problem i can eventually, if only through grunt, find a way forward, clearly this is not the case here.
I typed in the ADDER program from the 1st Book of KIM and it ran, well after i realised i had the single step switch to on and switched it off. I then tried to alter it, cut out some of the code so that it would only do a single thing. And it didnt work. This tactic usually works for me. Get something complicated and take it apart so that it is then really simple and then build it back up from there. Not this time. I manage to trace a couple of the branches that took place and i am fairly sure i went where i was supposed to, but that was it.
Quite dispiriting really.

So to clear my head and make me feel good about myself i cleaned out the fish tank and started a new shake'n'bake home brew beer. This time i am going for a porter.
Tomorrow i start on page one of the book of KIM and take it from there. Where i should have started in the first place.

9th July - UPDATE
Well i gave up on the Micro-KIM for the evening, but i did repair an 8-Track cart.

These RCA ones are a pain compared to others where you just have to crack the plastic tabs and the cart opens up. These, you have to drill out the metal rivet. It was a simple splice repair so no biggie and it works. As far as pianists go of the non-classical, easy listening variety Peter Nero rocks.

9th July
Well this is really shaping up to be the most feeble of RC efforts.
Here we are a week and a bit in and i have nothing to show for it. Bugger all. I do have a week off with the kid which should afford some time, in that i wont be as knackered as i usually am after work and today was the first of those days. I also have a week from the 25th that also looks good, but i have trips away at weekends and i am off on holiday at the end of the month, so in reality i have this week and one more at the end, to do something.....anything!

Today i went back to basics and tried to move things around. You know, LDA and then transfer to the X register and then move somewhere else for display. It seemed quite simple to begin with; actually it still seems simple now, but i failed to get it to work.
In my mind it works like this - LDA 02, then ADC 04 and STA in 00F9 and call the display routine. Didn't work. I then tried the same thing, but this time i just stuck something in A then transfered it to X and then transfered X to 00F9 for display. Again, it didn't work. Clearly i'm engaging in some sort of school boy error. But at this point i am unsure what. I will persevere and i am sure i will get to the end of it, but i really don't think i am a natural coder.

Still on the positive, me and the kid sat down and watched a couple of cine films. I have a projector from the late 50s, early 60s that i picked up, so we watched a Chaplin short and a Three Stooges film i got yesterday. All silent films and projected against a door in a darkened hall. We liked it.
Tomorrow, more banging my head against wall that is programming the Micro-KIM.

5th July
Well its not that i didn't do anything tonight, i just didn't achieve anything.
For whimsy i thought i would see if the Kaypro was connectable, after a chunk of time searching through all my cables i realised i did not have the correct combination of male/female to make it work. I put the Kaypro away.
I then loaded up the ball program that some guy over on some forum wrote to see what it looked like. I think its about within my ken, so a reasonable place to start - it was bigger than i thought it was going to be by some measure.
I also made up a mix tape for a mate, again for whimsy and no other reason. I also drank some rum.
By 10pm i was knackered. I am a bit shit it seems.

4th July
Arse monkey really, arse monkey.
I did have a nice weekend away watching fancy horses and my kid being trapped in a bubble in a paddling pool while i ate over priced burgers. £3 for a plain burger, i ask you. Bet it came from a tin too.
Anyway the result was clearly no retro stuff. I also now find myself for the first time using the same hardware as a couple of other RCers. This will generate shame for me as they will be good and i will not be good. I mean, Gcoville and Paleoferrosaur, didnt they superly impress us all last time?
Big jobbies that they are!

So with that i guess i will plough my own furrow and ignore them. So what have i done? Well nothing as i have been working of course and had to mostly complete an application form over the weekend and today (and tomorrow for that matter) for a job i wont get. Pretty much that is dominating the head just now, as you can imagine.
Before i left i was getting the hang of the keyboard scan subroutines. I could get the display to fill up with a number that i could key in. I include it below, if only to show that i have done something even if it is a bit crap.

0200 D8 - CLEAR DECIMAL MODE
0201 A9 00 - PUT 00 IN A
0203 20 6A {1F-EA} - SCAN THE KEYBOARD
0209 A5 10 - WHATEVER KEY IS PRESSED STICK IN ADDRESS 10
020B A6 11 - I THINK I HAVE JUST TAKEN WHAT WAS IN 10 AND PUT IT INTO ADDRESS 11
020D 85 11 - I CANT REMEMBER!
020F A9 00 - 00 A AGAIN
0211 86 10 - I CANT REMEMBER!
0213 85 FB - LEFT SEG DISPLAY
0215 85 FA - CENTRE SEG DISPLAY
0217 85 F9 - RIGHT SEG DISPLAY
0219 20 1F 1F - DISPLAY WHATEVER IS IN THE ACCUMULATOR
021C 4C 08 02 - LOOP

What i dont get is the need to remove 1F at 0208 and replace it with EA (NOP). The full GET KEY routine is 20 6A 1F, so it shouldn't work. Well clearly i have a gap. As you can see i am of course at a basic level, but its fun, and thats what counts. I am doing ok with the documentation and there is a ball bounce program i want to take apart and see how it works. I may also try and use the Kaypro II as a screen for the Micro-Kim. It wont offer me any advantages, but the Kaypro hasn't been out for a while.

To close, i will say that this month would have been very different had i bought the expansion card and the RRIOT thingy people go on about. It was only when looking through the documentation properly that i realised that the Micro-Kim does not have the KIM-1 user port, no lines P0-P7. Some of you may recall that i have had fun in the past using these for pointless things with the PET. Its a shame i didn't realise that. That will be a purchase for another time. Perhaps in time for winter.

30th June
Well that's a bit arse. I forgot i am away at the in-laws this weekend so nothing from me until the monday at the earliest. Pump!
Have i been doing anything since i was last here? Well i have been trying to get the Micro-Kim to take a keyboard input and display it. Yes! that exciting!!
I did also fix my cine projector. That counts as a success.

25th June
Goodie Boobie
As a first program, it will do!

23rd June - My Birthday!

A wee intro post.