Re: Discovered the Hi-Res Basic!

From: Christian Dirks <Toast_r_at_IdeaLine.info>
Date: Thu, 26 Oct 2017 15:46:03 +0200
Message-ID: <95228983-cf72-afad-46a9-6af6a246ed13@IdeaLine.info>
Hi Ruud,
I think !HARD is meant to output a hardcopy on a printer, what brings up
the question for which printer type it was made.
If I get you right, it also could be used to print the harcopy to a
file, since the the I/O channel has to opened first.
If it works, the contents of the resulting file should make it possible
to find out, for which printer the harcopy routine was meant.
Hopefully, this will tell what's behind the table.

I will try to write a harcopy to a file ...

Christian

Am 26.10.2017 um 14:35 schrieb Baltissen, GJPAA (Ruud):
> 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
> 


-- 
Christian Dirks
Toast_r@Idealine.info







       Message was sent through the cbm-hackers mailing list

Received on 2017-10-26 14:01:19

Archive generated by hypermail 2.2.0.