RE: Discovered the Hi-Res Basic!

From: Baltissen, GJPAA (Ruud) <ruud.baltissen_at_apg.nl>
Date: Thu, 26 Oct 2017 12:35:50 +0000
Message-ID: <54F350D2C6501448A3EE14B7854C5FB563F18ECB@WSV10441N3.office01.internalcorp.net>
Hallo allemaal,


Some time ago I asked the question how it was possible to mix text with graphics. I ran into something that I cannot explain. I know what is going seen from a technical point of view but not what it does. If I am correct, it is part of the command !HARD but I have no idea what this command means and does. I only can tell that it seems it has to be followed by a '#', a byte tells what the I/O channel should be, and, not mandatory a comma and a zero ore a one.

This routine first copies 8 bytes from the graphical RAM onto memory.


Then next part is repeated 8 times:

Then it reads bit 7 of each of these 8 bytes in memory by shifting it into Carry and shifting the Carry into register A.

; Shift bit 7 of eight successive locations into register A
A_AD5B:					;				[AD5B]
	ldx	#$08
A_AD5D:					;				[AD5D]
	asl	LoresYpos4,X		; shift bit7 into Carry
	rol	A			; shift Carry into register A

	dex
	bne	A_AD5D

In a next step A can be inverted. Then A is copied into X and X is used on its turn as index for the following table:

D_AF00:					;				[AF00]
.by $00, $01, $02, $03, $04, $05, $06, $07	; ........  $AF00
.by $08, $09, $0A, $0B, $0C, $0D, $0E, $0F	; ........  $AF08
.by $10, $11, $12, $13, $14, $15, $16, $17	; ........  $AF10
.by $18, $19, $1A, $1B, $1C, $1D, $1E, $1F	; ........  $AF18
.by $20, $21, $22, $23, $24, $25, $26, $27	;  !"#$%&'  $AF20
.by $28, $29, $2A, $2B, $2C, $2D, $2E, $2F	; ()*+,-./  $AF28
.by $30, $31, $32, $33, $34, $35, $36, $37	; 01234567  $AF30
.by $38, $39, $3A, $3B, $3C, $3D, $3E, $3F	; 89:;<=>?  $AF38
.by $40, $C1, $C2, $C3, $C4, $C5, $C6, $C7	; @.......  $AF40
.by $C8, $C9, $CA, $CB, $CC, $CD, $CE, $CF	; ........  $AF48
.by $D0, $D1, $D2, $D3, $D4, $D5, $D6, $D7	; ........  $AF50
.by $D8, $D9, $DA, $DB, $DC, $DD, $DE, $5F	; ......._  $AF58
.by $60, $41, $42, $43, $44, $45, $46, $47	; `ABCDEFG  $AF60
.by $48, $49, $4A, $4B, $4C, $4D, $4E, $4F	; HIJKLMNO  $AF68
.by $50, $51, $52, $53, $54, $55, $56, $57	; PQRSTUVW  $AF70
.by $58, $59, $5A, $5B, $5C, $5D, $5E, $7F	; XYZ[\]^.  $AF78
.by $80, $81, $82, $83, $84, $85, $86, $87	; ........  $AF80
.by $88, $89, $8A, $8B, $8C, $8D, $8E, $8F	; ........  $AF88
.by $90, $91, $92, $93, $94, $95, $96, $97	; ........  $AF90
.by $98, $99, $9A, $9B, $9C, $9D, $9E, $9F	; ........  $AF98
.by $A0, $A1, $A2, $A3, $A4, $A5, $A6, $A7	; ........  $AFA0
.by $A8, $A9, $AA, $AB, $AC, $AD, $AE, $AF	; ........  $AFA8
.by $B0, $B1, $B2, $B3, $B4, $B5, $B6, $B7	; ........  $AFB0
.by $B8, $B9, $BA, $BB, $BC, $BD, $BE, $BF	; ........  $AFB8
.by $C0, $61, $62, $63, $64, $65, $66, $67	; .abcdefg  $AFC0
.by $68, $69, $6A, $6B, $6C, $6D, $6E, $6F	; hijklmno  $AFC8
.by $70, $71, $72, $73, $74, $75, $76, $77	; pqrstuvw  $AFD0
.by $78, $79, $7A, $7B, $7C, $7D, $7E, $DF	; xyz{|}~.  $AFD8
.by $E0, $E1, $E2, $E3, $E4, $E5, $E6, $E7	; ........  $AFE0
.by $E8, $E9, $EA, $EB, $EC, $ED, $EE, $EF	; ........  $AFE8
.by $F0, $F1, $F2, $F3, $F4, $F5, $F6, $F7	; ........  $AFF0
.by $F8, $F9, $FA, $FB, $FC, $FD, $FE, $FF	; ........  $AFF8

The resulting byte is sent to the current channel at $FFD2. 
End of the part to be repeated 8 times.

What intrigues me is the table itself, that is, the order of the various groups of bytes. Does that ring a bell with someone?

If it is sent to the screen, could it be the function I'm looking for? If not, a HARDcopy to a printer ???
Just FYI: there are routines to save data to disk so I don't think this routine does that as well. (but you never know)

Many thanks!  


Met vriendelijke groet / With kind regards, Ruud Baltissen

www.Baltissen.org




De informatie in dit e-mailbericht is vertrouwelijk en uitsluitend bestemd voor de 
geadresseerde. Wanneer u dit bericht per abuis ontvangt, verzoeken wij u contact op te 
nemen met de afzender per kerende e-mail. Verder verzoeken wij u in dat geval dit 
e-mailbericht te vernietigen en de inhoud ervan aan niemand openbaar te maken. 
Wij aanvaarden geen aansprakelijkheid voor onjuiste, onvolledige dan wel ontijdige 
overbrenging van de inhoud van een verzonden e-mailbericht, noch voor daarbij 
overgebrachte virussen.

APG Groep N.V. is gevestigd te Heerlen en is ingeschreven in het 
handelsregister van de Kamer van Koophandel Limburg onder nummer 14099617


The information contained in this e-mail is confidential and may be privileged. 
It may be read, copied and used only by the intended recipient. 
If you have received it in error, please contact the sender immediately by 
return e-mail; please delete in this case the e-mail and do not disclose its 
contents to any person. We don't accept liability for any errors, omissions, 
delays of receipt or viruses in the contents of this message which arise as a 
result of e-mail transmission.

APG Groep N.V. is registered in the trade register of the Chamber 
of Commerce Limburg, The Netherlands, registration number: 14099617


       Message was sent through the cbm-hackers mailing list
Received on 2017-10-26 13:00:02

Archive generated by hypermail 2.2.0.