AL YAMANI

AL YAMANI

(17 comments, 48 posts)

Computer Science student @ SQU, Oman

Home page: http://www.doitmyway.net

Posts by AL YAMANI
du3aa_pic2_reasonably_small

Du3a (iPhone)

0

Description

Du3a app allow you to interact with Du3a twitter bot by reading and sending Du3a tweets.

Link: Du3a

Default

Animal Speed (iPhone/IPad)

0

Description

Animal Speed app allows you to compare your motion speed to many well-known animals max speeds.
This app makes it clear for you weather you are will be able to beat such an animal in real life running race.
Do not Ever drive while using this app. it can make you loss your concentration.
Some Extra creatures have been added to allow extended comparisons.

Link:

Animal Speed

Animal Speed HD

 

Available List:

Swift bird
Cheetah
Pronghorn antelope
Lion
Horse
Elk
Gray fox
Zebra
Rabbit
Giraffe
Cat
Human
Elephant
Six-lined race runner
Squirrel
Chicken
Mouse
Spider
Garden snail
Stone

SMSLib throws Exception at readMessagesPDU

0

Hi all,


while working on a simple SMS receiver project using Huawei modem, i got this Errors:

Exception in thread "SMSLib-AsyncMessageProcessor : " java.lang.StringIndexOutOfBoundsException: String index out of range: -12
at java.lang.String.substring(String.java:1937)
at org.smslib.modem.ModemGateway.readMessagesPDU(ModemGateway.java:546)
at org.smslib.modem.ModemGateway.readMessages(ModemGateway.java:208)
at org.smslib.modem.AModemDriver$AsyncMessageProcessor.run(AModemDriver.java:878)

westernunion new york class=”spacer_” />

i tried my best to get rid of it, but the luck was not with me. so, i decided to go to the brute force method :)


i extracted the SMSLib source into my project folder. then i started the project.

i found that the problem occurred  in file called ModemGateway.java at line 541:

memIndex = Integer.parseInt(line.substring(i + 1, j).trim());

but  in fact the problem was not in the line itself, it was a problem with the variable (line). by looking above line 541 we will found two (if) statements as following:

if (line.length() < = 0 || line.equalsIgnoreCase("OK")) break;
if (line.length() <= 0 || line.equalsIgnoreCase("ERROR")) break;

those two statements deals with non required lines. i used the Debugger in order to trace possible (line) values and i got the following possibilities:

CMGL: 0,1,,20
CMS ERROR: 321
OK
Error

it  is pretty  clear that the case “CMS ERROR: 321″ is the one that causes the problem since it has not been handled. so i added the following line to the code:

if (line.length() < = 0 || line.contains("CMS ERROR:")) break;

i think that this solves the problem for the time being

all the best

SMSLib INSTALLER (.Net/Java)

6

buy Ampicillin online Drugstore cheap style=”font-size: medium;”>Hi there,

I started to work on some SMS related projects. SMSLib is the library that i am using for sending and receiving SMS messages via my Huawei GSM modem. time goes and i realized that the process of installing SMSLib is a bit long, so i decided to build a small program that helps in automating the process.


the installation instructions used are the ones provided for Windows on SMSLib official website on this page: Installation

the installer is tested on windows 7. it is written using Java. after running the program it will automatically detect the JRE_HOME. Press start to copy the files to their final destination. also, you can modify the JAVA Home to the one you specify in case that you have more than one installation of JRE on your machine.

Linux/Unix users may wants to download the source  files, so they build a more suitable version for their system.


Files to be copied:

    westernunion kentucky style=”text-align: justify;”> 

  • comm.jar                          —–>  lib/ext/  —–>   options 1 and 3
  • win32com.dll                   —–>  bin/       —–>    options 1 and 3
  • javax.comm.properties   —–>  lib/         —–>   options 1 and 3
  • commons-net-2.0.jar      —–>  lib/ext/  —–>    all options
  • jsmpp-2.1.0.jar                —–>  lib/ext/   —–>   all options
  • log4j-1.2.16.jar                —–>  lib/ext/  —–>    all options
  • RXTXcomm.jar                 —–>  lib/ext/  —–>    options 2 and 3
  • rxtxParallel.dll                  —–>  bin/       —–>    options 2 and 3
  • rxtxSerial.dll                     —–>  bin/       —–>    options 2 and 3


Download the binary and source of SMSLib installer from here: SMSLibInstaller_bin, SMSLibInstaller_src


all the best :)

Read feedburner awareness api using php simplexml_load_file()

1

hi  cheap Drugstore all,

this is a simple php script to retrieve and read feedburner awareness xml file.

it is based on simplexml_load_file()  function.

all what  you need to do is changing the $title variable. all the best.

< ?php
$title="Dimw";
$apicall="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=".$title;
$xml = simplexml_load_file($apicall);
echo "URI: ".$xml->feed['uri'];
echo "DATE: ".$xml->feed->entry['date'];
echo "CIRCULATION: ".$xml->feed->entry['circulation'];
echo "HITS: ".$xml->feed->entry['hits'];
echo "REACH: ".$xml->feed->entry['reach'];
?>


fedora 12: Yum Cannot retrieve repomd.xml

2

it seems that some fedora 12 users are facing an error regarding fedora repository. possible alert is:

Error: Cannot retrieve repository metadata (repomd.xml) for repository: fedora. Please verify its path and try again


i tried my best to find a solution, and i modified .repo files for many times. finally i got the correct ones and i want to share them with all of you.


this zipped file contains repo files for fedora 12: 32bit and 64bit: fedora_repo_32_64


#fedora-32.repo
 
 [fedora]
 
 name=Fedora 12 - i386
 
 failovermethod=priority
 
 #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/12/Everything/i386/os/
 
 mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-12&arch=i386
 
 enabled=1
 
 metadata_expire=7d
 
 gpgcheck=1
 
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386
 
 [fedora-debuginfo]
 
 name=Fedora 12 - i386 - Debug
 
 failovermethod=priority
 
 #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/12/Everything/i386/debug/
 
 mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-debug-12&arch=i386
 
 enabled=0
 
 metadata_expire=7d
 
 gpgcheck=1
 
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386
 
 [fedora-source]
 
 name=Fedora 12 - Source
 
 failovermethod=priority
 
 #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/12/Everything/source/SRPMS/
 
 mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-source-12&arch=i386
 
 enabled=0
 
 metadata_expire=7d
 
 gpgcheck=1
 
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386


#fedora-updates-32.repo
 
 [updates]
 
 name=Fedora 12 - i386 - Updates
 
 failovermethod=priority
 
 #baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/12/i386/
 
 mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-f12&arch=i386
 
 enabled=1
 
 gpgcheck=1
 
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386
 
 [updates-debuginfo]
 
 name=Fedora   12 - i386 - Updates - Debug
 
 failovermethod=priority
 
 #baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/12/i386/debug/
 
 mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f12&arch=i386
 
 enabled=0
 
 gpgcheck=1
 
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386
 
 [updates-source]
 
 name=Fedora 12 - Updates Source
 
 failovermethod=priority
 
 #baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/12/SRPMS/
 
 mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f12&arch=i386
 
 enabled=0
 
 gpgcheck=1
 
 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386
#fedora-64.repo
[fedora]
 
name=Fedora 12 - x86_64
 
failovermethod=priority
 
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/12/Everything/x86_64/os/
 
mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-12&arch=x86_64
 
enabled=1
 
metadata_expire=7d
 
gpgcheck=1
 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64
 
[fedora-debuginfo]
 
name=Fedora 12 - x86_64 - Debug
 
failovermethod=priority
 
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/12/Everything/x86_64/debug/
 
mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-debug-12&arch=x86_64
 
enabled=0
 
metadata_expire=7d
 
gpgcheck=1
 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64
 
[fedora-source]
 
name=Fedora 12 - Source
 
failovermethod=priority
 
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/12/Everything/source/SRPMS/
 
mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-source-12&arch=x86_64
 
enabled=0
 
metadata_expire=7d
 
gpgcheck=1
 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64

 

#fedora-updates-64.repo
 
[updates]
 
name=Fedora 12 - x86_64 - Updates
 
failovermethod=priority
 
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/12/x86_64/
 
mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-f12&arch=x86_64
 
enabled=1
 
gpgcheck=1
 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64
 
[updates-debuginfo]
 
name=Fedora 12 - x86_64 - Updates - Debug
 
failovermethod=priority
 
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/12/x86_64/debug/
 
mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f12&arch=x86_64
 
enabled=0
 
gpgcheck=1
 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64
 
[updates-source]
 
name=Fedora 12 - Updates Source
 
failovermethod=priority
 
#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/12/SRPMS/
 
mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f12&arch=x86_64
 
enabled=0
 
gpgcheck=1
 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64

 

My methods to boost up my programming speed (implementation level)

3

As the time goes, programmers learn new methods and tricks to reduce time needed for starting new projects. Such thing makes programmers focus on problems instead of codes.

Today I am going to share with you some of the methods I am using to reduce time required to build new projects:

  • Practice typing

Keep this in your mind, keystroke equals time. Its unit is a key per second (kps). If your code consists of 1000 characters, then it will cost you 200 seconds (3.3 minutes) at a speed of 5 (kps). You can use typing tutor software to increase your kps.

  • Use lightweight editor/IDE

Do not use heavy editors/IDEs. They will kill your excitement and may make you hate the project or even drop it.

  • Master your preferred editor/IDE

Learn how to utilize all the features included in the editor/IDE you are working with. Memorize most  used shortcuts like copy, past, cut, auto formatting, build, execute, auto complete, etc. such things will save you a lot of keystrokes.

  • Reuse code snippets

If you ever wrote a function, then try to reuse it wherever appropriate. Do not rewrite a code that you already wrote. Also, you should try to search for ready codes at the internet. It is good to archive code snippets, so you can easily found them at anytime you want. I found JCodeBase useful for archiving code snippets.

  • Compact most used functions

Give aliases for most used functions. E.g. in java you can make a function println that encapsulate System.out.println or a function MsgBox that call JOptionPane.showMessageDialog. This will decrease the keystrokes needed and make VB guys fall in love with Java, or maybe  not.

  • Make/reuse templates

Templates, skeletons, samples, whatever you may call them. They are almost done projects where you just need to replace some codes to make them full ready projects. E.g. you can build a nice looking GUI with all needed features (splash screen, menus, buttons, dialogs, input screens) then reuse it for your projects just by adding your new functions. This will reduce the time needed for designing GUIs. In fact, this can be done with all type of projects e.g. you can build a generic multithreaded project that can take any runnables and reuse it for any new multithreaded projects.

  • Solve first, optimize later

Solve problems with the first solution you found. This will allow you to reach next steps faster. After finishing your project, you are free to revisit the code and optimize   it as much as you can.

  • Print is faster than debug

Avoid debugging your code as much as you can. Debuggers are so slow. Instead of it, try to print results before and after critical operations. I am not an anti-debugger guy, but I am trying to avoid there slowness.

  • Do not waste time writing stories

Comments are notes that briefly describe a code. They should be short, so do not use them to tell others about your hobbies and friends. If you insist, you may write pages of comments when the project is done.

This is all what I have for the time being.

All the best.

Web page invoker using java

0

Hi,

as a programmer there are a lot of problems to face. Fortunately, solutions exist no matter how big is the problem. In my case efficiency is not that big deal, so please ignore the algorithms complexity and other geekly stuff :)

The problem that made me write this article is:
We have a folder (A) with more than 1000 sub-folders. Our user is forced to use a web form to submit each folder name. Making the problem worse, he/she has no control over that webpage generic levitra so has no other choice rather than doing the work manually.

Solution:
We will automate the work by building our own software. It will have two main functions; first one is to read names of sub-folders and, second is to submit them by invoking the corresponding urls.

To read the list of folders we will use this code snippet:

 File file=new File("path"); 
 
 File[] flist = file.listFiles();

For invoking the webpage we will use java.net.URL and java.net.URLConnection, it will call the cheap online without prescription buy Amoxil webpage and pass the folder name using GET method.

 u = new URL("http", "localhost", <a href="http://buydiflucancheap.com">diflucan</a>  "/index.php?option="+option);
 
 ur=u.openConnection();
 
 ur.getContent();

Note:
In real environments you may want to add some time controls functions like wait, sleep, etc. such functions will help reducing the load on the web server.

You can download buy cheap Drugstore online Ampicillin the complete java project with php/sql amoxil online files that simulate westernunion florence the real problem levitra vardenafil from this link: url invoker

All the best.

Binary, Octal, Decimal and Hexadecimal converter(Java)

0

I was working on a simple project that simulate CPU registers, where users can use an assembly-like commands to issue some process while watching changes on the virtual CPU registers.

you may visit it using this link: http://www.doitmyway.net/2010/02/21/cpu-registers-simulator-educational-project/

In fact CPU data are in binary, although users may want to read those data in different format. So I implemented a simple Java class to convert numbers from/to binary, octal, decimal and hexadecimal.

There are 6 main functions:

  • decToBin
  • binToDec
  • octToBin
  • binToOct
  • hexToBin
  • binToHex

The other functions are supporting functions or functions based on the main functions, e.g, decToHex is a combination of decToBin and binToHex.

baseConvertor.java

//DoItMyWay.net
//a7med.yamani@gmail.com
//licensed under gpl v3 :)
 
package cpuregsim;
 
public class baseConvertor {
 
    //reverse string, give it "abc" and it will returns "cba"
    public String reverseString(String str) {
        str = str.trim();
        int strl = str.length();
        if (strl &gt; 1) {
            StringBuffer sb = new StringBuffer();
            for (int i = strl - 1; i &gt;= 0; i--) {
                sb.append(str.charAt(i) + "");
            }
            return sb.toString();
        }
        return str;
    }
 
    //convert decimal to hex
    public String decToHex(String dec) {
        return binToHex(decToBin(dec));
    }
 
    //convert decimal to oct
    public String decToOct(String dec) {
        return binToOct(decToBin(dec));
    }
 
    //convert decimal to bin
    public String decToBin(String dec) {
        if (!isDecimal(dec)) {
            return "Invalid input!";
        }
        int val = Integer.parseInt(dec);
        if (val == 0) {
            return "0";
        }
        StringBuffer bin = new StringBuffer();
        for (; val != 1; val = val / 2) {
            bin.append((val % 2) + "");
        }
        bin.append("1");
        return reverseString(bin.toString());
    }
 
    //convert oct to decimal
    public String octToDec(String oct) {
        return binToDec(octToBin(oct));
    }
 
    //convert oct to hex
    public String octToHex(String oct) {
        return binToHex(octToBin(oct));
    }
 
    //convert oct to bin
    public String octToBin(String oct) {
        if (!isOctal(oct)) {
            return "Invalid input!";
        }
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i &lt; oct.length(); i++) {
            if (oct.charAt(i) == '0') {
                sb.append("000");
            } else if (oct.charAt(i) == '1') {
                sb.append("001");
             } else if (oct.charAt(i) == '2') {
                sb.append("010");
            } else if (oct.charAt(i) == '3') {
                sb.append("011");
            } else if (oct.charAt(i) == '4') {
                sb.append("100");
             } else if (oct.charAt(i) == '5') {
                sb.append("101");
            } else if (oct.charAt(i) == '6') {
                sb.append("110");
            } else if (oct.charAt(i) == '7') {
                sb.append("111");
            }
        }
        return Long.parseLong(sb.toString()) + "";
    }
 
    //convert hex to decimal
    public String hexToDec(String hex) {
        return binToDec(hexToBin(hex));
    }
 
    //convert hex to oct
    public String hexToOct(String hex) {
        return binToOct(hexToBin(hex));
    }
 
    //convert hex to bin
    public String hexToBin(String hex) {
        hex = hex.toUpperCase();
        if (!isHexaDecimal(hex)) {
            return "Invalid input!";
        }
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i &lt; hex.length(); i++) {
            if (hex.charAt(i) == '0') {
                sb.append("0000");
            } else if (hex.charAt(i) == '1') {
                sb.append("0001");
            } else if (hex.charAt(i) == '2') {
                sb.append("0010");
            } else if (hex.charAt(i) == '3') {
                sb.append("0011");
            } else if (hex.charAt(i) == '4') {
                sb.append("0100");
            } else if (hex.charAt(i) == '5') {
                sb.append("0101");
            } else if (hex.charAt(i) == '6') {
                sb.append("0110");
            } else if (hex.charAt(i) == '7') {
                sb.append("0111");
            } else if (hex.charAt(i) == '8') {
                sb.append("1000");
            } else if (hex.charAt(i) == '9') {
                sb.append("1001");
            } else if (hex.charAt(i) == 'A') {
                sb.append("1010");
            } else if (hex.charAt(i) == 'B') {
                sb.append("1011");
            } else if (hex.charAt(i) == 'C') {
                sb.append("1100");
            } else if (hex.charAt(i) == 'D') {
                sb.append("1101");
            } else if (hex.charAt(i) == 'E') {
                sb.append("1110");
            } else if (hex.charAt(i) == 'F') {
                sb.append("1111");
            }
        }
        return Long.parseLong(sb.toString()) + "";
    }
 
    //is input represents a Binary number
    public boolean isBinary(String bin) {
        return bin.matches("[0|1]+");
 
    }
 
    //is input represents a Octal number
    public boolean isOctal(String bin) {
        return bin.matches("[0-7]+");
 
    }
 
    //is input represents a Hexadecimal number
    public boolean isHexaDecimal(String bin) {
        return bin.toUpperCase().matches("[0-9|A-F]+");
 
    }
 
    //is input represents a decimal number
    public boolean isDecimal(String bin) {
        return bin.matches("[0-9]+");
 
    }
 
    //convert bin to decimal
    public String binToDec(String bin) {
        if (!isBinary(bin)) {
            return "Invalid input!";
        }
        int nOfDigits = bin.length();
        int val = 0;
        bin = reverseString(bin);
        for (int i = 0; i &lt; nOfDigits; i++) {
            try {
                val = val + Integer.parseInt(bin.charAt(i) + "") * ((int) Math.pow(2, i));
            } catch (NumberFormatException nfe) {
                return "Invalid input!";
            }
        }
        return val + "";
    }
 
    //convert bin to oct
    public String binToOct(String bin) {
        if (!isBinary(bin)) {
            return "Invalid input!";
        }
        String[] tokens = splitByWidth(bin, 3, '0');
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i &lt; tokens.length; i++) {
            if (tokens[i].equals("000")) {
                sb.append("0");
            } else if (tokens[i].equals("001")) {
                sb.append("1");
            } else if (tokens[i].equals("010")) {
                sb.append("2");
            } else if (tokens[i].equals("011")) {
                sb.append("3");
            } else if (tokens[i].equals("100")) {
                sb.append("4");
            } else if (tokens[i].equals("101")) {
                sb.append("5");
            } else if (tokens[i].equals("110")) {
                sb.append("6");
            } else if (tokens[i].equals("111")) {
                sb.append("7");
            }
        }
  return sb.toString();
    }
 
    //convert bin to hex
    public String binToHex(String bin) {
        if (!isBinary(bin)) {
            return "Invalid input!";
        }
        String[] tokens = splitByWidth(bin, 4, '0');
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i &lt; tokens.length; i++) {
            if (tokens[i].equals("0000")) {
                sb.append("0");
            } else if (tokens[i].equals("0001")) {
                sb.append("1");
            } else if (tokens[i].equals("0010")) {
                sb.append("2");
            } else if (tokens[i].equals("0011")) {
                sb.append("3");
            } else if (tokens[i].equals("0100")) {
                sb.append("4");
            } else if (tokens[i].equals("0101")) {
                sb.append("5");
            } else if (tokens[i].equals("0110")) {
                sb.append("6");
            } else if (tokens[i].equals("0111")) {
                sb.append("7");
            } else if (tokens[i].equals("1000")) {
                sb.append("8");
            } else if (tokens[i].equals("1001")) {
                sb.append("9");
            } else if (tokens[i].equals("1010")) {
                sb.append("A");
            } else if (tokens[i].equals("1011")) {
                sb.append("B");
            } else if (tokens[i].equals("1100")) {
                sb.append("C");
            } else if (tokens[i].equals("1101")) {
                sb.append("D");
            } else if (tokens[i].equals("1110")) {
                sb.append("E");
            } else if (tokens[i].equals("1111")) {
                sb.append("F");
            }
        }
        return sb.toString();
    }
 
    //split string by specified width and fill empty spaces
    public String[] splitByWidth(String str, int width, char fillChar) {
        String[] list = null;
        int strLen = str.length();
        StringBuffer sb = new StringBuffer(reverseString(str));
        int mod = strLen % width;
        if (!(mod == 0)) {
            for (int i = 0; i &lt; width - mod; i++) {
                sb.append(fillChar);
            }
        }
        strLen = sb.length();
        list = new String[strLen / width];
        sb = new StringBuffer(reverseString(sb.substring(0)));
        StringBuffer tmp = new StringBuffer();
        int listCounter = 0;
        for (int i = 0; i &lt; strLen; i++) {
            if (i % width == 0 &amp;&amp; i != 0) {
                list[listCounter] = tmp.toString();
                listCounter++;
                tmp = new StringBuffer();
            }
            tmp.append(sb.charAt(i));
        }
        list[listCounter] = tmp.toString();
        listCounter++;
        return list;
    }
}


cpu Registrt Simulator

CPU registers simulator (educational project)

4

Computer organization and assembly course was one of the best courses I took. As a computer scientist it opens the world of imagination in my mind so I started to see bits dancing in front of my eyes :)

3 years passed since that day, I still can remember how our doctor was explaining the effect of each of assembly codes on the CPU registers.  Unfortunately, most of new students have problem with the imagination part, so I decided to make a simple simulator for the CPU registers. Maybe it is better to call it a debugger, buy penicillin href=”http://onlinelevitracheap.net “>buy generic levitra but simulator sounds better for me :)

The following figure shows the levitra buy main window of the simulator

cpu Registrt Simulator
It has 3 parts, the command screen, logs and the data registers.

The command screen is used to issue a simple assembly codes. For the time being there are 3 types of them, comments, mov and add.

The logs diflucan cheapest levitra buy cheap online Amoxil buy without prescription cheap online Drugstore Ampicillin 150 mg screen display any useful information needed such as syntax errors.

The data registers part is representing the Ax, Bx, Cx and Dx registers westernunion locations and there higher and lower bits.

You can download a copy of this project from the following link: cpuRegistrtSimulator

AL YAMANI's RSS Feed
Go to Top