Home » CEEFAX disks » telesoftware2.adl » OS\BITS/B\OSB25
OS\BITS/B\OSB25
This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.
Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.
Tape/disk: | Home » CEEFAX disks » telesoftware2.adl |
Filename: | OS\BITS/B\OSB25 |
Read OK: | ✔ |
File size: | 0E79 bytes |
Load address: | 1900 |
Exec address: | 8023 |
Duplicates
There is 1 duplicate copy of this file in the archive:
- CEEFAX disks » telesoftware2.adl » OS\BITS/B\OSB25
- CEEFAX disks » telesoftware7.adl » 06-05-88/B\OSB25
File contents
10REM OSbits Module B/osb25 20REM Illegal Screen Fill Routine 30REM Version 1.2 31.5.87 40 50*KEY1MO.3|M|NL.|M 60*KEY4MO.1|MTIME=0|MCALL code%|MP.TIME|M 70 80DIM code% &100 90 100osbyte = &FFF4 110osword = &FFF1 120temp_counter = &70 130 140REM Trap a co-processor. Note it's up to you to deselect shadow mode. 150 160X%=0 170Y%=&FF 180A%=234 190IF (USR(osbyte) AND &FF00)>0 THEN PRINT "I think you have a second processor"'"Please switch it off and start again":STOP 200 210FOR pass% = 0 TO 3 STEP 3 220P% = code% 230[OPT pass% 240 250.y_routine 260 270LDA #0 \ Clear vertical counter and temp workspace 280STA vertical+1 290STA vertical 300STA temp_counter 310STA temp_counter+1 320 330.y_loop 340 350LDA #0 \ Clear horizontal counter 360STA horizontal 370STA horizontal+1 380 390JSR y_pos 400 410.x_loop 420 430LDX horizontal \ X contains X co-ordinate lo 440LDA horizontal+1 450LSR A 460TAY \ Y contains X co-ordinate hi 470TXA 480ROR A 490TAX \ X+Y now contain X DIV 2 500TYA 510LSR A 520TAY 530TXA 540ROR A 550AND #&FC \ H DIV 4 * 4 in A(lo) Y(hi) 560 570ASL A 580TAX 590TYA 600ROL A \ 8*H DIV4 in A(lo) Y(hi) 610TAY 620TXA 630CLC 640ADC temp_1 650TAX 660TYA 670ADC temp_1+1 \ X+A now &280*VDIV8 + VMOD8 + 8*HDIV4 680CLC 690ADC start_address 700STA temp_counter+1 710TXA 720STA temp_counter \ temp_counter now contains screen address 730 740LDA #&FF \ This byte sent to screen ..... experiment with it 750LDY #0 760STA (temp_counter),Y 770 780LDA horizontal \ A byte represents 16 units horizontally 790CLC 800ADC #16 810STA horizontal 820BNE x_loop 830INC horizontal+1 840LDA horizontal+1 850CMP #5 \ When you reach &500 you have finished X 860BNE x_loop 870 880LDA vertical \ Our vertical step is 4 890CLC 900ADC #4 910STA vertical 920BNE y_loop 930INC vertical+1 940LDA vertical+1 950CMP #4 \ When you reach &400 you have finished Y 960BNE y_loop 970RTS 980 990.y_pos 1000 1010LDA vertical 1020STA temp_y \ temp_y contains Y 1030LDA vertical+1 1040STA temp_y+1 1050LSR temp_y+1 1060ROR temp_y \ temp_y contains Y DIV2 1070LSR temp_y+1 1080ROR temp_y \ temp_y contains Y DIV4 1090 1100LDA temp_y 1110AND #&F8 \ blank last 3 bits = DIV8 * 8 1120STA temp_1 1130LDA temp_y+1 1140STA temp_1+1 \ temp_1 contains V [Y DIV4] DIV8 * 2^3 1150ASL temp_1 1160ROL temp_1+1 1170ASL temp_1 1180ROL temp_1+1 1190ASL temp_1 1200ROL temp_1+1 1210ASL temp_1 1220ROL temp_1+1 \ temp_1 contains 2^7 * VDIV8 = 2^4 * V 1230LDA temp_1 1240STA temp_2 1250LDA temp_1+1 1260STA temp_2+1 \ temp_2 now contains 2^7 * VDIV8 = 2^4 * V 1270ASL temp_2 1280ROL temp_2+1 1290ASL temp_2 1300ROL temp_2+1 \ temp_2 now contains 2^9 * VDIV8 = 2^6 * V 1310LDA temp_1 1320CLC 1330ADC temp_2 1340STA temp_1 1350LDA temp_1+1 1360ADC temp_2+1 1370STA temp_1+1 \ temp_1 now contains &280 * VDIV8 1380LDA temp_y 1390AND #7 \ VMOD8 1400CLC 1410ADC temp_1 1420STA temp_1 1430LDA #0 1440ADC temp_1+1 \ temp_1 now contains &280 * VDIV8 + VMOD8 1450STA temp_1+1 1460RTS 1470 1480.horizontal OPT FNEQUW(0) 1490.vertical OPT FNEQUW(0) 1500.temp_x OPT FNEQUW(0) 1510.temp_y OPT FNEQUW(0) 1520.temp_1 OPT FNEQUW(0) 1530.temp_2 OPT FNEQUW(0) 1540.start_address OPT FNEQUB(&30) \ hi byte of start of screen memory 1550 1560] 1570NEXT 1580END 1590 1600**** EQUate a Byte **** 1610DEF FNEQUB(N%) 1620?P%=N% MOD 256 1630IF (pass% AND 3) = 3 THEN PRINT ~?P% 1640P%=P%+1 1650=pass% 1660 1670**** EQUate a Word (2 bytes) **** 1680DEF FNEQUW(N%) 1690?P%=N% MOD 256 1700P%?1=N% DIV 256 1710IF (pass% AND 3) = 3 THEN PRINT ~?P%,~?(P%+1) 1720P%=P%+2 1730=pass%
� OSbits Module B/osb25 "� Illegal Screen Fill Routine � Version 1.2 31.5.87 ( 2*KEY1MO.3|M|NL.|M <+*KEY4MO.1|MTIME=0|MCALL code%|MP.TIME|M F P� code% &100 Z dosbyte = &FFF4 nosword = &FFF1 xtemp_counter = &70 � �I� Trap a co-processor. Note it's up to you to deselect shadow mode. � �X%=0 � Y%=&FF � A%=234 �n� (�(osbyte) � &FF00)>0 � � "I think you have a second processor"'"Please switch it off and start again":� � �� pass% = 0 � 3 � 3 �P% = code% �[OPT pass% � �.y_routine ELDA #0 \ Clear vertical counter and temp workspace STA vertical+1 "STA vertical ,STA temp_counter 6STA temp_counter+1 @ J.y_loop T ^4LDA #0 \ Clear horizontal counter hSTA horizontal rSTA horizontal+1 | � JSR y_pos � �.x_loop � �7LDX horizontal \ X contains X co-ordinate lo �LDA horizontal+1 � LSR A �7TAY \ Y contains X co-ordinate hi �TXA � ROR A �1TAX \ X+Y now contain X � 2 �TYA � LSR A TAY TXA ROR A &2� #&FC \ H � 4 * 4 in A(lo) Y(hi) 0 : ASL A DTAX NTYA X1ROL A \ 8*H �4 in A(lo) Y(hi) bTAY lTXA vCLC �ADC temp_1 �TAX �TYA �@ADC temp_1+1 \ X+A now &280*VDIV8 + VMOD8 + 8*HDIV4 �CLC �ADC start_address �STA temp_counter+1 �TXA �DSTA temp_counter \ temp_counter now contains screen address � �MLDA #&FF \ This byte sent to screen ..... experiment with it � LDY #0 �STA (temp_counter),Y CLDA horizontal \ A byte represents 16 units horizontally CLC ADC #16 *STA horizontal 4BNE x_loop >INC horizontal+1 HLDA horizontal+1 RCCMP #5 \ When you reach &500 you have finished X \BNE x_loop f p2LDA vertical \ Our vertical step is 4 zCLC � ADC #4 �STA vertical �BNE y_loop �INC vertical+1 �LDA vertical+1 �CCMP #4 \ When you reach &400 you have finished Y �BNE y_loop �RTS � � .y_pos � �LDA vertical �-STA temp_y \ temp_y contains Y LDA vertical+1 STA temp_y+1 LSR temp_y+1 $0ROR temp_y \ temp_y contains Y �2 .LSR temp_y+1 80ROR temp_y \ temp_y contains Y �4 B LLDA temp_y V4� #&F8 \ blank last 3 bits = �8 * 8 `STA temp_1 jLDA temp_y+1 t=STA temp_1+1 \ temp_1 contains V [Y �4] �8 * 2^3 ~ASL temp_1 �ROL temp_1+1 �ASL temp_1 �ROL temp_1+1 �ASL temp_1 �ROL temp_1+1 �ASL temp_1 �AROL temp_1+1 \ temp_1 contains 2^7 * VDIV8 = 2^4 * V �LDA temp_1 �STA temp_2 �LDA temp_1+1 �ESTA temp_2+1 \ temp_2 now contains 2^7 * VDIV8 = 2^4 * V �ASL temp_2 ROL temp_2+1 ASL temp_2 EROL temp_2+1 \ temp_2 now contains 2^9 * VDIV8 = 2^6 * V LDA temp_1 (CLC 2ADC temp_2 <STA temp_1 FLDA temp_1+1 PADC temp_2+1 Z<STA temp_1+1 \ temp_1 now contains &280 * VDIV8 dLDA temp_y n� #7 \ VMOD8 xCLC �ADC temp_1 �STA temp_1 � LDA #0 �DADC temp_1+1 \ temp_1 now contains &280 * VDIV8 + VMOD8 �STA temp_1+1 �RTS � � .horizontal OPT �EQUW(0) � .vertical OPT �EQUW(0) � .temp_x OPT �EQUW(0) � .temp_y OPT �EQUW(0) � .temp_1 OPT �EQUW(0) � .temp_2 OPT �EQUW(0) F.start_address OPT �EQUB(&30) \ hi byte of start of screen memory ] "� ,� 6 @**** EQUate a Byte **** J� �EQUB(N%) T?P%=N% � 256 ^� (pass% � 3) = 3 � � ~?P% hP%=P%+1 r =pass% | �%**** EQUate a Word (2 bytes) **** �� �EQUW(N%) �?P%=N% � 256 �P%?1=N% � 256 �'� (pass% � 3) = 3 � � ~?P%,~?(P%+1) �P%=P%+2 � =pass% �
00000000 0d 00 0a 1c f4 20 20 4f 53 62 69 74 73 20 4d 6f |..... OSbits Mo| 00000010 64 75 6c 65 20 42 2f 6f 73 62 32 35 0d 00 14 22 |dule B/osb25..."| 00000020 f4 20 20 49 6c 6c 65 67 61 6c 20 53 63 72 65 65 |. Illegal Scree| 00000030 6e 20 46 69 6c 6c 20 52 6f 75 74 69 6e 65 0d 00 |n Fill Routine..| 00000040 1e 1a f4 20 20 56 65 72 73 69 6f 6e 20 31 2e 32 |... Version 1.2| 00000050 20 33 31 2e 35 2e 38 37 0d 00 28 05 20 0d 00 32 | 31.5.87..(. ..2| 00000060 15 2a 4b 45 59 31 4d 4f 2e 33 7c 4d 7c 4e 4c 2e |.*KEY1MO.3|M|NL.| 00000070 7c 4d 0d 00 3c 2b 2a 4b 45 59 34 4d 4f 2e 31 7c ||M..<+*KEY4MO.1|| 00000080 4d 54 49 4d 45 3d 30 7c 4d 43 41 4c 4c 20 63 6f |MTIME=0|MCALL co| 00000090 64 65 25 7c 4d 50 2e 54 49 4d 45 7c 4d 0d 00 46 |de%|MP.TIME|M..F| 000000a0 05 20 0d 00 50 10 de 20 63 6f 64 65 25 20 26 31 |. ..P.. code% &1| 000000b0 30 30 0d 00 5a 05 20 0d 00 64 12 6f 73 62 79 74 |00..Z. ..d.osbyt| 000000c0 65 20 3d 20 26 46 46 46 34 0d 00 6e 12 6f 73 77 |e = &FFF4..n.osw| 000000d0 6f 72 64 20 3d 20 26 46 46 46 31 0d 00 78 16 74 |ord = &FFF1..x.t| 000000e0 65 6d 70 5f 63 6f 75 6e 74 65 72 20 3d 20 26 37 |emp_counter = &7| 000000f0 30 0d 00 82 05 20 0d 00 8c 49 f4 20 20 54 72 61 |0.... ...I. Tra| 00000100 70 20 61 20 63 6f 2d 70 72 6f 63 65 73 73 6f 72 |p a co-processor| 00000110 2e 20 20 4e 6f 74 65 20 69 74 27 73 20 75 70 20 |. Note it's up | 00000120 74 6f 20 79 6f 75 20 74 6f 20 64 65 73 65 6c 65 |to you to desele| 00000130 63 74 20 73 68 61 64 6f 77 20 6d 6f 64 65 2e 0d |ct shadow mode..| 00000140 00 96 05 20 0d 00 a0 08 58 25 3d 30 0d 00 aa 0a |... ....X%=0....| 00000150 59 25 3d 26 46 46 0d 00 b4 0a 41 25 3d 32 33 34 |Y%=&FF....A%=234| 00000160 0d 00 be 6e e7 20 28 ba 28 6f 73 62 79 74 65 29 |...n. (.(osbyte)| 00000170 20 80 20 26 46 46 30 30 29 3e 30 20 8c 20 f1 20 | . &FF00)>0 . . | 00000180 22 49 20 74 68 69 6e 6b 20 79 6f 75 20 68 61 76 |"I think you hav| 00000190 65 20 61 20 73 65 63 6f 6e 64 20 70 72 6f 63 65 |e a second proce| 000001a0 73 73 6f 72 22 27 22 50 6c 65 61 73 65 20 73 77 |ssor"'"Please sw| 000001b0 69 74 63 68 20 69 74 20 6f 66 66 20 61 6e 64 20 |itch it off and | 000001c0 73 74 61 72 74 20 61 67 61 69 6e 22 3a fa 0d 00 |start again":...| 000001d0 c8 05 20 0d 00 d2 17 e3 20 70 61 73 73 25 20 3d |.. ..... pass% =| 000001e0 20 30 20 b8 20 33 20 88 20 33 0d 00 dc 0e 50 25 | 0 . 3 . 3....P%| 000001f0 20 3d 20 63 6f 64 65 25 0d 00 e6 0e 5b 4f 50 54 | = code%....[OPT| 00000200 20 70 61 73 73 25 0d 00 f0 05 20 0d 00 fa 0e 2e | pass%.... .....| 00000210 79 5f 72 6f 75 74 69 6e 65 0d 01 04 05 20 0d 01 |y_routine.... ..| 00000220 0e 45 4c 44 41 20 23 30 20 20 20 20 20 20 20 20 |.ELDA #0 | 00000230 20 20 20 20 20 20 20 20 5c 20 43 6c 65 61 72 20 | \ Clear | 00000240 76 65 72 74 69 63 61 6c 20 63 6f 75 6e 74 65 72 |vertical counter| 00000250 20 61 6e 64 20 74 65 6d 70 20 77 6f 72 6b 73 70 | and temp worksp| 00000260 61 63 65 0d 01 18 12 53 54 41 20 76 65 72 74 69 |ace....STA verti| 00000270 63 61 6c 2b 31 0d 01 22 10 53 54 41 20 76 65 72 |cal+1..".STA ver| 00000280 74 69 63 61 6c 0d 01 2c 14 53 54 41 20 74 65 6d |tical..,.STA tem| 00000290 70 5f 63 6f 75 6e 74 65 72 0d 01 36 16 53 54 41 |p_counter..6.STA| 000002a0 20 74 65 6d 70 5f 63 6f 75 6e 74 65 72 2b 31 0d | temp_counter+1.| 000002b0 01 40 05 20 0d 01 4a 0b 2e 79 5f 6c 6f 6f 70 0d |.@. ..J..y_loop.| 000002c0 01 54 05 20 0d 01 5e 34 4c 44 41 20 23 30 20 20 |.T. ..^4LDA #0 | 000002d0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 5c 20 | \ | 000002e0 43 6c 65 61 72 20 68 6f 72 69 7a 6f 6e 74 61 6c |Clear horizontal| 000002f0 20 63 6f 75 6e 74 65 72 0d 01 68 12 53 54 41 20 | counter..h.STA | 00000300 68 6f 72 69 7a 6f 6e 74 61 6c 0d 01 72 14 53 54 |horizontal..r.ST| 00000310 41 20 68 6f 72 69 7a 6f 6e 74 61 6c 2b 31 0d 01 |A horizontal+1..| 00000320 7c 05 20 0d 01 86 0d 4a 53 52 20 79 5f 70 6f 73 ||. ....JSR y_pos| 00000330 0d 01 90 05 20 0d 01 9a 0b 2e 78 5f 6c 6f 6f 70 |.... .....x_loop| 00000340 0d 01 a4 05 20 0d 01 ae 37 4c 44 58 20 68 6f 72 |.... ...7LDX hor| 00000350 69 7a 6f 6e 74 61 6c 20 20 20 20 20 20 20 20 5c |izontal \| 00000360 20 58 20 63 6f 6e 74 61 69 6e 73 20 58 20 63 6f | X contains X co| 00000370 2d 6f 72 64 69 6e 61 74 65 20 6c 6f 0d 01 b8 14 |-ordinate lo....| 00000380 4c 44 41 20 68 6f 72 69 7a 6f 6e 74 61 6c 2b 31 |LDA horizontal+1| 00000390 0d 01 c2 09 4c 53 52 20 41 0d 01 cc 37 54 41 59 |....LSR A...7TAY| 000003a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000003b0 20 20 20 5c 20 59 20 63 6f 6e 74 61 69 6e 73 20 | \ Y contains | 000003c0 58 20 63 6f 2d 6f 72 64 69 6e 61 74 65 20 68 69 |X co-ordinate hi| 000003d0 0d 01 d6 07 54 58 41 0d 01 e0 09 52 4f 52 20 41 |....TXA....ROR A| 000003e0 0d 01 ea 31 54 41 58 20 20 20 20 20 20 20 20 20 |...1TAX | 000003f0 20 20 20 20 20 20 20 20 20 20 5c 20 58 2b 59 20 | \ X+Y | 00000400 6e 6f 77 20 63 6f 6e 74 61 69 6e 20 58 20 81 20 |now contain X . | 00000410 32 0d 01 f4 07 54 59 41 0d 01 fe 09 4c 53 52 20 |2....TYA....LSR | 00000420 41 0d 02 08 07 54 41 59 0d 02 12 07 54 58 41 0d |A....TAY....TXA.| 00000430 02 1c 09 52 4f 52 20 41 0d 02 26 32 80 20 23 26 |...ROR A..&2. #&| 00000440 46 43 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |FC | 00000450 5c 20 48 20 81 20 34 20 2a 20 34 20 69 6e 20 41 |\ H . 4 * 4 in A| 00000460 28 6c 6f 29 20 59 28 68 69 29 0d 02 30 05 20 0d |(lo) Y(hi)..0. .| 00000470 02 3a 09 41 53 4c 20 41 0d 02 44 07 54 41 58 0d |.:.ASL A..D.TAX.| 00000480 02 4e 07 54 59 41 0d 02 58 31 52 4f 4c 20 41 20 |.N.TYA..X1ROL A | 00000490 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000004a0 5c 20 38 2a 48 20 81 34 20 69 6e 20 41 28 6c 6f |\ 8*H .4 in A(lo| 000004b0 29 20 59 28 68 69 29 0d 02 62 07 54 41 59 0d 02 |) Y(hi)..b.TAY..| 000004c0 6c 07 54 58 41 0d 02 76 07 43 4c 43 0d 02 80 0e |l.TXA..v.CLC....| 000004d0 41 44 43 20 74 65 6d 70 5f 31 0d 02 8a 07 54 41 |ADC temp_1....TA| 000004e0 58 0d 02 94 07 54 59 41 0d 02 9e 40 41 44 43 20 |X....TYA...@ADC | 000004f0 74 65 6d 70 5f 31 2b 31 20 20 20 20 20 20 20 20 |temp_1+1 | 00000500 20 20 5c 20 58 2b 41 20 6e 6f 77 20 26 32 38 30 | \ X+A now &280| 00000510 2a 56 44 49 56 38 20 2b 20 56 4d 4f 44 38 20 2b |*VDIV8 + VMOD8 +| 00000520 20 38 2a 48 44 49 56 34 0d 02 a8 07 43 4c 43 0d | 8*HDIV4....CLC.| 00000530 02 b2 15 41 44 43 20 73 74 61 72 74 5f 61 64 64 |...ADC start_add| 00000540 72 65 73 73 0d 02 bc 16 53 54 41 20 74 65 6d 70 |ress....STA temp| 00000550 5f 63 6f 75 6e 74 65 72 2b 31 0d 02 c6 07 54 58 |_counter+1....TX| 00000560 41 0d 02 d0 44 53 54 41 20 74 65 6d 70 5f 63 6f |A...DSTA temp_co| 00000570 75 6e 74 65 72 20 20 20 20 20 20 5c 20 74 65 6d |unter \ tem| 00000580 70 5f 63 6f 75 6e 74 65 72 20 6e 6f 77 20 63 6f |p_counter now co| 00000590 6e 74 61 69 6e 73 20 73 63 72 65 65 6e 20 61 64 |ntains screen ad| 000005a0 64 72 65 73 73 0d 02 da 05 20 0d 02 e4 4d 4c 44 |dress.... ...MLD| 000005b0 41 20 23 26 46 46 20 20 20 20 20 20 20 20 20 20 |A #&FF | 000005c0 20 20 20 20 5c 20 54 68 69 73 20 62 79 74 65 20 | \ This byte | 000005d0 73 65 6e 74 20 74 6f 20 73 63 72 65 65 6e 20 2e |sent to screen .| 000005e0 2e 2e 2e 2e 20 65 78 70 65 72 69 6d 65 6e 74 20 |.... experiment | 000005f0 77 69 74 68 20 69 74 0d 02 ee 0a 4c 44 59 20 23 |with it....LDY #| 00000600 30 0d 02 f8 18 53 54 41 20 28 74 65 6d 70 5f 63 |0....STA (temp_c| 00000610 6f 75 6e 74 65 72 29 2c 59 0d 03 02 05 20 0d 03 |ounter),Y.... ..| 00000620 0c 43 4c 44 41 20 68 6f 72 69 7a 6f 6e 74 61 6c |.CLDA horizontal| 00000630 20 20 20 20 20 20 20 20 5c 20 41 20 62 79 74 65 | \ A byte| 00000640 20 72 65 70 72 65 73 65 6e 74 73 20 31 36 20 75 | represents 16 u| 00000650 6e 69 74 73 20 68 6f 72 69 7a 6f 6e 74 61 6c 6c |nits horizontall| 00000660 79 0d 03 16 07 43 4c 43 0d 03 20 0b 41 44 43 20 |y....CLC.. .ADC | 00000670 23 31 36 0d 03 2a 12 53 54 41 20 68 6f 72 69 7a |#16..*.STA horiz| 00000680 6f 6e 74 61 6c 0d 03 34 0e 42 4e 45 20 78 5f 6c |ontal..4.BNE x_l| 00000690 6f 6f 70 0d 03 3e 14 49 4e 43 20 68 6f 72 69 7a |oop..>.INC horiz| 000006a0 6f 6e 74 61 6c 2b 31 0d 03 48 14 4c 44 41 20 68 |ontal+1..H.LDA h| 000006b0 6f 72 69 7a 6f 6e 74 61 6c 2b 31 0d 03 52 43 43 |orizontal+1..RCC| 000006c0 4d 50 20 23 35 20 20 20 20 20 20 20 20 20 20 20 |MP #5 | 000006d0 20 20 20 20 20 5c 20 57 68 65 6e 20 79 6f 75 20 | \ When you | 000006e0 72 65 61 63 68 20 26 35 30 30 20 79 6f 75 20 68 |reach &500 you h| 000006f0 61 76 65 20 66 69 6e 69 73 68 65 64 20 58 0d 03 |ave finished X..| 00000700 5c 0e 42 4e 45 20 78 5f 6c 6f 6f 70 0d 03 66 05 |\.BNE x_loop..f.| 00000710 20 0d 03 70 32 4c 44 41 20 76 65 72 74 69 63 61 | ..p2LDA vertica| 00000720 6c 20 20 20 20 20 20 20 20 20 20 5c 20 4f 75 72 |l \ Our| 00000730 20 76 65 72 74 69 63 61 6c 20 73 74 65 70 20 69 | vertical step i| 00000740 73 20 34 0d 03 7a 07 43 4c 43 0d 03 84 0a 41 44 |s 4..z.CLC....AD| 00000750 43 20 23 34 0d 03 8e 10 53 54 41 20 76 65 72 74 |C #4....STA vert| 00000760 69 63 61 6c 0d 03 98 0e 42 4e 45 20 79 5f 6c 6f |ical....BNE y_lo| 00000770 6f 70 0d 03 a2 12 49 4e 43 20 76 65 72 74 69 63 |op....INC vertic| 00000780 61 6c 2b 31 0d 03 ac 12 4c 44 41 20 76 65 72 74 |al+1....LDA vert| 00000790 69 63 61 6c 2b 31 0d 03 b6 43 43 4d 50 20 23 34 |ical+1...CCMP #4| 000007a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | | 000007b0 5c 20 57 68 65 6e 20 79 6f 75 20 72 65 61 63 68 |\ When you reach| 000007c0 20 26 34 30 30 20 79 6f 75 20 68 61 76 65 20 66 | &400 you have f| 000007d0 69 6e 69 73 68 65 64 20 59 0d 03 c0 0e 42 4e 45 |inished Y....BNE| 000007e0 20 79 5f 6c 6f 6f 70 0d 03 ca 07 52 54 53 0d 03 | y_loop....RTS..| 000007f0 d4 05 20 0d 03 de 0a 2e 79 5f 70 6f 73 0d 03 e8 |.. .....y_pos...| 00000800 05 20 0d 03 f2 10 4c 44 41 20 76 65 72 74 69 63 |. ....LDA vertic| 00000810 61 6c 0d 03 fc 2d 53 54 41 20 74 65 6d 70 5f 79 |al...-STA temp_y| 00000820 20 20 20 20 20 20 20 20 20 20 20 20 5c 20 74 65 | \ te| 00000830 6d 70 5f 79 20 63 6f 6e 74 61 69 6e 73 20 59 0d |mp_y contains Y.| 00000840 04 06 12 4c 44 41 20 76 65 72 74 69 63 61 6c 2b |...LDA vertical+| 00000850 31 0d 04 10 10 53 54 41 20 74 65 6d 70 5f 79 2b |1....STA temp_y+| 00000860 31 0d 04 1a 10 4c 53 52 20 74 65 6d 70 5f 79 2b |1....LSR temp_y+| 00000870 31 0d 04 24 30 52 4f 52 20 74 65 6d 70 5f 79 20 |1..$0ROR temp_y | 00000880 20 20 20 20 20 20 20 20 20 20 20 5c 20 74 65 6d | \ tem| 00000890 70 5f 79 20 63 6f 6e 74 61 69 6e 73 20 59 20 81 |p_y contains Y .| 000008a0 32 0d 04 2e 10 4c 53 52 20 74 65 6d 70 5f 79 2b |2....LSR temp_y+| 000008b0 31 0d 04 38 30 52 4f 52 20 74 65 6d 70 5f 79 20 |1..80ROR temp_y | 000008c0 20 20 20 20 20 20 20 20 20 20 20 5c 20 74 65 6d | \ tem| 000008d0 70 5f 79 20 63 6f 6e 74 61 69 6e 73 20 59 20 81 |p_y contains Y .| 000008e0 34 0d 04 42 05 20 0d 04 4c 0e 4c 44 41 20 74 65 |4..B. ..L.LDA te| 000008f0 6d 70 5f 79 0d 04 56 34 80 20 23 26 46 38 20 20 |mp_y..V4. #&F8 | 00000900 20 20 20 20 20 20 20 20 20 20 20 20 5c 20 62 6c | \ bl| 00000910 61 6e 6b 20 6c 61 73 74 20 33 20 62 69 74 73 20 |ank last 3 bits | 00000920 3d 20 81 38 20 2a 20 38 0d 04 60 0e 53 54 41 20 |= .8 * 8..`.STA | 00000930 74 65 6d 70 5f 31 0d 04 6a 10 4c 44 41 20 74 65 |temp_1..j.LDA te| 00000940 6d 70 5f 79 2b 31 0d 04 74 3d 53 54 41 20 74 65 |mp_y+1..t=STA te| 00000950 6d 70 5f 31 2b 31 20 20 20 20 20 20 20 20 20 20 |mp_1+1 | 00000960 5c 20 74 65 6d 70 5f 31 20 63 6f 6e 74 61 69 6e |\ temp_1 contain| 00000970 73 20 56 20 5b 59 20 81 34 5d 20 81 38 20 2a 20 |s V [Y .4] .8 * | 00000980 32 5e 33 0d 04 7e 0e 41 53 4c 20 74 65 6d 70 5f |2^3..~.ASL temp_| 00000990 31 0d 04 88 10 52 4f 4c 20 74 65 6d 70 5f 31 2b |1....ROL temp_1+| 000009a0 31 0d 04 92 0e 41 53 4c 20 74 65 6d 70 5f 31 0d |1....ASL temp_1.| 000009b0 04 9c 10 52 4f 4c 20 74 65 6d 70 5f 31 2b 31 0d |...ROL temp_1+1.| 000009c0 04 a6 0e 41 53 4c 20 74 65 6d 70 5f 31 0d 04 b0 |...ASL temp_1...| 000009d0 10 52 4f 4c 20 74 65 6d 70 5f 31 2b 31 0d 04 ba |.ROL temp_1+1...| 000009e0 0e 41 53 4c 20 74 65 6d 70 5f 31 0d 04 c4 41 52 |.ASL temp_1...AR| 000009f0 4f 4c 20 74 65 6d 70 5f 31 2b 31 20 20 20 20 20 |OL temp_1+1 | 00000a00 20 20 20 20 20 5c 20 74 65 6d 70 5f 31 20 63 6f | \ temp_1 co| 00000a10 6e 74 61 69 6e 73 20 32 5e 37 20 2a 20 56 44 49 |ntains 2^7 * VDI| 00000a20 56 38 20 3d 20 32 5e 34 20 2a 20 56 0d 04 ce 0e |V8 = 2^4 * V....| 00000a30 4c 44 41 20 74 65 6d 70 5f 31 0d 04 d8 0e 53 54 |LDA temp_1....ST| 00000a40 41 20 74 65 6d 70 5f 32 0d 04 e2 10 4c 44 41 20 |A temp_2....LDA | 00000a50 74 65 6d 70 5f 31 2b 31 0d 04 ec 45 53 54 41 20 |temp_1+1...ESTA | 00000a60 74 65 6d 70 5f 32 2b 31 20 20 20 20 20 20 20 20 |temp_2+1 | 00000a70 20 20 5c 20 74 65 6d 70 5f 32 20 6e 6f 77 20 63 | \ temp_2 now c| 00000a80 6f 6e 74 61 69 6e 73 20 32 5e 37 20 2a 20 56 44 |ontains 2^7 * VD| 00000a90 49 56 38 20 3d 20 32 5e 34 20 2a 20 56 0d 04 f6 |IV8 = 2^4 * V...| 00000aa0 0e 41 53 4c 20 74 65 6d 70 5f 32 0d 05 00 10 52 |.ASL temp_2....R| 00000ab0 4f 4c 20 74 65 6d 70 5f 32 2b 31 0d 05 0a 0e 41 |OL temp_2+1....A| 00000ac0 53 4c 20 74 65 6d 70 5f 32 0d 05 14 45 52 4f 4c |SL temp_2...EROL| 00000ad0 20 74 65 6d 70 5f 32 2b 31 20 20 20 20 20 20 20 | temp_2+1 | 00000ae0 20 20 20 5c 20 74 65 6d 70 5f 32 20 6e 6f 77 20 | \ temp_2 now | 00000af0 63 6f 6e 74 61 69 6e 73 20 32 5e 39 20 2a 20 56 |contains 2^9 * V| 00000b00 44 49 56 38 20 3d 20 32 5e 36 20 2a 20 56 0d 05 |DIV8 = 2^6 * V..| 00000b10 1e 0e 4c 44 41 20 74 65 6d 70 5f 31 0d 05 28 07 |..LDA temp_1..(.| 00000b20 43 4c 43 0d 05 32 0e 41 44 43 20 74 65 6d 70 5f |CLC..2.ADC temp_| 00000b30 32 0d 05 3c 0e 53 54 41 20 74 65 6d 70 5f 31 0d |2..<.STA temp_1.| 00000b40 05 46 10 4c 44 41 20 74 65 6d 70 5f 31 2b 31 0d |.F.LDA temp_1+1.| 00000b50 05 50 10 41 44 43 20 74 65 6d 70 5f 32 2b 31 0d |.P.ADC temp_2+1.| 00000b60 05 5a 3c 53 54 41 20 74 65 6d 70 5f 31 2b 31 20 |.Z<STA temp_1+1 | 00000b70 20 20 20 20 20 20 20 20 20 5c 20 74 65 6d 70 5f | \ temp_| 00000b80 31 20 6e 6f 77 20 63 6f 6e 74 61 69 6e 73 20 26 |1 now contains &| 00000b90 32 38 30 20 2a 20 56 44 49 56 38 0d 05 64 0e 4c |280 * VDIV8..d.L| 00000ba0 44 41 20 74 65 6d 70 5f 79 0d 05 6e 1f 80 20 23 |DA temp_y..n.. #| 00000bb0 37 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |7 | 00000bc0 20 5c 20 56 4d 4f 44 38 0d 05 78 07 43 4c 43 0d | \ VMOD8..x.CLC.| 00000bd0 05 82 0e 41 44 43 20 74 65 6d 70 5f 31 0d 05 8c |...ADC temp_1...| 00000be0 0e 53 54 41 20 74 65 6d 70 5f 31 0d 05 96 0a 4c |.STA temp_1....L| 00000bf0 44 41 20 23 30 0d 05 a0 44 41 44 43 20 74 65 6d |DA #0...DADC tem| 00000c00 70 5f 31 2b 31 20 20 20 20 20 20 20 20 20 20 5c |p_1+1 \| 00000c10 20 74 65 6d 70 5f 31 20 6e 6f 77 20 63 6f 6e 74 | temp_1 now cont| 00000c20 61 69 6e 73 20 26 32 38 30 20 2a 20 56 44 49 56 |ains &280 * VDIV| 00000c30 38 20 2b 20 56 4d 4f 44 38 0d 05 aa 10 53 54 41 |8 + VMOD8....STA| 00000c40 20 74 65 6d 70 5f 31 2b 31 0d 05 b4 07 52 54 53 | temp_1+1....RTS| 00000c50 0d 05 be 05 20 0d 05 c8 20 2e 68 6f 72 69 7a 6f |.... ... .horizo| 00000c60 6e 74 61 6c 20 20 20 20 4f 50 54 20 20 a4 45 51 |ntal OPT .EQ| 00000c70 55 57 28 30 29 0d 05 d2 20 2e 76 65 72 74 69 63 |UW(0)... .vertic| 00000c80 61 6c 20 20 20 20 20 20 4f 50 54 20 20 a4 45 51 |al OPT .EQ| 00000c90 55 57 28 30 29 0d 05 dc 20 2e 74 65 6d 70 5f 78 |UW(0)... .temp_x| 00000ca0 20 20 20 20 20 20 20 20 4f 50 54 20 20 a4 45 51 | OPT .EQ| 00000cb0 55 57 28 30 29 0d 05 e6 20 2e 74 65 6d 70 5f 79 |UW(0)... .temp_y| 00000cc0 20 20 20 20 20 20 20 20 4f 50 54 20 20 a4 45 51 | OPT .EQ| 00000cd0 55 57 28 30 29 0d 05 f0 20 2e 74 65 6d 70 5f 31 |UW(0)... .temp_1| 00000ce0 20 20 20 20 20 20 20 20 4f 50 54 20 20 a4 45 51 | OPT .EQ| 00000cf0 55 57 28 30 29 0d 05 fa 20 2e 74 65 6d 70 5f 32 |UW(0)... .temp_2| 00000d00 20 20 20 20 20 20 20 20 4f 50 54 20 20 a4 45 51 | OPT .EQ| 00000d10 55 57 28 30 29 0d 06 04 46 2e 73 74 61 72 74 5f |UW(0)...F.start_| 00000d20 61 64 64 72 65 73 73 20 4f 50 54 20 20 a4 45 51 |address OPT .EQ| 00000d30 55 42 28 26 33 30 29 20 5c 20 68 69 20 62 79 74 |UB(&30) \ hi byt| 00000d40 65 20 6f 66 20 73 74 61 72 74 20 6f 66 20 73 63 |e of start of sc| 00000d50 72 65 65 6e 20 6d 65 6d 6f 72 79 0d 06 0e 05 20 |reen memory.... | 00000d60 0d 06 18 05 5d 0d 06 22 05 ed 0d 06 2c 05 e0 0d |....].."....,...| 00000d70 06 36 05 20 0d 06 40 1b 2a 2a 2a 2a 20 45 51 55 |.6. ..@.**** EQU| 00000d80 61 74 65 20 61 20 42 79 74 65 20 2a 2a 2a 2a 0d |ate a Byte ****.| 00000d90 06 4a 0f dd 20 a4 45 51 55 42 28 4e 25 29 0d 06 |.J.. .EQUB(N%)..| 00000da0 54 10 3f 50 25 3d 4e 25 20 83 20 32 35 36 0d 06 |T.?P%=N% . 256..| 00000db0 5e 1e e7 20 28 70 61 73 73 25 20 80 20 33 29 20 |^.. (pass% . 3) | 00000dc0 3d 20 33 20 8c 20 f1 20 7e 3f 50 25 0d 06 68 0b |= 3 . . ~?P%..h.| 00000dd0 50 25 3d 50 25 2b 31 0d 06 72 0a 3d 70 61 73 73 |P%=P%+1..r.=pass| 00000de0 25 0d 06 7c 05 20 0d 06 86 25 2a 2a 2a 2a 20 45 |%..|. ...%**** E| 00000df0 51 55 61 74 65 20 61 20 57 6f 72 64 20 28 32 20 |QUate a Word (2 | 00000e00 62 79 74 65 73 29 20 2a 2a 2a 2a 0d 06 90 0f dd |bytes) ****.....| 00000e10 20 a4 45 51 55 57 28 4e 25 29 0d 06 9a 10 3f 50 | .EQUW(N%)....?P| 00000e20 25 3d 4e 25 20 83 20 32 35 36 0d 06 a4 11 50 25 |%=N% . 256....P%| 00000e30 3f 31 3d 4e 25 20 81 20 32 35 36 0d 06 ae 27 e7 |?1=N% . 256...'.| 00000e40 20 28 70 61 73 73 25 20 80 20 33 29 20 3d 20 33 | (pass% . 3) = 3| 00000e50 20 8c 20 f1 20 7e 3f 50 25 2c 7e 3f 28 50 25 2b | . . ~?P%,~?(P%+| 00000e60 31 29 0d 06 b8 0b 50 25 3d 50 25 2b 32 0d 06 c2 |1)....P%=P%+2...| 00000e70 0a 3d 70 61 73 73 25 0d ff |.=pass%..| 00000e79