Advanced User Guide (AUG) [Remastered PDF]

avoid work duplication! collaborate on the archival of acorn literature!
SamSkivington
Posts: 8
Joined: Fri Apr 23, 2021 5:51 pm
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by SamSkivington »

I'm now more confused than when I discovered this anomaly.

On the Model B with OS1.20 in front of me, &F0 and &F1 contain the ZP ROMSEL copy's value and 0 respectively. Output from your ROM code:

*FX114 20 30
<72><0B><00>

I'll validate the OS ROM (looks like an original) against a known good one and report back.
philb
Posts: 725
Joined: Sat Aug 05, 2017 7:05 pm
Location: Cambridge, GB
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by philb »

The MOS disassembly from http://mdfs.net/Docs/Comp/BBC/OS1-20/E6B0 does seem pretty clear:

Code: Select all

**************************************************************************
**************************************************************************
**                                                                      **
**      OSBYTE  DEFAULT ENTRY POINT                                     **
**                                                                      **
**      pointed to by default BYTEV                                     **
**                                                                      **
**************************************************************************
**************************************************************************

E772	PHA         ;save A
E773	PHP         ;save Processor flags
E774	SEI         ;disable interrupts
E775	STA &EF     ;store A,X,Y in zero page
E777	STX &F0     ;
E779	STY &F1     ;
philb
Posts: 725
Joined: Sat Aug 05, 2017 7:05 pm
Location: Cambridge, GB
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by philb »

SamSkivington wrote:
Sat Jul 03, 2021 11:08 pm
On the Model B with OS1.20 in front of me, &F0 and &F1 contain the ZP ROMSEL copy's value and 0 respectively.
Obvious question I guess, but do you have any other ROMs installed that might possibly be corrupting the zero page locations in question?
SamSkivington
Posts: 8
Joined: Fri Apr 23, 2021 5:51 pm
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by SamSkivington »

Yep. That was it - another experimental ROM in higher priority is making a keyboard scan OSBYTE call regardless of service call no. which naturally overwrites those addresses.

Good shout @philb

Thanks and apologies!
6502
Posts: 48
Joined: Sat Mar 17, 2018 1:04 pm
Location: London
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by 6502 »

The book appears to include two different types of OSBYTE &81. Pg. 152 & Pg. 153
User avatar
SKS1
Posts: 63
Joined: Sat Sep 19, 2020 12:04 am
Location: Highland Perthshire
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by SKS1 »

As you would hope it did! "If called with Y=&FF and X=0 this call returns the machine type (see previous page)."
Miserable old curmudgeon who still likes a bit of an ARM wrestle now and then. ARMX6, SA Risc PC, A540
User avatar
jgharston
Posts: 4623
Joined: Thu Sep 24, 2009 12:22 pm
Location: Whitby/Sheffield
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by jgharston »

Some of the low numbered OSBYTEs state Y=0 on entry. That's incorrect, all low OSBYTEs are Y=ignored on entry, and the OSBYTE dispatcher explicitly sets Y=0 within the dispatch code.

This gives rise to confusion with OSBYTE 3 implying you can set Y to a bitmask to modify selected bits of the output stream. That's incorrect, *FX3,n,anything becomes internally *FX 236,n,0 /always/.

Also, as OSBYTE &81 (INKEY) lists post-OS-1 machines, OSBYTE 0 should also.

Also, OSBYTE &81, all Compacts return &F5, not just MOS 5.10 - MOS 5.00, MOS 5.10, MOS 5.11, most likely any other MOS 5.xx. (Hmm, must check the Olivetti MOS)

Code: Select all

$ bbcbasic
PDP11 BBC BASIC IV Version 0.36
(C) Copyright J.G.Harston 1989,2005-2020
>_
6502
Posts: 48
Joined: Sat Mar 17, 2018 1:04 pm
Location: London
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by 6502 »

6502 wrote:
Fri Oct 15, 2021 9:19 pm
The book appears to include two different types of OSBYTE &81. Pg. 152 & Pg. 153
SKS1 wrote:
Sat Oct 16, 2021 1:07 pm
As you would hope it did! "If called with Y=&FF and X=0 this call returns the machine type (see previous page)."
Okay, thank you for clearing that up for me.
tom_seddon
Posts: 501
Joined: Tue Aug 30, 2005 12:42 am
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by tom_seddon »

Looks like the screen scrolling wraparound table on page 419 is wrong? - the 10 KB and 20 KB values are swapped. See the way MOS 1.20 programs it (https://tobylobster.github.io/mos/mos/S-s4.html#SP14) and the working lookup table that b2 uses (https://github.com/tom-seddon/b2/blob/a ... ro.cpp#L86).

I think the table should be:

20 KB: B5 = 1 B4 = 0
16 KB: B5 = 0 B4 = 0
10 KB: B5 = 1 B4 = 1
8 KB: B5 = 0 B4 = 1

--Tom
mygrandmawheels
Posts: 28
Joined: Tue Oct 06, 2015 8:15 am
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by mygrandmawheels »

I think you're right, at least for the 20Kb screen; I just tried with somthing like

Code: Select all

LDX #%00001111              ;set System VIA PORT B to output on bits 0-3; input on bits 4-7
STX sysVIADDRB              ;.systemVIADataDirectionRegisterB

; set mode 2 (20 kb screen)
LDA #22:JSR oswrch
LDA #2:JSR oswrch

; set the "wrap around"
SEI
LDA #4  
STA &FE40           ; write system VIA register B
LDA #13
STA &FE40           ; write system VIA register B
CLI

; set the screen origin at &3000 (20Kb screen)
LDA #12 : STA &FE00 : LDA #&30 : STA &FE01 ; MSB
LDA #13 : STA &FE00 : LDA #&00 : STA &FE01 ; LSB

so i set B5 = 1 B4 = 0, and it's the only way the screen doesn't show artifacts.

Really strange, anyway, that there's such a mistake. I'm not a guru of the bbc, so I doubt of myself, but my test seems correct.
User avatar
hoglet
Posts: 10867
Joined: Sat Oct 13, 2012 7:21 pm
Location: Bristol
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by hoglet »

tom_seddon wrote:
Sun Dec 26, 2021 8:38 pm
I think the table should be:

20 KB: B5 = 1 B4 = 0
16 KB: B5 = 0 B4 = 0
10 KB: B5 = 1 B4 = 1
8 KB: B5 = 0 B4 = 1
I've also just worked through the logic and I agree with this...

This was my workings:

Code: Select all

---- Inputs -------   --- NAND Gates ---    ---- Adder ----   Address
MA12 = 0 C1 C0 = XX : X4=1 X3=1 X2=1 X1=1 : 1111 + 1 = 0000 : unchanged
MA12 = 1 C1 C0 = 10 : X4=0 X3=1 X2=0 X1=1 : 0101 + 1 = 0110 : +&3000
MA12 = 1 C1 C0 = 00 : X4=0 X3=1 X2=1 X1=1 : 0111 + 1 = 1000 : +&4000
MA12 = 1 C1 C0 = 11 : X4=1 X3=0 X2=1 X1=0 : 1010 + 1 = 1011 : +&5800
MA12 = 1 C1 C0 = 01 : X4=1 X3=0 X2=1 X1=1 : 1011 + 1 = 1100 : +&6000
User avatar
Rich Talbot-Watkins
Posts: 1810
Joined: Thu Jan 13, 2005 5:20 pm
Location: Palma, Mallorca
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by Rich Talbot-Watkins »

Yes, I remember the screen wraparound thing being in error from back in the day (and always having to set it by trial-and-error)! Along with the internal key codes for 9 and I being transposed. I was never aware of any other errors in the AUG though, and I far prefer the layout to the NAUG which I can never find my way around.
User avatar
tricky
Posts: 6017
Joined: Tue Jun 21, 2011 9:25 am
Contact:

Re: Advanced User Guide (AUG) [Remastered PDF]

Post by tricky »

Same here Rich, but I have vague revolutions of another typo, but if have to find my copy to be sure.
Post Reply

Return to “scanning of books, magazines, ads and letters”