Home » Archimedes archive » Acorn User » AU 1995-05.adf » !MikeCook_RunTheRISC » PportMod
PportMod
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 » Archimedes archive » Acorn User » AU 1995-05.adf » !MikeCook_RunTheRISC |
Filename: | PportMod |
Read OK: | ✔ |
File size: | 0B47 bytes |
Load address: | 0000 |
Exec address: | 0000 |
File contents
10REM >Develop.PportMod 20REM ASSEMBLE A RELOCATABLE MODULE 30REM To drive the printer Port like the new modles 40REM With SWIs 50PROC_DINT 60PRINTSPC(24);~MS;" ";~ME 70*KEY 1 OSCLI("*SAVE Develop.Prms "+STR$~MS+" "+STR$~ME) |M 80*KEY 2 *SETTYPE Develop.Prms FFA |M 90*KEY 3 *RMLOAD Develop.Prms |M 100*KEY 4 CHAIN"D_TST" 110*KEY 5 LOAD"Develop.PportMs"|MEDIT|M 120*KEY 9 SYS&42EC1, 1,&FF|M 130*KEY 10 SYS&42EC1, 1,&00|M 140*KEY 11 SYS&42EC1,0 TO ,A%,B%:P.~A%,~B%|M 150END 160DEF PROC_DINT 170REM DUMP INITILISATION 180DIM CODE% 1800 190OS_WriteI=&100 200FOR A%=0 TO 3 STEP 3 210P%=CODE% 220[ 230OPT A% 240.MS \ MODULE START LABLE 250EQUD 0 \ START CODE 260EQUD IC-MS \ INITILISATION OFFSET 270EQUD FC-MS \ FINILISATION CODE 280EQUD 0 \ SERVICE CODE 290EQUD TS-MS \ TITLE STRING OFFSET 300EQUD HS-MS \ HELP STRING OFFSET 310EQUD 0 \ COMMAND TABLE OFFSET 320EQUD &42EC0 \ SWI CHUNK BASE 330EQUD PP-MS \ SWI HANDLER CODE 340EQUD 0 \ SWI DECODING TABLE 350EQUD 0 \ SWI DECODING CODE 360EQUD 0 \ END OF TABLE MARKER 370.HS EQUS "Printer Port" 380EQUB 09 390EQUS "0.10 (10 Mar 1995) Driver for old machines" 400EQUB 0 410ALIGN 420.TS EQUS "Printer_Port_Driver" 430EQUB 0 440ALIGN 450 460.IC \ START CODE 470\ CLAIM MEMORY 480STMFD (13)!,{14} \ RENUMBER RETURN 490MOV R0,#6 \ CLAIM SPACE 500MOV R3,#&4 \ AMOUNT OF SPACE 510SWI "OS_Module" \ ask for space 520STRVC R2,[R12] 530LDMFD (13) !,{15} \ BACK FROM WHENST CAME 540 550.FC \ FINILISATION CODE 560STMFD (13)!,{14} \ RENUMBER RETURN 570MOV R0,#7 \ FREE SPACE 580LDR R2,[R12] \ POINTER TO MEMORY 590MOV R3,#&3E00 \ AMOUNT OF SPACE 600SWI "OS_Module" \ GIVE IT BACK 610LDMFD (13) !,{15} \ BACK FROM WHENST CAME 620 630.PP \ MACHINE CODE TO HANDLE PRINTER ACCESS 640 650LDR R12,[R12] 660CMP R11,#(EOJ - JT)/4 670ADDLO PC, PC, R11, LSL #2 680B UNKN 690.JT 700B PP0 710B PP1 720.EOJ 730.UNKN 740ADR R0,ErrTok 750MOV R1, #0 760MOV R2, #0 770ADR R4, HS 780SWI "XMessageTrans_ErrorLookup" 790ORRS PC, R14, #&10000000\ #Overflow_Flag 800.ErrTok 810EQUD &1E6 820EQUS "BadSWI" 830EQUB 0 840ALIGN 850\ Return Printer Address 860.PP0 870MOV R0,#&3200000 \ Address of Printer Port 880ADD R0,R0,#&50000 890ADD R0,R0,#&10 900MOVS PC,R14 910 920\ 930.PP1 940CMP R0,#0 950BEQ Rs 960CMP R0,#1 970BEQ WDR 980CMP R0,#2 990BEQ CT 1000MOVS PC,R14 1010 1020\Read status & data 1030.Rs 1040MOV R4,#&3200000 \ Address of Printer Port 1050LDR R3,[R4,#&10] \ Get Busy 1060AND R3,R3,#1 \ Mask out busy 1070MOV R3,R3,ASL #7 1080 1090LDR R2,[R4,#&00] \ Get ACK 1100AND R2,R2,#&40 1110ORR R2,R2,R3 \ Mearge together 1120LDR R1,[R12] \ Get what has been written to printer before 1130MOVS PC,R14 1140 1150\ Write Data to printer 1160.WDR 1170MOV R4,#&3200000 \ Address of Printer Port 1180ADD R4,R4,#&50000 1190MOV R3,R1,ASL #16 1200STR R3,[R4,#&10] 1210STR R1,[R12] \ Record of what has been written 1220MOVS PC,R14 1230 1240\ Read & Write control reg 1250.CT 1260MOV R1,#0 1270MOV R2,#0 1280MOVS PC,R14 1290 1300.ME \ LABLE FOR MODULE END 1310] 1320NEXT 1330ENDPROC
� >Develop.PportMod #� ASSEMBLE A RELOCATABLE MODULE 3� To drive the printer Port like the new modles (� With SWIs 2 �_DINT <�(24);~MS;" ";~ME F>*KEY 1 OSCLI("*SAVE Develop.Prms "+STR$~MS+" "+STR$~ME) |M P'*KEY 2 *SETTYPE Develop.Prms FFA |M Z"*KEY 3 *RMLOAD Develop.Prms |M d*KEY 4 CHAIN"D_TST" n(*KEY 5 LOAD"Develop.PportMs"|MEDIT|M x*KEY 9 SYS&42EC1, 1,&FF|M �*KEY 10 SYS&42EC1, 1,&00|M �-*KEY 11 SYS&42EC1,0 TO ,A%,B%:P.~A%,~B%|M �� �� �_DINT �� DUMP INITILISATION �� CODE% 1800 �OS_WriteI=&100 �� A%=0 � 3 � 3 �P%=CODE% �[ � OPT A% �.MS \ �ULE START LABLE �EQUD 0 \ START CODE $EQUD IC-MS \ INITILISATION �SET #EQUD FC-MS \ FINILISATION CODE EQUD 0 \ SERVICE CODE "#EQUD TS-MS \ TITLE STRING �SET , EQUD HS-MS \ Ǔ STRING �SET 6$EQUD 0 \ COMMAND TABLE �SET @ EQUD &42EC0 \ SWI CHUNK BASE J"EQUD PP-MS \ SWI HANDLER CODE T$EQUD 0 \ SWI DECODING TABLE ^#EQUD 0 \ SWI DECODING CODE h"EQUD 0 \ � � TABLE MARKER r.HS EQUS "Printer Port" |EQUB 09 �5EQUS "0.10 (10 Mar 1995) Driver for old machines" � EQUB 0 � ALIGN �".TS EQUS "Printer_Port_Driver" � EQUB 0 � ALIGN � �.IC \ START CODE �\ CLAIM MEMORY �STMFD (13)!,{14} \ Ǚ � �MOV R0,#6 \ CLAIM SPACE �MOV R3,#&4 \ AMOUNT � SPACE �#SWI "OS_Module" \ ask for space STRVC R2,[R12] *LDMFD (13) !,{15} \ BACK FROM �ST CAME &.FC \ FINILISATION CODE 0STMFD (13)!,{14} \ Ǚ � :MOV R0,#7 \ FREE SPACE D LDR R2,[R12] \ ȒER � MEMORY N"MOV R3,#&3E00 \ AMOUNT � SPACE X"SWI "OS_Module" \ GIVE IT BACK b*LDMFD (13) !,{15} \ BACK FROM �ST CAME l v*.PP \ MACHINE CODE � HANDLE �ER ACCESS � �LDR R12,[R12] �CMP R11,#(EOJ - JT)/4 �ADDLO PC, PC, R11, LSL #2 � B UNKN �.JT � B PP0 � B PP1 �.EOJ � .UNKN �ADR R0,ErrTok �MOV R1, #0 �MOV R2, #0 ADR R4, HS #SWI "XMessageTrans_ErrorLookup" ,�RS PC, R14, #&10000000\ #Overflow_Flag .ErrTok * EQUD &1E6 4EQUS "BadSWI" > EQUB 0 H ALIGN R\ Return Printer Address \.PP0 f.MOV R0,#&3200000 \ Address of Printer Port pADD R0,R0,#&50000 zADD R0,R0,#&10 �MOVS PC,R14 � �\ �.PP1 � CMP R0,#0 � BEQ Rs � CMP R0,#1 �BEQ WDR � CMP R0,#2 � BEQ CT �MOVS PC,R14 � �\Read status & data .Rs .MOV R4,#&3200000 \ Address of Printer Port LDR R3,[R4,#&10] \ Get Busy $� R3,R3,#1 \ Mask out busy .MOV R3,R3,ASL #7 8 BLDR R2,[R4,#&00] \ Get ACK L� R2,R2,#&40 V!�R R2,R2,R3 \ Mearge together `>LDR R1,[R12] \ Get what has been written to printer before jMOVS PC,R14 t ~\ Write Data to printer �.WDR �.MOV R4,#&3200000 \ Address of Printer Port �ADD R4,R4,#&50000 �MOV R3,R1,ASL #16 �STR R3,[R4,#&10] �2STR R1,[R12] \ Record of what has been written �MOVS PC,R14 � �\ Read & Write control reg �.CT � MOV R1,#0 � MOV R2,#0 MOVS PC,R14 .ME \ LABLE � �ULE � ] (� 2� �
00000000 0d 00 0a 17 f4 20 3e 44 65 76 65 6c 6f 70 2e 50 |..... >Develop.P| 00000010 70 6f 72 74 4d 6f 64 0d 00 14 23 f4 20 41 53 53 |portMod...#. ASS| 00000020 45 4d 42 4c 45 20 41 20 52 45 4c 4f 43 41 54 41 |EMBLE A RELOCATA| 00000030 42 4c 45 20 4d 4f 44 55 4c 45 0d 00 1e 33 f4 20 |BLE MODULE...3. | 00000040 54 6f 20 64 72 69 76 65 20 74 68 65 20 70 72 69 |To drive the pri| 00000050 6e 74 65 72 20 50 6f 72 74 20 6c 69 6b 65 20 74 |nter Port like t| 00000060 68 65 20 6e 65 77 20 6d 6f 64 6c 65 73 0d 00 28 |he new modles..(| 00000070 0f f4 20 57 69 74 68 20 53 57 49 73 0d 00 32 0a |.. With SWIs..2.| 00000080 f2 5f 44 49 4e 54 0d 00 3c 16 f1 89 28 32 34 29 |._DINT..<...(24)| 00000090 3b 7e 4d 53 3b 22 20 22 3b 7e 4d 45 0d 00 46 3e |;~MS;" ";~ME..F>| 000000a0 2a 4b 45 59 20 31 20 4f 53 43 4c 49 28 22 2a 53 |*KEY 1 OSCLI("*S| 000000b0 41 56 45 20 44 65 76 65 6c 6f 70 2e 50 72 6d 73 |AVE Develop.Prms| 000000c0 20 22 2b 53 54 52 24 7e 4d 53 2b 22 20 22 2b 53 | "+STR$~MS+" "+S| 000000d0 54 52 24 7e 4d 45 29 20 7c 4d 0d 00 50 27 2a 4b |TR$~ME) |M..P'*K| 000000e0 45 59 20 32 20 2a 53 45 54 54 59 50 45 20 44 65 |EY 2 *SETTYPE De| 000000f0 76 65 6c 6f 70 2e 50 72 6d 73 20 46 46 41 20 7c |velop.Prms FFA || 00000100 4d 0d 00 5a 22 2a 4b 45 59 20 33 20 2a 52 4d 4c |M..Z"*KEY 3 *RML| 00000110 4f 41 44 20 44 65 76 65 6c 6f 70 2e 50 72 6d 73 |OAD Develop.Prms| 00000120 20 7c 4d 0d 00 64 17 2a 4b 45 59 20 34 20 43 48 | |M..d.*KEY 4 CH| 00000130 41 49 4e 22 44 5f 54 53 54 22 0d 00 6e 28 2a 4b |AIN"D_TST"..n(*K| 00000140 45 59 20 35 20 4c 4f 41 44 22 44 65 76 65 6c 6f |EY 5 LOAD"Develo| 00000150 70 2e 50 70 6f 72 74 4d 73 22 7c 4d 45 44 49 54 |p.PportMs"|MEDIT| 00000160 7c 4d 0d 00 78 1d 2a 4b 45 59 20 39 20 53 59 53 ||M..x.*KEY 9 SYS| 00000170 26 34 32 45 43 31 2c 20 31 2c 26 46 46 7c 4d 0d |&42EC1, 1,&FF|M.| 00000180 00 82 1e 2a 4b 45 59 20 31 30 20 53 59 53 26 34 |...*KEY 10 SYS&4| 00000190 32 45 43 31 2c 20 31 2c 26 30 30 7c 4d 0d 00 8c |2EC1, 1,&00|M...| 000001a0 2d 2a 4b 45 59 20 31 31 20 53 59 53 26 34 32 45 |-*KEY 11 SYS&42E| 000001b0 43 31 2c 30 20 54 4f 20 2c 41 25 2c 42 25 3a 50 |C1,0 TO ,A%,B%:P| 000001c0 2e 7e 41 25 2c 7e 42 25 7c 4d 0d 00 96 05 e0 0d |.~A%,~B%|M......| 000001d0 00 a0 0c dd 20 f2 5f 44 49 4e 54 0d 00 aa 18 f4 |.... ._DINT.....| 000001e0 20 44 55 4d 50 20 49 4e 49 54 49 4c 49 53 41 54 | DUMP INITILISAT| 000001f0 49 4f 4e 0d 00 b4 10 de 20 43 4f 44 45 25 20 31 |ION..... CODE% 1| 00000200 38 30 30 0d 00 be 12 4f 53 5f 57 72 69 74 65 49 |800....OS_WriteI| 00000210 3d 26 31 30 30 0d 00 c8 12 e3 20 41 25 3d 30 20 |=&100..... A%=0 | 00000220 b8 20 33 20 88 20 33 0d 00 d2 0c 50 25 3d 43 4f |. 3 . 3....P%=CO| 00000230 44 45 25 0d 00 dc 05 5b 0d 00 e6 0a 4f 50 54 20 |DE%....[....OPT | 00000240 41 25 0d 00 f0 1a 2e 4d 53 20 5c 20 83 55 4c 45 |A%.....MS \ .ULE| 00000250 20 53 54 41 52 54 20 4c 41 42 4c 45 0d 00 fa 1c | START LABLE....| 00000260 45 51 55 44 20 30 20 20 20 20 20 20 5c 20 53 54 |EQUD 0 \ ST| 00000270 41 52 54 20 43 4f 44 45 0d 01 04 24 45 51 55 44 |ART CODE...$EQUD| 00000280 20 49 43 2d 4d 53 20 20 5c 20 49 4e 49 54 49 4c | IC-MS \ INITIL| 00000290 49 53 41 54 49 4f 4e 20 87 53 45 54 0d 01 0e 23 |ISATION .SET...#| 000002a0 45 51 55 44 20 46 43 2d 4d 53 20 20 5c 20 46 49 |EQUD FC-MS \ FI| 000002b0 4e 49 4c 49 53 41 54 49 4f 4e 20 43 4f 44 45 0d |NILISATION CODE.| 000002c0 01 18 1e 45 51 55 44 20 30 20 20 20 20 20 20 5c |...EQUD 0 \| 000002d0 20 53 45 52 56 49 43 45 20 43 4f 44 45 0d 01 22 | SERVICE CODE.."| 000002e0 23 45 51 55 44 20 54 53 2d 4d 53 20 20 5c 20 54 |#EQUD TS-MS \ T| 000002f0 49 54 4c 45 20 53 54 52 49 4e 47 20 87 53 45 54 |ITLE STRING .SET| 00000300 0d 01 2c 20 45 51 55 44 20 48 53 2d 4d 53 20 20 |.., EQUD HS-MS | 00000310 5c 20 c7 93 20 53 54 52 49 4e 47 20 87 53 45 54 |\ .. STRING .SET| 00000320 0d 01 36 24 45 51 55 44 20 30 20 20 20 20 20 20 |..6$EQUD 0 | 00000330 5c 20 43 4f 4d 4d 41 4e 44 20 54 41 42 4c 45 20 |\ COMMAND TABLE | 00000340 87 53 45 54 0d 01 40 20 45 51 55 44 20 26 34 32 |.SET..@ EQUD &42| 00000350 45 43 30 20 5c 20 53 57 49 20 43 48 55 4e 4b 20 |EC0 \ SWI CHUNK | 00000360 42 41 53 45 0d 01 4a 22 45 51 55 44 20 50 50 2d |BASE..J"EQUD PP-| 00000370 4d 53 20 20 5c 20 53 57 49 20 48 41 4e 44 4c 45 |MS \ SWI HANDLE| 00000380 52 20 43 4f 44 45 0d 01 54 24 45 51 55 44 20 30 |R CODE..T$EQUD 0| 00000390 20 20 20 20 20 20 5c 20 53 57 49 20 44 45 43 4f | \ SWI DECO| 000003a0 44 49 4e 47 20 54 41 42 4c 45 0d 01 5e 23 45 51 |DING TABLE..^#EQ| 000003b0 55 44 20 30 20 20 20 20 20 20 5c 20 53 57 49 20 |UD 0 \ SWI | 000003c0 44 45 43 4f 44 49 4e 47 20 43 4f 44 45 0d 01 68 |DECODING CODE..h| 000003d0 22 45 51 55 44 20 30 20 20 20 20 20 20 5c 20 e0 |"EQUD 0 \ .| 000003e0 20 ca 20 54 41 42 4c 45 20 4d 41 52 4b 45 52 0d | . TABLE MARKER.| 000003f0 01 72 1b 2e 48 53 20 45 51 55 53 20 22 50 72 69 |.r..HS EQUS "Pri| 00000400 6e 74 65 72 20 50 6f 72 74 22 0d 01 7c 0b 45 51 |nter Port"..|.EQ| 00000410 55 42 20 30 39 0d 01 86 35 45 51 55 53 20 22 30 |UB 09...5EQUS "0| 00000420 2e 31 30 20 28 31 30 20 4d 61 72 20 31 39 39 35 |.10 (10 Mar 1995| 00000430 29 20 44 72 69 76 65 72 20 66 6f 72 20 6f 6c 64 |) Driver for old| 00000440 20 6d 61 63 68 69 6e 65 73 22 0d 01 90 0a 45 51 | machines"....EQ| 00000450 55 42 20 30 0d 01 9a 09 41 4c 49 47 4e 0d 01 a4 |UB 0....ALIGN...| 00000460 22 2e 54 53 20 45 51 55 53 20 22 50 72 69 6e 74 |".TS EQUS "Print| 00000470 65 72 5f 50 6f 72 74 5f 44 72 69 76 65 72 22 0d |er_Port_Driver".| 00000480 01 ae 0a 45 51 55 42 20 30 0d 01 b8 09 41 4c 49 |...EQUB 0....ALI| 00000490 47 4e 0d 01 c2 04 0d 01 cc 14 2e 49 43 20 5c 20 |GN.........IC \ | 000004a0 53 54 41 52 54 20 43 4f 44 45 0d 01 d6 12 5c 20 |START CODE....\ | 000004b0 43 4c 41 49 4d 20 4d 45 4d 4f 52 59 0d 01 e0 1b |CLAIM MEMORY....| 000004c0 53 54 4d 46 44 20 28 31 33 29 21 2c 7b 31 34 7d |STMFD (13)!,{14}| 000004d0 20 5c 20 c7 99 20 f8 0d 01 ea 1b 4d 4f 56 20 52 | \ .. .....MOV R| 000004e0 30 2c 23 36 20 5c 20 43 4c 41 49 4d 20 53 50 41 |0,#6 \ CLAIM SPA| 000004f0 43 45 0d 01 f4 1f 4d 4f 56 20 52 33 2c 23 26 34 |CE....MOV R3,#&4| 00000500 20 5c 20 41 4d 4f 55 4e 54 20 ca 20 53 50 41 43 | \ AMOUNT . SPAC| 00000510 45 0d 01 fe 23 53 57 49 20 22 4f 53 5f 4d 6f 64 |E...#SWI "OS_Mod| 00000520 75 6c 65 22 20 5c 20 61 73 6b 20 66 6f 72 20 73 |ule" \ ask for s| 00000530 70 61 63 65 0d 02 08 12 53 54 52 56 43 20 52 32 |pace....STRVC R2| 00000540 2c 5b 52 31 32 5d 0d 02 12 2a 4c 44 4d 46 44 20 |,[R12]...*LDMFD | 00000550 28 31 33 29 20 21 2c 7b 31 35 7d 20 5c 20 42 41 |(13) !,{15} \ BA| 00000560 43 4b 20 46 52 4f 4d 20 c9 53 54 20 43 41 4d 45 |CK FROM .ST CAME| 00000570 0d 02 1c 04 0d 02 26 1b 2e 46 43 20 5c 20 46 49 |......&..FC \ FI| 00000580 4e 49 4c 49 53 41 54 49 4f 4e 20 43 4f 44 45 0d |NILISATION CODE.| 00000590 02 30 1b 53 54 4d 46 44 20 28 31 33 29 21 2c 7b |.0.STMFD (13)!,{| 000005a0 31 34 7d 20 5c 20 c7 99 20 f8 0d 02 3a 1a 4d 4f |14} \ .. ...:.MO| 000005b0 56 20 52 30 2c 23 37 20 5c 20 46 52 45 45 20 53 |V R0,#7 \ FREE S| 000005c0 50 41 43 45 0d 02 44 20 4c 44 52 20 52 32 2c 5b |PACE..D LDR R2,[| 000005d0 52 31 32 5d 20 5c 20 c8 92 45 52 20 b8 20 4d 45 |R12] \ ..ER . ME| 000005e0 4d 4f 52 59 0d 02 4e 22 4d 4f 56 20 52 33 2c 23 |MORY..N"MOV R3,#| 000005f0 26 33 45 30 30 20 5c 20 41 4d 4f 55 4e 54 20 ca |&3E00 \ AMOUNT .| 00000600 20 53 50 41 43 45 0d 02 58 22 53 57 49 20 22 4f | SPACE..X"SWI "O| 00000610 53 5f 4d 6f 64 75 6c 65 22 20 5c 20 47 49 56 45 |S_Module" \ GIVE| 00000620 20 49 54 20 42 41 43 4b 0d 02 62 2a 4c 44 4d 46 | IT BACK..b*LDMF| 00000630 44 20 28 31 33 29 20 21 2c 7b 31 35 7d 20 5c 20 |D (13) !,{15} \ | 00000640 42 41 43 4b 20 46 52 4f 4d 20 c9 53 54 20 43 41 |BACK FROM .ST CA| 00000650 4d 45 0d 02 6c 04 0d 02 76 2a 2e 50 50 20 5c 20 |ME..l...v*.PP \ | 00000660 4d 41 43 48 49 4e 45 20 43 4f 44 45 20 b8 20 48 |MACHINE CODE . H| 00000670 41 4e 44 4c 45 20 f1 45 52 20 41 43 43 45 53 53 |ANDLE .ER ACCESS| 00000680 0d 02 80 04 0d 02 8a 11 4c 44 52 20 52 31 32 2c |........LDR R12,| 00000690 5b 52 31 32 5d 0d 02 94 19 43 4d 50 20 52 31 31 |[R12]....CMP R11| 000006a0 2c 23 28 45 4f 4a 20 2d 20 4a 54 29 2f 34 0d 02 |,#(EOJ - JT)/4..| 000006b0 9e 1d 41 44 44 4c 4f 20 50 43 2c 20 50 43 2c 20 |..ADDLO PC, PC, | 000006c0 52 31 31 2c 20 4c 53 4c 20 23 32 0d 02 a8 0a 42 |R11, LSL #2....B| 000006d0 20 55 4e 4b 4e 0d 02 b2 07 2e 4a 54 0d 02 bc 09 | UNKN.....JT....| 000006e0 42 20 50 50 30 0d 02 c6 09 42 20 50 50 31 0d 02 |B PP0....B PP1..| 000006f0 d0 08 2e 45 4f 4a 0d 02 da 09 2e 55 4e 4b 4e 0d |...EOJ.....UNKN.| 00000700 02 e4 11 41 44 52 20 52 30 2c 45 72 72 54 6f 6b |...ADR R0,ErrTok| 00000710 0d 02 ee 0e 4d 4f 56 20 52 31 2c 20 23 30 0d 02 |....MOV R1, #0..| 00000720 f8 0e 4d 4f 56 20 52 32 2c 20 23 30 0d 03 02 0e |..MOV R2, #0....| 00000730 41 44 52 20 52 34 2c 20 48 53 0d 03 0c 23 53 57 |ADR R4, HS...#SW| 00000740 49 20 22 58 4d 65 73 73 61 67 65 54 72 61 6e 73 |I "XMessageTrans| 00000750 5f 45 72 72 6f 72 4c 6f 6f 6b 75 70 22 0d 03 16 |_ErrorLookup"...| 00000760 2c 84 52 53 20 20 50 43 2c 20 52 31 34 2c 20 23 |,.RS PC, R14, #| 00000770 26 31 30 30 30 30 30 30 30 5c 20 23 4f 76 65 72 |&10000000\ #Over| 00000780 66 6c 6f 77 5f 46 6c 61 67 0d 03 20 0b 2e 45 72 |flow_Flag.. ..Er| 00000790 72 54 6f 6b 0d 03 2a 0d 45 51 55 44 20 26 31 45 |rTok..*.EQUD &1E| 000007a0 36 0d 03 34 11 45 51 55 53 20 22 42 61 64 53 57 |6..4.EQUS "BadSW| 000007b0 49 22 0d 03 3e 0a 45 51 55 42 20 30 0d 03 48 09 |I"..>.EQUB 0..H.| 000007c0 41 4c 49 47 4e 0d 03 52 1c 5c 20 52 65 74 75 72 |ALIGN..R.\ Retur| 000007d0 6e 20 50 72 69 6e 74 65 72 20 41 64 64 72 65 73 |n Printer Addres| 000007e0 73 0d 03 5c 08 2e 50 50 30 0d 03 66 2e 4d 4f 56 |s..\..PP0..f.MOV| 000007f0 20 52 30 2c 23 26 33 32 30 30 30 30 30 20 5c 20 | R0,#&3200000 \ | 00000800 41 64 64 72 65 73 73 20 6f 66 20 50 72 69 6e 74 |Address of Print| 00000810 65 72 20 50 6f 72 74 0d 03 70 15 41 44 44 20 52 |er Port..p.ADD R| 00000820 30 2c 52 30 2c 23 26 35 30 30 30 30 0d 03 7a 12 |0,R0,#&50000..z.| 00000830 41 44 44 20 52 30 2c 52 30 2c 23 26 31 30 0d 03 |ADD R0,R0,#&10..| 00000840 84 0f 4d 4f 56 53 20 50 43 2c 52 31 34 0d 03 8e |..MOVS PC,R14...| 00000850 04 0d 03 98 05 5c 0d 03 a2 08 2e 50 50 31 0d 03 |.....\.....PP1..| 00000860 ac 0d 43 4d 50 20 52 30 2c 23 30 0d 03 b6 0a 42 |..CMP R0,#0....B| 00000870 45 51 20 52 73 0d 03 c0 0d 43 4d 50 20 52 30 2c |EQ Rs....CMP R0,| 00000880 23 31 0d 03 ca 0b 42 45 51 20 57 44 52 0d 03 d4 |#1....BEQ WDR...| 00000890 0d 43 4d 50 20 52 30 2c 23 32 0d 03 de 0a 42 45 |.CMP R0,#2....BE| 000008a0 51 20 43 54 0d 03 e8 0f 4d 4f 56 53 20 50 43 2c |Q CT....MOVS PC,| 000008b0 52 31 34 0d 03 f2 04 0d 03 fc 17 5c 52 65 61 64 |R14........\Read| 000008c0 20 73 74 61 74 75 73 20 26 20 64 61 74 61 0d 04 | status & data..| 000008d0 06 07 2e 52 73 0d 04 10 2e 4d 4f 56 20 52 34 2c |...Rs....MOV R4,| 000008e0 23 26 33 32 30 30 30 30 30 20 5c 20 41 64 64 72 |#&3200000 \ Addr| 000008f0 65 73 73 20 6f 66 20 50 72 69 6e 74 65 72 20 50 |ess of Printer P| 00000900 6f 72 74 0d 04 1a 1f 4c 44 52 20 52 33 2c 5b 52 |ort....LDR R3,[R| 00000910 34 2c 23 26 31 30 5d 20 5c 20 47 65 74 20 42 75 |4,#&10] \ Get Bu| 00000920 73 79 0d 04 24 1e 80 20 52 33 2c 52 33 2c 23 31 |sy..$.. R3,R3,#1| 00000930 20 5c 20 4d 61 73 6b 20 6f 75 74 20 62 75 73 79 | \ Mask out busy| 00000940 0d 04 2e 14 4d 4f 56 20 52 33 2c 52 33 2c 41 53 |....MOV R3,R3,AS| 00000950 4c 20 23 37 0d 04 38 04 0d 04 42 1e 4c 44 52 20 |L #7..8...B.LDR | 00000960 52 32 2c 5b 52 34 2c 23 26 30 30 5d 20 5c 20 47 |R2,[R4,#&00] \ G| 00000970 65 74 20 41 43 4b 0d 04 4c 10 80 20 52 32 2c 52 |et ACK..L.. R2,R| 00000980 32 2c 23 26 34 30 0d 04 56 21 84 52 20 52 32 2c |2,#&40..V!.R R2,| 00000990 52 32 2c 52 33 20 5c 20 4d 65 61 72 67 65 20 74 |R2,R3 \ Mearge t| 000009a0 6f 67 65 74 68 65 72 0d 04 60 3e 4c 44 52 20 52 |ogether..`>LDR R| 000009b0 31 2c 5b 52 31 32 5d 20 5c 20 47 65 74 20 77 68 |1,[R12] \ Get wh| 000009c0 61 74 20 68 61 73 20 62 65 65 6e 20 77 72 69 74 |at has been writ| 000009d0 74 65 6e 20 74 6f 20 70 72 69 6e 74 65 72 20 62 |ten to printer b| 000009e0 65 66 6f 72 65 0d 04 6a 0f 4d 4f 56 53 20 50 43 |efore..j.MOVS PC| 000009f0 2c 52 31 34 0d 04 74 04 0d 04 7e 1b 5c 20 57 72 |,R14..t...~.\ Wr| 00000a00 69 74 65 20 44 61 74 61 20 74 6f 20 70 72 69 6e |ite Data to prin| 00000a10 74 65 72 0d 04 88 08 2e 57 44 52 0d 04 92 2e 4d |ter.....WDR....M| 00000a20 4f 56 20 52 34 2c 23 26 33 32 30 30 30 30 30 20 |OV R4,#&3200000 | 00000a30 5c 20 41 64 64 72 65 73 73 20 6f 66 20 50 72 69 |\ Address of Pri| 00000a40 6e 74 65 72 20 50 6f 72 74 0d 04 9c 15 41 44 44 |nter Port....ADD| 00000a50 20 52 34 2c 52 34 2c 23 26 35 30 30 30 30 0d 04 | R4,R4,#&50000..| 00000a60 a6 15 4d 4f 56 20 52 33 2c 52 31 2c 41 53 4c 20 |..MOV R3,R1,ASL | 00000a70 23 31 36 0d 04 b0 14 53 54 52 20 52 33 2c 5b 52 |#16....STR R3,[R| 00000a80 34 2c 23 26 31 30 5d 0d 04 ba 32 53 54 52 20 52 |4,#&10]...2STR R| 00000a90 31 2c 5b 52 31 32 5d 20 5c 20 52 65 63 6f 72 64 |1,[R12] \ Record| 00000aa0 20 6f 66 20 77 68 61 74 20 68 61 73 20 62 65 65 | of what has bee| 00000ab0 6e 20 77 72 69 74 74 65 6e 0d 04 c4 0f 4d 4f 56 |n written....MOV| 00000ac0 53 20 50 43 2c 52 31 34 0d 04 ce 04 0d 04 d8 1e |S PC,R14........| 00000ad0 5c 20 52 65 61 64 20 26 20 57 72 69 74 65 20 63 |\ Read & Write c| 00000ae0 6f 6e 74 72 6f 6c 20 72 65 67 0d 04 e2 07 2e 43 |ontrol reg.....C| 00000af0 54 0d 04 ec 0d 4d 4f 56 20 52 31 2c 23 30 0d 04 |T....MOV R1,#0..| 00000b00 f6 0d 4d 4f 56 20 52 32 2c 23 30 0d 05 00 0f 4d |..MOV R2,#0....M| 00000b10 4f 56 53 20 50 43 2c 52 31 34 0d 05 0a 04 0d 05 |OVS PC,R14......| 00000b20 14 18 2e 4d 45 20 5c 20 4c 41 42 4c 45 20 e3 20 |...ME \ LABLE . | 00000b30 83 55 4c 45 20 e0 0d 05 1e 05 5d 0d 05 28 05 ed |.ULE .....]..(..| 00000b40 0d 05 32 05 e1 0d ff |..2....| 00000b47