CPCWiki forum

General Category => Programming => Topic started by: norecess on 12:47, 03 July 11

Title: Confused with terms!
Post by: 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  :)
Title: Re: Confused with terms!
Post by: arnoldemu on 13:03, 03 July 11
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.

Title: Re: Confused with terms!
Post by: norecess on 13:08, 03 July 11
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. :)
Title: Re: Confused with terms!
Post by: arnoldemu on 13:17, 03 July 11
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.
Title: Re: Confused with terms!
Post by: mr_lou on 13:57, 03 July 11
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.
Title: Re: Confused with terms!
Post by: steve on 14:04, 03 July 11
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.
Title: Re: Confused with terms!
Post by: Phi2x on 14:28, 03 July 11
.
Title: Re: Confused with terms!
Post by: MacDeath on 14:52, 03 July 11
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.
Title: Re: Confused with terms!
Post by: Phi2x on 15:14, 03 July 11
.
Title: Re: Confused with terms!
Post by: norecess on 17:12, 03 July 11
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)
Title: Re: Confused with terms!
Post by: Bryce on 17:21, 03 July 11
@Macdeath: Do what I did: Buy her a new Monitor, then you have the 4:3 Monitor.

Bryce.
Title: Re: Confused with terms!
Post by: OCT on 22:16, 03 July 11
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 (http://www.cpcwiki.eu/forum/index.php?topic=1831.msg23903#msg23903)
Title: Re: Confused with terms!
Post by: AMSDOS on 05:27, 04 July 11
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.
Title: Re: Confused with terms!
Post by: arnoldemu on 09:46, 04 July 11
BDOS in CPM:
http://www.seasip.demon.co.uk/Cpm/bdos.html (http://www.seasip.demon.co.uk/Cpm/bdos.html)

BIOS in CPM:
http://www.seasip.demon.co.uk/Cpm/bios.html (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 (http://www.cpctech.org.uk/docs/manual/s968se19.pdf)




Title: Re: Confused with terms!
Post by: MacDeath on 10:14, 04 July 11
Sorry I screwed your topic, anyway the guy answered me at youtube and his monitor is 640x480... the 480 mess it all.
Title: FPGA CPC
Post by: OCT on 20:54, 04 July 11
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.
Title: Re: Confused with terms!
Post by: MacDeath on 22:38, 04 July 11
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.
Title: Re: Confused with terms!
Post by: OCT on 18:33, 05 July 11
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 (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