News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
N

Confused with terms!

Started by norecess, 12:47, 03 July 11

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

norecess

Hi,


I'm a bit confused those days with the following terms..


1) what is precisely the firmware ? is it the part of code copied from &A700 - &C000, copied in RAM when Basic ROM got initialized ?
2) I can read through this forum, sometimes, BIOS, BDOS, HDOS, .. this is confusing me. What are they exactly ?


That's all. Don't hesitate to complete this list with your own terms if you feel the need  :)

arnoldemu

Quote from: norecess on 12:47, 03 July 11
Hi,


I'm a bit confused those days with the following terms..


1) what is precisely the firmware ? is it the part of code copied from &A700 - &C000, copied in RAM when Basic ROM got initialized ?
2) I can read through this forum, sometimes, BIOS, BDOS, HDOS, .. this is confusing me. What are they exactly ?


That's all. Don't hesitate to complete this list with your own terms if you feel the need  :)

1) I consider the firmware to be the functions that are provided by the Operating System (OS) Rom. The Operating system ROM is the one that is readable between &0000-&3fff if it is enabled. The Operating System ROM also performs the setup of the hardware when the CPC starts.

The firmware jumpblock is the functions between &B900 and approx &BF00.
The firmware also allocates some ram around &b800 for it's own data.
The firmware also uses the ram between &0000-&0040.

The default stack is &BF80-&C000.

&A700 - ?? (&A900 or so). Is the AMSDOS ROM's work area. This can move if there are roms above 8 installed.
Basic also uses some data around &B500 or so.

2) My understanding of BIOS.

The BIOS are the 8 or so functions that the disc rom provides for reading/writing sectors, formatting, moving track.

It is also part of CP/M. BIOS for the screen, printer, serial, keyboard.
BDOS is part of CP/M and provides loads of functions that cpm programs can use.

(Part of CP/M 2.2 BIOS is within the AMSDOS ROM).

HDOS - this is another OS for CPC, runs under firmware/basic/amsdos and can use hard drives.

My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

norecess

QuoteThe Operating system ROM is the one that is readable between &0000-&3fff if it is enabled. The Operating System ROM also performs the setup of the hardware when the CPC starts.

So, is it done by the "built-in ROM" (ROM 0) ? Which is, by default, the BASIC ROM ?

Thank you for the other term clarifications. :)

arnoldemu

Quote from: norecess on 13:08, 03 July 11

So, is it done by the "built-in ROM" (ROM 0) ? Which is, by default, the BASIC ROM ?

Thank you for the other term clarifications. :)
Another thing:  The CPC has 32k internal ROM (lower 16384 is OS, upper 16384 is BASIC). On Plus this is in the cartridge.

The OS sets up  the CRTC and 8255 port I/O state, colours and mode and it's jumpblocks. It also prints the "Amstrad" and "Locomotive" copyright message. The firmware handles interrupts, keyboard, sound.. well everything.

The OS also initialises all roms starting at 15 (7 on cpc464) going back down to 0.

When BASIC starts up, it takes control, it displays "Ready" and it blanks the main part of memory (not jumpblocks).

BASIC heavily uses the firmware functions to do it's work, and when the cursor appears it's using the firmware "EDIT" function to read your input.

AMSDOS patches the CAS functions with it's own, and internally it uses the BIOS functions for reading/writing the disc.

EDIT: The "built in rom 0" is actually the 2nd half of the internal 32k rom.
My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

mr_lou

To me, firmware = software that is "hardcoded".

For example, nowadays all cellphones comes with an Operating System such as iOS, Android or Windows. That's called software.
But the older phones also had an Operating System. It was just called firmware, because it was a hardcoded thing that couldn't be changed.

So in short. Firmware = Software you can't access as such.

steve

With the CPC, firmware meant the Operating system, but before that firmware was a general term for software contained in a read only memory chip. usually a BIOS or Monitor program.

The name firmware was created because the software was built into the machine like hardware, but was not hardware in the sense of hard-wired logic, if the OS were to be implemented in hardware, it would run a LOT faster.

Phi2x

#6
.

MacDeath

#7
Nice but he should definitely manage to find a good old 4/3sized monitor, be it VGA and Plamsa/LCD.

I am to get my hand on one, my darling girl do have one, just waiting she get rid of her PC and give me the monitor.

I mean, Mode0 is already large horizontally, on a 16/9-16/10 screen it is even worse.

Anyway the "normal" 320x200 is supposed to be 16/10... I don't understand why the picture despite being obviously resized (there is no border on the sides in 320x200/160x200 as I see there...) still look that much larger/wider.

The vertical setting must not be that good/well set... or is it ?

The problem is that having a properly resized 16/10 full screen (no border then) should be good, but problem is that you then have problem with the few "overscan/fullscreen/resized" CPC softwares...

Arkanoid per example.

Phi2x

#8
.

norecess

QuoteThe vertical setting must not be that good/well set... or is it ?


@MacDeath ..what did you do with "my" thread ? anyway I got my answers so I don't care  8)

Bryce

@Macdeath: Do what I did: Buy her a new Monitor, then you have the 4:3 Monitor.

Bryce.

OCT

Quote from: Bryce on 17:21, 03 July 11
@Macdeath: Do what I did: Buy her a new Monitor, then you have the 4:3 Monitor.
How would anyone ever know what to buy for their girl without the help of this forum? ;)
http://www.cpcwiki.eu/forum/index.php?topic=1831.msg23903#msg23903

AMSDOS

If you follow my assembly routines you'll find they depend on one Firmware routine or another, though the easiest way to think about it, is to think about all those wonderful commands in BASIC which can conveniently be used within an Assembly program. So BASIC commands like CLS, MOVE, DRAW, PLOT, DRAWR, MOVER, SYMBOL, SYMBOL AFTER, MODE for example, all have what is a firmware equivalent - sometimes they can be assessed by BASIC (e.g. CALL &BD19 which is the Firmware equivalent of FRAME as found in BASIC 1.1), usually if they require values like things like MOVE, DRAW & PLOT would, then they need to be poked into memory using M/C loader (or an Assembler in ROM) with Index Registers pointing to certain Registers that would be used by that specific Firmware routine.

One has to consider though that in addition to some of the nice statements Locomotive BASIC has, the Firmware also has additional ones not found in BASIC which is why if you go though some Type-ins in AA for example you'll find on occassion programs which add extra commands to BASIC in the form of RSXes (Resident System Extensions).

In commercial games terms, the firmware is typically found in AMSOFT games, though some early games I've notice they make do without and in later games, software companies had their own routines when dealing with graphics, sound & playability which replaced the Firmware.

In CP/M firmware is also accessible in CP/M 2.2 it's a simple call to Enter Firmware (which resides at &BE9B) which then immediately follows the Firmware Routine (in it's 2-byte address state), prior to that call to ENTER FIRMWARE whatever information (if any) that firmware feature requires, would be placed into the appropriate registers. In CP/M Plus it's still possible to Enter the Firmware, though it involves a more complicated routine like this:

USERF: PUSH HL
PUSH DE
LD HL,(1)
LD DE,57h
ADD HL,DE
POP DE
EX (SP),HL
RET


which I presume is different because of the way CP/M Plus handles itself in memory (cause it resides in the extra 64k on a machine with 128k or more memory). The classic example of a program in CP/M which uses the Firmware (particularly in CP/M 2.2) is Dr. Logo, though a number of programs which are on the System discs have been designed to have specific CPC programs on them cause they depend on firmware routines.
* Using the old Amstrad Languages :D   * with the Firmware :P
* I also like to problem solve code in BASIC :)   * And type-in Type-Ins! :D

Home Computing Weekly Programs
Popular Computing Weekly Programs
Your Computer Programs
Updated Other Program Links on Profile Page (Update April 16/15 phew!)
Programs for Turbo Pascal 3

arnoldemu

BDOS in CPM:
http://www.seasip.demon.co.uk/Cpm/bdos.html

BIOS in CPM:
http://www.seasip.demon.co.uk/Cpm/bios.html

AMSDOS & BIOS:

Here it mentions that AMSDOS uses CPM BIOS. CPM is not really active, but they use the same functions.
http://www.cpctech.org.uk/docs/manual/s968se19.pdf




My games. My Games
My website with coding examples: Unofficial Amstrad WWW Resource

MacDeath

#14
Sorry I screwed your topic, anyway the guy answered me at youtube and his monitor is 640x480... the 480 mess it all.

OCT

Quote from: MacDeath on 10:14, 04 July 11
Sorry I screwed your topic, anyway the guy answered me iat youtuben his monitor is 640x480... the 480 mess it all.
Sure enough you should get him to join this forum. His design ought to be out in the open.

MacDeath

Quoteutilisation des composants existants suivant :
z80 (T80 de opencores)
puce audio yamaha (fpgaarcade)
ppi (cpcwiki)
pwm (fpga4fun)
gatearray grâce aux articles de Quasar, grimware, cpcwiki et bien sûr cpcrulez.
ROM de l'émulateur JavaCPC
He already comes here obviously, but not sure he post in the forum.

Anyway his thing would clearly make a good page in the wiki.

OCT

#17
Quote from: MacDeath on 22:38, 04 July 11
He already comes here obviously, but not sure he post in the forum.
Now he does: http://www.cpcwiki.eu/forum/index.php?topic=1153.msg26179#msg26179 Bienvenue freemac! :)
So to end the 8-bit wars once and for all (with CPCs built into joysticks and handbags too), we'll only have to get him to marry Jeri. ;)

Powered by SMFPacks Menu Editor Mod