This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Topics - Keoni29
2
« on: January 31, 2015, 06:09:08 pm »
I made music again xpost from CW: I made this song after listening to a bunch of monstercat podcasts. I think it turned out pretty good. There is an easter egg hidden in the song somewhere. Can you find it?
Download the song here: http://8times8.eeems.me:81/public/Music/tallgrass.mp3
3
« on: January 11, 2015, 12:50:53 pm »
Project page: http://8times8.eeems.me:81/project/software/visicom/The Visicom is a textphone for deaf people from the 80's. It has a keyboard, video output and built in modem. You could use it as a textphone using the textphone protocol or as a teletype (tty) using the built in modem. I bought this at a thriftshop because it looked interesting. I decided to crack it open and find out exactly what makes it tick. Detailed documentation can be found on my project page. Guts Left: Video output. You're greeted with a dutch menu. This image shows B&W video, but there is a switch inside the device which enables 8 color video. Right: Rom reader device I built to dump the firmware. The disassembly can be found here: http://8times8.eeems.me:81/project/software/visicom/disassembly.phpI found an open-source disassembler written in Golang for the tms7001 microcontroller that is inside the visicom, but it was really buggy. I managed to fix a lot of the bugs. I published the disassembled rom on my website. Using javascript I made all addresses operands links so you can jump by clicking them. Rom disassembly can be found here: http://8times8.eeems.me:81/project/software/visicom/#h2I am now able to write my own code for the device. So far I can:- Set up the serial clock generator. - Control the MCU's internal I/O port. - Use interrupts - Read and write data over serial (using the ACIA) - Read keystrokes from the keyboard I solved some interrupt problems by looking at the disassembly. It seems like the people who designed this thing ran into the same problems as I did Next I want to output characters on the screen.
4
« on: December 20, 2014, 07:23:36 pm »
I designed and built a device that can read paper tape with colored bands on it. The order in which the colors are read determine the bit pattern that comes out. A transition from red to green results in a 0 for example. Source can be found here: https://github.com/keoni29/ColorData
5
« on: November 25, 2014, 10:37:24 am »
For some reason interrupts don't work the way they used to (or I am just being stupid) This code is supposed to increment a number on screen once every second, but it doesn't. It just increments T once and then never does the ISR again. Why is that?
.ISR fnInt(msc, 6) 0->T FnOn ClrHome Repeat getkey(15) Output(8,0,T/108>Dec End LnReg Return
Lbl MSC T++ Return
6
« on: November 21, 2014, 01:30:07 pm »
I am writing a bot that will allow IRC users to take control of my eZ8 computer. The eZ8 computer will be hooked up to the serial port on my host machine and a node.js script will take care of relaying data from IRC to the eZ8. Follow the progress here: https://github.com/keoni29/ez8bot
7
« on: November 18, 2014, 05:48:46 pm »
Has anyone found a way to produce decent soundeffects using interrupts?
8
« on: November 12, 2014, 02:23:40 pm »
What is/are your favorite track(s)?
9
« on: October 17, 2014, 03:39:55 am »
I made a test program that generates variable size bmp images. When I generate images with widths under 11 or so the images have weird colors in them at the top.
/* Create 24 bit Bitmap image. Date: 16 oct 2014 Version: 1 Error: Weird colors when making images smaller than ~11 pixels wide. */
#include <stdio.h>
/* Write little-endian 32 bit value to file. */ void fputlong(int val, FILE *fp){ fputc((char)(val & 0xFF), fp); fputc((char)((val >> 8 )& 0xFF), fp); fputc((char)((val >> 16) & 0xFF), fp); fputc((char)(val >> 24), fp); }
/* argv[1] = char *src; argv[2] = char *dst; */ int main (int argc, char *argv[]) { FILE *dst; int ch, padding, xx, yy, w, h; char red, green, blue; /* Verify user input */ if (argc < 4) { printf("Error: "); } switch (argc) { case 0: case 1: printf("Missing filename"); break; case 2: printf("Missing image width"); break; case 3: printf("Missing image height"); break; case 4: printf("Missing RED color value"); break; case 5: printf("Missing GREEN color value"); break; case 6: printf("Missing BLUE color value"); } if (argc < 4) { printf("\nUsage: bmptest file.bmp width height r(0-255) g(0-255) b(0-255)\n"); return 0; } w = atoi(argv[2]); h = atoi(argv[3]); red = (char)atoi(argv[4]); green = (char)atoi(argv[5]); blue = (char)atoi(argv[6]);
dst = fopen(argv[1], "wb+");
/* Write file header */ fputc('B', dst); // File identifier fputc('M', dst); // padding = (4 - ((w * 3) % 4))% 4; fputlong(w * h * 3 + 50 + (padding * h), dst); // Filesize fputlong(0x00, dst); // Reserved 4 bytes. fputlong(0x036, dst); // Offset fputlong((int)40,dst); fputlong(w, dst); // Width of bitmap fputlong(h, dst); // Height of bitmap fputc(0x01, dst); // Number of color planes fputc(0x00, dst); fputc(24, dst); // Number of bits per pixel fputc(0x00, dst); fputlong(0x00, dst); // Compression method: none fputlong(0x00, dst); // Image size. Dummy 0 fputlong(0x2700, dst); // Horizontal resolution fputlong(0x2700, dst); // Vertical resolution fputlong(0x00, dst); // Number of colors in palette (Default 2^n) fputlong(0x00, dst); // All colors are equally important for (yy = 0; yy < h; yy ++) { for (xx = 0; xx < w; xx ++) { fputc(blue, dst); fputc(green, dst); fputc(red, dst); } for (xx = 0; xx < padding; xx ++) { fputc(0x00, dst); } } printf("Padding = %d; Filesize = %d\n", padding , w * h * 3 + 50 + (padding * h)); fclose(dst); return 0; } Is this a problem with my code or with the decoder? My bad. Padding should be at the end of every row of pixels >.<
11
« on: September 22, 2014, 05:11:38 pm »
The ipv4 version of the internet counts 2^32 individual addresses. I decided to ping all of them, wait for a response and if I get one: log that to a file. I wrote a script that does this for me. If I run 256 instances of this script simultaneously I can ping the whole internet in about 10 days. Just some logfiles are not super interesting to watch, but once you convert them into an image it becomes a lot more interesting. This is a test image I generated using the data from the 83.xx.xx.xx range. Each pixel represents a block of 256 ip addresses. The color is determined by how many devices responded in the block. Pinged all addresses in the 83.xx.xx.xx range:It takes about 1 hour to generate a picture like this. I will release the source once it's done
12
« on: September 10, 2014, 12:12:44 pm »
Original blog post:http://8times8.eeems.me:81/blog/index.php?thread=7CBS6000 stands for Cartridge Based System 6000 (KB) Name is subject to change. I have been working on this computer for a couple of days now. Today I added the I/O board with a seven segment display on it. It is driven by a latch, so I could even put letters on it. Specs: - Cpu: MOS6510 @1MHz (base 2MHz divided /2)
- Ram: 128KB
- Rom: 8KB
- I/O: UART, FSK modem (also for loading from casette tape), printer port, 6 digit led display
13
« on: September 05, 2014, 05:44:26 pm »
Should everyone learn how to code? Everyone walks around with computers in their pockets, but nobody knows what makes these devices tick. People don't know where software comes from anymore. When something has blinky lights and beepy sounds it's cool, but if it calculates the square root of pi in a 20 byte program it's... interesting I guess?
What are your opinions?
14
« on: September 05, 2014, 11:26:56 am »
Share your epic workarounds here. Problem: Getting code from my pc to a 6502 8 bit computer I made. Workaround: - Assemble code
- Hex-edit the resulting binary into a rom image
- Send the rom image to my server via filezilla
- Download the rom image in a virtual machine running windows XP
- Upload the rom to an atari2600 cartridge using my cartreader software
- Take the cartridge out of the reader and put it in the 6502 computer
- Turn on the computer and see if it works
- Repeat this a bunch of times until there are no more bugs.
Once the hardware bugs are ironed out I could just write an emulator for the thing and debug using that, but for now this method works.
15
« on: August 30, 2014, 12:51:50 pm »
Building a giant rugged laptop. Specs: Celeron D cpu, 2GB ram, Dual boot WinXP Xubuntu on 200GB hdd Most importantly: full keyboard. I intend to use this thing outdoors. Image is clicky
|