00000000: 00 40 28 2A 20 42 49 54 4D 41 50 20 4D 4F 44 45 |.@(* BITMAP MODE|
00000010: 20 57 52 49 54 49 4E 47 20 50 52 4F 47 52 41 4D | WRITING PROGRAM|
00000020: 0D 10 83 44 45 4D 4F 4E 53 54 52 41 54 49 4F 4E |...DEMONSTRATION|
00000030: 20 2A 29 0D 0D 28 2A 20 C1 55 54 48 4F 52 3A 20 | *)..(* .UTHOR: |
00000040: CE 49 43 4B 20 C7 41 4D 4D 4F 4E 2E 0D 10 83 D5 |.ICK .AMMON.....|
00000050: 53 45 53 20 24 31 46 30 30 20 9B 24 31 46 45 44 |SES $1F00 .$1FED|
00000060: 0D 10 83 9A 4D 41 43 48 49 4E 45 20 43 4F 44 45 |....MACHINE CODE|
00000070: 20 53 55 42 52 4F 55 54 49 4E 45 20 2A 29 0D 0D | SUBROUTINE *)..|
00000080: 82 42 49 54 4D 41 50 20 3D 20 31 3B 0D 10 86 43 |.BITMAP = 1;...C|
00000090: 48 41 52 47 45 4E 42 41 53 45 20 3D 20 38 3B 0D |HARGENBASE = 8;.|
000000A0: 10 86 42 4C 41 43 4B 20 3D 20 30 3B 0D 10 86 59 |..BLACK = 0;...Y|
000000B0: 45 4C 4C 4F 57 20 3D 20 37 3B 0D 10 86 4F 4E 20 |ELLOW = 7;...ON |
000000C0: 3D 20 31 3B 0D 10 86 48 4F 4D 45 20 3D 20 31 34 |= 1;...HOME = 14|
000000D0: 37 3B 0D 83 58 20 3A 20 FE 3B 0D 0D 86 49 4E 49 |7;..X : .;...INI|
000000E0: 54 5F 42 49 54 4D 41 50 5F 57 52 49 54 49 4E 47 |T_BITMAP_WRITING|
000000F0: 3B 0D 28 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A |;.(*************|
00000100: 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 29 |***************)|
00000110: 0D 83 4D 20 3A 20 FE 3B 0D 0D 86 58 28 49 2C 4A |..M : .;...X(I,J|
00000120: 2C 4B 29 3B 0D 28 2A 2D 2D 2D 2D 2D 2D 2D 2D 2D |,K);.(*---------|
00000130: 2D 2D 2D 2D 2D 2D 2A 29 0D 88 0D 91 5B 4D 5D 20 |------*)....[M] |
00000140: 3A 3D 20 49 3B 0D 91 5B 4D 20 2B 20 33 5D 20 3A |:= I;..[M + 3] :|
00000150: 3D 20 4A 3B 0D 91 5B 4D 20 2B 20 36 5D 20 3A 3D |= J;..[M + 6] :=|
00000160: 20 4B 3B 0D 4D 20 3A 3D 20 4D 20 2B 20 39 0D 89 | K;.M := M + 9..|
00000170: 3B 0D 0D 88 0D 4D 20 3A 3D 20 24 31 C6 30 32 3B |;....M := $1.02;|
00000180: 0D 58 28 24 30 33 32 37 C1 C4 2C 24 C6 30 31 C6 |.X($0327..,$.01.|
00000190: C3 39 2C 24 30 31 38 C4 31 33 29 3B 0D 58 28 24 |.9,$018.13);.X($|
000001A0: 32 36 C1 C4 31 C6 2C 24 30 30 38 C4 30 33 2C 24 |26..1.,$008.03,$|
000001B0: 31 C4 C1 39 31 C6 29 3B 0D 58 28 24 30 33 32 36 |1..91.);.X($0326|
000001C0: 38 C4 2C 24 38 C4 31 C6 C1 39 2C 24 36 30 30 33 |8.,$8.1..9,$6003|
000001D0: 32 37 29 3B 0D 58 28 24 31 31 C1 C4 34 38 2C 24 |27);.X($11..48,$|
000001E0: 32 30 32 39 C4 30 2C 24 36 38 30 34 C4 30 29 3B |2029.0,$6804.0);|
000001F0: 0D 58 28 24 31 C6 30 30 36 C3 2C 24 32 30 38 35 |.X($1.006.,$2085|
00000200: 36 38 2C 24 34 38 38 C1 34 38 29 3B 0D 58 28 24 |68,$488.48);.X($|
00000210: 33 38 34 38 39 38 2C 24 C6 C6 C6 30 32 30 2C 24 |384898,$...020,$|
00000220: 39 30 32 38 C3 30 29 3B 0D 58 28 24 33 38 39 38 |9028.0);.X($3898|
00000230: 30 35 2C 24 C1 38 32 38 C5 39 2C 24 38 34 31 C5 |05,$.828.9,$841.|
00000240: 38 36 29 3B 0D 58 28 24 32 30 C1 35 31 C6 2C 24 |86);.X($20.51.,$|
00000250: 33 38 30 33 31 30 2C 24 C3 39 36 30 C5 39 29 3B |380310,$.960.9);|
00000260: 0D 58 28 24 37 34 C6 30 30 C4 2C 24 C2 30 36 30 |.X($74.00.,$.060|
00000270: C3 39 2C 24 34 30 C3 39 30 C2 29 3B 0D 58 28 24 |.9,$40.90.);.X($|
00000280: 33 38 30 C1 39 30 2C 24 C4 30 34 30 C5 39 2C 24 |380.90,$.040.9,$|
00000290: 30 33 C6 30 30 35 29 3B 0D 58 28 24 32 30 C5 39 |03.005);.X($20.9|
000002A0: 33 38 2C 24 37 38 32 30 38 35 2C 24 C4 C3 30 C5 |38,$782085,$..0.|
000002B0: C1 C4 29 3B 0D 58 28 24 38 C4 C6 C5 32 39 2C 24 |..);.X($8...29,$|
000002C0: C1 35 C4 C3 30 C5 2C 24 C6 C2 32 39 30 31 29 3B |.5..0.,$..2901);|
000002D0: 0D 58 28 24 C1 39 30 31 38 35 2C 24 35 C6 38 35 |.X($.90185,$5.85|
000002E0: 30 30 2C 24 30 C1 32 30 C1 35 29 3B 0D 58 28 24 |00,$0.20.5);.X($|
000002F0: 30 C1 35 C6 32 36 2C 24 30 C1 35 C6 32 36 2C 24 |0.5.26,$0.5.26,$|
00000300: 38 35 35 C6 32 36 29 3B 0D 58 28 24 35 C6 C1 35 |855.26);.X($5..5|
00000310: 35 C5 2C 24 38 35 C4 38 30 39 2C 24 30 30 C1 39 |5.,$85.809,$00.9|
00000320: 35 C6 29 3B 0D 58 28 24 C1 35 34 C2 38 35 2C 24 |5.);.X($.54.85,$|
00000330: 36 36 34 C1 31 C5 2C 24 36 36 34 C1 34 C2 29 3B |664.1.,$664.4.);|
00000340: 0D 58 28 24 36 35 31 38 34 C2 2C 24 34 C3 38 35 |.X($65184.,$4.85|
00000350: 31 C5 2C 24 30 C1 31 C6 C1 35 29 3B 0D 58 28 24 |1.,$0.1..5);.X($|
00000360: 30 38 30 C1 30 C1 2C 24 34 C2 36 35 31 38 2C 24 |080.0.,$4.6518,$|
00000370: C1 35 34 C2 38 35 29 3B 0D 58 28 24 30 30 36 39 |.54.85);.X($0069|
00000380: 34 C3 2C 24 32 38 34 C3 38 35 2C 24 36 35 32 30 |4.,$284.85,$6520|
00000390: C1 39 29 3B 0D 58 28 24 34 C3 38 35 34 C3 2C 24 |.9);.X($4.854.,$|
000003A0: C2 31 30 37 C1 30 2C 24 34 C2 39 31 35 C5 29 3B |.107.0,$4.915.);|
000003B0: 0D 58 28 24 C6 39 31 30 38 38 2C 24 C1 35 31 C6 |.X($.91088,$.51.|
000003C0: C5 36 2C 24 32 38 C3 39 31 C6 29 3B 0D 58 28 24 |.6,$28.91.);.X($|
000003D0: C1 39 30 36 39 30 2C 24 31 C6 38 35 30 30 2C 24 |.90690,$1.8500,$|
000003E0: C1 35 31 C5 C5 36 29 3B 0D 58 28 24 31 39 C3 39 |.51..6);.X($19.9|
000003F0: 31 C5 2C 24 C1 39 30 34 39 30 2C 24 31 C5 38 35 |1.,$.90490,$1.85|
00000400: 30 30 29 3B 0D 58 28 24 30 39 30 31 C1 35 2C 24 |00);.X($0901.5,$|
00000410: 30 31 38 35 30 34 2C 24 C4 C3 30 C5 C1 C4 29 3B |018504,$..0...);|
00000420: 0D 58 28 24 38 C4 30 31 30 39 2C 24 35 38 C4 C3 |.X($8.0109,$58..|
00000430: 30 C5 2C 24 31 C6 C1 34 31 38 29 3B 0D 58 28 24 |0.,$1..418);.X($|
00000440: 32 30 31 C5 C1 36 2C 24 36 38 C6 C6 C6 30 2C 24 |201..6,$68...0,$|
00000450: C1 C1 36 38 C1 38 29 3B 0D 58 28 24 30 30 36 30 |..68.8);.X($0060|
00000460: 36 38 2C 30 2C 30 29 3B 0D 9F 28 24 31 C6 30 32 |68,0,0);..($1.02|
00000470: 29 3B 10 82 28 2A 20 53 45 54 20 55 50 20 56 45 |);..(* SET UP VE|
00000480: 43 54 4F 52 20 2A 29 0D 89 3B 0D 0D 28 2A 2A 2A |CTOR *)..;..(***|
00000490: 2A 2A 2A 2A 2A 20 4D 41 49 4E 20 50 52 4F 47 52 |***** MAIN PROGR|
000004A0: 41 4D 20 2A 2A 2A 2A 2A 2A 2A 2A 2A 29 0D 0D 88 |AM *********)...|
000004B0: 0D 49 4E 49 54 5F 42 49 54 4D 41 50 5F 57 52 49 |.INIT_BITMAP_WRI|
000004C0: 54 49 4E 47 3B 0D FF 28 AB 28 48 4F 4D 45 29 2C |TING;..(.(HOME),|
000004D0: 0D 22 D4 45 53 54 49 4E 47 20 2E 2E 2E 20 54 48 |.".ESTING ... TH|
000004E0: 49 53 20 49 53 20 57 52 49 54 54 45 4E 20 49 4E |IS IS WRITTEN IN|
000004F0: 22 29 3B 0D FF 20 28 22 4E 4F 52 4D 41 4C 20 28 |");.. ("NORMAL (|
00000500: 4E 4F 54 20 42 49 54 4D 41 50 29 20 4D 4F 44 45 |NOT BITMAP) MODE|
00000510: 22 29 3B 0D FF 3B 0D FF 28 22 D0 52 45 53 53 20 |");..;..(".RESS |
00000520: 41 20 4B 45 59 20 46 4F 52 20 4E 45 58 54 20 50 |A KEY FOR NEXT P|
00000530: 41 52 54 20 2E 2E 2E 22 29 3B 0D 98 99 A7 3B 0D |ART ...");....;.|
00000540: E2 28 42 49 54 4D 41 50 2C 20 4F 4E 2C 0D 10 8A |.(BITMAP, ON,...|
00000550: 43 48 41 52 47 45 4E 42 41 53 45 2C 20 34 29 3B |CHARGENBASE, 4);|
00000560: 0D A8 28 59 45 4C 4C 4F 57 2C 20 42 4C 41 43 4B |..(YELLOW, BLACK|
00000570: 29 3B 0D 9A 58 20 3A 3D 20 31 20 9B 31 39 30 20 |);..X := 1 .190 |
00000580: 97 0D 10 82 A6 28 4F 4E 2C 20 58 2C 20 58 29 3B |.....(ON, X, X);|
00000590: 0D A3 28 31 30 2C 20 31 30 29 3B 0D FF 28 22 C8 |..(10, 10);..(".|
000005A0: 49 20 54 48 45 52 45 20 2D 20 54 48 49 53 20 49 |I THERE - THIS I|
000005B0: 53 20 57 52 49 54 54 45 4E 22 29 3B 0D FF 28 22 |S WRITTEN");..("|
000005C0: 49 4E 20 42 49 54 4D 41 50 20 4D 4F 44 45 2E 22 |IN BITMAP MODE."|
000005D0: 29 3B 0D 89 2E 0D 00 |);..... |
.@(* BITMAP MODE WRITING PROGRAM...DEMON
STRATION *)..(* AUTHOR: NICK GAMMON....U
SES $1F00 .$1FED....MACHINE CODE SUBROUT
INE *)...BITMAP = 1;...CHARGENBASE = 8;.
..BLACK = 0;...YELLOW = 7;...ON = 1;...H
OME = 147;..X : .;...INIT_BITMAP_WRITING
;.(****************************)..M : .;
...X(I,J,K);.(*---------------*)....[M]
:= I;..[M + 3] := J;..[M + 6] := K;.M :=
M + 9..;....M := $1F02;.X($0327AD,$F01F
C9,$018D13);.X($26AD1F,$008D03,$1DA91F);
.X($03268D,$8D1FA9,$600327);.X($11AD48,$
2029D0,$6804D0);.X($1F006C,$208568,$488A
48);.X($384898,$FFF020,$9028C0);.X($3898
05,$A828E9,$841E86);.X($20A51F,$380310,$
C960E9);.X($74F00D,$B060C9,$40C90B);.X($
380A90,$D040E9,$03F005);.X($20E938,$7820
85,$DC0EAD);.X($8DFE29,$A5DC0E,$FB2901);
.X($A90185,$5F8500,$0A20A5);.X($0A5F26,$
0A5F26,$855F26);.X($5FA55E,$85D809,$00A9
5F);.X($A54B85,$664A1E,$664A4B);.X($6518
4B,$4C851E,$0A1FA5);.X($080A0A,$4B6518,$
A54B85);.X($00694C,$284C85,$6520A9);.X($
4C854C,$B107A0,$4B915E);.X($F91088,$A51F
E6,$28C91F);.X($A90690,$1F8500,$A51EE6);
.X($19C91E,$A90490,$1E8500);.X($0901A5,$
018504,$DC0EAD);.X($8D0109,$58DC0E,$1FA4
18);.X($201EA6,$68FFF0,$AA68A8);.X($0060
68,0,0);..($1F02);..(* SET UP VECTOR *).
.;..(******** MAIN PROGRAM *********)...
.INIT_BITMAP_WRITING;..(.(HOME),."TESTIN
G ... THIS IS WRITTEN IN");.. ("NORMAL (
NOT BITMAP) MODE");..;..("PRESS A KEY FO
R NEXT PART ...");....;..(BITMAP, ON,...
CHARGENBASE, 4);..(YELLOW, BLACK);..X :=
1 .190 .....(ON, X, X);..(10, 10);..("H
I THERE - THIS IS WRITTEN");..("IN BITMA
P MODE.");.....
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL