• Re: Getting started with Assembly language

    From Pete@3:633/280.2 to All on Sat Nov 25 22:59:54 2023
    On 25/11/2023 10:32 pm, Vansh Kapoor wrote:
    I am trying to learn/understand assembly language for 80186 microprocessor. what would be the best source for that.

    Have you tried a Google search like this:

    https://www.google.com/search?q=80186+assembly+language+tutorial

    Peter



    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From David LaRue@3:633/280.2 to All on Sun Nov 26 01:52:32 2023
    Pete <pjetson@yahoo.com> wrote in news:ujsnjp$2poap$1@dont-email.me:

    On 25/11/2023 10:32 pm, Vansh Kapoor wrote:
    I am trying to learn/understand assembly language for 80186
    microprocessor. what would be the best source for that.

    Have you tried a Google search like this:

    https://www.google.com/search?q=80186+assembly+language+tutorial

    Peter

    For any computer look at the physical layout (registers, addressing, etc.)
    and available commands. Now figure out how you or others would acomplish various goals needed in the tasks you want to accomplish. Sources like
    above can offer rules to follow, but perhaps the best way to learn is to do
    it yourself and find ways to accomplish your goals. There may be many ways
    to accomplish the same goal. Learn to adapt to various goals. Sample
    goals could be instruction count, bytes needed for the assembly language,
    and assembling your own building blocks for various projects.

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From John Levine@3:633/280.2 to All on Sun Nov 26 06:24:19 2023
    According to Vansh Kapoor <kapoorvansh200@gmail.com>:
    I am trying to learn/understand assembly language for 80186 microprocessor. what would be the best source
    for that.

    The 80186 was very similar to the 8086 and 8088, and a subset of the
    80286, all often as a group called x86.

    There's lots of online x86 programming tutorials.


    --
    Regards,
    John Levine, johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
    Please consider the environment before reading this e-mail. https://jl.ly

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: Taughannock Networks (3:633/280.2@fidonet)
  • From Borax Man@3:633/280.2 to All on Sun Nov 26 09:28:37 2023
    On Sat, 25 Nov 2023 10:30:16 -0700
    Peter Flass <peter_flass@yahoo.com> wrote:

    David LaRue <huey.dll@tampabay.rr.com> wrote:
    Pete <pjetson@yahoo.com> wrote in news:ujsnjp$2poap$1@dont-email.me:
    =20
    On 25/11/2023 10:32 pm, Vansh Kapoor wrote: =20
    I am trying to learn/understand assembly language for 80186
    microprocessor. what would be the best source for that. =20
    =20
    Have you tried a Google search like this:
    =20
    https://www.google.com/search?q=3D80186+assembly+language+tutorial
    =20
    Peter =20
    =20
    For any computer look at the physical layout (registers, addressing, et=
    c.)=20
    and available commands. Now figure out how you or others would acompli=
    sh=20
    various goals needed in the tasks you want to accomplish. Sources like=
    =20
    above can offer rules to follow, but perhaps the best way to learn is t=
    o do=20
    it yourself and find ways to accomplish your goals. There may be many =
    ways=20
    to accomplish the same goal. Learn to adapt to various goals. Sample=
    =20
    goals could be instruction count, bytes needed for the assembly languag=
    e,=20
    and assembling your own building blocks for various projects.
    =20
    =20
    For any new language I usually like to start with a working sample program and then play around and make changes to it to see what=E2=80=99s happeni=
    ng.
    =20
    --=20
    Pete


    Nothing beats having a good book. Unfortunately those targetting the
    16 bit intel chips are old and hard to find. Jeff Duntemann's
    Assembly Language Step-by-step is good, but current versions are
    targetted towards Linux.

    You can find a 1992 version here.

    https://www.cin.ufpe.br/~clac/infra_de_software/Assembly%20Language%20Step%= 20by%20Step%201992.pdf

    Another good resource is https://flatassembler.net/

    There is an assembler, a forum, and the FASM Manual goes through the
    intel instruction set in detail.


    --=20


    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From John Dallman@3:633/280.2 to All on Sun Nov 26 22:48:00 2023
    In article <171769cd-9c92-4206-9eff-af2a242d06can@googlegroups.com>, kapoorvansh200@gmail.com (Vansh Kapoor) wrote:

    I am trying to learn/understand assembly language for 80186
    microprocessor. what would be the best source for that.

    Learn 8086/8088 first. 80186 only adds a few instructions to that. What
    kind of 80186 machine are you interested in?

    John

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From Vir Campestris@3:633/280.2 to All on Tue Nov 28 22:10:51 2023
    Looking back through this thread - some advice from an old wrinkly
    programmer.

    My first assembler was a mainframe, back at the end of the 1970s - the
    OS I was working on was entirely in assembler.

    I learned 8085 assembler back when it was a hot new chip. I wrote lots.

    The 8086 obviously came along, and I learned and used that a lot too.

    The '286 was mostly just a faster 8086. Its protected mode was brain
    damaged.

    Come the '386, and even systems code wasn't using much in the way of assembler. I don't think I did anything new except learn how the virtual memory worked. That's been true of all the Intel chips since.

    The last ten years or so I've been using ARM chips. I can just about
    read the assembler, but I certainly wouldn't try to write it. Almost everything is written in high level languages. Usually C or C++.

    I'm sure compiler writers still need to know the assembler stuff, but
    that's a small niche.

    So, original poster - why do you think you need to learn assembler?
    Especially for an obsolete chip?

    Andy

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From Bob Eager@3:633/280.2 to All on Tue Nov 28 23:23:13 2023
    On Tue, 28 Nov 2023 11:10:51 +0000, Vir Campestris wrote:

    Looking back through this thread - some advice from an old wrinkly programmer.

    My first assembler was a mainframe, back at the end of the 1970s - the
    OS I was working on was entirely in assembler.

    I learned 8085 assembler back when it was a hot new chip. I wrote lots.

    The 8086 obviously came along, and I learned and used that a lot too.

    The '286 was mostly just a faster 8086. Its protected mode was brain
    damaged.

    Come the '386, and even systems code wasn't using much in the way of assembler. I don't think I did anything new except learn how the virtual memory worked. That's been true of all the Intel chips since.

    Worth mentioning more about the 80186. It incorporated a few extra instructions, but nothing very major.

    Principally, the reason for it was that it was a single chip solution (the 8086 required about 5 chips, as I recall). The 80186 incorporated the interrupt controller, DMA controller, etc. It was however (at the OS
    level) incompatible with the 8086.

    The 8088 and 80188 had a similar relationship, with an 8 bit data bus.

    The 80286 had completely incompatible memory management (but could operate
    as a fast 8086). And there was also an 80288.



    --
    Using UNIX since v6 (1975)...

    Use the BIG mirror service in the UK:
    http://www.mirrorservice.org

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: ---:- FTN<->UseNet Gate -:--- (3:633/280.2@fidonet)
  • From Scott Lurndal@3:633/280.2 to All on Wed Nov 29 02:06:52 2023
    Reply-To: slp53@pacbell.net

    Bob Eager <news0009@eager.cx> writes:
    On Tue, 28 Nov 2023 11:10:51 +0000, Vir Campestris wrote:

    Looking back through this thread - some advice from an old wrinkly
    programmer.

    My first assembler was a mainframe, back at the end of the 1970s - the
    OS I was working on was entirely in assembler.

    I learned 8085 assembler back when it was a hot new chip. I wrote lots.

    The 8086 obviously came along, and I learned and used that a lot too.

    The '286 was mostly just a faster 8086. Its protected mode was brain
    damaged.

    Come the '386, and even systems code wasn't using much in the way of
    assembler. I don't think I did anything new except learn how the virtual
    memory worked. That's been true of all the Intel chips since.

    Worth mentioning more about the 80186. It incorporated a few extra >instructions, but nothing very major.

    Principally, the reason for it was that it was a single chip solution (the >8086 required about 5 chips, as I recall). The 80186 incorporated the >interrupt controller, DMA controller, etc. It was however (at the OS
    level) incompatible with the 8086.

    IME, the 80186 was primarily used as an embedded processor in
    a larger system. We used them in the mainframe I/O subsystem.


    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: UsenetServer - www.usenetserver.com (3:633/280.2@fidonet)
  • From Syber Shock@3:633/280.2 to All on Wed Nov 29 02:17:52 2023
    On Sat, 25 Nov 2023 03:32:58 -0800 (PST)
    Vansh Kapoor <kapoorvansh200@gmail.com> wrote:

    I am trying to learn/understand assembly language for 80186
    microprocessor. what would be the best source for that.

    80186 Manuals: http://rcollins.org/intel.doc/186Manuals.html

    FPC has a 8086/80186 cross-compiler. Being old and arcane
    documentation might be sparse. If it does still have the target you can
    output raw asm for the target and examine it.

    Free Pascal compiled programs running on a real 80186 computer: This is
    one of the first 16-bit programs, compiled by Free Pascal, running on a
    real 80186 computer - the HP 200LX.
    https://youtu.be/wscin9RUiTU

    The user can flag the FreePascal compiler to output assembly and then
    examine the assembly code.

    https://wiki.freepascal.org/DOS says that FreePascal supports 80186 as a
    16-bit compiler target. It also says this mode allows writing
    bootloader and bios code.

    If you can find a compiler that targets your preferred chip you can
    compile simple programs to assembly. Then you can examine the
    generated assembly to see how the functions are translated into
    assembler for that target. This is IMHO the best way to learn fast and
    see some optimization logic for certain tasks.

    --
    Baggy Jeans Mafia | https://toot.syfershock.com/profile/crypto/profile


    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: Baggy Jeans Mafia (sybershock.com) (3:633/280.2@fidonet)
  • From Andy Walker@3:633/280.2 to All on Wed Nov 29 03:09:40 2023
    On 28/11/2023 11:10, Vir Campestris wrote:
    Looking back through this thread - some advice from an old wrinkly programmer.
    My first assembler was a mainframe, back at the end of the 1970s [...].

    [History snipped.] I started with Atlas [apart from a brief go with Edsac] in '66, and still have a shelf-full of snaffled m/c code, inc the O/S [such as it was] and several compilers. On to KDF9, ICL 1900 and PDP 11 m/c code. But after that, I didn't bother, and haven't missed it.

    The last ten years or so I've been using ARM chips. I can just about
    read the assembler, but I certainly wouldn't try to write it. Almost everything is written in high level languages. Usually C or C++.

    I more-or-less stopped using C [and never really started with C++] 30-odd years ago. Where practicable, I write shell scripts, using Sed and other editors to do character twiddling; and Algol for serious computing.
    I rarely even bother to compile the Algol; the interpreter is plenty fast enough for anything short of full-scale astrophysical simulations [and is hugely faster on my PC than the optimised compiled code on our university mainframe in the 1970s].

    I'm sure compiler writers still need to know the assembler stuff, but
    that's a small niche.

    Even most compiler writers can get away with "compiling" into C and then relying on the work of others to get that into an executable! So the niche is really /very/ small.

    So, original poster - why do you think you need to learn assembler? Especially for an obsolete chip?

    To be fair, the OP didn't claim necessity. Anyone with an academic bent is entitled simply to be curious about how things are, or were, done. Personally, I hate not knowing things that interest me, and esp hate being
    told that I don't /need/ to know them.

    --
    Andy Walker, Nottingham.
    Andy's music pages: www.cuboid.me.uk/andy/Music
    Composer of the day: www.cuboid.me.uk/andy/Music/Composers/Ravel

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: Not very much (3:633/280.2@fidonet)
  • From Scott Lurndal@3:633/280.2 to All on Wed Nov 29 03:15:41 2023
    Reply-To: slp53@pacbell.net

    Andy Walker <anw@cuboid.co.uk> writes:
    On 28/11/2023 11:10, Vir Campestris wrote:
    Looking back through this thread - some advice from an old wrinkly programmer.
    My first assembler was a mainframe, back at the end of the 1970s [...].

    [History snipped.] I started with Atlas [apart from a brief go with
    Edsac] in '66, and still have a shelf-full of snaffled m/c code, inc the O/S >[such as it was] and several compilers. On to KDF9, ICL 1900 and PDP 11 m/c >code. But after that, I didn't bother, and haven't missed it.

    Have you considered donating that to one of the museums (such as CHM?)

    m/c must be a British abbreviation for something...


    The last ten years or so I've been using ARM chips. I can just about
    read the assembler, but I certainly wouldn't try to write it. Almost
    everything is written in high level languages. Usually C or C++.

    I more-or-less stopped using C [and never really started with C++]
    30-odd years ago. Where practicable, I write shell scripts, using Sed and >other editors to do character twiddling; and Algol for serious computing.
    I rarely even bother to compile the Algol; the interpreter is plenty fast >enough for anything short of full-scale astrophysical simulations [and is >hugely faster on my PC than the optimised compiled code on our university >mainframe in the 1970s].

    I'm sure compiler writers still need to know the assembler stuff, but
    that's a small niche.

    Even most compiler writers can get away with "compiling" into C and
    then relying on the work of others to get that into an executable! So the >niche is really /very/ small.

    The folks that must learn every nook and cranny of the machine language
    are those who write processor simulators. I've done both ARMv7
    and ARMv8 simulators over the last decade and thus have a quite
    robust understanding of the instruction set and architecture. I have
    no interest, for the most part, in writing code in assembler, however.


    So, original poster - why do you think you need to learn assembler?
    Especially for an obsolete chip?

    To be fair, the OP didn't claim necessity. Anyone with an academic
    bent is entitled simply to be curious about how things are, or were, done. >Personally, I hate not knowing things that interest me, and esp hate being >told that I don't /need/ to know them.

    Understanding the machine language is often helpful when debugging
    compiled code from higher-level languages.


    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: UsenetServer - www.usenetserver.com (3:633/280.2@fidonet)
  • From Charlie Gibbs@3:633/280.2 to All on Wed Nov 29 06:30:22 2023
    On 2023-11-28, Bob Eager <news0009@eager.cx> wrote:

    On Tue, 28 Nov 2023 11:10:51 +0000, Vir Campestris wrote:

    Looking back through this thread - some advice from an old wrinkly
    programmer.

    My first assembler was a mainframe, back at the end of the 1970s - the
    OS I was working on was entirely in assembler.

    I learned 8085 assembler back when it was a hot new chip. I wrote lots.

    The 8086 obviously came along, and I learned and used that a lot too.

    The '286 was mostly just a faster 8086. Its protected mode was brain
    damaged.

    Come the '386, and even systems code wasn't using much in the way of
    assembler. I don't think I did anything new except learn how the virtual
    memory worked. That's been true of all the Intel chips since.

    Worth mentioning more about the 80186. It incorporated a few extra instructions, but nothing very major.

    Principally, the reason for it was that it was a single chip solution (the 8086 required about 5 chips, as I recall). The 80186 incorporated the interrupt controller, DMA controller, etc. It was however (at the OS
    level) incompatible with the 8086.

    The 8088 and 80188 had a similar relationship, with an 8 bit data bus.

    The 80286 had completely incompatible memory management (but could operate as a fast 8086). And there was also an 80288.

    8080 One little,
    8085 Two little,
    8086 Three little-endians
    8088 Four little,
    80186 Five little,
    80286 Six little-endians
    80386 Seven little,
    80386SX Eight little,
    80486 Nine little-endians
    Pentium DIVIDE ERROR

    "I am Pentium of Borg. Division is futile. You will be approximated."

    --
    /~\ Charlie Gibbs | The Internet is like a big city:
    \ / <cgibbs@kltpzyxm.invalid> | it has plenty of bright lights and
    X I'm really at ac.dekanfrus | excitement, but also dark alleys
    / \ if you read it the right way. | down which the unwary get mugged.

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: ---:- FTN<->UseNet Gate -:--- (3:633/280.2@fidonet)
  • From Andy Walker@3:633/280.2 to All on Wed Nov 29 08:17:21 2023
    On 28/11/2023 16:15, Scott Lurndal wrote:
    [I wrote:]
    [...] I started with Atlas [apart from a brief go with
    Edsac] in '66, and still have a shelf-full of snaffled m/c code, [...].
    Have you considered donating that to one of the museums (such as CHM?)

    Yes, but it's not in usable form and I have no great inclination to spend my declining years writing it up. The offer of GBP 10^6 or so might perhaps, but probably wouldn't, change my mind. The Computer Conservation Society already has a copy of the Atlas O/S, I believe.

    Atlas was a brilliant machine, with an innovative architecture and machine code, but the assembler [ABL] was execrable [though ingenious]. You had to learn all the numbers for instructions; very few symbolics.

    m/c must be a British abbreviation for something...

    Surely they have motor cycles in Left-Pondia? Not to be confused
    with M/cr, which is Manchester; nor with mc, which is a hammer.

    [Vir C:]
    I'm sure compiler writers still need to know the assembler stuff, but
    that's a small niche.
    Even most compiler writers can get away with "compiling" into C and
    then relying on the work of others to get that into an executable! So the >> niche is really /very/ small.
    The folks that must learn every nook and cranny of the machine language
    are those who write processor simulators.

    That must be an even smaller niche!

    [...]
    Understanding the machine language is often helpful when debugging
    compiled code from higher-level languages.

    Yes, but how many programmers get to worry about such things? If
    a compiler produces an executable that "doesn't work", it's dealt with by
    the compiler writers rather than by the "higher-level" program writers.

    --
    Andy Walker, Nottingham.
    Andy's music pages: www.cuboid.me.uk/andy/Music
    Composer of the day: www.cuboid.me.uk/andy/Music/Composers/Ravel

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: Not very much (3:633/280.2@fidonet)
  • From Charlie Gibbs@3:633/280.2 to All on Wed Nov 29 14:53:10 2023
    On 2023-11-28, Andy Walker <anw@cuboid.co.uk> wrote:

    On 28/11/2023 16:15, Scott Lurndal wrote:

    Understanding the machine language is often helpful when debugging
    compiled code from higher-level languages.

    Yes, but how many programmers get to worry about such things? If
    a compiler produces an executable that "doesn't work", it's dealt with by
    the compiler writers rather than by the "higher-level" program writers.

    Sometimes. On the other hand, if you have a compiler that's generating
    bad code in a program that you need yesterday, you might have to change
    your code to something equivalent which compiles successfully. BTDTGTS.

    --
    /~\ Charlie Gibbs | The Internet is like a big city:
    \ / <cgibbs@kltpzyxm.invalid> | it has plenty of bright lights and
    X I'm really at ac.dekanfrus | excitement, but also dark alleys
    / \ if you read it the right way. | down which the unwary get mugged.

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: ---:- FTN<->UseNet Gate -:--- (3:633/280.2@fidonet)
  • From John Dallman@3:633/280.2 to All on Wed Nov 29 20:44:00 2023
    In article <GAy9N.87597$yvY5.24535@fx10.iad>, cgibbs@kltpzyxm.invalid
    (Charlie Gibbs) wrote:
    On 2023-11-28, Andy Walker <anw@cuboid.co.uk> wrote:
    Yes, but how many programmers get to worry about such things? If
    a compiler produces an executable that "doesn't work", it's dealt
    with by the compiler writers rather than by the "higher-level"
    program writers.

    Sometimes. On the other hand, if you have a compiler that's
    generating bad code in a program that you need yesterday, you
    might have to change your code to something equivalent which
    compiles successfully. BTDTGTS.

    And if you need to report compiler bugs, being able to point to exactly
    what's wrong in the generated code means your bugs get fixed /much/
    faster.

    John

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From John Dallman@3:633/280.2 to All on Wed Nov 29 20:47:00 2023
    In article <GAy9N.87597$yvY5.24535@fx10.iad>, cgibbs@kltpzyxm.invalid
    (Charlie Gibbs) wrote:
    On 2023-11-28, Andy Walker <anw@cuboid.co.uk> wrote:
    Yes, but how many programmers get to worry about such things? If
    a compiler produces an executable that "doesn't work", it's dealt
    with by the compiler writers rather than by the "higher-level"
    program writers.

    Sometimes. On the other hand, if you have a compiler that's
    generating bad code in a program that you need yesterday, you
    might have to change your code to something equivalent which
    compiles successfully. BTDTGTS.

    And if you need to report compiler bugs, being able to point to exactly
    what's wrong in the generated code means your bugs get fixed /much/
    faster.

    John

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From Borax Man@3:633/280.2 to All on Wed Nov 29 20:48:18 2023
    On Mon, 27 Nov 2023 12:37:22 -0700
    Peter Flass <peter_flass@yahoo.com> wrote:

    Borax Man <rotflol2@hotmail.com> wrote:
    On Sat, 25 Nov 2023 10:30:16 -0700
    Peter Flass <peter_flass@yahoo.com> wrote:
    =20
    David LaRue <huey.dll@tampabay.rr.com> wrote: =20
    Pete <pjetson@yahoo.com> wrote in news:ujsnjp$2poap$1@dont-email.me:
    =20
    On 25/11/2023 10:32 pm, Vansh Kapoor wrote: =20
    I am trying to learn/understand assembly language for 80186
    microprocessor. what would be the best source for that. =20
    =20
    Have you tried a Google search like this:
    =20
    https://www.google.com/search?q=3D80186+assembly+language+tutorial >>>>=20
    Peter =20
    =20
    For any computer look at the physical layout (registers, addressing, =
    etc.)=20
    and available commands. Now figure out how you or others would acomp=
    lish=20
    various goals needed in the tasks you want to accomplish. Sources li=
    ke=20
    above can offer rules to follow, but perhaps the best way to learn is=
    to do=20
    it yourself and find ways to accomplish your goals. There may be man=
    y ways=20
    to accomplish the same goal. Learn to adapt to various goals. Sampl=
    e=20
    goals could be instruction count, bytes needed for the assembly langu=
    age,=20
    and assembling your own building blocks for various projects.
    =20
    =20
    For any new language I usually like to start with a working sample pro=
    gram
    and then play around and make changes to it to see what=E2=80=99s happ=
    ening.
    =20
    --=20
    Pete =20
    =20
    =20
    Nothing beats having a good book. Unfortunately those targetting the
    16 bit intel chips are old and hard to find. Jeff Duntemann's
    Assembly Language Step-by-step is good, but current versions are
    targetted towards Linux. =20
    =20
    Is there anything else?
    =20

    Hmm, I borrowed some books back in the 90s, but not sure if they are
    still around. Maybe look on archive.org for assembly books, you might
    find some older ones from te 80s and 90s there.

    Get started with the one I linked, and then when you hit a brick wall,
    go from there.

    Looking at old MS-DOS software sites and old MS-DOS programming sites
    may help too. Wikibooks has information, but its spread out.


    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From Borax Man@3:633/280.2 to All on Wed Nov 29 20:52:21 2023
    On Mon, 27 Nov 2023 12:37:22 -0700
    Peter Flass <peter_flass@yahoo.com> wrote:

    Borax Man <rotflol2@hotmail.com> wrote:
    On Sat, 25 Nov 2023 10:30:16 -0700
    Peter Flass <peter_flass@yahoo.com> wrote:
    =20
    David LaRue <huey.dll@tampabay.rr.com> wrote: =20
    Pete <pjetson@yahoo.com> wrote in news:ujsnjp$2poap$1@dont-email.me:
    =20
    On 25/11/2023 10:32 pm, Vansh Kapoor wrote: =20
    I am trying to learn/understand assembly language for 80186
    microprocessor. what would be the best source for that. =20
    =20
    Have you tried a Google search like this:
    =20
    https://www.google.com/search?q=3D80186+assembly+language+tutorial >>>>=20
    Peter =20
    =20
    For any computer look at the physical layout (registers, addressing, =
    etc.)=20
    and available commands. Now figure out how you or others would acomp=
    lish=20
    various goals needed in the tasks you want to accomplish. Sources li=
    ke=20
    above can offer rules to follow, but perhaps the best way to learn is=
    to do=20
    it yourself and find ways to accomplish your goals. There may be man=
    y ways=20
    to accomplish the same goal. Learn to adapt to various goals. Sampl=
    e=20
    goals could be instruction count, bytes needed for the assembly langu=
    age,=20
    and assembling your own building blocks for various projects.
    =20
    =20
    For any new language I usually like to start with a working sample pro=
    gram
    and then play around and make changes to it to see what=E2=80=99s happ=
    ening.
    =20
    --=20
    Pete =20
    =20
    =20
    Nothing beats having a good book. Unfortunately those targetting the
    16 bit intel chips are old and hard to find. Jeff Duntemann's
    Assembly Language Step-by-step is good, but current versions are
    targetted towards Linux. =20
    =20
    Is there anything else?
    =20

    Hmm, I borrowed some books back in the 90s, but not sure if they are
    still around. Maybe look on archive.org for assembly books, you might
    find some older ones from te 80s and 90s there.

    Get started with the one I linked, and then when you hit a brick wall,
    go from there.

    Looking at old MS-DOS software sites and old MS-DOS programming sites
    may help too. Wikibooks has information, but its spread out.


    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From Kerr-Mudd, John@3:633/280.2 to All on Wed Nov 29 21:29:13 2023
    :
    On Wed, 29 Nov 2023 20:48:18 +1100
    Borax Man <rotflol2@hotmail.com> wrote:

    On Mon, 27 Nov 2023 12:37:22 -0700
    Peter Flass <peter_flass@yahoo.com> wrote:

    Borax Man <rotflol2@hotmail.com> wrote:
    On Sat, 25 Nov 2023 10:30:16 -0700
    Peter Flass <peter_flass@yahoo.com> wrote:

    David LaRue <huey.dll@tampabay.rr.com> wrote:
    Pete <pjetson@yahoo.com> wrote in news:ujsnjp$2poap$1@dont-email.me: >>>
    On 25/11/2023 10:32 pm, Vansh Kapoor wrote:
    I am trying to learn/understand assembly language for 80186
    microprocessor. what would be the best source for that.

    Have you tried a Google search like this:

    https://www.google.com/search?q=80186+assembly+language+tutorial

    Peter

    For any computer look at the physical layout (registers, addressing, etc.)
    and available commands. Now figure out how you or others would acomplish
    various goals needed in the tasks you want to accomplish. Sources like
    above can offer rules to follow, but perhaps the best way to learn is to do
    it yourself and find ways to accomplish your goals. There may be many ways
    to accomplish the same goal. Learn to adapt to various goals. Sample >>> goals could be instruction count, bytes needed for the assembly language,
    and assembling your own building blocks for various projects.


    For any new language I usually like to start with a working sample program
    and then play around and make changes to it to see what’s happening. >>
    --
    Pete


    Nothing beats having a good book. Unfortunately those targetting the
    16 bit intel chips are old and hard to find. Jeff Duntemann's
    Assembly Language Step-by-step is good, but current versions are targetted towards Linux.

    Is there anything else?


    Hmm, I borrowed some books back in the 90s, but not sure if they are
    still around. Maybe look on archive.org for assembly books, you might
    find some older ones from te 80s and 90s there.

    Get started with the one I linked, and then when you hit a brick wall,
    go from there.

    Looking at old MS-DOS software sites and old MS-DOS programming sites
    may help too. Wikibooks has information, but its spread out.

    Get subscribed to alt.lang.asm, comp.lang.asm.x86 and
    comp.os.msdos.progammer

    (though the only asm you'll see might be my small programs/games)
    PS I suggest you ignore Skybuck, he's never on-topic

    --
    Bah, and indeed Humbug.

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: Dis (3:633/280.2@fidonet)
  • From Vir Campestris@3:633/280.2 to All on Wed Nov 29 22:51:17 2023
    On 28/11/2023 21:17, Andy Walker wrote:
    On 28/11/2023 16:15, Scott Lurndal wrote:
    [I wrote:]
    [...] I started with Atlas [apart from a brief go with
    Edsac] in '66, and still have a shelf-full of snaffled m/c code, [...].
    Have you considered donating that to one of the museums (such as CHM?)

    ÿÿÿÿYes, but it's not in usable form and I have no great inclination to spend my declining years writing it up.ÿ The offer of GBP 10^6 or so might perhaps, but probably wouldn't, change my mind.ÿ The Computer Conservation Society already has a copy of the Atlas O/S, I believe.

    ÿÿÿÿAtlas was a brilliant machine, with an innovative architecture and machine code, but the assembler [ABL] was execrable [though ingenious].
    You
    had to learn all the numbers for instructions;ÿ very few symbolics.

    m/c must be a British abbreviation for something...

    ÿÿÿÿSurely they have motor cycles in Left-Pondia?ÿ Not to be confused
    with M/cr, which is Manchester;ÿ nor with mc, which is a hammer.

    [Vir C:]

    It wasn't me that wrote m/c. But I have seen it used for machine. Not
    recently though I think.

    I'm sure compiler writers still need to know the assembler stuff, but
    that's a small niche.
    ÿÿÿÿEven most compiler writers can get away with "compiling" into C and
    then relying on the work of others to get that into an executable!
    So the
    niche is really /very/ small.
    The folks that must learn every nook and cranny of the machine language
    are those who write processor simulators.

    ÿÿÿÿThat must be an even smaller niche!

    [...]
    Understanding the machine language is often helpful when debugging
    compiled code from higher-level languages.

    ÿÿÿÿYes, but how many programmers get to worry about such things?ÿ If
    a compiler produces an executable that "doesn't work", it's dealt with by
    the compiler writers rather than by the "higher-level" program writers.


    Debugging is why I learned ARM assembly at all. Just occasionally I bump
    into some code that looks reasonable, but doesn't do what it should.
    That's usually because of threading, but it can be because someone got
    into the Undefined Behaviour corner of the language.

    Andy

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From Andy Walker@3:633/280.2 to All on Thu Nov 30 00:43:59 2023
    On 29/11/2023 09:44, John Dallman wrote:
    In article <GAy9N.87597$yvY5.24535@fx10.iad>, cgibbs@kltpzyxm.invalid (Charlie Gibbs) wrote:
    [I wrote:]
    Yes, but how many programmers get to worry about such things? If
    a compiler produces an executable that "doesn't work", it's dealt
    with by the compiler writers rather than by the "higher-level"
    program writers.
    Sometimes. On the other hand, if you have a compiler that's
    generating bad code in a program that you need yesterday, you
    might have to change your code to something equivalent which
    compiles successfully. BTDTGTS.

    Well, likewise. But [normally] that's a problem of re-writing
    your program [and/or perhaps, eg, switching off aggressive optimisation]
    rather than delving into the generated assembler. Anything else is even
    more niche than the cases described earlier.

    And if you need to report compiler bugs, being able to point to exactly what's wrong in the generated code means your bugs get fixed /much/
    faster.
    Yes, but since the 1980s the chances are that the "generated code"
    is C or similar rather than assembler. That way, a swanky new language is instantly available on every computer with a C compiler. Only those who
    are responsible for writing that initial C compiler or for maintaining
    [eg] Gcc need to know assembler. Apart, that is, from the few very niche applications of the sort discussed earlier.

    [Even in the 1970s, it was becoming common, eg in the Amsterdam Compiler Kit, to compile to an intermediate level, such as P-code, rather
    than direct to some form of assembler/machine code.]

    IOW, the ordinary HLL programmer has no need at all to learn much
    about the hardware the program is running on. That is, surely, the whole
    point of a HLL. Being interested in the hardware is a different matter,
    and I certainly wouldn't want to stop the OP from learning such things.

    --
    Andy Walker, Nottingham.
    Andy's music pages: www.cuboid.me.uk/andy/Music
    Composer of the day: www.cuboid.me.uk/andy/Music/Composers/Soler

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: Not very much (3:633/280.2@fidonet)
  • From John Dallman@3:633/280.2 to All on Thu Nov 30 00:46:00 2023
    In article <Nmo9N.36302$Ycdc.30963@fx09.iad>, scott@slp53.sl.home (Scott Lurndal) wrote:

    m/c must be a British abbreviation for something...

    Machine. It's still used for that in the folded source code format I work
    with, which was created in about 1985.

    There used to be a form of abbreviation over here that used slashes a lot. WWII-era examples included "w/t" for wireless telegraphy (Morse code over radio) and "r/t" for radio-telephone (walkie-talkie).

    John

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From Sn!pe@3:633/280.2 to All on Thu Nov 30 00:58:33 2023
    Reply-To: snipeco.1@gmail.com (Sn!pe)

    Vir Campestris <vir.campestris@invalid.invalid> wrote:

    On 28/11/2023 21:17, Andy Walker wrote:
    On 28/11/2023 16:15, Scott Lurndal wrote:
    [I wrote:]
    [...] I started with Atlas [apart from a brief go with
    Edsac] in '66, and still have a shelf-full of snaffled m/c code, [...]. >> Have you considered donating that to one of the museums (such as CHM?)

    Yes, but it's not in usable form and I have no great inclination to spend my declining years writing it up. The offer of GBP 10^6 or so
    might perhaps, but probably wouldn't, change my mind. The Computer Conservation Society already has a copy of the Atlas O/S, I believe.

    Atlas was a brilliant machine, with an innovative architecture and machine code, but the assembler [ABL] was execrable [though ingenious].
    You had to learn all the numbers for instructions; very few symbolics.

    m/c must be a British abbreviation for something...

    Surely they have motor cycles in Left-Pondia? Not to be confused
    with M/cr, which is Manchester; nor with mc, which is a hammer.

    [Vir C:]

    It wasn't me that wrote m/c. But I have seen it used for machine. Not recently though I think.

    [...]

    'm/c' for 'machine' was standard usage in the late '60s - early '70s;
    I was a hardware man fixing 2nd. gen. mainframes when they went t/u.

    --
    ^Ï^. Sn!pe, PA, FIBS - Professional Crastinator.
    My pet rock Gordon just is.

    Google Groups articles not seen here unless poster is whitelisted.

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: Sn!peCo World Wide Wading Birds (3:633/280.2@fidonet)
  • From Scott Lurndal@3:633/280.2 to All on Thu Nov 30 01:43:08 2023
    Reply-To: slp53@pacbell.net

    jgd@cix.co.uk (John Dallman) writes:
    In article <GAy9N.87597$yvY5.24535@fx10.iad>, cgibbs@kltpzyxm.invalid >(Charlie Gibbs) wrote:
    On 2023-11-28, Andy Walker <anw@cuboid.co.uk> wrote:
    Yes, but how many programmers get to worry about such things? If
    a compiler produces an executable that "doesn't work", it's dealt
    with by the compiler writers rather than by the "higher-level"
    program writers.

    Sometimes. On the other hand, if you have a compiler that's
    generating bad code in a program that you need yesterday, you
    might have to change your code to something equivalent which
    compiles successfully. BTDTGTS.

    And if you need to report compiler bugs, being able to point to exactly >what's wrong in the generated code means your bugs get fixed /much/
    faster.

    And it may not even be a compiler bug, but a simple programming
    error. Stepping through the generated assembler with a debugger
    can be quite useful.

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: UsenetServer - www.usenetserver.com (3:633/280.2@fidonet)
  • From Scott Lurndal@3:633/280.2 to All on Thu Nov 30 01:50:48 2023
    Reply-To: slp53@pacbell.net

    Andy Walker <anw@cuboid.co.uk> writes:
    On 29/11/2023 09:44, John Dallman wrote:
    In article <GAy9N.87597$yvY5.24535@fx10.iad>, cgibbs@kltpzyxm.invalid
    (Charlie Gibbs) wrote:
    [I wrote:]
    Yes, but how many programmers get to worry about such things? If
    a compiler produces an executable that "doesn't work", it's dealt
    with by the compiler writers rather than by the "higher-level"
    program writers.
    Sometimes. On the other hand, if you have a compiler that's
    generating bad code in a program that you need yesterday, you
    might have to change your code to something equivalent which
    compiles successfully. BTDTGTS.

    Well, likewise. But [normally] that's a problem of re-writing
    your program [and/or perhaps, eg, switching off aggressive optimisation] >rather than delving into the generated assembler. Anything else is even
    more niche than the cases described earlier.

    It's much quicker, particularly in a very large application, to
    either debug post failure (e.g. SIGSEGV) with a good debugger
    in which case knowing the assembler is useful, or to set a breakpoint
    and step through the instruction sequence to see exactly what is
    happening. I've done this many times over the last four decades
    on systems from mainframes to microcontrollers. Most recently,
    this morning to debug a SIGSEGV in a C++ application.


    And if you need to report compiler bugs, being able to point to exactly
    what's wrong in the generated code means your bugs get fixed /much/
    faster.
    Yes, but since the 1980s the chances are that the "generated code"
    is C or similar rather than assembler.

    I absolutely disagree with this statement. I haven't used a compiler
    that generates C since C++2.1/3.0 in the early 1990's. I'm not aware of
    any modern compiler (from Ada to Python) that generates intermediate
    C code.

    And as someone who has extensive experience debugging cfront (the
    original C++ compiler which generated C), the resulting C code
    is completely unreadable and hardly useful for debugging application
    code. I had to debug a register allocation issue with the underlying
    C compiler used to compile the output from cfront once, and the
    internal expression tree for the failed expression had five levels
    with dozens of terms. The issue was that the C compiler (for the
    motorola 88100, based on PCC) ran out of temporary registers when generating code for the expression.




    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: UsenetServer - www.usenetserver.com (3:633/280.2@fidonet)
  • From Bob Eager@3:633/280.2 to All on Thu Nov 30 02:26:54 2023
    On Wed, 29 Nov 2023 13:43:59 +0000, Andy Walker wrote:

    [Even in the 1970s, it was becoming common, eg in the Amsterdam Compiler Kit, to compile to an intermediate level, such as P-code,
    rather than direct to some form of assembler/machine code.]

    In the mid 1960s, the BCPL compiler, and OCODE.

    --
    Using UNIX since v6 (1975)...

    Use the BIG mirror service in the UK:
    http://www.mirrorservice.org

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: ---:- FTN<->UseNet Gate -:--- (3:633/280.2@fidonet)
  • From Charlie Gibbs@3:633/280.2 to All on Thu Nov 30 03:30:28 2023
    On 2023-11-29, Sn!pe <snipeco.2@gmail.com> wrote:

    'm/c' for 'machine' was standard usage in the late '60s - early '70s;

    In some circles, perhaps, but I never saw it.

    I was a hardware man fixing 2nd. gen. mainframes when they went t/u.

    I can see some bored etymologist digging into the origins of this
    slash notation. It appears in several fields.

    Can't fly today, the A/C is U/S.

    --
    /~\ Charlie Gibbs | The Internet is like a big city:
    \ / <cgibbs@kltpzyxm.invalid> | it has plenty of bright lights and
    X I'm really at ac.dekanfrus | excitement, but also dark alleys
    / \ if you read it the right way. | down which the unwary get mugged.

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: ---:- FTN<->UseNet Gate -:--- (3:633/280.2@fidonet)
  • From John Dallman@3:633/280.2 to All on Thu Nov 30 04:13:00 2023
    In article <uk7f6v$rr6v$1@dont-email.me>, anw@cuboid.co.uk (Andy Walker)
    wrote:

    And if you need to report compiler bugs, being able to point to
    exactly what's wrong in the generated code means your bugs get fixed /much/ faster.
    Yes, but since the 1980s the chances are that the "generated code"
    is C or similar rather than assembler. That way, a swanky new
    language is instantly available on every computer with a C compiler.
    Only those who are responsible for writing that initial C compiler
    or for maintaining [eg] Gcc need to know assembler.

    This is actually extremely rare. It is nonetheless the way I work, with a domain-specific language that's an extended, type-secure C. It does many
    things that C++ does not, so we keep on using it.

    There are thus two levels at which I can report compiler bugs: in the DSL
    and in the C compilers I'm using. In 28 years in the job, I've found,
    reported, and got fixes for about two bugs in the DSL, and over a hundred
    in assorted C compilers.

    The C compiler bugs have ranged from subtle code generation bugs to
    options the vendor told us to use but turned out not to exist. Turning
    down optimisation is often a short-term fix, but Murphy's Law dictates
    that some of the places where it is needed will be critical to
    performance.

    In the same way, tweaking the DSL's generation of C code lets us work
    around some C compiler bugs, but the cost is usually performance.

    IOW, the ordinary HLL programmer has no need at all to learn much
    about the hardware the program is running on. That is, surely, the
    whole point of a HLL.

    Indeed. But if you want to produce high-quality software with high
    performance on ordinary hardware and commonly-used operating systems, you
    need someone who can dig out and report compiler bugs effectively.

    John

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From Ahem A Rivet's Shot@3:633/280.2 to All on Thu Nov 30 07:06:21 2023
    On Wed, 29 Nov 2023 12:07:19 -0700
    Peter Flass <peter_flass@yahoo.com> wrote:

    Sn!pe <snipeco.2@gmail.com> wrote:

    'm/c' for 'machine' was standard usage in the late '60s - early '70s;
    I was a hardware man fixing 2nd. gen. mainframes when they went t/u.


    Lemme guess - “tits up.â€

    Of course - but then I thought m/c was well known too.

    --
    Steve O'Hara-Smith
    Odds and Ends at http://www.sohara.org/
    Host: Beautiful Theory meet Inconvenient Fact
    Obit: Beautiful Theory died today of factual inconsistency

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From Scott Lurndal@3:633/280.2 to All on Thu Nov 30 08:44:16 2023
    Reply-To: slp53@pacbell.net

    Ahem A Rivet's Shot <steveo@eircom.net> writes:
    On Wed, 29 Nov 2023 12:07:19 -0700
    Peter Flass <peter_flass@yahoo.com> wrote:

    Sn!pe <snipeco.2@gmail.com> wrote:

    'm/c' for 'machine' was standard usage in the late '60s - early '70s;
    I was a hardware man fixing 2nd. gen. mainframes when they went t/u.


    Lemme guess - “tits up.â€

    Of course - but then I thought m/c was well known too.

    T/U is rather obvious (it is two words, after all),
    m/c less so, although machine was my first guess.

    I've notice that some british english words are often
    not phonetically related to the actual pronunciation
    (e.g. lester square :-).

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: UsenetServer - www.usenetserver.com (3:633/280.2@fidonet)
  • From Scott Lurndal@3:633/280.2 to All on Thu Nov 30 08:46:54 2023
    Reply-To: slp53@pacbell.net

    Peter Flass <peter_flass@yahoo.com> writes:
    Scott Lurndal <scott@slp53.sl.home> wrote:

    I absolutely disagree with this statement. I haven't used a compiler
    that generates C since C++2.1/3.0 in the early 1990's. I'm not aware of
    any modern compiler (from Ada to Python) that generates intermediate
    C code.


    I believe gcc has some type of fairly well-defined intermediate code.

    In a manner of speaking, yes. It's not something the user will ever
    see or need to debug, however.


    Some
    compilers compile to this and use gcc’s back end to generate machine code.

    LLVM is the poster child for this, although gcc has had a more primitive
    form for a couple decades.


    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: UsenetServer - www.usenetserver.com (3:633/280.2@fidonet)
  • From Bob Eager@3:633/280.2 to All on Thu Nov 30 09:54:50 2023
    On Wed, 29 Nov 2023 21:44:16 +0000, Scott Lurndal wrote:

    Ahem A Rivet's Shot <steveo@eircom.net> writes:
    On Wed, 29 Nov 2023 12:07:19 -0700 Peter Flass <peter_flass@yahoo.com> >>wrote:

    Sn!pe <snipeco.2@gmail.com> wrote:

    'm/c' for 'machine' was standard usage in the late '60s - early
    '70s;
    I was a hardware man fixing 2nd. gen. mainframes when they went t/u.


    Lemme guess - “tits up.â€

    Of course - but then I thought m/c was well known too.

    T/U is rather obvious (it is two words, after all), m/c less so,
    although machine was my first guess.

    I've notice that some british english words are often not phonetically related to the actual pronunciation (e.g. lester square :-).

    We have two villages near here, both named Goodnestone.

    They have two totally different pronunciations. One is Good-nes-stone. The other is Gun-stone.




    --
    Using UNIX since v6 (1975)...

    Use the BIG mirror service in the UK:
    http://www.mirrorservice.org

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: ---:- FTN<->UseNet Gate -:--- (3:633/280.2@fidonet)
  • From Bob Martin@3:633/280.2 to All on Thu Nov 30 17:09:52 2023
    On 29 Nov 2023 at 22:54:50, Bob Eager <news0009@eager.cx> wrote:
    On Wed, 29 Nov 2023 21:44:16 +0000, Scott Lurndal wrote:

    Ahem A Rivet's Shot <steveo@eircom.net> writes:
    On Wed, 29 Nov 2023 12:07:19 -0700 Peter Flass <peter_flass@yahoo.com> >>>wrote:

    Sn!pe <snipeco.2@gmail.com> wrote:

    'm/c' for 'machine' was standard usage in the late '60s - early
    '70s;
    I was a hardware man fixing 2nd. gen. mainframes when they went t/u. >>>> >

    Lemme guess - “tits up.â€

    Of course - but then I thought m/c was well known too.

    T/U is rather obvious (it is two words, after all), m/c less so,
    although machine was my first guess.

    I've notice that some british english words are often not phonetically
    related to the actual pronunciation (e.g. lester square :-).

    We have two villages near here, both named Goodnestone.

    They have two totally different pronunciations. One is Good-nes-stone. The other is Gun-stone.

    Same thing round here, with Bosham (pronounced Bozz'm) and Cosham (Cosh'm)

    (Bosham is where King Canute had a palace).


    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: ---:- FTN<->UseNet Gate -:--- (3:633/280.2@fidonet)
  • From Vir Campestris@3:633/280.2 to All on Thu Nov 30 21:39:59 2023
    On 29/11/2023 19:07, Peter Flass wrote:
    Some days I practically live in the debugger.

    I retired last year. I could afford it, and my time isn't infinite.

    There was no point in me learning about the future developments, so I
    spent the last six months or so looking at the most common crashes in
    the dumps our system collects from end users. (it's an embedded system
    with a net connection) I often had to poke about in the assembly,
    sometimes the optimiser does weird things.

    BUT... if you're doing standard apps development I doubt you'll need to
    do that often.

    I was gratified that the last fix I ever submitted as a professional got
    this comment from the guy who wrote the code: "Oh, THAT'S what's going
    on" :)

    Andy

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From Juan@3:633/280.2 to All on Fri Dec 1 18:35:39 2023
    On 28/11/2023 15:06, Scott Lurndal wrote:

    Worth mentioning more about the 80186. It incorporated a few extra instructions, but nothing very major.

    Principally, the reason for it was that it was a single chip solution (the 8086 required about 5 chips, as I recall). The 80186 incorporated the interrupt controller, DMA controller, etc. It was however (at the OS
    level) incompatible with the 8086.

    My first PC was a XT clone (Olivetti Prodest PC1), and it had a 80188
    clone: the NEC V40.

    According to the wikipedia, it integrated a compatible 8251 USART, 8253
    PIT and 8255 PPI.



    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: A noiseless patient Spider (3:633/280.2@fidonet)
  • From Bob Eager@3:633/280.2 to All on Fri Dec 1 20:19:48 2023
    On Fri, 01 Dec 2023 07:35:39 +0000, Juan wrote:

    On 28/11/2023 15:06, Scott Lurndal wrote:

    Worth mentioning more about the 80186. It incorporated a few extra
    instructions, but nothing very major.

    Principally, the reason for it was that it was a single chip solution
    (the 8086 required about 5 chips, as I recall). The 80186 incorporated
    the interrupt controller, DMA controller, etc. It was however (at the
    OS level) incompatible with the 8086.

    My first PC was a XT clone (Olivetti Prodest PC1), and it had a 80188
    clone: the NEC V40.

    According to the wikipedia, it integrated a compatible 8251 USART, 8253
    PIT and 8255 PPI.

    It also presumably had the barrel shifter from the V20/V30 8088/8086 equivalents, which improved multiply speed.



    --
    Using UNIX since v6 (1975)...

    Use the BIG mirror service in the UK:
    http://www.mirrorservice.org

    --- MBSE BBS v1.0.8.4 (Linux-x86_64)
    * Origin: ---:- FTN<->UseNet Gate -:--- (3:633/280.2@fidonet)