Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Brian K. White

On 3/16/24 21:05, Kenneth Pettit wrote:



On 3/16/24 5:46 PM, Brian K. White wrote:


Thanks, and don't worry about it. It is simple enough for me to just 
hook up a 100 and save a file, and then I'll know everything.




"Everything"!  Wow, that's an impressive M100 you've got there!  ;-)



It does frequently do things that I don't understand, just like every 
genius I ever met.


--
bkw



Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Kenneth Pettit




On 3/16/24 5:46 PM, Brian K. White wrote:


Thanks, and don't worry about it. It is simple enough for me to just 
hook up a 100 and save a file, and then I'll know everything.




"Everything"!  Wow, that's an impressive M100 you've got there!  ;-)



Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Brian K. White

On 3/16/24 20:37, Stephen Adolph wrote:
Not a rexcpm function.  It is handled by import and export written by 
Philip.


I can say that I believe import and export use tpdd routines that mirror 
the rex routines and are based on Code built by Wilson van alst.


I'd have to do some work to understand how the name is structured.  I 
think it is fixed length.


Thanks, and don't worry about it. It is simple enough for me to just 
hook up a 100 and save a file, and then I'll know everything.


--
bkw



Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Stephen Adolph
Not a rexcpm function.  It is handled by import and export written by
Philip.

I can say that I believe import and export use tpdd routines that mirror
the rex routines and are based on Code built by Wilson van alst.

I'd have to do some work to understand how the name is structured.  I think
it is fixed length.

Steve



On Saturday, March 16, 2024, Brian K. White  wrote:

> On 3/16/24 13:48, Stephen Adolph wrote:
>
>> regarding file transfer, use
>> IMPORT
>> or
>> EXPORT
>> in CP/M.  Included in package.
>> These programs access a "TPDD".  Filenames are 8.3 format,
>>
>> cheers
>> Steve
>>
>
> What is the ATTR byte? Presumably F ?
>
> And is that fixed-length space-filled like what Floppy or WP-2 do or not?
> "a___.txt" or "a.txt___"?
>
> And do you know if what REXCPM does matches what other CP/M systems that
> use a TPDD do?
>
> I think there is something that can use a tpdd from a NEC PC-8401 and
> PC-8500 but I never used it yet and don't know what it exactly writes to
> the drive, or expects to find on a drive.
>
> I have a REXCPM and both a 8401 and 8500 so I can test and answer all
> those myself some time. I'm not asking for real unless you do just happen
> to know.
>
> The reason I ask is I would add a CP/M compatibility mode to both dl2 and
> pdd.sh if I knew what it should be.
>
> And, if REXCPM and PC-8401/8500 don't currently match each other, I
> suggest REXCPM should change to match NEC, so that you can move files and
> disks between the two.
>
> There are settings in both dl2 and pdd.sh to manually configure every
> detail, so already right now neither program is actually limited to the
> baked-in convenience modes, but it's not as convenient.
>
> For instance to use dl2 in this case I'm guessing you probably want
> "dl -0 -a F"
>
> "-0" sets a "raw" mode where dl2 doesn't care about spaces or dots or
> anything in the filename, doesn't re-write filenames to different formats,
> and sets the ATTR field to ' ' (0x20, space). In other words acts like a
> real drive, which also doesn't have opinions on any of that.
>
> And "-a F" sets ATTR to F, overriding that -0 set it to space.
> (I should clean that up to make a more consistent interface but that's the
> way it works currently)
>
> And attr only matters for new files created on the pc or from the internet.
>
> A real drive never fabricates an attr value, or cares what it is, it just
> saves whatever a client supplies when creating a file, and then reads it
> later when accessing files. The byte can be anything, and must match from
> one operation to the next only for the same reason a byte in the filename
> must match. And on a real drive, ALL files had to have been created by a
> client saving them initially. There are no files that come directly from
> the internet to the disk and need some attr value fabricated.
>
> A couple months ago I added xattr support so that dl2 now acts even more
> like a real drive. When creating a file (when a client saves a file,
> meaning dl2 has to create a new local file on the pc side), instead of
> ignoring the attr field from the client dirent() request, dl2 now saves it
> in a xattr metadata field attached to the file. And when listing or
> accessing existing files, instead of fabricating attr=F for all files, it
> gets a real attr value from xattr, and only fabricates the default value if
> there is no xattr.
>
> So in one sense dl2 already works fully (should anyway), at least to the
> extent of matching a real drive.
>
> --
> bkw
>
>
>> On Sat, Mar 16, 2024 at 1:36 PM Will Senn > will.s...@gmail.com>> wrote:
>>
>> __
>> I broke down and started reading the manuals (REXCPM, CP/M 2.2,
>> etc). It's starting to come together (again?)... I've inlined the
>> answers I figured out for posterity or the next clueless newb who
>> comes along.
>>
>> On 3/16/24 11:00 AM, Will Senn wrote:
>>
>>> 2. CP/M works from RexCPM, which is great, cuz CP/M recognizes
>>> more memory:
>>>
>>> 64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0
>>>
>>> Yes, it does recognize more memory and it serves up an A: drive
>> that's a big chunk of that 2MBs. Solid. Talked about here:
>> http://bitchin100.com/wiki/index.php?title=M100_CP/M
>> 
>>
>> My questions are as follows:
>>>
>>> 4. In CP/M, how do I get back to MENU?
>>>
>>> Duh, F8 :).
>>
>> 5. When I start CP/M, is it just running CP/M against the M100's
>>> memory or am I in some special whizbang virtual environment where
>>> I have additional disks available somehow?
>>>
>> It's a whizbang environment for sure - 64K ram and a nearly 2MB A:
>> drive.
>>
>> As for my broken ASM, another duh, thanks John for the tip - I need
>> to write a CP/M friendly program that call it's routines and not the
>> ROM calls.
>>
>> CP/M seems the way to go, though. It kinda reminds me of RT11, but
>> with ASM instead of MACRO11.  

Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Brian K. White

On 3/16/24 13:48, Stephen Adolph wrote:

regarding file transfer, use
IMPORT
or
EXPORT
in CP/M.  Included in package.
These programs access a "TPDD".  Filenames are 8.3 format,

cheers
Steve


What is the ATTR byte? Presumably F ?

And is that fixed-length space-filled like what Floppy or WP-2 do or not?
"a___.txt" or "a.txt___"?

And do you know if what REXCPM does matches what other CP/M systems that 
use a TPDD do?


I think there is something that can use a tpdd from a NEC PC-8401 and 
PC-8500 but I never used it yet and don't know what it exactly writes to 
the drive, or expects to find on a drive.


I have a REXCPM and both a 8401 and 8500 so I can test and answer all 
those myself some time. I'm not asking for real unless you do just 
happen to know.


The reason I ask is I would add a CP/M compatibility mode to both dl2 
and pdd.sh if I knew what it should be.


And, if REXCPM and PC-8401/8500 don't currently match each other, I 
suggest REXCPM should change to match NEC, so that you can move files 
and disks between the two.


There are settings in both dl2 and pdd.sh to manually configure every 
detail, so already right now neither program is actually limited to the 
baked-in convenience modes, but it's not as convenient.


For instance to use dl2 in this case I'm guessing you probably want
"dl -0 -a F"

"-0" sets a "raw" mode where dl2 doesn't care about spaces or dots or 
anything in the filename, doesn't re-write filenames to different 
formats, and sets the ATTR field to ' ' (0x20, space). In other words 
acts like a real drive, which also doesn't have opinions on any of that.


And "-a F" sets ATTR to F, overriding that -0 set it to space.
(I should clean that up to make a more consistent interface but that's 
the way it works currently)


And attr only matters for new files created on the pc or from the internet.

A real drive never fabricates an attr value, or cares what it is, it 
just saves whatever a client supplies when creating a file, and then 
reads it later when accessing files. The byte can be anything, and must 
match from one operation to the next only for the same reason a byte in 
the filename must match. And on a real drive, ALL files had to have been 
created by a client saving them initially. There are no files that come 
directly from the internet to the disk and need some attr value fabricated.


A couple months ago I added xattr support so that dl2 now acts even more 
like a real drive. When creating a file (when a client saves a file, 
meaning dl2 has to create a new local file on the pc side), instead of 
ignoring the attr field from the client dirent() request, dl2 now saves 
it in a xattr metadata field attached to the file. And when listing or 
accessing existing files, instead of fabricating attr=F for all files, 
it gets a real attr value from xattr, and only fabricates the default 
value if there is no xattr.


So in one sense dl2 already works fully (should anyway), at least to the 
extent of matching a real drive.


--
bkw



On Sat, Mar 16, 2024 at 1:36 PM Will Senn > wrote:


__
I broke down and started reading the manuals (REXCPM, CP/M 2.2,
etc). It's starting to come together (again?)... I've inlined the
answers I figured out for posterity or the next clueless newb who
comes along.

On 3/16/24 11:00 AM, Will Senn wrote:

2. CP/M works from RexCPM, which is great, cuz CP/M recognizes
more memory:

    64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0


Yes, it does recognize more memory and it serves up an A: drive
that's a big chunk of that 2MBs. Solid. Talked about here:
http://bitchin100.com/wiki/index.php?title=M100_CP/M



My questions are as follows:

4. In CP/M, how do I get back to MENU?


Duh, F8 :).


5. When I start CP/M, is it just running CP/M against the M100's
memory or am I in some special whizbang virtual environment where
I have additional disks available somehow?

It's a whizbang environment for sure - 64K ram and a nearly 2MB A:
drive.

As for my broken ASM, another duh, thanks John for the tip - I need
to write a CP/M friendly program that call it's routines and not the
ROM calls.

CP/M seems the way to go, though. It kinda reminds me of RT11, but
with ASM instead of MACRO11.  ed... well, after you figure out that
you need to retrieve the file contents into the buffer, it kinda
makes sense - nice video - I love ED:
https://www.youtube.com/watch?v=7pqaj050X7g


Still need to figure out how to get files into and out of cp/m though...

Off to read some more.

-will






Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Will Senn
Soo do I need/want a Z80? Is that a mod for the M100? I had a DEC 
rainbow back in the day, that had an 8088/Z80 combo. It was nifty, but I 
used DOS on it, the Z80 was apparently tasked with doing video stuff.


Will

On 3/16/24 3:06 PM, Brian Brindle wrote:
Quick correction, if you don't have a Z80 rst 7 is gonna end poorly - 
try rst 6 instead.

Only see these things AFTER hitting send..

Start DDT
A100  # Start assembly at location $100

mvi c,2   # Put 2 in the C-register for Console Out
mv e,48  # $48 is ASCII H
call 5      # entry point for all system calls (BDOS)
mvi c,2   # Put 2 in C-register for Console Out
mvi e,49  #$49 ASCII I
call 5       # BDOS call again
rst 6        # return to DDT

g100 to execute, should print something like "HI" with memory location 
after.


Still tons of fun!

On Sat, Mar 16, 2024 at 4:03 PM Brian Brindle  wrote:

Simple DDT "HI" program - can be expanded to "hello world" if
ambitious enough.

Start DDT
A100  # Start assembly at location $100

mvi c,2   # Put 2 in the C-register for Console Out
mv e,48  # $48 is ASCII H
call 5      # entry point for all system calls (BDOS)
mvi c,2   # Put 2 in C-register for Console Out
mvi e,49  #$49 ASCII I
call 5       # BDOS call again
rst 7        # return to DDT

g100 to execute, should print something like "HI" with memory
location after.

Tons of fun!

Brian



On Sat, Mar 16, 2024 at 3:12 PM Will Senn  wrote:

Brian,

Definitely. DDT is great. I'll be working through that next. I
finally got a program working and assembled - from the 2.2
manual - read chars until *. Now, I just gotta get hello,
world working I was sure, it would work... oh, wait, when
it says to CALL CPM, I bet it's not talking about where CP/M
is DE1EH... I bet it's that 0005H entry point... off to explore.

Will

On 3/16/24 1:08 PM, Brian Brindle wrote:

If you just want to play, don't discount ddt in CP/M. Cheap
and dirty way to play with everything.

On Sat, Mar 16, 2024, 1:48 PM Stephen Adolph
 wrote:

regarding file transfer, use
IMPORT
or
EXPORT
in CP/M.  Included in package.
These programs access a "TPDD".  Filenames are 8.3 format,

cheers
Steve

On Sat, Mar 16, 2024 at 1:36 PM Will Senn
 wrote:

I broke down and started reading the manuals (REXCPM,
CP/M 2.2, etc). It's starting to come together
(again?)... I've inlined the answers I figured out
for posterity or the next clueless newb who comes along.

On 3/16/24 11:00 AM, Will Senn wrote:

2. CP/M works from RexCPM, which is great, cuz CP/M
recognizes more memory:

    64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0


Yes, it does recognize more memory and it serves up
an A: drive that's a big chunk of that 2MBs. Solid.
Talked about here:
http://bitchin100.com/wiki/index.php?title=M100_CP/M


My questions are as follows:

4. In CP/M, how do I get back to MENU?


Duh, F8 :).


5. When I start CP/M, is it just running CP/M
against the M100's memory or am I in some special
whizbang virtual environment where I have additional
disks available somehow?

It's a whizbang environment for sure - 64K ram and a
nearly 2MB A: drive.

As for my broken ASM, another duh, thanks John for
the tip - I need to write a CP/M friendly program
that call it's routines and not the ROM calls.

CP/M seems the way to go, though. It kinda reminds me
of RT11, but with ASM instead of MACRO11.  ed...
well, after you figure out that you need to retrieve
the file contents into the buffer, it kinda makes
sense - nice video - I love ED:
https://www.youtube.com/watch?v=7pqaj050X7g

Still need to figure out how to get files into and
out of cp/m though...

Off to read some more.

-will





Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Will Senn

Sweet! Thanks.

Will

On 3/16/24 3:03 PM, Brian Brindle wrote:
Simple DDT "HI" program - can be expanded to "hello world" if 
ambitious enough.


Start DDT
A100  # Start assembly at location $100

mvi c,2   # Put 2 in the C-register for Console Out
mv e,48  # $48 is ASCII H
call 5      # entry point for all system calls (BDOS)
mvi c,2   # Put 2 in C-register for Console Out
mvi e,49  #$49 ASCII I
call 5       # BDOS call again
rst 7        # return to DDT

g100 to execute, should print something like "HI" with memory location 
after.


Tons of fun!

Brian



On Sat, Mar 16, 2024 at 3:12 PM Will Senn  wrote:

Brian,

Definitely. DDT is great. I'll be working through that next. I
finally got a program working and assembled - from the 2.2 manual
- read chars until *. Now, I just gotta get hello, world
working I was sure, it would work... oh, wait, when it says to
CALL CPM, I bet it's not talking about where CP/M is DE1EH... I
bet it's that 0005H entry point... off to explore.

Will

On 3/16/24 1:08 PM, Brian Brindle wrote:

If you just want to play, don't discount ddt in CP/M. Cheap and
dirty way to play with everything.

On Sat, Mar 16, 2024, 1:48 PM Stephen Adolph
 wrote:

regarding file transfer, use
IMPORT
or
EXPORT
in CP/M.  Included in package.
These programs access a "TPDD".  Filenames are 8.3 format,

cheers
Steve

On Sat, Mar 16, 2024 at 1:36 PM Will Senn
 wrote:

I broke down and started reading the manuals (REXCPM,
CP/M 2.2, etc). It's starting to come together
(again?)... I've inlined the answers I figured out for
posterity or the next clueless newb who comes along.

On 3/16/24 11:00 AM, Will Senn wrote:

2. CP/M works from RexCPM, which is great, cuz CP/M
recognizes more memory:

    64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0


Yes, it does recognize more memory and it serves up an A:
drive that's a big chunk of that 2MBs. Solid. Talked
about here:
http://bitchin100.com/wiki/index.php?title=M100_CP/M


My questions are as follows:

4. In CP/M, how do I get back to MENU?


Duh, F8 :).


5. When I start CP/M, is it just running CP/M against
the M100's memory or am I in some special whizbang
virtual environment where I have additional disks
available somehow?

It's a whizbang environment for sure - 64K ram and a
nearly 2MB A: drive.

As for my broken ASM, another duh, thanks John for the
tip - I need to write a CP/M friendly program that call
it's routines and not the ROM calls.

CP/M seems the way to go, though. It kinda reminds me of
RT11, but with ASM instead of MACRO11.  ed... well, after
you figure out that you need to retrieve the file
contents into the buffer, it kinda makes sense - nice
video - I love ED:
https://www.youtube.com/watch?v=7pqaj050X7g

Still need to figure out how to get files into and out of
cp/m though...

Off to read some more.

-will





Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Brian Brindle
Quick correction, if you don't have a Z80 rst 7 is gonna end poorly - try
rst 6 instead.
Only see these things AFTER hitting send..

Start DDT
A100  # Start assembly at location $100

mvi c,2   # Put 2 in the C-register for Console Out
mv e,48  # $48 is ASCII H
call 5  # entry point for all system calls (BDOS)
mvi c,2   # Put 2 in C-register for Console Out
mvi e,49  #$49 ASCII I
call 5   # BDOS call again
rst 6# return to DDT

g100 to execute, should print something like "HI" with memory location
after.

Still tons of fun!

On Sat, Mar 16, 2024 at 4:03 PM Brian Brindle  wrote:

> Simple DDT "HI" program - can be expanded to "hello world" if ambitious
> enough.
>
> Start DDT
> A100  # Start assembly at location $100
>
> mvi c,2   # Put 2 in the C-register for Console Out
> mv e,48  # $48 is ASCII H
> call 5  # entry point for all system calls (BDOS)
> mvi c,2   # Put 2 in C-register for Console Out
> mvi e,49  #$49 ASCII I
> call 5   # BDOS call again
> rst 7# return to DDT
>
> g100 to execute, should print something like "HI" with memory location
> after.
>
> Tons of fun!
>
> Brian
>
>
>
> On Sat, Mar 16, 2024 at 3:12 PM Will Senn  wrote:
>
>> Brian,
>>
>> Definitely. DDT is great. I'll be working through that next. I finally
>> got a program working and assembled - from the 2.2 manual - read chars
>> until *. Now, I just gotta get hello, world working I was sure, it
>> would work... oh, wait, when it says to CALL CPM, I bet it's not talking
>> about where CP/M is DE1EH... I bet it's that 0005H entry point... off to
>> explore.
>>
>> Will
>>
>> On 3/16/24 1:08 PM, Brian Brindle wrote:
>>
>> If you just want to play, don't discount ddt in CP/M. Cheap and dirty way
>> to play with everything.
>>
>> On Sat, Mar 16, 2024, 1:48 PM Stephen Adolph 
>> wrote:
>>
>>> regarding file transfer, use
>>> IMPORT
>>> or
>>> EXPORT
>>> in CP/M.  Included in package.
>>> These programs access a "TPDD".  Filenames are 8.3 format,
>>>
>>> cheers
>>> Steve
>>>
>>> On Sat, Mar 16, 2024 at 1:36 PM Will Senn  wrote:
>>>
 I broke down and started reading the manuals (REXCPM, CP/M 2.2, etc).
 It's starting to come together (again?)... I've inlined the answers I
 figured out for posterity or the next clueless newb who comes along.

 On 3/16/24 11:00 AM, Will Senn wrote:

 2. CP/M works from RexCPM, which is great, cuz CP/M recognizes more
 memory:

 64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0

 Yes, it does recognize more memory and it serves up an A: drive that's
 a big chunk of that 2MBs. Solid. Talked about here:
 http://bitchin100.com/wiki/index.php?title=M100_CP/M

 My questions are as follows:

 4. In CP/M, how do I get back to MENU?

 Duh, F8 :).

 5. When I start CP/M, is it just running CP/M against the M100's memory
 or am I in some special whizbang virtual environment where I have
 additional disks available somehow?

 It's a whizbang environment for sure - 64K ram and a nearly 2MB A:
 drive.

 As for my broken ASM, another duh, thanks John for the tip - I need to
 write a CP/M friendly program that call it's routines and not the ROM 
 calls.

 CP/M seems the way to go, though. It kinda reminds me of RT11, but with
 ASM instead of MACRO11.  ed... well, after you figure out that you need to
 retrieve the file contents into the buffer, it kinda makes sense - nice
 video - I love ED:
 https://www.youtube.com/watch?v=7pqaj050X7g

 Still need to figure out how to get files into and out of cp/m though...

 Off to read some more.

 -will

>>>
>>


Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Brian Brindle
Simple DDT "HI" program - can be expanded to "hello world" if ambitious
enough.

Start DDT
A100  # Start assembly at location $100

mvi c,2   # Put 2 in the C-register for Console Out
mv e,48  # $48 is ASCII H
call 5  # entry point for all system calls (BDOS)
mvi c,2   # Put 2 in C-register for Console Out
mvi e,49  #$49 ASCII I
call 5   # BDOS call again
rst 7# return to DDT

g100 to execute, should print something like "HI" with memory location
after.

Tons of fun!

Brian



On Sat, Mar 16, 2024 at 3:12 PM Will Senn  wrote:

> Brian,
>
> Definitely. DDT is great. I'll be working through that next. I finally got
> a program working and assembled - from the 2.2 manual - read chars until *.
> Now, I just gotta get hello, world working I was sure, it would work...
> oh, wait, when it says to CALL CPM, I bet it's not talking about where CP/M
> is DE1EH... I bet it's that 0005H entry point... off to explore.
>
> Will
>
> On 3/16/24 1:08 PM, Brian Brindle wrote:
>
> If you just want to play, don't discount ddt in CP/M. Cheap and dirty way
> to play with everything.
>
> On Sat, Mar 16, 2024, 1:48 PM Stephen Adolph  wrote:
>
>> regarding file transfer, use
>> IMPORT
>> or
>> EXPORT
>> in CP/M.  Included in package.
>> These programs access a "TPDD".  Filenames are 8.3 format,
>>
>> cheers
>> Steve
>>
>> On Sat, Mar 16, 2024 at 1:36 PM Will Senn  wrote:
>>
>>> I broke down and started reading the manuals (REXCPM, CP/M 2.2, etc).
>>> It's starting to come together (again?)... I've inlined the answers I
>>> figured out for posterity or the next clueless newb who comes along.
>>>
>>> On 3/16/24 11:00 AM, Will Senn wrote:
>>>
>>> 2. CP/M works from RexCPM, which is great, cuz CP/M recognizes more
>>> memory:
>>>
>>> 64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0
>>>
>>> Yes, it does recognize more memory and it serves up an A: drive that's a
>>> big chunk of that 2MBs. Solid. Talked about here:
>>> http://bitchin100.com/wiki/index.php?title=M100_CP/M
>>>
>>> My questions are as follows:
>>>
>>> 4. In CP/M, how do I get back to MENU?
>>>
>>> Duh, F8 :).
>>>
>>> 5. When I start CP/M, is it just running CP/M against the M100's memory
>>> or am I in some special whizbang virtual environment where I have
>>> additional disks available somehow?
>>>
>>> It's a whizbang environment for sure - 64K ram and a nearly 2MB A: drive.
>>>
>>> As for my broken ASM, another duh, thanks John for the tip - I need to
>>> write a CP/M friendly program that call it's routines and not the ROM calls.
>>>
>>> CP/M seems the way to go, though. It kinda reminds me of RT11, but with
>>> ASM instead of MACRO11.  ed... well, after you figure out that you need to
>>> retrieve the file contents into the buffer, it kinda makes sense - nice
>>> video - I love ED:
>>> https://www.youtube.com/watch?v=7pqaj050X7g
>>>
>>> Still need to figure out how to get files into and out of cp/m though...
>>>
>>> Off to read some more.
>>>
>>> -will
>>>
>>
>


Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Will Senn

Brian,

Definitely. DDT is great. I'll be working through that next. I finally 
got a program working and assembled - from the 2.2 manual - read chars 
until *. Now, I just gotta get hello, world working I was sure, it 
would work... oh, wait, when it says to CALL CPM, I bet it's not talking 
about where CP/M is DE1EH... I bet it's that 0005H entry point... off to 
explore.


Will

On 3/16/24 1:08 PM, Brian Brindle wrote:
If you just want to play, don't discount ddt in CP/M. Cheap and dirty 
way to play with everything.


On Sat, Mar 16, 2024, 1:48 PM Stephen Adolph  wrote:

regarding file transfer, use
IMPORT
or
EXPORT
in CP/M.  Included in package.
These programs access a "TPDD".  Filenames are 8.3 format,

cheers
Steve

On Sat, Mar 16, 2024 at 1:36 PM Will Senn  wrote:

I broke down and started reading the manuals (REXCPM, CP/M
2.2, etc). It's starting to come together (again?)... I've
inlined the answers I figured out for posterity or the next
clueless newb who comes along.

On 3/16/24 11:00 AM, Will Senn wrote:

2. CP/M works from RexCPM, which is great, cuz CP/M
recognizes more memory:

    64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0


Yes, it does recognize more memory and it serves up an A:
drive that's a big chunk of that 2MBs. Solid. Talked about
here: http://bitchin100.com/wiki/index.php?title=M100_CP/M


My questions are as follows:

4. In CP/M, how do I get back to MENU?


Duh, F8 :).


5. When I start CP/M, is it just running CP/M against the
M100's memory or am I in some special whizbang virtual
environment where I have additional disks available somehow?

It's a whizbang environment for sure - 64K ram and a nearly
2MB A: drive.

As for my broken ASM, another duh, thanks John for the tip - I
need to write a CP/M friendly program that call it's routines
and not the ROM calls.

CP/M seems the way to go, though. It kinda reminds me of RT11,
but with ASM instead of MACRO11.  ed... well, after you figure
out that you need to retrieve the file contents into the
buffer, it kinda makes sense - nice video - I love ED:
https://www.youtube.com/watch?v=7pqaj050X7g

Still need to figure out how to get files into and out of cp/m
though...

Off to read some more.

-will



Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Will Senn
Thanks, Steve! I didn't truly appreciate CP/M until I decided to start 
mucking about in Assembler. I just got my first assembly program working 
in CP/M, yay and it's easy enough to just do the editing on my PC using 
sublime (after figuring out how to get 8 charater tabs and not spaces), 
dos2unix, and with import export it's swell. VEDIT works too, but it's 
faster to do the editing on the pc.


Later,

Will

On 3/16/24 12:48 PM, Stephen Adolph wrote:

regarding file transfer, use
IMPORT
or
EXPORT
in CP/M.  Included in package.
These programs access a "TPDD".  Filenames are 8.3 format,

cheers
Steve

On Sat, Mar 16, 2024 at 1:36 PM Will Senn  wrote:

I broke down and started reading the manuals (REXCPM, CP/M 2.2,
etc). It's starting to come together (again?)... I've inlined the
answers I figured out for posterity or the next clueless newb who
comes along.

On 3/16/24 11:00 AM, Will Senn wrote:

2. CP/M works from RexCPM, which is great, cuz CP/M recognizes
more memory:

    64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0


Yes, it does recognize more memory and it serves up an A: drive
that's a big chunk of that 2MBs. Solid. Talked about here:
http://bitchin100.com/wiki/index.php?title=M100_CP/M


My questions are as follows:

4. In CP/M, how do I get back to MENU?


Duh, F8 :).


5. When I start CP/M, is it just running CP/M against the M100's
memory or am I in some special whizbang virtual environment where
I have additional disks available somehow?

It's a whizbang environment for sure - 64K ram and a nearly 2MB A:
drive.

As for my broken ASM, another duh, thanks John for the tip - I
need to write a CP/M friendly program that call it's routines and
not the ROM calls.

CP/M seems the way to go, though. It kinda reminds me of RT11, but
with ASM instead of MACRO11.  ed... well, after you figure out
that you need to retrieve the file contents into the buffer, it
kinda makes sense - nice video - I love ED:
https://www.youtube.com/watch?v=7pqaj050X7g

Still need to figure out how to get files into and out of cp/m
though...

Off to read some more.

-will



Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Brian Brindle
If you just want to play, don't discount ddt in CP/M. Cheap and dirty way
to play with everything.

On Sat, Mar 16, 2024, 1:48 PM Stephen Adolph  wrote:

> regarding file transfer, use
> IMPORT
> or
> EXPORT
> in CP/M.  Included in package.
> These programs access a "TPDD".  Filenames are 8.3 format,
>
> cheers
> Steve
>
> On Sat, Mar 16, 2024 at 1:36 PM Will Senn  wrote:
>
>> I broke down and started reading the manuals (REXCPM, CP/M 2.2, etc).
>> It's starting to come together (again?)... I've inlined the answers I
>> figured out for posterity or the next clueless newb who comes along.
>>
>> On 3/16/24 11:00 AM, Will Senn wrote:
>>
>> 2. CP/M works from RexCPM, which is great, cuz CP/M recognizes more
>> memory:
>>
>> 64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0
>>
>> Yes, it does recognize more memory and it serves up an A: drive that's a
>> big chunk of that 2MBs. Solid. Talked about here:
>> http://bitchin100.com/wiki/index.php?title=M100_CP/M
>>
>> My questions are as follows:
>>
>> 4. In CP/M, how do I get back to MENU?
>>
>> Duh, F8 :).
>>
>> 5. When I start CP/M, is it just running CP/M against the M100's memory
>> or am I in some special whizbang virtual environment where I have
>> additional disks available somehow?
>>
>> It's a whizbang environment for sure - 64K ram and a nearly 2MB A: drive.
>>
>> As for my broken ASM, another duh, thanks John for the tip - I need to
>> write a CP/M friendly program that call it's routines and not the ROM calls.
>>
>> CP/M seems the way to go, though. It kinda reminds me of RT11, but with
>> ASM instead of MACRO11.  ed... well, after you figure out that you need to
>> retrieve the file contents into the buffer, it kinda makes sense - nice
>> video - I love ED:
>> https://www.youtube.com/watch?v=7pqaj050X7g
>>
>> Still need to figure out how to get files into and out of cp/m though...
>>
>> Off to read some more.
>>
>> -will
>>
>


Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Stephen Adolph
regarding file transfer, use
IMPORT
or
EXPORT
in CP/M.  Included in package.
These programs access a "TPDD".  Filenames are 8.3 format,

cheers
Steve

On Sat, Mar 16, 2024 at 1:36 PM Will Senn  wrote:

> I broke down and started reading the manuals (REXCPM, CP/M 2.2, etc). It's
> starting to come together (again?)... I've inlined the answers I figured
> out for posterity or the next clueless newb who comes along.
>
> On 3/16/24 11:00 AM, Will Senn wrote:
>
> 2. CP/M works from RexCPM, which is great, cuz CP/M recognizes more memory:
>
> 64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0
>
> Yes, it does recognize more memory and it serves up an A: drive that's a
> big chunk of that 2MBs. Solid. Talked about here:
> http://bitchin100.com/wiki/index.php?title=M100_CP/M
>
> My questions are as follows:
>
> 4. In CP/M, how do I get back to MENU?
>
> Duh, F8 :).
>
> 5. When I start CP/M, is it just running CP/M against the M100's memory or
> am I in some special whizbang virtual environment where I have additional
> disks available somehow?
>
> It's a whizbang environment for sure - 64K ram and a nearly 2MB A: drive.
>
> As for my broken ASM, another duh, thanks John for the tip - I need to
> write a CP/M friendly program that call it's routines and not the ROM calls.
>
> CP/M seems the way to go, though. It kinda reminds me of RT11, but with
> ASM instead of MACRO11.  ed... well, after you figure out that you need to
> retrieve the file contents into the buffer, it kinda makes sense - nice
> video - I love ED:
> https://www.youtube.com/watch?v=7pqaj050X7g
>
> Still need to figure out how to get files into and out of cp/m though...
>
> Off to read some more.
>
> -will
>


Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Will Senn

More duh, export and import writes and reads from tpdd emulator!
Awesome.

On 3/16/24 12:34 PM, Will Senn wrote:
I broke down and started reading the manuals (REXCPM, CP/M 2.2, etc). 
It's starting to come together (again?)... I've inlined the answers I 
figured out for posterity or the next clueless newb who comes along.


On 3/16/24 11:00 AM, Will Senn wrote:
2. CP/M works from RexCPM, which is great, cuz CP/M recognizes more 
memory:


    64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0

Yes, it does recognize more memory and it serves up an A: drive that's 
a big chunk of that 2MBs. Solid. Talked about here: 
http://bitchin100.com/wiki/index.php?title=M100_CP/M



My questions are as follows:

4. In CP/M, how do I get back to MENU?


Duh, F8 :).

5. When I start CP/M, is it just running CP/M against the M100's 
memory or am I in some special whizbang virtual environment where I 
have additional disks available somehow?

It's a whizbang environment for sure - 64K ram and a nearly 2MB A: drive.

As for my broken ASM, another duh, thanks John for the tip - I need to 
write a CP/M friendly program that call it's routines and not the ROM 
calls.


CP/M seems the way to go, though. It kinda reminds me of RT11, but 
with ASM instead of MACRO11.  ed... well, after you figure out that 
you need to retrieve the file contents into the buffer, it kinda makes 
sense - nice video - I love ED:

https://www.youtube.com/watch?v=7pqaj050X7g

Still need to figure out how to get files into and out of cp/m though...

Off to read some more.

-will


Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Will Senn
I broke down and started reading the manuals (REXCPM, CP/M 2.2, etc). 
It's starting to come together (again?)... I've inlined the answers I 
figured out for posterity or the next clueless newb who comes along.


On 3/16/24 11:00 AM, Will Senn wrote:
2. CP/M works from RexCPM, which is great, cuz CP/M recognizes more 
memory:


    64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0

Yes, it does recognize more memory and it serves up an A: drive that's a 
big chunk of that 2MBs. Solid. Talked about here: 
http://bitchin100.com/wiki/index.php?title=M100_CP/M



My questions are as follows:

4. In CP/M, how do I get back to MENU?


Duh, F8 :).

5. When I start CP/M, is it just running CP/M against the M100's 
memory or am I in some special whizbang virtual environment where I 
have additional disks available somehow?

It's a whizbang environment for sure - 64K ram and a nearly 2MB A: drive.

As for my broken ASM, another duh, thanks John for the tip - I need to 
write a CP/M friendly program that call it's routines and not the ROM calls.


CP/M seems the way to go, though. It kinda reminds me of RT11, but with 
ASM instead of MACRO11.  ed... well, after you figure out that you need 
to retrieve the file contents into the buffer, it kinda makes sense - 
nice video - I love ED:

https://www.youtube.com/watch?v=7pqaj050X7g

Still need to figure out how to get files into and out of cp/m though...

Off to read some more.

-will

Re: [M100] Using CP/M for assembly work

2024-03-16 Thread Will Senn

Got it. I'll find a text on CP/M Assembly - dos calls or whatnot.

Will

On 3/16/24 11:41 AM, John R. Hogerhuis wrote:

You'd want to use CP/M for as much I/O as possible.

CP/m runs in all-RAM mode. So the main ROM isn't mapped in lower 
address space.


Though I'm sure Steve or Phil could show you how to do a far call to 
the main ROM if you really need to. But you probably don't.


Of course you also can do direct I/o using the in and out instructions 
without jumping to the main ROM. No ROM switching code needed.


-- John.




Re: [M100] Using CP/M for assembly work

2024-03-16 Thread John R. Hogerhuis
You'd want to use CP/M for as much I/O as possible.

CP/m runs in all-RAM mode. So the main ROM isn't mapped in lower address
space.

Though I'm sure Steve or Phil could show you how to do a far call to the
main ROM if you really need to. But you probably don't.

Of course you also can do direct I/o using the in and out instructions
without jumping to the main ROM. No ROM switching code needed.

-- John.


[M100] Using CP/M for assembly work

2024-03-16 Thread Will Senn

I figured out a bunch of stuff:

1. ZBG "works" and I was able to get the sample checkerboard app to run. 
I ran into memory issues, though. For example, when I edited the source 
and saved it out of TEXT. All was well with the world, but when I tried 
'ASM SAMPLE.DO SAMPLE /WE' from within ZBG.CO from MENU, it didn't work. 
However, the same command worked fine when I "RUN ZBG.BA" from BASIC. 
Weird, I figure it's my lack of understanding of how memory and files 
work on the M100.


2. CP/M works from RexCPM, which is great, cuz CP/M recognizes more memory:

    64K CP/M 2.2 M100 CP/M + REXCPM 2MB 1.0

3. I worked out (through much pain and suffering) how to create my 
SAMPLE.ASM file using ED and compiled it successfully using 'ASM SAMPLE'


4. I ran it using 'LOAD SAMPLE' then 'SAMPLE'

Of course, it cratered - hung there and wouldn't respond.

I figure, I will work through it eventually, but I have questions. But, 
before that, here's the sample code, in case it's obvious where I went 
wrong (it's using ROM functions, are those available from CP/M?):


    ORG    0CC00H
   HOME:    CALL    422DH
   SCREEN:    MVI    A,0FFH
    CALL    4B44H
   ROW:    LDA    0F639H
    CPI    8H
    JNZ    SCREEN
   COL:    LDA    0F63AH
    CPI    28H
    JNZ    SCREEN
   WAIT:    CALL    12CBH
   EXIT:    CALL    5797H
    END    HOME

I also tried it with ORG 100H (like Sgt. Schultz, I know nothing... 
about CP/M's memory model).


My questions are as follows:

Bare M100:
1.  After copying ZBG.CO and ZBG.BA over and creating my SAMPLE.DO file 
(the only other file on the machine is TEENY.CO), I have 768 bytes left 
(it's a 32K RAM M100). Does that sound right or am I supposed to delete 
the CO files after they're loaded or run some funky clear command, or what?


2. ZBG is expecting to be loaded from cassette with CLOAD, is there a 
fake-the-cassette command that will use DataLink or something?


With REXCPM:

3. In CP/M, how to I transfer files to / from my host system (is there a 
TEENY for CP/M)?


4. In CP/M, how do I get back to MENU?

5. When I start CP/M, is it just running CP/M against the M100's memory 
or am I in some special whizbang virtual environment where I have 
additional disks available somehow?


Wow! So many questions, so little time :).

Thanks,

Will