Author Topic: Confused with terms!  (Read 2768 times)

0 Members and 1 Guest are viewing this topic.

norecess

  • Guest
Confused with terms!
« on: 14: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  :)

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.336
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2274
  • Likes Given: 3478
Re: Confused with terms!
« Reply #1 on: 15:03, 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

  • Guest
Re: Confused with terms!
« Reply #2 on: 15:08, 03 July 11 »
Quote
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.

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. :)

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.336
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2274
  • Likes Given: 3478
Re: Confused with terms!
« Reply #3 on: 15:17, 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

Online mr_lou

  • 6128 Plus
  • ******
  • Posts: 3.114
  • Country: dk
    • index.php?action=treasury
    • 8-bit Memoirs - a Blu-ray diskmag-like eBook about the 8-bit era
  • Liked: 1279
  • Likes Given: 2566
Re: Confused with terms!
« Reply #4 on: 15: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.

Offline steve

  • Supporter
  • 6128 Plus
  • *
  • Posts: 1.263
  • Country: gb
  • Liked: 178
  • Likes Given: 210
Re: Confused with terms!
« Reply #5 on: 16: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.

Offline PhilZeVibe

  • 464 Plus
  • *****
  • Posts: 471
  • Country: fr
    • CPCBox - CPC emulator in JavaScript
  • Liked: 165
  • Likes Given: 187
Re: Confused with terms!
« Reply #6 on: 16:28, 03 July 11 »
To me, firmware = software that is "hardcoded".
...
So in short. Firmware = Software you can't access as such.
To add to the confusion, there are also those neat chips called FPGA (Field Programmable Gate Array) ;D
These things really blur the lines between hardware and software!

So you program a FPGA by using software, ok. But how can we define the resulting programmed FPGA?
It's not software, because it's clearly not bytes of code read by a processor inside the FPGA and then executed. There is no code, no firmware, no core, nothing like that at all in a FPGA.
It's not hardware either in the sense of hardwires designed to do a specific task.

So what it is? It's simply a bunch of LUTs, each one of these defining one gate behaviour ???

And you can achieve crazy things with that!
I found videos of a geek emulating a CPC using a FPGA chip:
[youtube]XsUNmBIFprs[/youtube]
« Last Edit: 16:36, 03 July 11 by phi2x »
Atwood's law (2007): "Any application that can be written in JavaScript, will eventually be written in JavaScript."

Offline MacDeath

  • Chaotic post writer and mock-up specialist
  • Supporter
  • 6128 Plus
  • *
  • Posts: 4.060
  • Country: fr
  • Liked: 1167
  • Likes Given: 649
Re: Confused with terms!
« Reply #7 on: 16: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.
« Last Edit: 16:59, 03 July 11 by MacDeath »

Offline PhilZeVibe

  • 464 Plus
  • *****
  • Posts: 471
  • Country: fr
    • CPCBox - CPC emulator in JavaScript
  • Liked: 165
  • Likes Given: 187
Re: Confused with terms!
« Reply #8 on: 17:14, 03 July 11 »
The "Schneider" board manufacturer setting that we can see on the video also made me cringe :D

Seriously man, switch it to Amstrad FFS!
(Freemac2000 is french ;) )
Atwood's law (2007): "Any application that can be written in JavaScript, will eventually be written in JavaScript."

norecess

  • Guest
Re: Confused with terms!
« Reply #9 on: 19:12, 03 July 11 »
Quote
The 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)

Offline Bryce

  • The Hardware Guy.
  • Supporter
  • 6128 Plus
  • *
  • Posts: 11.752
  • Country: wf
  • It's not broken, it just hasn't been fixed yet.
    • index.php?action=treasury
  • Liked: 4229
  • Likes Given: 445
Re: Confused with terms!
« Reply #10 on: 19:21, 03 July 11 »
@Macdeath: Do what I did: Buy her a new Monitor, then you have the 4:3 Monitor.

Bryce.

Offline OCT

  • 464 Plus
  • *****
  • Posts: 349
  • Liked: 42
  • Likes Given: 39
Re: Confused with terms!
« Reply #11 on: 00:16, 04 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

Offline AMSDOS

  • Supporter
  • 6128 Plus
  • *
  • Posts: 3.893
  • Country: au
    • index.php?action=treasury
    • Programs for Turbo Pascal 3
  • Liked: 1104
  • Likes Given: 1871
Re: Confused with terms!
« Reply #12 on: 07: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:
 
Code: [Select]
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

Offline arnoldemu

  • Supporter
  • 6128 Plus
  • *
  • Posts: 5.336
  • Country: gb
    • Unofficial Amstrad WWW Resource
  • Liked: 2274
  • Likes Given: 3478
Re: Confused with terms!
« Reply #13 on: 11:46, 04 July 11 »
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

Offline MacDeath

  • Chaotic post writer and mock-up specialist
  • Supporter
  • 6128 Plus
  • *
  • Posts: 4.060
  • Country: fr
  • Liked: 1167
  • Likes Given: 649
Re: Confused with terms!
« Reply #14 on: 12: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.
« Last Edit: 00:36, 05 July 11 by MacDeath »

Offline OCT

  • 464 Plus
  • *****
  • Posts: 349
  • Liked: 42
  • Likes Given: 39
FPGA CPC
« Reply #15 on: 22:54, 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.

Offline MacDeath

  • Chaotic post writer and mock-up specialist
  • Supporter
  • 6128 Plus
  • *
  • Posts: 4.060
  • Country: fr
  • Liked: 1167
  • Likes Given: 649
Re: Confused with terms!
« Reply #16 on: 00:38, 05 July 11 »
Quote
utilisation 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.

Offline OCT

  • 464 Plus
  • *****
  • Posts: 349
  • Liked: 42
  • Likes Given: 39
Re: Confused with terms!
« Reply #17 on: 20:33, 05 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. ;)
« Last Edit: 20:36, 05 July 11 by OCT »