| Forum Home | ||||
| Press F1 | ||||
| Thread ID: 40019 | 2003-11-25 14:00:00 | My program is finally finished! | DangerousDave (697) | Press F1 |
| Post ID | Timestamp | Content | User | ||
| 194582 | 2003-11-25 14:00:00 | Hello all, NCEA exams are over, so i've started programming again (yah for all night programming sessions, this was posted at about 2 . 50am) Some of you may have remembered a previous post with details about my program, ComEmm, well i've finally finished it with a dramatic makeover (tm)! It is now known as Oolong 1 . 0 and the UI has changed but should still be fairly intuitive . It has save/load functions which were a pain to implement but very much worth it . A new instruction has been added, a comment function for documentation (syntax: !!), although it is probably useless its a standard feature for most languages . For those who don't know, Oolong is a program designed to emulate a very basic computer . There are memory addresses and a program counter for instructions . An instruction set is created out of assembly like instructions and loaded into the program counter, where it is prosessed in a way that the user can see exactly what is happening inside the computers memory . Those who know programming, specifically assembly instructions should understand this pretty well, those who don't can probably get the hang of it pretty quick (an understanding of binary counting is needed) . There is a help file to get you started . Anyways enough ramble, here's a link: geocities . com/dangerousdavefoobaz/Oolong1 . zip Any comments, problems or just general replies would be great! I am looking at expanding the program as well, as mentioned in a post previously by rsnic i believe, i want to add a stack and registers . . . but this is how i planned 1 . 0 to be as, so maybe version 1 . 5 will see these added . Note: this program is not designed for performance applications, it has been made to show how at a very basic level, computers work . I'm off to sleep, thanks in advance - David |
DangerousDave (697) | ||
| 194583 | 2003-11-26 00:18:00 | any replies please??? - David |
DangerousDave (697) | ||
| 194584 | 2003-11-26 00:24:00 | Looks good. Just what exactly would one use that program for? I'm still a bit confused. Maybe my lack of programming knowledge has something to do with it.. |
somebody (208) | ||
| 194585 | 2003-11-26 00:38:00 | It has been made as a teaching device how programming and memory access etc works at the lowest level, it is not meant to make 'real' programs or anything, just small to medium sized programs on instruction coding . - David |
DangerousDave (697) | ||
| 194586 | 2003-11-26 01:05:00 | Oh ok. | somebody (208) | ||
| 194587 | 2003-11-26 01:17:00 | I have only had time to have a quick look but I like what i see. I hope to have a proper play with it tomorrow. |
robsonde (120) | ||
| 194588 | 2003-11-26 02:34:00 | BUG: Not releasing memory when program is closed. Feature: Can the temp file go into the temp directory instead of creating it's own dumping ground? |
Kame (312) | ||
| 194589 | 2003-11-26 02:35:00 | Oh and resizable window | Kame (312) | ||
| 194590 | 2003-11-26 02:35:00 | Looks like I might have to crank out my notes from CS111 on assembly programming I'm picking. | -=JM=- (16) | ||
| 194591 | 2003-11-26 02:49:00 | Just made a new program, it multiplies two numbers and prints results . In doing this program, i've figured out a few changes that still need to be made: - Make it easier to delete/insert instructions, especially when you have made a mistake at the top of the list - Implement some form of error checking so that files can be edited in a text editors - Storing general numbers from in the code, i . e . storing the number 1 in a memory address without having to enter it - Change binary counting in the Instruction Set to make it easier to enter instructions . Well heres the new code for something that multiplies two numbers: 000000 - ENT 000001 - STO 000000 000010 - STO 000011 000011 - ENT 000100 - STO 000001 !! this is needed to enter 1 !! this takes one away from !! number so that it doesn't !! multiply once too many . . !! (finishes at 0) 000101 - ENT 000110 - STO 000010 000111 - RET 000001 001000 - SUB 000010 001001 - STO 000001 !! THis is where multiplication loop starts 001010 - RET 000000 001011 - ADD 000011 001100 - STO 000011 001101 - RET 000001 001110 - SUB 000010 001111 - STO 000001 !! If loop counter is zero then !! it will jump out to print results !! otherwise jmp back to top of !! loop 010000 - JM0 010010 010001 - JMP 001010 !! end of loop 010010 - RET 000011 010011 - PRI 010100 - END *phew* the whole program basically adds the number wanted to be multiplied, subtracting one from the program counter each time until it is zero . . . Try and enjoy - David |
DangerousDave (697) | ||
| 1 | |||||