Sunday, December 6, 2009

What Is Difference Between Cold Sore & Impetigo?

H1-OS: Housing Programs in Memory

times to start writing an operating system (H1-OS) for Heritage / 1 are far yet, but peek at the issue now has served me from design to ensure proper hardware support. For example, thinking about how an operating system would be to host various programs in memory, I have come to understand the need to include "relative addressing" in the design of the CPU instruction set. ON ADDRESSING



The program counter (PC) Heritage / 1 is designed to increase in a unit (PC = PC + 1), loaded with a given address (PC = ADDR), or to add your content under a given operation (PC = PC + OFFSET). This corresponds to the addressing modes: implicit, direct and on respectively.

A program that uses only relative jumps easily be located anywhere within the memory as the program does not care "where to jump," but "how far", as illustrated in the following example.

 
400 mvi d, 1000; variable points to 402 in 1000
ldx a, d; read variable (indirect) 403
jr 5, 5-way jumps forward
...
408; the jump occurrirá this direction.

If this segment of the program is loaded into an address other than 400, the jump will still work well, which was the purpose. However, we can not say the same if we place the variable in a different direction to 1000.

Unfortunately (and for reasons of economy) I'm just implementing relative addressing specifically for PC and jump instructions. The solution for the relocation of variables comes from the way in which H1-OS programs loaded into memory and how these are structured.

ANATOMY OF A PROGRAM IN HERITAGE / 1

recycle programs in "storage" (V-TAPE) as files. These consist of a label (LABEL), a body that contains the executable code (Code) and an end of file character (EOF).

The label contains information about the program, including the requirements of your data area, ie the size of the stack. When loaded into memory, the operating system (H1-OS) hosting the code on the first available memory and another portion reserved for data area (Stack) as illustrated below.



As this is not the only program coexisting in memory, H1-OS maintains a table of all loaded programs, saving her address Stack the Code and allocated. Before passing control to the program, load the SP value (SP '= OS_VAR + TAMAÑO_ASIGNADO_AL_STACK).

When the program goes into execution, the SP register is pointed to the bottom of the stack, the first thing the program does the task of initialization is organized. Take for example (see figure) that this program uses two global variables: an integer of 16 bits called N, and a 32-bit dual-called X. To allocate memory for both variables, the program runs three steps above SP (SP = SP '-3). From that point, the stack itself is "above" the global variables of the program. The program then accesses the variables as "Distances" on the current position of SP. The following will

example illustrates the above.

 
; Reservation memory for global variables.
dec sp; Reserved memory for N

dec sp dec sp; Reserved
X memory ...
, Lee N variable A:
mov a, sp; A = SP
adi a, 3, A = A + 3
mov d, a, D = A (ie, SP + 3) ldx
a, d A = [D] (ie, variable N)

A program typically calls functions using the CALL statement endorsed. When this happens, both F PC automatically be saved to the stack (just above the area variable because there was where he was positioned.) The code for the SP move in turn to create your own data area as did the main program and accessed the same way. When the function returns, this area will be released queando SP in its original position, ie just above the global variables. This process can be repeated recursively until the size of the stack permits.

multiple instances

H1-OS allows multiple instances of programs, namely the existence of multiple copies of the same program running simultaneously in memory. What we have done so far (to load a program into memory) is not is to create a first "instance" of it. To create a second, do not bring back the code from V-TAPE but only create a second stack for the same code. Thus, both instances use the same copy of the code but will have separate data areas, one for each instance.

The multiple instantiation is vital for the Multi-Processing, as explained in the next article.

Saturday, December 5, 2009

Philippines Driving License Template



When Heritage / 1 exists as hardware (May 2010), it's time to start writing software for it. But how software is written for a proprietary platform? Because conventional generating system development Code for a specific operating system and / or specific CPU, not for a newborn and unique environment that no one has heard.

An alternative is to write everything down into machine code, but in this way can not go very far. Another option is to write one of their own development tools, but this is a project in itself, much more complex than the software to be written later.

Fortunately there are tools for this task, both commercial and Open Source, and here we get into the world of assemblers "Forward" (retargetable) and the task of "carrying" a source platform to another.

Assume that we have solved that problem, so now we can write assembly code and generate binary files that the CPU Heritage / 1 to run. This development we do using a PC, of \u200b\u200bcourse, the resulting binary files are forwarded to the memory of Heritage / 1 ... somehow. A BRAIN

initially empty

One of my premises for the design of Heritage / 1 has been that the Software is something "outside" the computer. This implies that H1 has no memory ROM or other medium for storing a program started. When the computer boots up, nothing happens beyond a hardware reset, the computer wakes with zero intelligence.

The software resides as in "storage" (possibly V-TAPES) but to deliver it to memory a program is needed to start or "Loader" (magazine). This program is really small and goes through the console, word for word, bit by bit (it is the task of the operator every morning to his arrival in the calculation). Once into the loader, the operator presses the START button with which the CPU starts to execute. And running, the Loader is responsible for loading the OS from a V-TAPE previously placed in your reader. With the operating system loaded and running, Heritage / 1 have won the necessary intelligence to begin his work useful.

FIRST STEP: BATCH PROCESSING

Hopefully tezón and patience, an operating system itself will appear in due course. But there will be an initial period of experimentation, of course, where all my programs will be entered directly into memory, bit by bit, using the Console. In these circumstances I shall create my access to "storage" and / or (maybe) to a serial port in order to provide a pathway for entry into large software memory from an external medium such as a PC or a V-TAPE. Once this foundation raised, I will be able to build a software system more or less serious.
development
My plan is to make Heritage / 1 cross staggered certain "historical stages" in terms of mode of operation is concerned.

History teaches us that for a decade (1950s) computers worked only in batch mode. This refers to the ability of a computer to run several programs in cascade, one after another, without human intervention between the end of one and pulled the next.

Today we seem to "batch" is the opposite of "interactive", but at the time of its introduction (early 50s), "batch processing" represented an alternative to having to stop the machine every time a program to end and taking the time to prepare for the next program. The batch process achieved catkins overall efficiency of the machine to minimize the cost of downtime CPU. A computer like

Heritage / 1 could serve in a data center in those days, operating in batch mode. Instead of users, professional traders would, and instead of operating system, a simple program "Monitor" charge to read the specifications of the programs to run and manage their load and run automatically in response to priorities and resource availability.

True Heritage / 1 will therefore have the "Batch Monitor" and operate in batch mode for some time. Will this be the time to refine programming techniques and (no doubt) make adjustments to the hardware of the CPU and peripherals.

Then comes a stage much more interesting: Multiprocessing, but more of that in a separate article, given the size of the item.

Saturday, March 21, 2009

Denise Milani Wikipedia Denise Milani Soru?



NOTE: UCJC not responsible for the content posted on various websites and blogs published by the students