There *are* two SSL modules available... A bootleg version which is about as stable as a coffee table with two legs missing, and the 0.97 'current' version which is okay in stability but is ten times the size of the plain ordinary HTTP fetcher.
I wanted to experiment with the idea of making a DAC (Digital to Analog Converter), the method I have used in the past was to use a R-2R Ladder Network of Resistors. But having huge amounts of resistors all tightly tied together is quite a pain. So as an alternative Wikipedia suggests using PWM (Pulse Width Modulation) and a low-pass filter.
So with Limitz excellent knowledge of audio we set about creating a program to output a PWM signal from a serial port. We did that by bit-banging the DTR pin (pin 4). We pass the output signal through our low-pass filter which is simply a 12K ohm resistor and a 47 nF capictor.
Below is some photos of the result on my brand new Oscilloscope (OWON 6062T). I've also recorded a video of it running live although the quality suffers from a crappy camera phone.
Well it's defiantly been awhile since my last post. I don't think there is any good reason why I have not posted. I will try and post more.
Anyway, this is really about a TV programme that I have just stared watching (the second episode is tonight) its called The Virtual Revolution. You should check out the site and if your from the UK you should be able to watch the latest episodes from BBC iPlayer.
Below is Stephen Fry's interview from the documentary series. I have to say I agree with pretty much everything he said, and it's one of the reasons why I decided to post here again. I will let you watch the interview for yourselves to find out why.
I recently moved all my computer related hardware into another room. In the process of doing this I found my old ZX Spectrum.
I also found the left overs from my IBM, it's Reference Diskette. So of course I attempted to read the disk with windows, no joy.
With a careful eye I looked over the hex dump of the disks sectors, and low and behold as soon as I reached sector 26 I get a
CRC Error aka Bad Sector. This sector seems to be in the middle of the FAT table, so this explains why windows was getting pissy.
Determined not to let that stop me I re-jigged an old floppy cloning program I created to also let me know the details of the bad sectors.
So now I have a disk image and a list of Bad Sectors, time for me to get to work. I had two images of the disk during my programming so
I checked the differences and the latter one seemed to have more Bad Sectors. This cant be good, either my drive is wrecking the disk or
the disk itself, being so old is deteriorating. Since my first image had no Bad Sector list I used my favourite hex editor
Hex Workshop (more news about this to come) to merge the two files and to create one with minimal Bad Sectors.
So here is the Disk Image and Bad Sector List. I am going to attempt to repair the image and see if we can get a working disk from 1987.
I was thinking about building a separate video processing unit for the games console. This way I can just have the CPU write to the video memory and the screen will update. We would have a separate GPU which can render the VGA signal from the memory. The BB (Bus Busy) and BE (Bus Enable) lines work in tandem to provide bus control. The GPU is the bus master and the CPU is slave to it. I've done it this way to reduce I/O lines and because I expect the GPU to use the bus more, plus the GPU has timing constraints to work with. With the unit designed like this we hopefully stop partial read/writes and any other mess-ups that might happen because we need to have a shared bus.
This is what I've come up with, an 8bit design for a 8bit bus. Enjoy!
Recently in a fit of retro-vision I did one of those online hunts for information, in this case it was for the book that got me in to programming. You know those searches which take you to so many weird corners of the Internet.
Obviously I found lots of interesting sites and nearly got side tracked off in to many weird directions. But after lots of searching I found this site
Kio's Sinclair ZX Computers Archive. It had a scanned copy of the User Guide in pretty high quality. I have compiled the 86 odd JPEG image files
in to a PDF and you can grab it from here.
Be warned it is a large 20MB download.
This little pillage in to the realm's of the past got me thinking about my previous computers and what I have used over the years. So for your viewing pleasure here is a list.
1989-1996
Amiga 500
I was about 5 years old when we got the family computer. We got this upgraded at about 1992 to the 500+ which I believe gave it an
extra 512KB of RAM. We used this mainly as a gaming machine since we had a local store selling ONLY Amiga games. The company went bust
and closed the store. I remember this because I went along in the weeks when they were closing down and they gave me loads of stuff for FREE.
1992-1999
Sinclair ZX Spectrum+ 48K
It was around this period when we got the upgrade to the Amiga and I was about 8 years old that I got hold of several ZX Spectrum's second-hand.
This is what got me started in computer programming. It was a brilliant little machine. You would have to plug it in to your TV for use as a monitor and use a cassette tape for data storage. It was limited in ways but flexible at the same time. I found it quite a fascinating subject. I then had a dive in to AMOS BASIC for the Amiga. But I found the Spectrum BASIC easier to work with at the time.
1996-1999
IBM 386 PS/2 Model 55SX
When I was 12 years old I was given this as a gift. Second-hand at the time. I will always remember the sound it made when you turned it on. First of all that picture is not
exactly right, mine had a blue power switch. You had to yank the power switch up on the front and it would make a clunk and you
would hear the beast warm up. Then the floppy drive calibration test would start and the you would hear the hard drive accesses as clicks. It
was loaded with DOS 5/6 and Windows 3.1. When I got this I started exploring and found QuickBASIC or QBASIC for short and started making
DOS games and apps. I also learned about x86 assembler during the end of this period.
1999-2002
Pentium III 1GHz IBM Compatible PC
I had a break and got some money when I was 15/16 years old, so I decided to blow a grand on a new computer. This was the first NEW computer I had bought for myself.
So I got all the latest parts to build one of the latest computers of the time. I believe it was a Pentium III E-series processor running at 1GHz with 256MB SDRAM and a 13GB ATA133 HDD. It was about this time when I started
writing webpages in HTML and programming in C.
2002-today
I've gone through plenty of IBM Compatible systems during this time and programmed in many different languages, also
since this isn't retro I dont think I will include much info at this time.
So that's it, I might blog more about some of the subjects that have turned up along the road. Until then.
A friend asked me to help him out with a simple TSR(Terminate and Stay Resident) program. I must admit its been awhile since I played around with the DOS feature.
Anyway, after much debugging and testing I created a working test program. For good measure and boredom I also decided to create my own interrupt vector handling routines. The set vector handler needs one extra thing, to disable interrupts. Even better to mask off just that interrupt you are setting, but that would require a look up table.
For your general interest and amusement here is the code:
A fellow OS developer got in contact with me because he was having issues with his first OS.
So, this is a small setup just the basic multiboot structure and some simple C code that would call a C version of memset to fill the video memory with some letters. So a simple functionality and boot test.
I know your thinking, hmm not much that can go wrong. Wrong But this just reinstates the quote
"Exercise caution in your programming; for the OS is full of weirdness"
It took about an hours worth of debugging to find out that all the code was correct all the build files such as linker script and makefile are all pretty much correct, nothing wrong that would cause this problem. Analysis of the GCC output object files for the C code shows the compliation was perfect. Analysis of the final binary showed that LD just seemed to want to add 0x18 to every call displacement for no apparent reason.. It turn's out that the problem was conflicting packages downloaded from the DJGPP FTP site.
So please people, if you decide to start OS development please use a preprepared install of DJGPP. For those of you who want one you can find it: http://www.blackcore.co.uk/resources/djgpp.zip.
So, it's been a little while since I updated my blog so I hope this might make up for it. A couple of days ago I put the final touches to my games console.
Some of its features follow:
The unit is 5V DC regulated.
Its running a Parallax SX-28 Micro-processor @ 80MHz which has 128x 8bit of RAM and 2048x 12bit FLASH memory and 20 I/O pins.
These I/O pins are separated in to 3 registers/ports 1x 4bit Port-A, 2x 8bit Port-B and Port-C.
Port-A is connected up to 4 LEDs and a 7-segment LED display.
Five pins of Port-B are connected up to 5 push buttons arranged in up/down/left/right and fire arrangement, which leaves 3 pins free for expansion. Port-B is also attached to the DB9 connector at the front for connection to a Atari style joystick.
Each 4pins of Port-C connect to a R2R Ladder network of resistors to create a DAC(Digital to Analog Converter) with fine tuning potentiometers(variable resistors) attached to the output. These two DACs drive the audio and video RTA/Phono connectors.
There is also and expansion header with 5V, Ground and Port-B attached to it.
Finally we have a 4pin external serial programming connector and switches to control the power/programming/mpu-reset.
Click to enlarge.
Top right is small camera shot of one of my monitors showing a small test program which generates a composite PAL signal. At the moment I only have monochrome output but I am working on generating a colour PAL-B or PAL-I signal. I will keep you up to date with my progress.
OK. I was thinking of getting another domain-name.. but I think I have too many as it is. I never end up renewing the ones I have so this list is pointless for myself.
So if anyone is looking for a RCE(Reverse Code Engineering) related domain-name these are available as of writing this.
Some of you might remember I created a crack searching program back in 2005. Well for one reason or another it stopped working about 10 months later. I've finally rewritten and released a new version. I will add it to the projects section of the site soon. Here's a preview.
Since RapGet finds the links on the pages of rapidshare.com.. It's has a small problem now that rapidshare.com have added more peer links. It cannot detect the download links. I am currently working on a patch since my report to the Author seems to be ignored.
I have found there's a problem with the latest version of RapGet(rapget.com). It seems not to be deleting GDI objects. I suggest uses stick with version 1.24, until a fix or the latest version is available. Here is an example of the problem -> rapget125.gif.
I've been busy doing bits and bobs. Not had much time or inclination to post to my blog but I thought its about time I posted again with the traffic the site seems to get.
Ive been playing with custom drawn menus for the first time. Its all well and nice but the bloody annoying borders you get the on them that you just simply cant get rid of.
OK, Im not going to let windows beat me on this one. I researched in to other methods used throughout several different tutorials online and I found the best way is to SuperClass the windows menu class and just pass on the windows messages that are needed. I will be posting a article all about this online pretty soon.
In other news our friends at Egypt2600 have got on the american radio show 'Off The Hook' for good reason. We encourage anyone who is interested in there cause to vote on their site. [Egpyt2600.net]
Hi all, ok so I now have all forms of process injection working!
But again with this knowledge comes responsiblity. I am also a grey hat, and so I am therefore going to retain the source until I have built and tested detection routines.
I know, I know you all want the source for nice legitimate reasons but at the end of the day its my head on the block.
OK so process injection.. most programmers dont like this idea.. the thought of having your program penetrated by an outside source.
Well most do.. Anyway i've been playing and had some ideas about how to inject in to a process and create a remote thread of execution without the fuss of needing to code that function in Assembly.
I started with the fact that DLL modules when loaded in to a remote processes space work fine.. Well hang on a minute.. Can't we just load our executable in to the remote process space and execute our function. Well infact that's precisely what we can do. And my next project going online will show you a couple of different methods to do this.
I should have it online in about half an hour. Take a look.
Well as you can see the new site is on its way.. forums are still on the TODO list.. keep checking back..they'll be online very soon.
For those of you who want to add there comments to my blog (and use other bits of the site), You'll need membership to the site.. you will have to contact me to get one.