End of RC2016/10

This evening some people of the local hackerspace “B+ Westland” visit my place to look at the 4004 project. We have study some assembly code for the 4004. This was very nice.

20161031_220015-1

We have look at the result of my project and we have also study some other project’s from other people.

This is the end of the RetroChallenge 2016/10. I wish I have more progress the last month, but I am still happy with the result. This week I go to make/finish some little program’s to do the challenge for the Roborama-game’s of the Dutch Computer Club next weekend.

Here is my goal not to win, but to do the challenge.

 

 

 

 

 

 

Keep moving the Intel 4004

Last week i have a very little time so I couls only make some little progress. I have program some little routine’s for the 4004 processor in assembly to make some little demo’s

 

Next week I hope to have some more time so I can work on some bigger programm’s. With this bigger program’s I could run the Roborama challenge on November 5 2016.

I have so much to do in so less time !!

But, during this Retrochallenge 2016/10 I have a lot of fun. Working with the assembly for Intel 4004 processor is a nice challenge for my. I keep going during the next couple month’s.

I would thank’s the organization of the Retrochallenge to motivate me to work on this project.

 

Working in 4-bit’s

It’s a nice challenge to program the Intel 4004 processor. All the registers and accu are 4 bit wide. So when you want to make a little delay I need at least 4 register’s to create a nice wait-delay. This hole weekend I study and work at my program with a couple of subroutine’s.

code_t

I make a lot off progress and hope I can finish next weekend the main program to run 2 or 3 challenge’s for the Roborama game’s on 5 November at the Robotica club.

Happy Programming the Intel c4004 !

 

Coding the Intel 4004 processor

More and more I learn about the assembly code for the Intel 4004 processor. It is fun to work with it. Also it is a little bit complicated because I am not a very good programmer. But I make slowly progress.

coding_4004

First I make some note’s on paper, later I make some little test program’s and then I try to connect those little parts together to the right program.

Time, time and time. This is what this progress cost. But it give’s also a lot of fun. So I keep going.

 

 

Robot car

I want to show you the robot car I have build for the Intel 4004 processor. The frame-work fot the robot is a vero-board print. Mounting 2 motor’s under it, a line-following sensor strip in the front and a powerpack an motordriver on the top of the print. A voltage meter fot the level of the LiPo accu’s complete the frame-work.

20161015_144845

On the 4002 RAM I have 4 output pin’s. These are connected to the motordriver. 2 Bit’s for direction for the 2 motor’s and two bit’s to set the motor ON or OFF. On the 4001 ROM I have 4 input pin’s. Tree of them are connected to the line-following sensor en the last one is connected to a press-button on the back of the robot-frame-work. I can use this one for start or stopping the robot in the program for example. After testing the hole setup it is time to program some stuff in 4004-assembly to finish the Robot-game’s.

First I must go to describe very good the goal of the game for myself.

Halfway the Retrochallenge 2016/10 and still a lot of things to do. Let’s GO !!

 

Running 4004 on 736 kHz

Last day’s I have work on the speed of the Intel 4004 microprocessor. In the Propeller assembly program I have do a lot of tuning and debugging and now I run at a clock speed of the 4004 processor of 736 kHz. This is very nice. Also I have test the I/O at this speed. It work’s !!

Now I go to build my 4004 system on a robot car.

Debug the Assembly program

Last months I have write some program’s for the 4004 system to emulate a ROM by a Propellerchip. I write these emulation program’s in the SPIN  language for the Propellerchip. This  SPIN program work’s fine but is relative slow. I use the Propeller olso for the clock for the 4004 and my maximum clock speed in the SPIN language is around 30 kHz. But the original speed of the 4004 is 740 kHz so I want to speedup my clock. I decide to rewrite the emulation program for the Propellerchip in Assembly.

This give me a lot of trouble. I am not very familiar with writing program’s in assembly but I don’t give up. The whole weekend I spend a lot of time to write and debug my assembly program.

20161009_debugI use a ZIF-socket with some resistor’s, to use as voltage-dividers, to bring down the 15 Volt for the 4004 down to 5 Volt, to measure the signal level’s with a logic analyser.

20161010_a_debug_byte_shift

After some very long debug-session’s I have the 4004 processor working with a clockspeed of 300 kHz. This is just the beginning. It work’s and more speed come’s later. My goal is to work with a speed of at least 600 kHz.

For this moment I am very happy, a littele [-NOP and jump to zero-] program works good with the assembly program for the ROM emulation. Now I have to write a program for the 4004 to use the I/O to read from the 4001 and write to the 4002.

This challenge give me a lot off energy.