IMD 1.18: 14/10/2014 21:20:31 philips tape soft  BASIC 0300220580SCTASM \l|„Œ”œÿÿÿÿÿÿÿÿþüÀÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLIST CMHrMDOSOV0 SY\2ÿÿNDATA SA<ÿÿAS OR DIR CMürÿÿPESFT3SAhÿÿPESFT3LOˆMDOSOV4 SYŒ2ÿÿT ORÌÿÿSTER RCÄMDOS SY2ÿÿC1 ORMDOSOV6 SYœ2ÿÿPESOFTLXðMFA SA,MFA LO<ÿÿPESFT4SAŒÿÿPESFT4LO¨ÿÿ RCxTAPESFT8SAðÿÿ RCÐÿÿAS RC`MDOSOV1 SYl2ÿÿ RCÔÿÿPESFT2SAHÿÿPESFT2LOdÿÿPESFT5SA¬ÿÿPESFT5LOÌÿÿMES SAÿÿPESFT1LO(ÿÿPESFT1SA MFA2 LODMDOSOV3 SY„2MDOSER SY¤%ÿÿST ORDDEL CMÁ&æ¦Î�½à–Š0·žÖ–Τ½àþ¦�'Z�\'+þ§ÿþÿ á} &Ü| ¦J�"ÒÎ?(æ~>ÿ¦Î m'»¡'Æ?' ò|&|æîÿ7½6 �þ†§Î �­ Îÿ�½ð$½ð! 9þÿ þÿÆÎ?þ †.§ÿ ÆÎ?þæþ †:§çÿþÿ9þÿþ»·$|¶Á&ö½à9½å9þ¦·G»·$| Å0î ÿ~”6�26� §2�§9DDDD„‹0�9#‹90 T1”3»8Õ "#$ %&'()*+,-.5TtINVALID MESSAGE \3 AT \8UNIF. I/O ERROR-STATUS=\3 AT \8PROM I/O ERROR-STATUS=\3 AT XXXX ON DRIVE X-PSN XXXX0MDOSOV SY�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿs� ý6ÎÐöë 6Îâöí 6Îçöï 6Îéöñ6ÿ*0¦€§$j¦Î_…\€$û÷8¦H·G·DÎÂæ¦÷´·µ¶6ΩÆ@?% 2·0æî 229†V— ½èS½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò­ ”~޽ü½ü½ü½ü½ü ½½½¿ �Î �†ªæ§÷ ¡ç'î ÿ þÿúÿþÿøÿÎ/ÿÿúÎÿÿÿø¾ †/η°|°ÿ ƒÎ©Æ?$~kæ ¦ þ ƒ§çŒÐ&Ü_Î …?9½èSÎ ŠÆ?Î …?:½èS¾ �9�µååå €  ss~©~�½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½ò½òÿææ÷åî' ÿèÎè†?þè Î ÿèþÿíþæî ';½À îÿïZ†9þè ÿóÎó†?_þó½Î$~‘þg?'ÿõÿý Îÿõ ÿýÎÿëöåÎê?þõ'~rÿ÷½.&.%,þõÿûÎÿñ½]%½.& % þñÿñ ë½l ½l~§½]$È~§ÿù÷ø½.%'þæÆå &Îÿõ~4þ÷ÿ÷¼è'½]$Ö Ûþ÷&~�öè¶é?&½Î$ þæî&éþ÷ÿèþæm &m 'Æå ' þý¼ù'~�þùÿõþèÿñ½.êçþõÿõþñ ÿñ&éöåÎê?þæî &þíÆ€O?Zþíçþù?1?1ÿë ÿëöåÎê?þím+ øÿóþù¼ý'Kþèÿñ_† ½Î$÷ñ·ò¶ò?,ÿèþùÿï?)ÿùöòþï½™þóç§ÿó îÿýþè&¸~ùþó ÿó÷ñ† & þóÿó –·÷_þè?&½Î$¶é·÷¶÷þè?,ÿèþù?(ÿùöñû÷þï½™þóç§~‰Îÿÿÿûþíÿïîöý¶þ½Î&^þý½‡XXZþû?'ÿõ½gÊ€þóç§öåÎê?þæî &öë¶ìþæç § _9þæöý¶þç§öû¶üç§öõ¶öç § Û½‡XXþû?'ÿûþï~Æ 9Æ úÆ öÆ òÆ îÆ êÿææ÷åþÿíþæî &~…½ÀÆtÎÿþíÿÿÎÿ?þæîŒÿÿ'~vþææ÷óÄøTTTÁ-Á#~•ë÷ìöåÎê?öóÄXXXXþí?'¦�ÿ'~™þæo o Îm*~KÿóÎÿëöåÎê?þóî* öåÎê?~K½‡÷èÿõ½.%SäçþõÿõöèZ÷è&æþóÿó Á?0?0ÿñþíÿóþóî*~‰½‡è÷éÿõþèöñ¶ò½Î%R?.÷ñ·òþóÿóþñ&ǽ©þææ¦Ê€þóç§ÿóþíÆ†t?)¼ó' þóoo äöåÎê?þï~½©öéðò¶òþõ?(½™þïç§þõöò½™þóç§ÿó~Áöõ¶öνÎ$9� þí?( å9ÄTFVFVD6YYYO FZ,ü29þõÿõƆÿ½Î9þñö÷¶ø½Î$ þñÿ÷þûÿù9½gÄ|WW\7½gÄ?%39ZXX7½gÄ?%3O?*9þóöí¶î?-½gÎ?)ÿï9ÿëöåÎê?þíÆm+ \Á:/õ11~…Á'÷9 åå € p ss½ò½ò~·~Á~~â~ ~~ 9~½~å~‚~~1~N~N~ÿ0îî¦90êç9½X0oƽ8]'Á'd�*&Æ�à�Ö�.&PÆ‚½8]' �*&Æ�Ê�À�:&† 0î?ÆÁ½8† 0î?�£0æ90î î¦�;'� ' 0î l&lî¦9Æ�u ¼�#'zÆ€½± ‘„?6½ Å€&� 'õÅ@'?$ @?%Ä?0îî]'§Z0½Y�¡?%äŠ0 äÄ?')760á'î î?0¦î ?23�*& ½ ?$ù?$õ†*190î6?29ƽ±0î†?ƈ½8~'6Á'-þ ¶ öÿ?-?&0 )?&þ?)ö ¶ ?/%ö¶?/$¶ ‹öÉÿ0ç§_ŒÆŒÆ2W9¦ …@&-„� $*¦?%$¦ ?%þÿÝî'?/'þÝ ì~­~°~³þÝî'ðÿßþÝîŒDK&~¸þߦJ0îæ Ä%Aþß]'† ?(Z ÷ÿßî'»¶àöß0î§ ç¦ Š@§ ¦„?Ч Æ0¦îç9ÆŒÆŒÆ í0îæ Äþߦ·á¦ $ à † ?(zá&ð Ù~€6¦ …@'¦…'¦ „¿§ oo Æ ÆŒÆ 2ç9ÆŒÆÿŒÆÿ”÷–¦…'~Z… '~]„�&~]™|™¦„·—�'�'�'~`¦…&™æ¦§ç…'|œþ”æ ¦ Áÿ&�ÿ&o o î …'sœîÿ’­”$~cþ”¦„?Š@§}–&~¶¶—�'~¶›}–*~9˜þ”¦æî½Î%xæþ”l&l¶—�&Á'ÜÁ &}œ/%}™& |˜†±˜&ĽG 0}™& }˜'7½G3%!¶—�&¶–' Á & ½š ¶š·š½$~T~À›Æ½$6~T¶—�&%}–' þ”îæÁ '!}œ,þ”Œ &æ Å ' � $~T½š%ø~i}–&|› ¶—�&ôöšP½9›Æ ½%}œ. Æ ½%ƽ9ÆE}–+ ÆH}–'ÆD›½$~TšO}–+þ”æ¦î ?.]'~f�ÿ$ùL»š·š›}–&|› ¶—�'ô½%C}–*~r~µ}›'7ÄðTTTT�þ’½‹3% Ä�þ’½‹9Ê0Á:%Ë9ö˜˜Ê€› Èþ”æŒÆŒÆ ŒÆ ŒÆŒÖŒÆÁ' 7þ’­”3þ”ç]' 9zþ&}ÿ* †V·þ�M†7�K�$>0îîî† § 1Îÿ ' ¶üôG$÷öüõÄ 9 9†W·þ}ÿ*�†7 ¶üý„_·üô†� 0î11n†~ù϶üý„?·üô†½ð}ÿ&�¯�­ ÛW�½ð ÒÁ & }ÿ*Î]À &ý9� ¾|ÿb}ÿ*�»†0�¹†�µ† ±†�­ÿb}ÿ*œ�¡†9½ðÆO�™Z&û ‹�ËÆ2O��Z&û† ½ð�§ Ïååå€`��~°~¬½ü½ü½üÆ _÷çÿåîÿãþåÆå'~͆¤�&~ц ¥&÷½$~Üèîþ忦ç§}ç&†¤�'�'�'~Ø~êþã†é¥'|éþåæÁ - ÁZ.½$~ܽ¨%_ Æ÷ë½%$~Ü}é'ZÁ& ½œ'ÝM&ZJþåç§è?%æ½$Å~ÜÁ&½�~áÁ&(½�%êþåîÿìþ忦þì?/'™æÿì½%É åÎñá'…¶ø¡&ôÁ &8þåîç}é'}ë&½– ½�$~Ü}î'~å}è'~î½úþåo_9½Û'Á&|î]*Ä'÷ìÆ ½¿zì' ô½¿~4½%$~Ü}ç'ÁH' ½Û' ÁE&|î ÁD'½… Öï}ç&tþ冤�&i†·ê½p%¾½}÷ð&~ö}î'Á&ô}ç'Á&ëzð' ½p%—½}½¿ î½p%н}}ï&̽%%äÁ &÷þ忦á&¡'m&jj~Ù†ÿ •0îç] 9Æ ôÆ ½ú íÆ ÷0îæÁ &î}ç&Æ åÆ áÆ ÝÆ Ù7þãî­å39þãî­å9þå†@ª„§þ ãî­ å9þ冀ª„¿ é½%%%½…�"$1111~öXXXX÷[½%% ½…�%æû[ 9À0%Ëé% Ë*Ë%Ë 9}ê+½%9½09¶ï·ï97Á &½39Æ ½%Æ ½9þ忦î?/9þ忦î}ê&M&ZJ½Î97½¨%3ç½gþåç§9†·è39þㆥ9 ÿ!€8��½ü½ü~¬~~Žÿ†¥'~úæ¦ ÷· †¤�&þî­ þ†ª§o_9þ†¥'ᆥ' þ† ¥'~vþ†¤�'�'�&¼?8'¸~ìþ†@¥'Xæ ¦ Áÿ&�ÿ'Læ¦&]'Cî?/'=Æ€?'?$þî?/?&%ï ?$þç#§$î?/%o ÷þ† ª§?†ß¤§]'~ìþoo†¥&~Êî Œÿÿ&Qþ†À¥'~þ¦· æ îÿ„øDDD�-�#~ · Î ?ö ÄXXXXþ?'†ÿÆ?þæ Î ?þÆ ?'?"%~Ê0§ç] 9Æ îÆ êÆ æîÆå&0îo_90î?&ZæÄøTTTÁ-PÁ"LŠ÷‹æ þÿŒÎ‰?0îæÄXXXXþŒ?'æÁÿ''ÿŠ0îÆ ?'ÿŒÎŠ6Æ ?20î?90îç 9Æ õÆ ñÄ&~…÷¾îÿ¿¦·É0îîÿÁÄ' „æÄ&Ûþ¿Æ?$~‰½¢ÿÇö¾Ä'Mþ¿¦ æ„Äÿ·Ã÷ÄþÁ¦ æ·Å÷Æ„Äÿ±Ã'~‘ñÄ&øö¾Ä&þǶÅöƧ ç öÉÎÊ?_9ÆþÁ?%~�þ¿ö¾Ä' ¶ÅöƧ çÆ ?'ÿÏþÁ?'ÿÑÎÏÆ?öÉÎÊ?þÇÆ½•þÁÆ@?%!öÉÎÊ?þdžÿ¡&ƽ•~Æ 9Æ úÆ öÆ ò†ÿ?öÉÎÊ?9¦îÿÍ„HHHH?(ÄøVVVË÷Ì9#€H  ~½ÿ.Æå&~dž@¥ &~ËOîÿ0þ.†¥'¦„�'~ïþ0†€¥&.~Ͻo_9þ0†¥'þ.†?¤§†¤�'�&~¦~¥|O àþ0† ¥&~Ó½þ0†¥&~Bþ.½ÿÆ ?'Æ?$Á'Æ ? ?þ.†¤�&~µ~×þ.†¤�' †€¥'~ë†÷¤§oo†ÿ§ § §§ooæ!¦"ç#§$îÿ3þ.æ îÿ5Î2?þ5æ*~Û¦þ.ç §þ5Æ:m+Z&÷~Ûæ¦Äþ.ç§~P}O'~P½?6'~œm 'Æ ?'ÿ3þ.îÿ5Æ Î3?&þ.îÿ3þ.Æ ?'ÿ5ÆÎ3?~Pþ.î¦ þ.§?'üÁ 'øÁ '¦ «þ0†@¥&~Ó½þ.¦„§„�&þ0†¥&† †þ.æÄø6§2�'�& þ0Æå&~ïþ0Æå&~6þ.½ÿÆ ?'Æ?$Á&~ßÁ&~ãÁ&~çÆ ? ?þ.†ª§~à�' �'�'~ï}O'~Pþ.îÿKþ.îÿMþ.Æ ?'?$þ.ç§?%Æ?'?$þ.ç§½?7öK¶Lç§öM¶Nç§m&~S†ª§~¿þ0†¥&~φ`¤�`&½~›0îç] 9Æ ôÆ ðÆ ìÆ èÆ äÆ àÆ ÜÆ ØÆ ÔÆ ÐÆ ÌÆ ÈÆ ÄÆ Àæ!¦"  â‹ÉH&911 èþ.†ï¤§9þ0î­.$11~ó9%€X  ½~~+•ƒhA�s@ÿÿ&ÿÿ˜°°Ï‘LOAD=MDOSMAPR:0,CMDI:1;MO=#LP;MAPF;EXIT OBJA=MDOSOV6:1 00;LOAD=RLOAD:1 D:1  END CHAIN¶HHHHC„ð´'Æ1~? $Æ0 õþ9ÿþ- ÿ-ÎæÊ ç?'Æ ×þÿ9½�? %ÑÎA¦�@'C�\&ÿ0æî�$§� ']'Z ñ¶„·0¦¦î9Æ)~ÿþ¦ÿþ9¦�*'.�.'*½ñ�J't�C'f�L'_ÿ½ø�S&~dÿ½ø�T'%Æ2 ¹6ö'ÎA? 2�.&4Î(? ? $~C½ð #6¶·-ö¶ô´þ?/  ½~2~k¶„· óÿ|½~þAŒ@L&õÎA½ñ¼&ê Ò¶ö´ôºú·÷ ¸O †6ÎæÄßç?&%2M' ¶&ÎA? þÿþÿÎ_?ÎA9Á &4¶'Æ3~¶+Æ4 ô¶Š·Îÿÿÿ'Î?& ?&Î? ~~aÆ?'ÿþÿÎ6½(2&þ9Æ ? þÿ‘Î???ooÆ0+(� # €+ �.‹ ÿ7ÆxyZ&÷»·3Z&Ò9 '€xýý~ Î!jÆ?έoßþ_Î!e?þ!hîÿ!;¼&%þ!hî ÿ!>¼&ÎÂÿ!jÎ!—ÿ!lÆÎ!j?' †RŒ†I— ½èS úÆ? ¶�ÿ'~ †U~ HÎ ¦ …@'ÎE¦ …@' þ{'3Îj? ,Î ?%È?%ÄÆêçÎE?%·?%³Îj?%¬?%¨Î!5? †=·3ήÆO? ? _÷3÷¶„·έßþÿ!AÎ!Eÿ!C†0§§ÎCMÿ!NÎ!A?]&5ö!EÁ0-.Á3.*þ!AßþÆÎ!E?Á'†Á'†Á'†Á'† ? ~ Î!^? Æ€?#¶Š€·~  MDOS . !q!ðWHAT?!q!ný½ååå )€ 0B�01�COMMAND�SYNTAX�ERROR 05�02�NAME�REQUIRED 06�03�\0�DOES�NOT�EXIST 1B�04�FILE�NAME�NOT�FOUND 08�05�\0�DUPLICATE�FILE�NAME 1A�06�DUPLICATE�FILE�NAME 0D�07�OPTION�CONFLICT 30�08�CHAIN�ABORTED�BY�BREAK�KEY 31�09�CHAIN�ABORTED�BY�SYSTEM�ERROR�STATUS�WORD 1C�10�FILE�IS�DELETE�PROTECTED 24�11�DEVICE�NOT�READY 0E�12�INVALID�TYPE�OF�OBJECT�FILE 0F�13�INVALID�LOAD�ADDRESS 13�14�INVALID�FILE�TYPE 1F�15�\0�HAS�INVALID�FILE�TYPE 1E�16�CONFLICTING�FILE�TYPES 27�17�INVALID�DATA�TRANSFER�TYPE 22�18�DEVICE�ALREADY�RESERVED 23�19�DEVICE�NOT�RESERVED 25�20�INVALID�OPEN/CLOSED�FLAG 26�21�END�OF�FILE 29�22�BUFFER�OVERFLOW 2A�23�CHECKSUM�ERROR 15�24�LOGICAL�SECTOR�NUMBER�OUT�OF�RANGE 07�25�INVALID�FILE�NAME 2B�26�FILE�IS�WRITE�PROTECTED 20�27�\0�IS�WRITE�PROTECTED 09�28�DEVICE�NAME�NOT�FOUND 04�29�INVALID�LOGICAL�UNIT�NUMBER 12�30�INVALID�EXECUTION�ADDRESS 0A�31�INVALID�DEVICE 11�32�INVALID�RIB 1D�33�TOO�MANY�SOURCE�FILES 16�34�INVALID�START/END�SPECIFICATIONS 17�35�INVALID�PAGE�FORMAT 14�36�FILE�EXHAUSTED�BEFORE�LINE�FOUND 28�37�END�OF�MEDIA 18�38�INVALID�LINE�NUMBER�OR�RANGE 19�39�LINE�NUMBER�ENTERED�BEFORE�SOURCE�FILE 02�40�DIRECTORY�SPACE�FULL 03�41�INSUFFICIENT�DISK�SPACE 10�42�SEGMENT�DESCRIPTOR�SPACE�FULL 2C�43�INVALID�DIRECTORY�ENTRY�NO.�AT�\8 2D�44�CANNOT�DEALLOCATE�ALL�SPACE,�DIRECTORY�ENTRY�EXISTS�AT�\8 2E�45�RECORD�LENGTH�TOO�LARGE 0C�46�INTERNAL�SYSTEM�ERROR�AT�\8 21�47�INVALID�SCALL 2F�48�CHAIN�OVERLAY�DOES�NOT�EXIST 32�49�CHAIN�ABORTED�BY�ILLEGAL�OPERATOR 33�50�CHAIN�ABORTED�BY�UNDEFINED�LABEL 34�51�CHAIN�ABORTED�BY�PREMATURE�END�OF�FILE 35�52�SECTOR�BUFFER�SIZE�ERROR 36�53�INSUFFICIENT�MEMORY åå$-€#($ $0300  _"Í"à"çg"Ù"ñ)1#5  "ž_"µ"·# SYNTAX ERRORSYSTEM SECTOR COPY ERRORDIRECTORY READ/WRITE ERRORSOURCE FILE COPY ERROROBJECT FILE CREATION COPY ERRORCANNOT DELETE DUPLICATE NAMEBACKUP FROM DRIVE X TO Y? APPEND FROM DRIVE X TO Y? DISK NAME: DATE(MMDDYY): USER NAME: NO FILES TO COPYDELETE FILE NOS.: NEW NAME: STARTING TO COPY FILESINVALID TO COPY/VERIFY FROM DOUBLE TO SINGLE SIDEDENTER FILE COPY SELECTION COMMANDS: SAVE (S), DELETE (D), PRINT (P), QUIT (Q), NO MORE (CR)S, D, P, Q, (CR):. NOT FOUND .SECTOR  OFFSET DRX- DRY-COPYING . - DUPLICATION: IS IT TO BE COPIED? NOT COPIEDCOPYINGMDOS SY OV0OV1OV2OV3OV4OV5OV6ER Ž ˆÎ OÆ?Þþßw½.#×)½.#×1–)Á &� & Æ1×1†0—) —1 ö� &×1 îÖ1Á0&~$Ý–)'ø·!l·!‡·"Ý÷!q÷!Œ÷"ä„—)—�Ä×1ׂÞw¦� 'ù� '$�;&`¦ßYÎ%A¡' Œ%k&ô Jî­ÞY â11–!+Î!Z�&Î!u½0$Î Æ? ¦�Y'?–)—½èu– —–1—½èu– —€–!.~%k~'¦Æ ? ~1>Æ? ~1>–!&îJ—!9–!&æL ö–!&߆  — 9†€ ÷|%9|#†—(9|&9|"9|$9–'&´z'ÆÎ#-ÿ ¹Î ¹~.S–'&Ÿ|'Æ Î#" é $ë $”A$óC$ûD%I%L% N%R$ìS%U%V$äY%Z%3–+–€*~1þ–$&΀½/ß9ß7ß/ßQþßMÆ??$„€HYI—O×PÞO}!*DV—O×P„DVF›NÙM×S—T_†?/"m–!+½/) Îß*Îß,½&·Îß*Îß,½&·%EÞMßQ|-Æ7½&·3%5Z&ö–$'4Îß*ÞOß,κ–+ÎŒÖ,–-?-$?)ß,ÎßY½&·ÞY&è~1.~1$~1ÖO–PTFTF—[—\ÎßYß*Îß,Þ9¦ÆHZ&ü—;Æ×~+}½,å Ö~*�½+}†ÿ—`_ÞGÿ µ|`Î ±½.�Î µ½.‡Þwÿ µ æÁª'Þy æÄçÎ"´½/î|_þ µœI&Ì–_&Î!·~0$Î!Ƚ0$ÆcÞC? ab ßUb½.Å'XÖXÑ`"[}b'Ñc%R×d ×c×d|b�-'Ý6–a'!_–cHY?%?1?1?*ÞG?)–d�cLÆªç Æ ?'J&õ2�,'¯� &–a&’|aÞC �ÞC¦� &9½,å~* Á '~+h�S'�D&õ—e_ÞCÿ ©ÎSAÿ –�· † · ½.{Å|&f]*Å'_6¶ ‘�2&V6–_'yT$ 7Πƽ+m3T$† ± '· Î Æ�v`ÞGßaÎ ßcÆ Þc¦ßcÞa¡'�*&!ßaZ&é –e�S'†ª  ?¦Š€—f§|` ?'ßaœI&¿–`& Î ­½.‡Î"ž½/î2�,&~*ª� & –_&|_~*¤~)’½,å ø¦� &†*?9Z&ñ9–f'ÞGƪ† œI' m +ç ?( ò9ßwÿ ™¦ „§ ÞE–�Š0§ßyÆ Îw?Î ™½.‡–&&Î"é½/îÆÞE?%{î ß*Îß,ß4ÞKß/ß=½02%eÎß_½-àÞA' Ö_–`?)ß_ßj íÞEÖ_–`ç§–‚Š0§æ ¦×l—mÆ?%~,ðÁ'~,Ì–!D%ø† ·"üÎ"ñ–'+½/î ½0$†·"ü–'+7' 9Æ€Î!~1)ÞCÆc? ¦�N'ë�Y'½,å ý,åÎ!Û? ÞCoÆc? ¦� &ÞEÆ?%B½,ÔÆ?%A c ÿ ©ÞEî ÿ ½.{]&Å� &ÁÎ ßwÿ ™ÞEßyÎwÆ ?Î ™½.‡ÞE½,Ô~,Î!=Æ‚~1)Æ�Î!~1)Öj–kç§Öl–mç §9ΠŽ0$Ɔ?#9¦ 6ÞIß/ß7ÞEî ß*ß2–‚—)½02%ÂÞK¦+ øæ6ÞI¦+ ø2§ç2„�&ÞKÆu?'ßwÞI?'ßyÆ Îw?½0Y%…–�—)ÞEî ß2ÞKß=½-àÞ?ß?ÞA ßA½-ÒÞAÖ_–`?/%½-› ÖO–P?/%½-Ï  äÞ_½-›½-Ï Ú½-àÞA&ÓÞ4'½0Y9ß,?$ÞA?-ßAÞ?ß*?)ß?Þ_?-ß_Þ4?)ß4½02Ö,–-ÄTFV72Þ/?)ß/9½0YÎß4ÞOß_ÞIß/9ÎßAÞ=½/ $9ß? ½/ %öœn&ò?'ßnÞA?'ßAÞ=ß= å†>?(¦„ð§†>oJ&ú†§9Î ßy† §Îw?† ± '~$Ö± &øö Á ' Á0,~$ÝÁ3.ù9Ÿr®Ÿw®ŸyžrÎw?9Ÿr®Ÿ{®Ÿ}žrÎ{?9Î ÿ «Î ©?9ƽ.SÆ.ÞyçßyÆÎw?9Æ Æ6¦·.¿¦·.Àîîÿ.½Î.½½1@29Æ Æ7ßrÎßW�%½1�%ÎW½1�šX—XZ&ì�—t2–tÞr]9ßuÞU ßuÞUßU¦Þu9�ò� 'ú9æ¦7ÄHYHY?%2Ä|ËI9Æ?]&9½1Îß*ß2Îß,ß4½02$~/ë–%&~/ؽ,åÎ!�½/Þ'# ÿ ©½.{]&ë� &çÞ7ßyÎ ßwÎwÆ? ½,åÎ!œ�e'&Ʀ?%îZ&ö¦� &äÞ7Æ ?'ßyÎwÆ? ½,åÎ!«�8'0_¦� ' � -ë�z.ç\ îÁ"ß7Þ7†?(ßyÎw?†3'Þy?½0Y%9? Î ßwÆ? ]9½1$–#'2? %9?2¦� '�' óÖ(Z& 6Î ½?52Æ:×(?3�'?4 Ö?5 ? %? ? %9~1.ÎßnÎ �ƽ.S½èi$½0…&öÞ*Ö,–-?)ß*tn9ÎßnÎ ¡Æ½.S½è�$½0…%&ìÞ2Ö4–5?)ß2tn9½1>–�1'�4'�7-�9#�M�k½1>–o'6Þ œp&0zo&3Ö 'æ–�4&]*Ý7 T$×7�*Þ ß�<Þ߆—n3YÞ 9†—oÞ ßp� Þ 9Þ ß ÞÆ€?'ßÞ Ö–ß?.Þ?)ß9–60Æ? 29Æ6? Î!ýƃ Î ëÆ„ Î ÒÆ…?#½0$–#' z('Î Ä?5 ô?]'/l&lÿ1sþ1s¦„� #‹‹0m&jjî§þ1s� Z&Ýþ1s96†dfJ&ù296†hiJ&ù29�A% 6‹¹2%€ �0%6‹Æ2%„9ååå7€ 0300Þþÿ)ÑÎ,{ÿ)ÓÎ)Ñ?'Å&~!#Æ Å&~'Æþ,|ŒDK&~'ÿ,yú,X÷,XÎ, ÿ)ÓÎ)Ñ?'Å& Æ Å'ÌÆþ,¡ŒDK'Ïÿ,žú,X÷,Xþ)Ñ_¦� 'W�;' ó¦ÿ)Ñ� 'G� 'òÎ,`¡&3êþ)Ñ�D&â†=¡&*Î,»ÿ)ÓÎ)Ñ7?'Å'o~'3� '�,& þ)Ñ ¸m&Ã~' ÷,[Å'Å`'$Å@'Å &ÎUDÅ€'ö,XÅ'¼,|''Å'¼,¡'~'Å&ùö,XÅ'¼,|'í Å'¼,¡'âÄ Á &~&ù…'… &Æ ñ, &ñ,©'銷,X„�'~$Æ ñ, &¶,{·, ñ,©&þ,„ÿ,©ñ,¡&Î,|ÿ)ÑÎ,¡ÿ)ÓÎ)ÑÆ?ÆtSõ,['~'ö,[ÄPÁP'ôÆ ú,r÷,rÆ ú,—÷,—½)i$~'/ö,[Å 'Î,žÿ)ÑÎ)½ÿ)ÓÆ Î)Ñ?Î,q?'~&ð?&ùö,[Å@'~"Ýö,ˆÄ÷,­ö,‰÷,®þ,Šÿ,¯þ,„ÿ,³½'¨Æú,—÷,—Î,–?&Á?'},³&},´'³Á&¯,³,´ æ½'3Î,q?&~"ÊÁ &–ö,ˆÄÁ&WÎÿÿÿ,‚ÿ,§þ,�Æ?'ÿ,’Î,q?'~"ÚÎ)Öÿ,µÎ*Uÿ,·ÿ,¹Î,–?&oþ,�Æu?'ÿ)ÑÎ*Kÿ)ÓÎ)ÑÆ ?Îÿÿÿ,§Î,–?&Kö,[Å '"½'CÎ,q?'~&ðÎ)½ÿ)ÑÎ,žÿ)ÓÎ)ÑÆ ? %½'=})Ê'ÆBð)ʽ(*?þ,”ÿ,¹Î,–?&~"~&ðþ*Vÿ,µ ÿ,’ÿ,”þ*Xÿ,·Î,–½'‡þ,·ÿ)Íÿ)Ͻ'3Î,qæ#¦$þ)Í?/%~#¤Î,qæ¦ ÷)Í·)Î?'Á '~&ðÎ,–æ#¦$þ)Ï?/$Î,–?&~$Á &áö,ˆÄÁ'~"¸Îÿÿÿ,‚ÿ,§ÿ)Ëþ,�Æ?'ÿ,’Î)Öÿ,µÎ*Uÿ,·Î,q?&¬Î,–?&¥þ,�Æu?'ÿ)ÑÎ*Kÿ)ÓÆ Î)Ñ?'´½(g&ô ­Î,–æ#¦$þ)Ï?/$Î,–æ¦ ÷)Ï·)Ð?'Á ':~&ðþ)Íÿ)Ñþ)Ïÿ)ÓÆ€Î)Ñ? $~"¸?'½(g&íþ)Ñÿ)Íþ)Óÿ)Ïþ)Ëÿ)Ë~#þ)Ëÿ)ÑÎ-!ÿ)ÓÎ)ÑÆ½-âÎ-½(4~"¸ö,[Å '~'Å€'Sþÿ,^þÿÆÎ,»?þ,^ÿ$Á&~&ýÁ&~'$Á&~'~'ö,[Å'¶,]6¶,\644446ÎÿÿúþnÆ ñ, &Æ0÷, ½)i$~'/ö,XÅ&~&:Î,|ÿ)ÑÎ,¡ÿ)ÓÎ)ÑÆ ?Î,q?'~&ð?&ùö,ˆÄÁ'Á'~'¶,[…'~'…'Á&õÆ Á'ƶ,ˆ„x·,­¶,[…'Á&׆º,—·,— |)Õ¶,[…@&KÆú,—÷,—Î,–½)4'?'~&ð?&ù½'3Î,q?'Á &ë~"¸})Õ& þ,u¼,s'â|)Õþ,sÿ,œÎ,–?&Ë ÐÎCN¼,ž&~'Î+Yÿ,šÎ,Wÿ,œö,[Å&|)Õ½'‡½'3†½)'Î,q?'4Á &’†½)'Î,–?' Á &~"¸~&ðþ)Ëÿ)ÑÎ-ÿ)ÓÎ)ÑÆ½-?Î- ~$})Õ&î¼,s'±†½)'Î,–?'Á 'Ê~%&})Õ& î¼,˜'á|)Õþ,uö,s¶,t?.L·)¶þ,šö,˜¶,™?.L±)¶$·)¶þ,uÿ)Ñþ,šÿ)Óö)¶Î)Ñ? $~"¸?'½(©&í~%�ÎCN¼,y&~'~'ö,[Å'¶,X…',r·,r†·,ˆ |)Õ,|ö,XÅ' Æ ñ,©&ÎSAÿ,©Î  ,¡ÿ)ÑÎ,|ÿ)ÓÎ)ÑÆ ?Î,q½)4'?'~&ð?&ùö,ˆÄÁ' Á'Á'~'ƶ,ˆ„x·,­ö,XÅ&Î,|ÿ)ÑÎ,¡ÿ)ÓÎ)ÑÆ ?ö,[Å@'~%]½'¨Æ~%Æ? ½'=?Æ õÆÎ,» îÆ êÆ æÆ âÆ ÞÆ ÚÆ ÖÆ ÒÆ ÎÆ ×Î, Æ ÃÆ6 ¿? $½'=?9Î,q½'hö,—ÄÁ&Æõ,—&Îÿÿ¼,¡'ú,—÷,—Î,–½'h9ÿ'…?'Á'_? þ'…?'Á'_? 9Î,–æÄüÊç½)4'?& ?&Î,Ô? 9~&ðÎ, Æ?'9ö,­Å€'~'(Ķ,ˆ„' �'~' Á&ùö,XÄÁ& ö,­Ä¶,ˆ„&ãö,[Å'9Î,¡ÿ)ÑÎ,çÿ)ÓÎ)ÑÆ?þ,©ÿ,ðö, ÷,óÎ,ç? Î)ÖÆ? ö)ÖÁY'ÍÆ€?#½'=?Î(3?5Z&ø9Æ�?#ö,[Å&? 9})Ê&ÿ(eÆ÷)ʽ(*þ(e?5|)Êö)ÊÁB-)Ê97þ)˼)·'ÿ)·ÿ)¹Î-!ÿ)»Î)¹Æ½-âÎ-½(437†€·)º)¹Î--ÿ)»Î)¹Æ½-â½(ì3Z97þ)˼)·'ÿ)·ÿ)¹Î-ÿ)»Î)¹Æ½-?Î- ½(437¶)¶·)º)¹Î-.ÿ)»Î)¹Æ½-?½(ì3Z9þ)Ñ æ÷)º)¹Î-5ÿ)»Î)¹Æ½-âþ)Óæÿ)Ó÷)ºÎ-=ÿ)»Î)¹Æ½-âÎ-#½(49µ,X'þ)Ëÿ)Ë9¦�H&¦ �R&¶,Y§¶,Z§ ¦ Š@§ o9¦�U&ù¦ �D&ó¶,ʧ¶,Ë ßþÿ,�ÿ,µÆ??$„€HYIM&Á" 9DV„DVF÷)´·)µ»,‘ù,�÷*V·*W»)µù)´?% ÿ,’ÿ,·ÿ*X 9ÿþ.˜$€NCWB LV@D€M*Z+XDK0  SA*Z+XDK 0 LO)Ö*UVERIFY IN PROGRESSXXXXXXXX.XX:X EXISTS. OVERWRITE? RECORD XXXXXSECTOR XXXX OFFSET XX SRC-XX DST-XX]&~-Ël&l÷-Þÿ-àÎ-Ìÿ-Û†·-ßþ-à¦æÎ-Öoîà¢%Î-Öl ñë©Î-Ö67¦‹0æ 'Z&ü§32Î-Öl&ll&lj ,Ãïî¦Î-Öî m&jjî§Î-Öl&lj&Þþ-àO9'èd ]'/l&lÿ.þ.¦„� #‹‹0m&jjî§þ.� Z&Ýþ.96†dfJ&ù29  ½.G ½.Y$ 0îîî† §0î11nÿ. þ.œoo†<§þ. 9ÿ. þ.œ¦†4§†<§.¢.£¦+ z.£&÷z.¢&ò ¦%0îîîæÄÁ&„ þ. 9.#ä°„?€  0300O—$—%—&—#L—-† ·$ª·$À$v†0·$eÎ$fÆ ?Þþÿ%äÎ$eÿ%æÎ%ä?× _þ%ä¦� '@�;&õ¦� '5�E& ʆ ·$ª ì�A& ʆ ·$ª·$À Ü�L&Ê Ô�S&Ê Ì� 'ÈÆ ×!ö$e÷$†Ä' Á/Æ~#5÷$e– …'Æ ðÎÿ%ÒÎ$Ñÿ%Ô7×½èu3Î%Ñ?$Æ~#5Î$Ñÿ%ÖÎ$–ÿ%ØÎ%ÖÆ?Î$~½$1Æ Î$e¦&¦ '~"±Ö Å&÷Å&óÆ×" Æ×"? $~#¢Ö"Î$e?$~#–#'½#Ñ&ä–"J& –!…&¶$r… &Ò|&½#²–!„&~"Ÿ½$þ$pÿ%ÚÎ$·ÿ%ÜÆÎ%Ú½&ÃOö$v—'×(Þ'ÿ%ÚÎ$¿ÿ%ÜÆÎ%Ú½&Ãö$eþ$pÿ%ÒÎ%Qÿ%ÔÎ%Ñ?$Æ~#5Îÿ$¹Î%Qß'¦+„|‹Î$¹?Þ'ß'¦*íþ$¹–%Ö$?)ß$þ$¹ÿ%ÚÎ$¼ÿ%ÜÆÎ%Ú½&Ö!…&~"Ÿ¶%Q*†@Æ‚?#Î&.ÿ%ÖÎ$Ãÿ%ØÆ Î%Ö?~"ŸÎ00ÿ$ÃÆ Î$Å?Î%Qß)¦æÄ—(×'Î'†?Þ'ÿ%ÚÎ$Éÿ%ÜÆÎ%Ú½&ÃÞ)¦„ü‹—('Þ'ÿ%ÚÎ$Íÿ%ÜÆÎ%Ú½&ÃÎ$Ÿ½$1ö$ŸÁ 'Î$Ÿö$Ð?Î$ÄÆ½'§þ$ÃŒ57&Þ)¦+*†@Æ�?#Î&ž½$1 Þ)ß)¦æ+? $~#¢~" Î$Ÿ½$1–"…'~#9~!_×+×,Æ Î$f¦&z+ – …&†—+ |+Œ$n'¦&òÎ$n¦&z, – …&† |,Œ$p'¦&ò|#Î$fÿ%ÖÎ%èÿ%ØÎ%ÖÆ ?~!Á&Æ€†@?#Î&9½$1 sÁ'Æ ? i–&'ä–!„',Þ$ÿ%ÚÎ&oÿ%ÜÆÎ%Ú½'Þ$ÿ%ÚÎ&tÿ%ÜÆÎ%Ú½&ÃÎ&R½$1–&—('Þ'ÿ%ÚÎ&˜ÿ%  ÜÆÎ%Ú½'Þ'ÿ%ÚÎ&œÿ%ÜÆÎ%Ú½&ÃÎ&v½$1–!…'Ö-Z'½$J?Î$fÿ%ÖÎ$Ÿÿ%ØÎ%ÖÆ?†.·$§þ$nÿ$¨9Ö++Î$fÿ%ÖÎ%èÿ%ØÎ%Ö?&–,*O J'þ$n¼%ð ¶$n±%ð9Î%Þÿ%ÖÎ$­ÿ%ØÎ%ÖÆ?Æ.¶$rÎ$­H%çŒ$²&õ¶$r„ª§9–!…&? 9z-&†<—-Æ�?49?2Î%ò† Z'§ ø†§Î%ò?5?390 $Ñ%PDRIVE : DISK I.D. : . !WDSCN0 *NO SDW'S* NO DIRECTORY ENTRY FOUND TOTAL NUMBER OF SECTORS : /$ TOTAL DIRECTORY ENTRIES SHOWN : /$ NO TERMINATOR FOUND IN FILE'S R.I.B. ]'/l&lÿ&öþ&ö¦„� #‹‹0m&jjî§þ&ö� Z&Ýþ&ö96†dfJ&ù29]&~'�l&l÷'£ÿ'¥Î'‘ÿ' †·'¤þ'¥¦æÎ'›oîà¢%Î'›l ñë©Î'›67¦‹0æ 'Z&ü§32Î'›l&ll&lj ,Ãïî¦Î'›î m&jjî§Î'›l&lj&Þþ'¥O9'èd †«Š§‹Æ$†0§ Z&ì9ååD€8 0300ååŸ'¶ëÿ�E&Æ ? ?Æ øÆ ô_�C'Æ×$†1·#/Þþÿ#:Î#/ÿ#<Î#:?† ±#0&Ó±#8&Îö#/Á0/ËÁ3.Ç÷#KÎ#>? Î#NÆ? ¶#N�Y'?ö#KÄ×ÎLß Î ß.Î ß½è"–ÆfD'ÆF÷ìÆ$T÷ì}$& ¶ëþ�'�&†ÿ ¶ìHH—,$†3— PΖ,+Î4ß½"°æOæ*üæ_Z&ýLm*÷\€K\€$û×)T×*†§½"нèu$#Ö–›Ù� Ò €—×–—-ÆÎ-? %÷?–)€%€$Î Î"«ÿ!ðνÿ!î– —"Îÿæ},+ÎÿÌßÖÛ×ÖÉ×J*ñ½èx%�–$DDDD›"öìÊ�+#Äû÷솗#¶ìŠ@·ì½"°Æ'–*J&ýÎÀÚÿìÎÁÿÿì΂pÿì¶ì„ò·ì˜$…& ½"І2—~! „`·ì¶ì*û΂ÿì½"â΃÷ÿì†z·ìÎ�ÿÿìÆ†΂ÿìµì'û·ìµì'ûÎÂpÿì…†‚|ìzì·ì½"â΃õÿìÆ~†@÷ìµì'ûÖ"÷ì_÷ìµì'ûÖ#÷ì_÷ìµì'û÷ìµì'ûöìÊ÷ì÷ìµì'û†ÿ·ì†@µì'ûÄ`÷ìÎ�ÿÿìƬ–#L—#�'�5'~!Ó¶ì*ûzìzì�V–#�& –,+†#~!v½èr$~ ô–֛ɗ×|"–!‘"%~!R?†‚• 9—+þÿüß%Î#ÿÿüÎì†6§†>§æJ§9Î<>ÿìþìÞ%ÿÿü–+9†µì'û–*J&ý†·ìZ&îÎ�ªÆÿì΂ÿìµì'û–*J&ý†·ìZ&î9ž'�³½è"†5—–#J_›Ù~! FORMAT DRIVE X? åååG€0010�******************************************************************** 0020Ä* 0030�AFPP�RPS�USER�SPECIFIED�MEASUREMENT�POSITI  ONSŠ* 0040Ä* 0050�******************************************************************** 0060ˆ 0070…THE�PATCHES�REFER�TO�AN�OBSOLETE�LISTING�OF�RPSMST15. 0080ˆ 0090ˆ 0100…PATCHES�IN�EXISTING�SOFTWARE�: 0110„ 0120†C197‡7E�A900‰JMP�SPECIAL† 0130„ 0140¡BEFORE�THIS�STATEMENT�WAS 0150¡JMP�IBM 0160„ 0170†C286‡36ŽPSHA 0180†C287‡BD�A920‰JSR�NEXTPT 0190†C28A‡32ŽPULA 0200„ 0210¡BEFORE�STATEMENTS�WERE 0220¡BEQ�PROBE3 0230¡JSR�SHIFTR 0240¡THESE�ARE�NOT�NEEDED�ANY�MORE 0250¡FOR�UNITS�WITH�NEW�STYLE�PROBE 0260¡SPACING 0270† 0280�******************************************************************** 0290‡ 0300…SPECIAL�REPLACES�THE�THE�SOFT�THAT�WAS�USED�IN�MODE�8�AND�9�(IBM) 0310…SPECIAL�INITIALISES�SOME�VARIABLES�AND�SELECTS�ONE�OUT�OF 0320…TEN�USER�SPECIFIED�MEASUREMENT�PROGRAMMS.�FOR�THIS�PURPOSE 0330…THE�WAFERSIZE�THUMBWHEEL�IS�USED. 0340‡ 0350†A900†7F�007B„SPECIAL�CLR�DTHETA 0360�7F�0118ŒCLR�STEP 0370�BD�A910ŒJSR�TABPT…INIT�TABLE�POINTER 0380�A6�00ŽLDAA�0,X 0390�97�80ŽSTAA�NUMPTSƒSTORE�NUMBER�OF�POINTS 0400�7E�C274ŒJMP�RUNIT 0410‡ 0420�******************************************************************** 0430„ 0440…TABPT�CHECKS�THE�SELECTED�PROGRAMM�(DIAMET�HAS�WAFER�SIZE�) 0450…AND�RETURNS�IN�X�THE�START�ADDRESS�OF�THE�SELECTED�TABLE. 0460…THIS�TABLE�MUST�HAVE�IN�THE�FIRST�BYTE�THE�TOTAL�NUMBER�OF 0470…POINTS�THAT�WILL�BE�MEASURED.�NEXT,�THE�TABLE�(IN�ROM) 0480…MUST�HAVE�THE�PAIRS�OF�THETA�AND�RADIAL�STEPS. 0490† 0500†A910†CE�A940„TABPT‚LDX�#TABLE 0510�B6�0115‹LDAA�DIAMET 0520�84�0F�ANDA�#$F 0530�48�ALSA 0540�BD�C0A8‹JSR�ADDA2X 0550�EE�00�LDX�0,X 0560�39�RTS 0570‚ 0580�******************************************************************** 0590„ 0600…NEXTPT�LOADS�THE�NEXT�POSITION�FOR�THE�PROBE�FROM�THE�TABLE 0610…AND�STORES�THESE�IN�NEWPO,�STEP�AND�NEWTH. 0620…THEN,�IT�STARTS�THE�TABLE�AND�CHUCK�MOVEMENT. 0630„ 0640†A920†96�94…NEXTPT‚LDAA�TFUNC 0650�85�08�BITA�#8 0660�27�15�BEQ�OUTƒCHECK�FOR�MODE�8�OR�9 0670�BD�A910‹JSR�TABPT 0680�09�DEX†ADJUST�X� 0690�96�80�LDAA�NUMPTS‚NUMBER�OF�POINTS 0700�48�ASLAƒMULTIPLY�BY�2�FOR�OFFSET�IN�TABLE 0710�BD�C0A8‹JSR�ADDA2X 0720�A6�00�LDAA�0,X 0730�97�7E�STAA�NEWPO 0740�B7�0118‹STAA�STEP 0750�A6�01�LDAA�1,X 0760�97�7F�STAA�NEWTH 0770�BD�B84D‹JSR�MOVIT 0780�39‰OUT„RTS 0790ƒ 0800�************************************************************************ 0810ƒ 0820†TABLE�HAS�THE�START�ADDRESSES�OF�THE�TEN�USER�PROGRAMMS. 0830†THIS�TABLE�ALWAYS�MUST�HAVE�TEN�ADDRESSES,�BUT�THE�ADDRESSES 0840†MAY�POINT�TO�THE�SAME�USER�PROGRAMM. 0850† 0860†A940†AA00ˆTABLE�BEGIN�OF�SEQUENCE�0 0870†A942†AA40�,,‚,,…,,ƒ1 0880†A944†.... 2 0890†....†.... 0900†....†.... 0910†A952†AC00ŽBEGIN�OF�SEQUENCE�9 0920„ 0930�************************************************************************ 0940„ 0950…EACH�USER�PROGRAMM�CONSISTS�OF�A�TABLE�WITH�IN�THE�FIRST�BYTE 0960…THE�TOTAL�NUMBER�OF�POINTS�TO�BE�MEASURED. 0970…THE�MAXIMUM�NUMBER�OF�STEPS�IS�127. 0980…EACH�NEXT�TWO�BYTES�CONTAIN�THE�NEW�POSITION�OF�THE 0990…PROBE.�THE�POSITION�IS�GIVEN�AS�THE�NUMBER�OF�STEPS�OF�THE 1000…STEPPER�MOTORS�OF�THE�PROBE�TABLE�AND�CHUCK,�REFERRED�TO�THE� 1010…CENTER�POSITION. 1020‚ 1030ŠIMPORTANT:‚THE�TABLE�IS�READ�FROM�THE�END�TO�THE�BEGIM 1040šBY�THE�SUBROUTINE�NEXTPT 1050… 1060†AA00†03ŠTHIS�USER�PROGRAMM�HAS�3�STEPS 1070†AA01†30…*„PROBE�MOVES�16�STEPS�FORWARD�AND 1080�50„*�*ƒCHUCK�TURNS�16�STEPS�LEFT 10  90†AA03†40ƒ*�*�*‚PROBE�MOVES�48�STEPS�BACK�(64�FROM�CENTRE�NOW�) 1100�60…*„AND�CHUCK�MOVES�64�STEPS�(96�TOTAL�NOW�) 1110†AA05†10…*„PROBE�MOVES�16�STEPS�BACK�AND 1120�20…*„CHUCK�MOVES�32�STEPS�RIGHT 1130„ 1140†AA40†07ŠTHIS�USER�PROGRAMM�HAS�7�STEPS 1150†AA41†..ŠETC 1160�.. 1170‡ 1180�************************************************************************* åO€@ 0300O—"—%—&Þþÿ"ì¦� '.�;' � 'ñ|& ì¦� '�Y&|" ð�S&|% ç� 'ãÆ 9† ·"CÎ"DÆ ?Î"Cÿ"îÎ"ì?× ¶"C� '„'�/Æ ·"C– '…'Æ? ?…&† ±"C&±"L&}&&å† ±"C&"C"T½!n ? $?Î"CÖ!?$~!GÖ!Å&½!æ&â–%&¶"P… &×¶"P„À'Æ�?#Î#½"Î#? DÖ!Å&$–"& Î"÷½"Î"ð? ? %CÎ"ÜÆ? ? %8¦�Y&œÆÎ"C?$Æ ? ?Î#"½"Î#"? –!J&~ ¨þ"ì¦� '�;'~ F?–!J'Å'Æ€?#Î#8½"Î#8? ÔÆ ? ?Á&ö~!5O—#—$Æ Î"D¦&z# %– „&†—!9– …&†—# |#Œ"L'¦&òÎ"L¦&z$ – …&†—$ |$Œ"L'¦&òÎ"Dÿ"ÞÎ"âÿ"àÆ Î"Þ?†—!9Ö#+Î"Dÿ"ÞÎ"âÿ"àÎ"Þ?&–$*O J'þ"L¼"ê ¶"L±"ê9ÿ"àÎ"Dÿ"ÞÆÎ"Þ?†.þ"à§¶"Lö"M§ç†:§¶"CŠ0§9 "\"Û DELETE  ? IS PROTECTED DELETED DOES NOT EXIST XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXT.C.�CORRECTION�TABLE" 0290†PRINT�"(3)�START�THE�CALIBRATION�PROCEDURE" 0300†PRINT�"(4)�PRINT�CALIBRATION�TABLES" 0310†PRINT\PRINT�TAB(20);\INPUT�"ENTER�THE�RIGHT�KEY�:�"KEY 0320†IF�KEY=0�THEN�0110 0330†IF�KEY>5�THEN�0100 0340†ON�KEY�GOSUB�0300,0400,0500,0 R€x 0300Þþÿ$?Î$Mÿ$AÎ$??' Å'~"×~"ÓÎ% ÿ$AÎ$??'+~"íÎ%ÿ$AÎ$??'*îÎ% ½#C%æÎ%½#C%Þö% '}%'ñ%&Ïö%¶%þ% ?/%Âþ$?¦� '{�;'ÿ$? ðþ$?ÿ$?¦� 'd� 'ï�H&|% æ�L&|% Ý�N&|% Ô�F'~"Û½"ù'$~"ñö%)#øÁ„"ô÷%þ$?¦� '�.&·½"ù'%Ýö%)Á #ÖÁc"Ò÷% þ$?~ ˆÎ$Nÿ$?Î%<ÿ$AÎ$?Æ?Î%Eÿ$AÎ$?Æ?ö$M÷%Hþÿ$bÆ??$΀?/$~"õ„€þ$b6†S±% 2&†?( ?) ÿ$dÎ$C?'~"Ê?&ùæÄÁ'~"á}%'Î%²? Î%KÆd? ?'ÿ%°}%' †L·$p†P·$qÎ$h?'~"Ê?&ùÆSñ% &þ% ÿ$TÎ$€}%'Î$ˆÿ$GÎ%ÿ$I}%'Î$€Æ?Î$„ÿ$Aþ%#ÿ$?Î$?ƽ%ÃÎ$C?':Á &/}%"'}%'}%%' ö% ð%%½$(½#ü?ÆSñ% 'ñ%'~"å~"éÁ '~"ÊÆLñ% &:ö%#¶%$þ% ?/$-? %·þ%#ÿ%#}%&~!¢ÆLñ%& ö%¶%?/$ì~!áþ$T í}%%&FÎ%9ÿ$Aþ% ÿ$?ÿ% ÆÎ$?½%ÃÎ%,ÿ$lÎ%1ÿ$nÎ$h?&BÎ%2ÿ$lþ%°ÿ$n½#¯&1ƽ$(Æ÷%%Î$€ÿ$lþ$Eÿ$nÆ÷%"½#¯&|%%ö%%ñ% -%%~"+Æ? ½#ü?Æ Æ Æ ? ?Æ çÆ ãÆ ߯ ìÆ èÆ6 äÎ%ÿ%&ÿ%_þ$?ÿ$?¦� '�0-�9.\Á# þ%§ÿ% ØÎ%&]'½&f%ç)å}%(&à †9O9æ'e÷#®ÁL'ÁS' 9m&úÿ%&ÿ%*_† ¡'\†L±#®'Á.ß ëÁ.Ù åÎ%&]'цL±#®'½&¸ ½&f)À%¾ö%(¶%)þ%*ç§ö#®ÁL&î'¦ 9þ$nö$l¶$m?-_¶%?/$ þ$lJ?(ÿ$nþ$l† ¡' † ¡#†%§?$þ$I?/$?% â? $11~!æÎ$h?9Î$h½$ Î$C½$ 9ÿ$&?'Á'_? þ$&?'Á'_? 9Î%Âÿ$lÎ%Âÿ$nÎ$h7?3Z&ù9$€%DK0 SACN  PB PAGE XXX XXXXXXXX.XX:X %JENTER HEADING:  ]&~&Ol&l÷&bÿ&dÎ&Pÿ&_†·&cþ&d¦æÎ&Zoîà¢%Î&Zl ñë©Î&Z67¦‹0æ 'Z&ü§32Î&Zl&ll&lj ,Ãïî¦Î&Zî m&jjî§Î&Zl&lj&Þþ&dO9'èd ]'Gÿ&µ÷&·oo þ&µHY%5HY%1«é%+HY%'§çî¦þ&µl&l?%_«§éç%z&·&ÆO9 û]'+ÿ&çooþ&çî¦þ&çl&l½&é%½'ª§Z&ßþ&ç9�A% 6‹¹2%€ �0%6‹Æ2%„96†hiJ&ù29V‚€0010‚OPT�L,LLEN=120 0020�* 0030�************************************ 0040�* 0050�*…THIS�PROGRAMM�WILL�REWIND�THE 0060�*…TAPE�UNIT�AND�THEN�WRITE�A 0070�*…BLOCK�OF�DATA�ON�THE�TAPE. 0080�*…NEXT,�IT�WILL�REWIND�AND�READ 0090�*…THE�BLOCK�FROM�THE�TAPE�AND 0100�*…SEND�THE�DATA�TO�THE�SCREEN. 0110�*…CHECKSUM�ON�READ�DATA�IS�IN 0120�*…A�SPECIFIC�LOCATION. 0130�* 0140�************************************* 0150�* 0160�* 0170‚ORG�$3000 0180�* 0190�MAIN�JSR�INIT 0200‚JSR�REWIND�START�FROM�BEGIN�TAPE 0210‚JSR�DLY250 0220‚JSR�DLY250 0230‚JSR�WRFWD 0240‚JSR�DLY250 0250‚JSR�DLY250 0260‚JSR�DLY250 0270‚JSR�DLY250 0280‚JSR�WRTBLK 0290‚JSR�DLY250 0300‚JSR�WRTBLK 0310‚JSR�DLY250 0320‚JSR�WRTBLK 0330‚JSR�DLY250 0340‚JSR�WRTBLK 0350‚JSR�DLY250 0360‚JSR�STOP 0370‚JSR�DLY250 0380‚JSR�REWIND 0390‚JSR�DLY250 0400‚JSR�RDFWD 0410‚JSR�READBL 0420‚JSR�READBL 0430‚JSR�READBL 0440‚JSR�READBL 0450‚JSR�DLY250 0460‚JSR�STOP 0470‚LDAA�CHKSUM 0480‚SWI�ACC.�A�CONTAINS�CHECKSUM 0490�* 0500�* 0510�PIAAD�EQU�$E3D0 0520�STP�EQU�$FF 0530�REV�EQU�$FB 0540�FWD�EQU�$FD 0550�FWDWCD�EQU�$F5 0560�* 0570�WDA�EQU�$20 0580�BET�EQU�$40 0590�* 0600�CHKSUM�EQU�$3800 0610�TEMP�EQU�$3810 0620�FLAG�EQU�$3820 0630�* 0640�INIT�LDX�#$2E36 0650‚STX�PIAAD 0660‚LDAA�#$FF 0670‚STAA�PIAAD 0680‚CLR�CHKSUM 0690‚CLR�FLAG 0700‚RTS 0710�* 0720�* 0730�REWIND�LDAA�#REV 0740‚STAA�PIAAD 0750‚LDAA�PIAAD 0760‚BITA�#BET 0770‚BNE�REWIND 0780�STOP�LDAA�#$FF 0790‚STAA�PIAAD 0800‚RTS 0810�* 0820�* 0830�WRFWD�LDAA�#FWDWCD 0840�STORE�STAA�PIAAD 0850‚RTS 0860�* 0870�RDFWD�LDAA�#FWD 0880‚BSR�STORE 0890‚JSR�DLY250 0900‚JSR�DLY250 0910�CLEAR�BSR�STOP�THIS�IS�TO�CLEAR�READ�LOGIC 0920‚LDAA�#FWD 0930‚BSR�STORE 0940‚RTS 0950�* 0960�* 0970�WRTBLK�LDX�$3900 0980‚LDAA�#$AA 0990‚BRA�WRITEB 1000�NEXTB�LDAA�0,X 1010‚INX 1020‚CPX�$3902 1030‚BEQ�WOUT 1040�* 1050�WRITEB�LDAB�#$8 1060‚BRA�WB2 1070�WB1�JSR�WAIT28�WAIT�28�MUSEC 1080�WB2�RORA 1090‚PSHA 1100‚BCS�W1 1110‚BSR�WR0 1120‚BRA�WRTBEX 1130�W1�BSR�WR1 1140‚BRA�WRTBEX 1150�WRTBEX�PULA 1160‚DECB 1170‚BNE�WB1 1180‚BRA�NEXTB 1190�WOUT�RTS 1200�* 1210�* 1220�WR0�NOP 1230‚NOP 1240‚NOP 1250‚NOP 1260‚LDAA�#$F5 1270‚BRA�CONT 1280�CONT�STAA�PIAAD 1290‚JSR�WAIT 1300‚EORA�#WDA 1310‚STAA�PIAAD 1320‚RTS 1330�* 1340�WR1�NOP 1350‚NOP 1360‚NOP 1370‚NOP 1380‚LDAA�#$D5 1390‚BRA�CONT 1400�* 1410�* 1420�WAIT�JSR�WAIT14 1430‚NOP 1440‚NOP 1450‚NOP 1460‚NOP 1470‚JSR�WAIT28 1480�WAIT28�JSR�WAIT14 1490�WAIT14�RTS 1500�* 1510�* 1520�READBL�LDX�$3904 1530‚LDAA� PIAAD�CLEAR�INT�FLAG 1540‚JSR�DLY100 1550‚JSR�CLEAR 1560�READ�LDAB�#8 1570�WAI1�LDAA�PIAAD+1 1580‚BPL�WAI1 1590‚LDAA�PIAAD 1600‚RORA 1610‚ROR�TEMP 1620‚DEC�B 1630‚BEQ�SEND 1640‚BRA�WAI1 1650�* 1660�SEND�LDAA�TEMP 1670‚STAA�$FCF5 1680‚ADDA�CHKSUM 1690‚STAA�CHKSUM 1700‚DEX 1710‚BNE�READ 1720‚RTS�BYE�BYE 1730�* 1740�DLY250�PSHA 1750‚PSHB 1760‚LDAB�#250 1770�NXT�JSR�DLY1 1780‚DECB 1790‚BNE�NXT 1800‚PULB 1810‚PULA 1820‚RTS 1830�* 1840�DLY100�PSHA 1850‚PSHB 1860‚LDAB�#100 1870�NXT100�JSR�DLY1 1880‚DECB 1890‚BNE�N\€ --- PAGE‚001‚TAPESOFT.SA:1‰ 00010�00001’************************************ 00020�00002’* 00030�00003’*…THIS�PROGRAMM�WILL�REWIND�THE 00040�00004’*…TAPE�UNIT�AND�THEN�WRITE�A 00050�00005’*…BLOCK�OF�DATA�ON�THE�TAPE. 00060�00006’*…NEXT,�IT�WILL�REWIND�AND�READ 00070�00007’*…THE�BLOCK�FROM�THE�TAPE�AND 00080�00008’*…SEND�THE�DATA�TO�THE�SCREEN. 00090�00009’*…CHECKSUM�ON�READ�DATA�IS�IN 00100�00010’*…A�SPECIFIC�LOCATION. 00110�00011’* 00120�00012’************************************* 00130�00013’* 00140�00014’* 00150�00015A�3000“ORG„$3000 00160�00016’* 00170�00017A�3000�BD�303D‚A�MAINƒJSR„INIT 00180�00018A�3003�BD�304C‚AˆJSR„REWINDƒSTART�FROM�BEGIN�TAP ****ERRORƒ211--00000 †00019A�3006�BD�0000‚A�0190‚JSR�DLY250 ****ERRORƒ211--00019 †00020A�3009�BD�0000‚A�0200‚JSR�DLY250 00210�00021A�300C�BD�305E‚AˆJSR„WRFWD ****ERRORƒ211--00020 †00022A�300F�BD�0000‚A�0220‚JSR�DLY250 ****ERRORƒ211--00022 †00023A�3012�BD�0000‚A�0230‚JSR�DLY250 ****ERRORƒ211--00023 †00024A�3015�BD�0000‚A�0240‚JSR�DLY250 ****ERRORƒ211--00024 †00025A�3018�BD�0000‚A�0250‚JSR�DLY250 00260�00026A�301B�BD�3075‚AˆJSR„WRTBLK ****ERRORƒ211--00025 †00027A�301E�BD�0000‚A�0270‚JSR�DLY250 00280�00028A�3021�BD�3058‚AˆJSR„STOP ****ERRORƒ211--00027 †00029A�3024�BD�0000‚A�0290‚JSR�DLY250 00300�00030A�3027�BD�304C‚AˆJSR„REWIND ****ERRORƒ211--00029 †00031A�302A�BD�0000‚A�0310‚JSR�DLY250 00320�00032A�302D�BD�3064‚AˆJSR„RDFWD 00330�00033A�3030�BD�30C7‚AˆJSR„READBL ****ERRORƒ211--00031 †00034A�3033�BD�0000‚A�0340‚JSR�DLY250 00350�00035A�3036�BD�3058‚AˆJSR„STOP 00360�00036A�3039�B6�3800‚AˆLDAAƒCHKSUM 00370�00037A�303C�3F�SWI�ACC.�A�CONTAINS�CHEC 00380�00038’* 00390�00039’* 00400�00040ŠE3D0‚A�PIAAD‚EQU„$E3D0 00410�00041Š00FF‚A�STP„EQU„$FF 00420�00042Š00FB‚A�REV„EQU„$FB 00430�00043Š00FD‚A�FWD„EQU„$FD 00440�00044Š00F5‚A�FWDWCD�EQU„$F5 00450�00045’* 00460�00046Š0020‚A�WDA„EQU„$20 00470�00047Š0040‚A�BET„EQU„$40 00480�00048’* --- PAGE‚002‚TAPESOFT.SA:1‰ 00490�00049Š3800‚A�CHKSUM�EQU„$3800 00500�00050’* 00510�00051A�303D�CE�2E34‚A�INITƒLDX„#$2E34 00520�00052A�3040�FF�E3D0‚AˆSTX„PIAAD USING�"�T.C.�3�CORRECTION�IS�-###.#�DEGRES",VALUE2/AA 2560†PRINT 2570†IF�ABS(VALUE0)<450�AND�ABS(VALUE1)<450�AND�ABS(VALUE2)<450�THEN�0575 2580†PRINT�TAB(20);BLK$;"***�CORRECTION�TOO�BIG�***";RBLK$ 2590�0575�INPUT�"NEW�VALUES�O.K.?�(Y/N)�:�"BUFF$ 2600†PRINT�CLEAR$ 2610†PRINT\PRINT�"WAIT" 2620†IF�BUFF$<>"Y"�THEN�0580 2630†POSIT=SAVPOS\RWFLAG=0\TEMP=SETPOINT\GOSUB�1000 2640†GOSUB�9871 2650†GOTO�0510 2660�0580�RETURN 2670�! 2680�!�ROUTINE�FOR�TEMP�FILE�PRINT�OUT 2690�! 2700�0600�LINE=1\QQQ=0 2710†INPUT�"PRINT� ALSO�CAL.�T.C.�DEVIATION�TABLE�?"BUFF$ 2720†IF�BUFF$="Y"�THEN�QQQ=1 2730†MESSAGE$=FILLER$(1,30) 2740†MESSAGE$=MESSAGE$�CAT�"ASM�ICC�CALIBRATION�LISTING" 2750†GOSUB�0800\NLF=4\GOSUB�0820 2760†MESSAGE$=FILLER$(1,4)�CAT�DATE$�CAT�"‚"�CAT�TIME$ 2770†GOSUB�0800\NLF=2\GOSUB�0820 2780†IF�QQQ=0�THEN�0789 2790†MESSAGE$="ŠCALIBRATION�T.C.�DEVIATION�TABLE" 2800†GOSUB�0800\NLF=2\GOSUB�0820 2810†POINTER=144 2820†GOSUB�0620 2830†POINTER=1200 2840†GOSUB�0620 2850†GOSUB�0830 2860†NLF=5\GOSUB�0820 2870�0789�MESSAGE$="ŠMAIN�T.C.�CORRECTION�TABLE" 2880†GOSUB�0800\NLF=2\GOSUB�0820 2890†POINTER=2256 2900†GOSUB�0620 2910†POINTER=3312 2920†GOSUB�0620 2930†GOSUB�0830 2940†RETURN 2950�! 2960�0620�MESSAGE$=ASTER$(1,50)�CAT�ASTER$(1,50) 2970†MESSAGE$=MESSAGE$�CAT�ASTER$(1,25)\GOSUB�0800 2980†MESSAGE$="*" 2990†IF�POINTER=144�OR�POINTER=2256�THEN�BUFF=1�ELSE�BUFF=5 3000†FOR�COUNT=1�TO�4 3010†MESSAGE$=MESSAGE$�CAT�"*******" 3020†MESSAGE$=MESSAGE$�CAT�FILLER$(1,8)�CAT"TUBE�"�CAT�NUMF$("##",BUFF) 3030†MESSAGE$=MESSAGE$�CAT�FILLER$(1,8)�CAT�"*" 3040†BUFF=BUFF+1 3050†NEXT�COUNT 3060†GOSUB�0800 3070†MESSAGE$=ASTER$(1,50)�CAT�ASTER$(1,50) 3080†MESSAGE$=MESSAGE$�CAT�ASTER$(1,25)\GOSUB�0800 3090†MESSAGE$="*�TEMP�*�ZNE�1�!�ZNE�2�!�ZNE�3�" 3100†MESSAGE$=MESSAGE$�CAT�MESSAGE$ 3110†MESSAGE$=MESSAGE$�CAT�MESSAGE$�CAT�"*" 3120†GOSUB�0800 3130†MESSAGE$=ASTER$(1,50)�CAT�ASTER$(1,50) 3140†MESSAGE$=MESSAGE$�CAT�ASTER$(1,25)\GOSUB�0800 3150†FOR�COUNT1=1�TO�11 3160†RESTORE�#3,POINTER 3170†READ�#3,TEMP,VALUE0,VALUE1,VALUE2 3180†MESSAGE$="*�" 3190†FOR�COUNT=1�TO�4 3200†SETPOINT=TEMP\GOSUB�4567 3210†VALUE0=VALUE0/AA 3220†VALUE1=VALUE1/AA 3230†VALUE2=VALUE2/AA 3240†MESSAGE$=MESSAGE$�CAT�NUMF$("####",TEMP)�CAT�"‚" 3250†MESSAGE$=MESSAGE$�CAT�NUMF$("-###.#",VALUE0)�CAT�"‚" 3260†MESSAGE$=MESSAGE$�CAT�NUMF$("-###.#",VALUE1)�CAT�"‚" 3270†MESSAGE$=MESSAGE$�CAT�NUMF$("-###.#",VALUE2)�CAT�"�*�" 3280†POINTER=POINTER+264 3290†RESTORE�#3,POINTER 3300†READ�#3,TEMP,VALUE0,VALUE1,VALUE2 3310†NEXT�COUNT 3320†GOSUB�0800 3330†POINTER=POINTER-(264*4)+24 3340†NEXT�COUNT1 3350†MESSAGE$=ASTER$(1,50)�CAT�ASTER$(1,50) 3360†MESSAGE$=MESSAGE$�CAT�ASTER$(1,25)\GOSUB�0800 3370†NLF=2\GOSUB�0820 3380†RETURN 3390�! 3400�!�PRINTER�SUBROUTINE 3410�! 3420�0800�PRINT�#2,MESSAGE$ 3430†LINE=LINE+1 3440†IF�LINE=63�THEN�NLF=4 3450†IF�LINE=63�THEN�GOSUB�0820 3460†RETURN 3470�! 3480�!�MULTIPLE�LINE�FEED�SUBROUTINE 3490�! 3500�0820�FOR�LOOP=1�TO�NLF 3510†PRINT�#2 3520†LINE=LINE+1\IF�LINE=67�THEN�LINE=1 3530†NEXT�LOOP 3540†RETURN 3550�0830�PRINT�#2,FFEED$ 3560†LINE=1 3570†RETURN 3580�! 3590�!�ROUTINE�FOR�READ�AND�WRITE�IN�SYSTEM�TABLE 3600�! 3610�1000�IF�TABLE=1�THEN�POINTER=144 3620†IF�TABLE=2�THEN�POINTER=2256 3630†IF�TABLE=3�THEN�POINTER=0 3640†IF�TABLE<3�THEN�POINTER=POINTER+(264*(NTUBE-1))+(24*(POSIT-1)) 3650†IF�TABLE=3�THEN�POINTER=POINTER+(12*(POSIT-1)) 3660†RESTORE�#3,POINTER 3670†IF�TABLE=3�THEN�READ�#3,TEMP,VALUE0 3680†IF�TABLE=3�THEN�1010 3690†IF�RWFLAG=1�THEN�READ�#3,TEMP,VALUE0,VALUE1,VALUE2 3700†IF�RWFLAG=0�THEN�WRITE�#3,TEMP,VALUE0,VALUE1,VALUE2 3710�1010�RWFLAG=1 3720†RETURN 3730�! 3740�!�SEARCH�OF�THE�CLOSED�SETPOINT 3750�!�SETPOINT�TO�CONSIDERE�IN�ARG1�RESULT�IN�ARG�2 3760�!�MAGN=1�CHECK�FOR�HIGHER‚MAGN=0�CHECK�FOR�LOWER 3770�! 3780�2000�ARG2=0\GOODPOS=0 3790†IF�MAGN=1�THEN�2100 3800†FOR�POSIT=1�TO�11 3810†GOSUB�1000 3820†IF�TEMPAR G1�THEN�2007 3830†GOODPOS=POSIT\ARG2=TEMP 3840�2007�NEXT�POSIT 3850�2010�IF�GOODPOS=0�THEN�2020 3860†POSIT=GOODPOS\GOSUB�1000 3870†RETURN 3880�2020�ARG2=0\RETURN 3890�2100�ARG2=32000 3900†FOR�POSIT=1�TO�11 3910†GOSUB�1000 3920†IF�TEMP>ARG2�OR�TEMP0�THEN�3002 4050†T1=50\C1=0\C11=0\C21=0 4060�3002�MAGN=1\GOSUB�2000\T2=TEMP\C2=VALUE0\C12=VALUE1\C22=VALUE2 4070†IF�ARG2<>0�THEN�3004 4080†T2=30000\C2=0\C12=0\C22=0 4090�3004�IF�T2-T1=0�THEN�T2=T2+1 4100�3005�C3=(C2-C1)\C13=(C12-C11)\C23=(C22-C21) 4110†C3=C3/(T2-T1) 4120†C13=C13/(T2-T1) 4130†C23=C23/(T2-T1) 4140†T1=ARG1-T1 4150†C3=C3*T1\C13=C13*T1\C23=C23*T1 4160†C0=INT(C1+C3)\C10=INT(C11+C13)\C20=INT(C21+C23) 4170†RETURN 4180�! 4190�!� 4200�!�PORT�SELECTION 4210�7000�PORT=ACIABASE+((NTUBE-1)*:2) 4220†DATAPORT=PORT+1 4230†RETURN 4240�! 4250�!�PRINT�ON�PORT�OF�MESSAGE$ 4260�! 4270�8000�MESSAGE$=MESSAGE$�CAT�CR$ 4280�8010�FOR�P=1�TO�LEN(MESSAGE$) 4290†WAIT=0 4300�8020�WAIT=WAIT+1\IF�WAIT>1000�THEN�8315\IF�PEEK(PORT)�&�:02=0�THEN�8020 4310†POKE�DATAPORT,MESSAGE$(P) 4320†NEXT�P 4330†RETURN 4340�! 4350�!�GET�A�ASCII�MESSAGE$ 4360�! 4370�8300�P=1 4380†WAIT=0 4390�8305�WAIT=WAIT+1\IF�WAIT>2000�THEN�8315\IF�PEEK(PORT)�&�:1=0�THEN�8305 4400†MESSAGE$(P)=PEEK(DATAPORT) 4410†IF�MESSAGE$(P)=4�THEN�8310 4420†P=P+1\GOTO�8305 4430�8310�LEN(MESSAGE$)=P-1 4440†RETURN 4450�8315�PRINT�CLEAR$\PRINT\PRINT�TAB(20);BLK$; 4460†PRINT�"**�BAD�COMMUNICATIONS�**�PROGRAM�ABORTED�**";RBLK$\PRINT 4470†POKE�RECEIV,:0 4480†INPUT�"HIT�ANY�KEY�"RESP$ 4490†GOSUB�POP�0 4500†GOTO�0100 4510�! 4520�8500�POKE�RECEIV,:FF 4530†ON�ERROR�GOTO�8315 4540†GOSUB�8000 4550†GOSUB�8300 4560†ON�ERROR�GOTO�9000 4570†POKE�RECEIV,:0 4580†RETURN 4590�! 4600�!�INIT�ACIA 4610�! 4620�8100�PORT=ACIABASE 4630†POKE�RECEIV,:FF 4640†FOR�P=1�TO�12 4650†POKE�PORT,:3\POKE�PORT,:11 4660†PORT=PORT+2 4670†NEXT�P 4680†POKE�RECEIV,:0 4690†RETURN 4700�! 4710�8998�POKE�RECEIV,:FF 4720†POKE�DATAPORT,:D 4730†COUNT=0 4740�8999�COUNT=COUNT+1\SMOOTH=PEEK(DATAPORT) 4750†IF�COUNT<2000�THEN�8999 4760†POKE�RECEIV,:0 4770†RETURN 4780�! 4790�9000�IF�ERR=1�THEN�0050�ELSE�ERROR 4800�! 4810�!�SET�SETPOINT�VALUE�IN�AO�MIRROR 4820�9875�GOSUB�8998 4830†QQQ=0 4840†PRINT�CLEAR$\PRINT\PRINT�"TEMP.�UPDATING�IN�PROGRESS�" 4850�9876�BUFF$=HEX$(C0) 4860†MESSAGE$="S�MM�16F�"�CAT�BUFF$(2,2) 4870†GOSUB�8500 4880†MESSAGE$="S�MM�170�"CAT�BUFF$(4,2) 4890†GOSUB�8500 4900†BUFF$=HEX$(C10) 4910†MESSAGE$="S�MM�171�"�CAT�BUFF$(2,2) 4920†GOSUB�8500 4930†MESSAGE$="S�MM�172�"�CAT�BUFF$(4,2) 4940†GOSUB�8500 4950†BUFF$=HEX$(C20) 4960†MESSAGE$="S�MM�173�"CAT�BUFF$(2,2) 4970†GOSUB�8500 4980†MESSAGE$="S�MM�174�"�CAT�BUFF$(4,2) 4990†GOSUB�8500 5000†QQQ=QQQ+1 5010†IF�QQQ=1�THEN�9876 5020†RETURN 5030�! 5040�9871�TABLE=2\ARG1=SETPOINT\GOSUB�3000 5050†CORM1=C0\CORM2=C10\CORM3=C20 5060†ARG1=SETPOINT 5070†TABLE=3 5080†GOSUB�3000\!�MAKE�THE�INTERPOLATION 5090†SAVE=C0 5100†C0=SAVE+CORM1\C10=SAVE+CORM2\C20=SAVE+CORM3 5110†RETURN 5120†END  åå o€ ITT.RC:1 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ00/00/0000/00/00 00.00.10.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.10.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.10.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.10.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.10.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@PDATA1 5590ˆPARAM‚#0,STEPNO,#DSPBUF 5595ˆJSR„STEPNRƒDISPLAY�STEPNR 5600ˆLDX„#M16…/(1)�TIME�ETC.�/ 5605ˆJSR„PDATA 5610ˆLDX„#M30…/s€S00500000001F9 S11B00004954542E52433A3120202020202020202020202020202020C5 S11B00187FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFE4 S11B00307FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFCC S11B00487FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFB4 S11B00607FFF7FFF2020202020200400000A000007F507F507F57FFF48 S11B00787FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF84 S11B00907FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF0000000068 S11B00A800000000000000000000000000000000000000000000388084 S11B00C0000000000A000007F507F507F57FFF7FFF7FFF7FFF7FFF7F31 S11B00D8FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F24 S11B00F0FF7FFF7FFF7FFF7FFF7FFF000000000000000000000000007F S11B0108000000000000000000000000003880000000000A000007F51D S11B012007F507F57FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFDF S11B01387FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFC3 S11B01507FFF0000000000000000000000000000000000000000000 015 S11B0168000000003880000000000A000007F507F507F57FFF7FFF7F4A S11B0180FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F7B S11B0198FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF000000000000005C S11A01B00000000000000000000000000000000000000038800080FC S9 0�LOTNR‚EQU„*ˆCHANGES�THE�LOTNR 5895ˆCURPOS�LINE1,0 5900ˆJSR„CLRDSP 5905ˆLDX„#M32…/LOT�NUMBER:/ 5910ˆJSR„PDATA1 5915ˆLDX„RECIPE 5920ˆLDAAƒ#9‡SKIP�FIRST�9�BYTES�IN�RECIPE�HEADER 5925ˆJSR„AXA 5930ˆSTX„RECIPE 5935ˆMOVEƒRECIPE,DSPBUF,15 5940ˆLDAAƒ#4 5945ˆSTAAƒ|v`–€àPS1.RC:1 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ08/06/8208/06/82f 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@GO 15.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 15.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 15.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 15.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 15.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿ@ 15.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿ|€S009000020202020202036 S11B3000BD303DBD304CBD0000BD0000BD305EBD0000BD0000BD000055 S11B3018BD0000BD3075BD0000BD3058BD0000BD304CBD0000BD306477 @ 15.00.00.sÁ^.sÁ^.sÁ^ÿÿÿ}€S009000020202020202036 S11B3000BD303DBD304CBD30F1BD30F1BD305EBD30F1BD30F1BD30F1B0 S11B3018BD30F1BD3075BD30F1BD3058BD30F1BD304CBD30F1BD3064F3 S11B3030BD30C9BD30F1BD3058B638003FCE2E34FFE3D086FFB7E3D0AD S11B30487F38003986FBB7E3D0B6E3D0854026F486FFB7E3D03986F5A6 S11B3060B7E3D03986FD8DF8BD30F1BD30F18DE886FD8DEC39FE39000C S11B307886AA2008A60008BC39022717C6082003BD30C54625048D0C56 S11B309020048D1B20005A26EF20E139BD30BE86FD2000B7E3D0BD30EA S11B30A8B68820B7E3D039BD30BE86F520EDBD30C83632BD30C58D0577 S11B30C08D03BD30C5BD000039FE3904C608B6E3D02AFB467638105AC7 S11B30D82707B6E3D02BFB20EDB63810B7FCF5BB3800B738000926DC7F S11730F0393637C6FABD30FE5A26FA33323986A54A26FD398E S9030000FC ÿÿÿÿÿÿÿÿÿÿÿÿ€00½0=½0L½0ñ½0ñ½0^½0ñ½0ñ½0ñ½0ñ½0u½0ñ½0X½0ñ½0L½0ñ½0d½0ɽ0ñ½0X¶8?Î.4ÿãІÿ·ãÐ89†û·ãжãÐ…@&ô†ÿ·ãÐ9†õ·ãÐ9†ý�ø½0ñ½0ñ�è†ý�ì9þ9†ª ¦¼9'Æ ½0ÅF%� � Z&ï á9½0¾†ý ·ãн0¶ˆ ·ãÐ9½0¾†õ í½0È62½0Å��½0Ž9þ9ƶãÐ*ûFv8Z'¶ãÐ+û í¶8·üõ»8·8 &Ü967Æú½0þZ&ú329†¥J&ý9€€00½0=½0O½0î½0î½0a½0î½0î½0î½0î½0x½0î½0[½0î½0O½0î½0g½0˽0î½0[¶8?Î.6ÿãІÿ·ãÐ88 9†û·ãжãÐ…@&ô†ÿ·ãÐ9†õ·ãÐ9†ý�ø½0î½0î�è†ý�ì9þ9†ª ¦¼9'Æ ½0ÇF6%� � 2Z&í ß9†ý ·ãн0½ˆ ·ãÐ9†õ ì½0ʽ0ǽ0Ê9þ9¶ãÐÆ¶ãÑ*û¶ãÐFv8Z' ï¶8·üõ &ä967Æú½0ûZ&ú329†¥J&ý9�€00½0=½0O½0ô½0ô½0a½0ô½0ô½0ô½0ô½0x½0ô½0[½0ô½0O½0ô½0g½0˽0ô½0[¶8?Î.6ÿãІÿ·ãÐ88 9†û·ãжãÐ…@&ô†ÿ·ãÐ9†õ·ãÐ9†ý�ø½0ô½0ô�è†ý�ì9þ9†ª ¦¼9'Æ ½0ÇF6%� � 2Z&í ß9†õ ·ãн0½ˆ ·ãÐ9†Õ ì½0ʽ0ǽ0Ê9þ9¶ãÐÆ¶ãÑ*û¶ãÐFv8Z' ï¶8·üõ»8·8 &Þ967Æú½1Z&ú329†¥J&ý9 XT100 1900‚PULB 1910‚PULA 1920‚RTS 1930�* 1940�DLY1�LDAA�#165 1950�NX�DECA 1960‚BNE�NX 1970‚RTS 1980�************************************** 1990‚END ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 15.00.00.sÁ^.ƒ€0010‚OPT�L,LLEN=120 0020�* 0030�************************************ 0040�* 0050�*…THIS�PROGRAMM�WILL�REWIND�THE 0060�*…TAPE�UNIT�AND�THEN�WRITE�A 0070�*…BLOCK�OF�DATA�ON�THE�TAPE. 0080�*…NEXT,�IT�WILL�REWIND�AND�READ 0090�*…THE�BLOCK�FROM�THE�TAPE�AND 0100�*…SEND�THE�DATA�TO�THE�SCREEN. 0110�*…CHECKSUM�ON�READ�DATA�IS�IN 0120�*…A�SPECIFIC�LOCATION. 0130�* 0140�************************************* 0150�* 0160�* 0170‚ORG�$3000 0180�* 0190�MAIN�JSR�INIT 0200‚JSR�REWIND�START�FROM�BEGIN�TAPE 0210‚JSR�DLY250 0220‚JSR�DLY250 0230‚JSR�WRFWD 0240‚JSR�DLY250 0250‚JSR�DLY250 0260‚JSR�DLY250 0270‚JSR�DLY250 0280‚JSR�WRTBLK 0290‚JSR�DLY250 0300‚JSR�WRTBLK 0310‚JSR�DLY250 0320‚JSR�WRTBLK 0330‚JSR�DLY250 0340‚JSR�WRTBLK 0350‚JSR�DLY250 0360‚JSR�STOP 0370‚JSR�DLY250 0380‚JSR�REWIND 0390‚JSR�DLY250 0400‚JSR�RDFWD 0410‚JSR�READBL 0420‚JSR�READBL 0430‚JSR�READBL 0440‚JSR�READBL 0450‚JSR�DLY250 0460‚JSR�STOP 0470‚LDAA�CHKSUM 0480‚SWI�ACC.�A�CONTAINS�CHECKSUM 0490�* 0500�* 0510�PIAAD�EQU�$E3D0 0520�STP�EQU�$FF 0530�REV�EQU�$FB 0540�FWD�EQU�$FD 0550�FWDWCD�EQU�$F5 0560�* 0570�WDA�EQU�$20 0580�BET�EQU�$40 0590�* 0600�CHKSUM�EQU�$3800 0610�TEMP�EQU�$3810 0620�FLAG�EQU�$3820 0630�* 0640�INIT�LDX�#$2E36 0650‚STX�PIAAD 0660‚LDAA�#$FF 0670‚STAA�PIAAD 0680‚CLR�CHKSUM 0690‚CLR�FLAG 0700‚RTS 0710�* 0720�* 0730�REWIND�LDAA�#REV 0740‚STAA�PIAAD 0750‚LDAA�PIAAD 0760‚BITA�#BET 0770‚BNE�REWIND 0780�STOP�LDAA�#$FF 0790‚STAA�PIAAD 0800‚RTS 0810�* 0820�* 0830�WRFWD�LDAA�#FWDWCD 0840�STORE�STAA�PIAAD 0850‚RTS 0860�* 0870�RDFWD�LDAA�#FWD 0880‚BSR�STORE 0890‚JSR�DLY250 0900‚JSR�DLY250 0910�CLEAR�BSR�STOP�THIS�IS�TO�CLEAR�READ�LOGIC 0920‚LDAA�#FWD 0930‚BSR�STORE 0940‚RTS 0950�* 0960�* 0970�WRTBLK�LDX�$3900 0980‚LDAA�#$AA 0990‚BRA�WRITEB 1000�NEXTB�LDAA�0,X 1010‚INX 1020‚CPX�$3902 1030‚BEQ�WOUT 1040�* 1050�WRITEB�LDAB�#$8 1060‚BRA�WB2 1070�WB1�JSR�WAIT28�WAIT�28�MUSEC 1080�WB2�RORA 1090‚PSHA 1100‚BCS�W1 1110‚BSR�WR0 1120‚BRA�WRTBEX 1130�W1�BSR�WR1 1140‚BRA�WRTBEX 1150�WRTBEX�PULA 1160‚DECB 1170‚BNE�WB1 1180‚BRA�NEXTB 1190�WOUT�JSR�WRFWD 1200‚RTS 1210�* 1220�* 1230�WR0�TST�0,X�DELAY�OF�7�MUSEC 1240‚LDAA�#$F5 1250‚BRA�CONT 1260�CONT�STAA�PIAAD 1270‚JSR�WAIT 1280‚EORA�#WDA 1290‚STAA�PIAAD 1300‚RTS 1310�* 1320�WR1�TST�0,X�DELAY�OF�7�MUSEC 1330‚LDAA�#$D5 1340‚BRA�CONT 1350�* 1360�* 1370�WAIT�JSR�WAIT14 1380‚NOP 1390‚NOP 1400‚NOP 1410‚NOP 1420‚JSR�WAIT28 1430�WAIT28�JSR�WAIT14 1440�WAIT14�RTS 1450�* 1460�* 1470�READBL�LDX�$3904 1480‚LDAA�PIAAD�CLEAR�INT�FLAG 1490‚JSR�DLY100 1500‚JSR�CLEAR 1510�READ�LDAB�#8 1520�WAI1�LDAA�PIAAD+1 1530‚BPL�WAI1 1540‚LDAA�PIAAD 1550‚RORA 1560‚ROR�TEMP 1570‚DEC�B 1580‚BEQ�SEND 1590‚BRA�WAI1 1600�* 1610�SEND�LDAA�TEMP 1620‚STAA�$FCF5 1630‚ADDA�CHKSUM 1640‚ST AA�CHKSUM 1650‚DEX 1660‚BNE�READ 1670‚RTS�BYE�BYE 1680�* 1690�DLY250�PSHA 1700‚PSHB 1710‚LDAB�#250 1720�NXT�JSR�DLY1 1730‚DECB 1740‚BNE�NXT 1750‚PULB 1760‚PULA 1770‚RTS 1780�* 1790�DLY100�PSHA 1800‚PSHB 1810‚LDAB�#100 1820�NXT100�JSR�DLY1 1830‚DECB 1840‚BNE�NXT100 1850‚PULB 1860‚PULA 1870‚RTS 1880�* 1890�DLY1�LDAA�#165 1900�NX�DECA 1910‚BNE�NX 1920‚RTS 1930�************************************** 1940‚END @ 15.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠ€800½0X½0j½1½1½0|½1½1½1½1½0“½1½0“½1½0“½1½0“½1½0v½1½0j½1½0‚½0å½0å½0å½0å½1½0v¶8?Î.6ÿãІÿ·ãÐ88 9†û·ãжãÐ…@&ô†ÿ·ãÐ9†õ·ãÐ9†ý�ø½1½1�è†ý�ì9þ9†ª ¦¼9'Æ ½0áF6%� � 2Z&í ß½0|9m†õ ·ãн0׈ ·ãÐ9m†Õ î½0ä½0á½0ä9þ9¶ãн1!½0ŒÆ¶ãÑ*û¶ãÐFv8Z' ï¶8·üõ»8·8 &Þ967Æú½1.Z&ú32967Æd½1.Z&ú329†¥J&ý9 ‹�€0010�********************************* 0020�*ƒ 0030�*…MFA�SIMULATION 0040�* 0050�********************************* 0060�* 0070‚ORG�$3000 0080�* 0090�HFLAG�RMB�1 0100�LFLAG�RMB�1 0110�HLIM�RMB�1 0120�LLIM�RMB�1 0130�MFM�RMB�1 0140�TRANS�RMB�1 0150�R1�RMB�1 0160�R2�RMB�1 0170�R3�RMB�1 0180�R4�RMB�1 0190�R11�RMB�2 0200�R12�RMB�2 0210�STR�RMB�45 0220�* 0230�* 0240‚ORG�$3100 0250�* 0260�START�CLR�LLIM 0270‚LDAA�#39 0280‚STAA�HLIM 0290‚LDAA�#19 0300‚STAA�MFM 0310‚CLR�HFLAG 0320‚CLR�LFLAG 0330‚CLR�TRANS 0340‚LDAA�#$2A 0350‚STAA�R1 0360‚JSR�$F015 0370�LOOP�JSR�PRINT 0380‚LDAA�$FCF5 0390‚ANDA�#$7F 0400‚CMPA�#$48 0410‚BEQ�HH 0420‚CMPA�#$4C 0430‚BEQ�LL 0440‚CMPA�#$44 0450‚BEQ�DOWN 0460‚CMPA�#$55 0470‚BEQ�UP 0480�TRA�CLR�TRANS 0490�WAI�JSR�WAIT 0500‚BRA�LOOP 0510�* 0520�HH�TST�TRANS 0530‚BNE�HH2 0540‚COM�HFLAG 0550‚STAA�TRANS 0560�HH2�TST�HFLAG 0570‚BEQ�HDWN 0580‚LDAA�HLIM 0590‚CMPA�#39 0600‚BEQ�HHEX 0610‚INC�HLIM 0620‚BRA�HHEX 0630�HDWN�LDAA�HLIM 0640‚BEQ�HHEX 0650‚DEC�HLIM 0660�HHEX�BRA�WAI 0670�* 0680�LL�TST�TRANS 0690‚BNE�LL2 0700‚COM�LFLAG 0710‚STAA�TRANS 0720�LL2�TST�LFLAG 0730‚BEQ�LDWN 0740‚LDAA�LLIM 0750‚CMPA�#39 0760‚BEQ�LLEX 0770‚INC�LLIM 0780‚BRA�LLEX 0790�LDWN�LDAA�LLIM 0800‚BEQ�LLEX 0810‚DEC�LLIM 0820�LLEX�BRA�WAI 0830�* 0840�UP�LDAA�MFM 0850‚CMPA�#39 0860‚BEQ�TRA 0870‚INC�MFM 0880‚BRA�TRA 0890�* 0900�DOWN�LDAA�MFM 0910‚BEQ�TRA 0920‚DEC�MFM 0930‚BRA�TRA 0940�* 0950�WAIT�LDX�#$3000 0960�WA�DEX 0970‚BNE�WA 0980‚RTS 0990�* 1000�PRINT�LDAA�#$0C 1010‚STAA�STR 1020‚LDAA�MFM 1030‚CMPA�LLIM 1040‚BGT�OK1 1050‚LDAB�#$4C 1060‚STAB�R1 1070‚BRA�PFI 1080�OK1�CMPA�HLIM 1090‚BLT�OK2 1100‚LDAB�#$48 1110‚STAB�R1 1120‚BRA�PFI 1130�OK2�LDAB�#$2A 1140‚STAB�R1 1150�PFI�JSR�CLEAR 1160‚LDX�#STR+1 1170‚CLR�B 1180�PFILL�CMPB�LLIM 1190‚BEQ�FILL 1200‚CMPB�MFM 1210‚BEQ�FILL 1220‚CMPB�HLIM 1230‚BEQ�FILL 1240�CONT�INCB 1250‚INX 1260‚CMPB�#40 1270‚BEQ�GO 1280‚BRA�PFILL 1290�* 1300�FILL�LDAA�R1 1310‚STAA�0,X 1320‚BRA�C �€h110†'·0†·0000½ð½1¢¶üõ„�H'�L'6�D'd�U'T0½1› à}0&s0·0}0' ¶0�'' |0 ¶0'z0 Õ}0&s0·0}0' ¶0�'' |0 ¶0'z0 ¯¶0�''¥|0  ¶0'›z0 –Î0 &ý9† ·0½1ÖÎ0_ñ0'ñ0' ñ0'\Á(' é†*§ ò†§Î0½ð'9Î0† §Œ06&ø9ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿONT 1330�* 1340�GO�LDAA�#$4 1350‚STAA�0,X 1360‚LDX�#STR 1370‚JSR�$F027 1380‚RTS 1390�* 1400�CLEAR�LDX�#STR+1 1410‚LDAA�#$20 1420�NX�STAA�0,X 1430‚INX 1440‚CPX�#STR+41 1450‚BNE�NX 1460‚RTS 1470�* 1480‚END ÿ@ 15.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘€110†'·0†·0000†*·0½ð½1§¶üõ„�H'�L'6�D'd�U'T0½1  à}0&s0·0}0' ¶0�'' |0 ¶0'z0 Õ}0&s0·0}0' ¶0�'' |0 ¶0'z0 ¯¶0�''¥|0  ¶0'›z0 –Î0 &ý9† ·0¶0±0.ÆL÷0 ±0-ÆH÷0 Æ*÷0½1üÎ0_ñ0'ñ0' ñ0'\Á(' é¶0§ ñ†§Î0½ð'9Î0† §Œ07&ø9’€0010‚OPT�L,LLEN=120 0020�* 0030�************************************ 0040�* 0050�*…THIS�PROGRAMM�WILL�REWIND�THE 0060�*…TAPE�UNIT�AND�THEN�WRITE�A 0070�*…BLOCK�OF�DATA�ON�THE�TAPE. 0080�*…NEXT,�IT�WILL�REWIND�AND�READ 0090�*…THE�BLOCK�FROM�THE�TAPE�AND 0100�*…SEND�THE�DATA�TO�THE�SCREEN. 0110�* 0120�************************************* 0130�* 0140�* 0150�PIAAD�EQU�$E3D0 0160�STP�EQU�$FF 0170�REV�EQU�$FB 0180�FWD�EQU�$FD 0190�FWDWCD�EQU�$F5 0200�* 0210�WDA�EQU�$20 0220�BET�EQU�$40 0230�* 0240�VERF�EQU�$3800 0250�BYTE�EQU�$3810 0260�FIRST�EQU�$3820 0270�BEGINP�EQU�$3900 0280�ENDPNT�EQU�$3902 0290�COUNT�EQU�BEGINP 0300�* 0310‚ORG�$3000 0320�* 0330�MAIN�JSR�INIT 0340‚JSR�REWIND�START�FROM�BEGIN�TAPE 0350‚JSR�DLY250 0360‚JSR�DLY250 0370‚JSR�WRFWD 0380‚JSR�DLY250 0390‚JSR�DLY250 0400‚JSR�DLY250 0410‚JSR�DLY250 0420‚LDX�#$4000 0430‚STX�BEGINP 0440‚LDX�#$57FF 0450‚STX�ENDPNT 0460‚JSR�WRTBLK 0470‚JSR�WRFWD 0480‚LDX�#$6400 0490‚STX�BEGINP 0500‚LDX�#$65BF 0510‚STX�ENDPNT 0520‚JSR�WRTBLK 0530‚JSR�WRFWD 0540‚LDX�#$7000 0550‚STX�BEGINP 0560‚LDX�#$7001 0570‚STX�ENDPNT 0580‚JSR�WRTBLK 0590‚JSR�DLY250 0600‚JSR�STOP 0610‚JSR�DLY250 0620‚JSR�REWIND 0630‚JSR�DLY250 0640‚JSR�RDFWD 0650‚LDX�#$1800 0660‚STX�COUNT 0670‚JSR�READBL 0680‚LDX�#$1C0 0690‚STX�COUNT 0700‚JSR�READBL 0710‚LDX�#2 0720‚STX�COUNT 0730‚JSR�READBL 0740‚JSR�DLY250 0750‚JSR�STOP 0760‚SWI�ACC.�A�CONTAINS�CHECKSUM 0770�* 0780�* 0790�INIT�LDX�#$2E36 0800‚STX�PIAAD 0810‚LDAA�#$FF 0820‚STAA�PIAAD 0830‚RTS 0840�* 0850�* 0860�REWIND�LDAA�#REV 0870‚STAA�PIAAD 0880‚LDAA�PIAAD 0890‚BITA�#BET 0900‚BNE�REWIND 0910�STOP�LDAA�#$FF 0920�STORE�STAA�PIAAD 0930‚RTS 0940�* 0950�* 0960�WRFWD�LDAA�#FWDWCD 0970‚S TAA�PIAAD 0980‚JSR�DLY1 0990‚JSR�DLY1 1000‚RTS 1010�* 1020�RDFWD�LDAA�#FWD 1030‚BSR�STORE 1040‚JSR�DLY250 1050‚JSR�DLY250 1060�CLEAR�BSR�STOP�THIS�IS�TO�CLEAR�READ�LOGIC 1070‚LDAA�#FWD 1080‚BRA�STORE 1090�* 1100�* 1110�WRTBLK�LDX�BEGINP 1120‚DEX 1130‚LDAA�#$AA 1140‚BRA�WRITEB 1150�NEXTB�LDAA�0,X 1160�* 1170�WRITEB�LDAB�#$8 1180‚BRA�WB2 1190�WB1�JSR�WAIT28�WAIT�28�MUSEC 1200�WB2�RORA 1210‚PSHA 1220‚BCS�W1 1230‚BSR�WR0 1240‚BRA�WRTBEX 1250�W1�BSR�WR1 1260‚BRA�WRTBEX 1270�WRTBEX�PULA 1280‚DECB 1290‚BNE�WB1 1300‚CPX�ENDPNT 1310‚BEQ�WOUT 1320‚INX 1330‚BRA�NEXTB 1340�WOUT�JSR�WRFWD 1350‚RTS 1360�* 1370�* 1380�WR0�TST�0,X�DELAY�OF�7�MUSEC 1390‚LDAA�#$F5 1400‚BRA�CONT 1410�CONT�STAA�PIAAD 1420‚JSR�WAIT 1430‚EORA�#WDA 1440‚STAA�PIAAD 1450‚RTS 1460�* 1470�WR1�TST�0,X�DELAY�OF�7�MUSEC 1480‚LDAA�#$D5 1490‚BRA�CONT 1500�* 1510�* 1520�WAIT�JSR�WAIT14 1530‚NOP 1540‚NOP 1550‚NOP 1560‚NOP 1570‚JSR�WAIT28 1580�WAIT28�JSR�WAIT14 1590�WAIT14�RTS 1600�* 1610�* 1620�READBL�LDX�COUNT 1630‚LDAA�#1 1640‚STAA�FIRST 1650‚JSR�DLY1 1660‚LDAA�PIAAD�CLEAR�INT�FLAG 1670‚JSR�CLEAR 1680�READ�LDAB�#8 1690�WAI1�LDAA�PIAAD+1 1700‚BPL�WAI1 1710‚LDAA�PIAAD 1720‚RORA 1730‚ROR�BYTE 1740‚DEC�B 1750‚BEQ�SEND 1760‚BRA�WAI1 1770�* 1780�SEND�LDAA�BYTE 1790‚TST�FIRST 1800‚BNE�CLF 1810‚STAA�$FCF5 1820‚DEX 1830‚BNE�READ 1840‚RTS�BYE�BYE 1850�CLF�CLR�FIRST 1860‚BRA�READ 1870�* 1880�DLY250�PSHA 1890‚PSHB 1900‚LDAB�#250 1910�NXT�JSR�DLY1 1920‚DECB 1930‚BNE�NXT 1940‚PULB 1950‚PULA 1960‚RTS 1970�* 1980�DLY1�LDAA�#165 1990�NX�DECA 2000‚BNE�NX 2010‚RTS 2020�************************************** 2030‚END 0�DLY1�LDAA�#165 2130�NX�DECA 2140‚BNE�NX 2150‚RTS 2160�************************************** 2170‚END ™€`00½0‚½0޽1G½1G½0 ½1G½1G½1G½1GÎ@ÿ9ÎWÿÿ9½0¼½0 Îdÿ9Îe¿ÿ9½0¼½0 Îpÿ9Îpÿ9½0¼½1G½0š½1G½0޽1G½0¬Îÿ9½1ÎÀÿ9½1Îÿ9½1½1G½0š?Î.6ÿãІÿ·ãÐ9†û·ãжãÐ…@&ô†ÿ·ãÐ9†õ·ãн1T½1T9†ý�ì½1G½1G�â†ý àþ9 †ª ¦Æ ½1 F6%� �$ 2Z&í¼9' ß½0 9m†õ ·ãн1ˆ ·ãÐ9m†Õ î½1½1 ½19þ9†·8 ½1T¶ãн0¶Æ¶ãÑ*û¶ãÐFv8Z' ï¶8}8 &·üõ &ß98 Ù67Æú½1TZ&ú329†¥J&ý9š€0010‚OPT�L,LLEN=120 0020�* 0030�************************************ 0040�* 0050�*…THIS�PROGRAMM�WILL�REWIND�THE 0060�*…TAPE�UNIT�AND�THEN�WRITE�A 0070�*…BLOCK�OF�DATA�ON�THE�TAPE. 0080�*…NEXT,�IT�WILL�REWIND�AND�READ 0090�*…THE�BLOCK�FROM�THE�TAPE�AND 0100�*…SEND�THE�DATA�TO�THE�SCREEN. 0110�* 0120�************************************* 0130�* 0140�* 0150�PIAAD�EQU�$E3D0 0160�STP�EQU�$FF 0170�REV�EQU�$FB 0180�FWD�EQU�$FD 0190�FWDWCD�EQU�$F5 0200�* 0210�WDA�EQU�$20 0220�BET�EQU�$40 0230�* 0240�RAMBEG�EQU�$3800 0250�* 0260‚ORG�RAMBEG 0270�* 0280�VERF�RMB�1 0290�BYTE�RMB�1 0300�BEGINP�RMB�2 0310�ENDPNT�RMB�2 0320�FIRST�RMB�1 0330�* 0340‚ORG�$3000 0350�* 0360�MAIN�JSR�INIT 0370‚JSR�REWIND�START�FROM�BEGIN�TAPE 0380‚JSR�DLY250 0390‚JSR�$F015 0400‚CMPA�#$57 0410‚BNE�VR 0420‚JSR�DLY250 0430‚JSR�WRFWD 0440‚JSR�DLY250 0450‚JSR�DLY250 0460‚JSR�DLY250 0470‚JSR�DLY250 0480‚LDX�#$4000 0490‚STX�BE GINP 0500‚LDX�#$57FF 0510‚STX�ENDPNT 0520‚JSR�WRTBLK 0530‚JSR�WRFWD 0540‚BRA�XX 0550‚LDX�#$6400 0560‚STX�BEGINP 0570‚LDX�#$65BF 0580‚STX�ENDPNT 0590‚JSR�WRTBLK 0600‚JSR�WRFWD 0610‚LDX�#$7000 0620‚STX�BEGINP 0630‚LDX�#$7001 0640‚STX�ENDPNT 0650‚JSR�WRTBLK 0660�XX�JSR�DLY250 0670‚JSR�STOP 0680‚JSR�DLY250 0690‚JSR�REWIND 0700�VR�CLR�VERF 0710‚JSR�$F015 0720‚CMPA�#$56 0730‚BNE�RD 0740‚INC�VERF 0750�RD�JSR�DLY250 0760‚JSR�RDFWD 0770‚LDX�#$4000 0780‚STX�BEGINP 0790‚LDX�#$57FF 0800‚STX�ENDPNT 0810‚JSR�READBL 0820‚BCC�YY 0830‚LDAB�#$AA 0840‚BRA�YY 0850�YY�JSR�DLY250 0860‚JSR�STOP 0870‚SWI 0880�* 0890�* 0900�INIT�LDX�#$2E36 0910‚STX�PIAAD 0920‚LDAA�#$FF 0930‚STAA�PIAAD 0940‚RTS 0950�* 0960�* 0970�REWIND�LDAA�#REV 0980‚STAA�PIAAD 0990‚LDAA�PIAAD 1000‚BITA�#BET 1010‚BNE�REWIND 1020�STOP�LDAA�#$FF 1030�STORE�STAA�PIAAD 1040‚RTS 1050�* 1060�* 1070�WRFWD�LDAA�#FWDWCD 1080‚STAA�PIAAD 1090‚JSR�DLY1 1100‚JSR�DLY1 1110‚RTS 1120�* 1130�RDFWD�LDAA�#FWD 1140‚BSR�STORE 1150‚JSR�DLY250 1160‚JSR�DLY250 1170�CLEAR�BSR�STOP�THIS�IS�TO�CLEAR�READ�LOGIC 1180‚LDAA�#FWD 1190‚BRA�STORE 1200�* 1210�* 1220�WRTBLK�LDX�BEGINP 1230‚DEX 1240‚LDAA�#$AA 1250‚BRA�WRITEB 1260�NEXTB�LDAA�0,X 1270�* 1280�WRITEB�LDAB�#$8 1290‚BRA�WB2 1300�WB1�JSR�WAIT28�WAIT�28�MUSEC 1310�WB2�RORA 1320‚PSHA 1330‚BCS�W1 1340‚BSR�WR0 1350‚BRA�WRTBEX 1360�W1�BSR�WR1 1370‚BRA�WRTBEX 1380�WRTBEX�PULA 1390‚DECB 1400‚BNE�WB1 1410‚CPX�ENDPNT 1420‚BEQ�WOUT 1430‚INX 1440‚BRA�NEXTB 1450�WOUT�JSR�WRFWD 1460‚RTS 1470�* 1480�* 1490�WR0�TST�0,X�DELAY�OF�7�MUSEC 1500‚LDAA�#$F5 1510‚BRA�CONT 1520�CONT�STAA�PIAAD 1530‚JSR�WAIT 1540‚EORA�#WDA 1550‚STAA�PIAAD 1560‚RTS 1570�* 1580�WR1�TST�0,X�DELAY�OF�7�MUSEC 1590‚LDAA�#$D5 1600‚BRA�CONT 1610�* 1620�* 1630�WAIT�JSR�WAIT14 1640‚NOP 1650‚NOP 1660‚NOP 1670‚NOP 1680‚JSR�WAIT28 1690�WAIT28�JSR�WAIT14 1700�WAIT14�RTS 1710�* 1720�* 1730�READBL�LDX�BEGINP 1740‚DEX 1750‚LDAA�#1 1760‚STAA�FIRST 1770‚JSR�DLY1 1780‚LDAA�PIAAD�CLEAR�INT�FLAG 1790‚JSR�CLEAR 1800�READ�LDAB�#8 1810�WAI1�LDAA�PIAAD+1 1820‚BPL�WAI1 1830‚LDAA�PIAAD 1840‚RORA 1850‚ROR�BYTE 1860‚DEC�B 1870‚BEQ�STOVF 1880‚BRA�WAI1 1890�* 1900�STOVF�LDAA�BYTE 1910‚TST�FIRST 1920‚BNE�CLF 1930‚INX 1940‚TST�VERF 1950‚BEQ�STO 1960‚CMPA�X 1970‚BNE�ERROR 1980�STO�STAA�X 1990‚CPX�ENDPNT 2000‚BNE�READ 2010‚CLC 2020‚RTS�BYE�BYE 2030�CLF�CLR�FIRST 2040‚BRA�READ 2050�ERROR�SEC 2060‚RTS 2070�* 2080�DLY250�PSHA 2090‚PSHB 2100‚LDAB�#250 2110�NXT�JSR�DLY1 2120‚DECB 2130‚BNE�NXT 2140‚PULB 2150‚PULA 2160‚RTS 2170�* 2180�DLY1�LDAA�#165 2190�NX�DECA 2200‚BNE�NX 2210‚RTS 2220�************************************** 2230‚END ½0’½0ž½1f½ð�W&þ½1f½0°½1f½1f½1f½1fÎ@ÿ8ÎWÿÿ8½0̽0° !Îdÿ8Îe¿ÿ8½0̽0°Îpÿ8Îpÿ8½0̽1f½0ª½1f½0ž8½ð�V&þ|8½1f½0¼Î@ÿ8ÎWÿÿ8½1$ƪ ½1f½0ª?Î.6ÿãІÿ·ãÐ9†û·ãжãÐ…@&ô†ÿ·ãÐ9†õ·ãн1s½1s9†ý�ì½1f½1f�â†ý àþ8 †ª ¦Æ ½1F6%� �$ 2Z&í¼8' ß½0°9m†õ ·ãн1ˆ ·ãÐ9m†Õ î½1½1½19þ8 †·8½1s¶ãн0ÆÆ¶ãÑ*û¶ãÐFv8Z' ï¶8}8&}8'¡&§¼8&Ô 98 Í 967Æú½1sZ&ú329†¥J&ý9¢€€00½0’½0ž½1f½ð�W&S½1f½0°½1f½1f½1f½1fÎ@ÿ8ÎWÿÿ8½0̽0° !Îdÿ8Îe¿ÿ8½0̽0°Îpÿ8Îpÿ8½0̽1f½0ª½1f½0ž8½ð�V&|8½1f½0¼Î@ÿ8ÎWÿÿ 8½1$ƪ ½1f½0ª?Î.6ÿãІÿ·ãÐ9†û·ãжãÐ…@&ô†ÿ·ãÐ9†õ·ãн1s½1s9†ý�ì½1f½1f�â†ý àþ8 †ª ¦Æ ½1F6%� �$ 2Z&í¼8' ß½0°9m†õ ·ãн1ˆ ·ãÐ9m†Õ î½1½1½19þ8 †·8½1s¶ãн0ÆÆ¶ãÑ*û¶ãÐFv8Z' ï¶8}8&}8'¡&§¼8&Ô 98 Í 967Æú½1sZ&ú329†¥J&ý9£€0010‚OPT�L,LLEN=120 0020�* 0030�************************************ 0040�* 0050�*�THIS�PROGRAM�HAS�3�MODES 0060�*�1)�WRITE�ON�TAPE�AND�VERIFY�AFTER 0070�*�2)�RAED�FROM�TAPE�AND�VERIFY�AFTER 0080�*�3)�VERIFY�FROM�TAPE�ONLY 0090�* 0100�************************************* 0110�* 0120�* 0130�PIAAD�EQU�$E3D0 0140�STP�EQU�$FF 0150�REV�EQU�$FB 0160�FWD�EQU�$FD 0170�FWDWCD�EQU�$F5 0180�* 0190�WDA�EQU�$20 0200�BET�EQU�$40 0210�* 0220�RAMBEG�EQU�$3800 0230�* 0240‚ORG�RAMBEG 0250�* 0260�VERF�RMB�1 0270�BYTE�RMB�1 0280�BEGINP�RMB�2 0290�ENDPNT�RMB�2 0300�FIRST�RMB�1 0310�* 0320‚ORG�$3000 0330�* 0340�MAIN�PSHA�ENTER�WHIT�ACC.�A�AS�MODE 0350‚JSR�INIT 0360‚CLR�VERF 0370‚JSR�REWIND 0380‚JSR�DLY250 0400‚PULA 0405‚JSR�$F015�DELETE�THIS�IN�FINAL�VERSION 0410‚CMPA�#$57 0420‚BEQ�WR 0430‚CMPA�#$56 0440‚BEQ�VF 0450‚BRA�VR 0460�WR�JSR�DLY250 0470‚JSR�WRFWD 0480‚JSR�DLY250 0490‚JSR�DLY250 0500‚JSR�DLY250 0510‚JSR�DLY250 0520‚LDX�#$4000 0530‚STX�BEGINP 0540‚LDX�#$57FF 0550‚STX�ENDPNT 0560‚JSR�WRTBLK 0570‚JSR�WRFWD 0580�*�INSERT�HERE�WRITE�ADDITIONAL�BLOCKS 0590‚JSR�DLY250 0600‚JSR�STOP 0610�VF�INC�VERF 0620‚JSR�DLY250 0630‚JSR�REWIND 0640�VR�JSR�DLY250 0650‚JSR�RDFWD 0660‚LDX�#$4000 0670‚STX�BEGINP 0680‚LDX�#$57FF 0690‚STX�ENDPNT 0700‚JSR�READBL 0710�*�INSERT�HERE�ADDITIONAL�READS 0720‚BCC�YY 0730‚LDAB�#$AA 0740�YY�JSR�DLY250 0750‚JSR�STOP 0760‚TST�VERF 0770‚BEQ�VF 0780‚JSR�DLY250 0790‚JSR�REWIND 0800‚SWI�PUT�RTS�IN�FINAL�VERSION 0810�* 0820�* 0830�INIT�LDX�#$2E36 0840‚STX�PIAAD 0850‚LDAA�#$FF 0860‚STAA�PIAAD 0870‚RTS 0880�* 0890�* 0900�REWIND�LDAA�#REV 0910‚STAA�PIAAD 0920‚LDAA�PIAAD 0930‚BITA�#BET 0940‚BNE�REWIND 0950�STOP�LDAA�#$FF 0960�STORE�STAA�PIAAD 0970‚RTS 0980�* 0990�* 1000�WRFWD�LDAA�#FWDWCD 1010‚STAA�PIAAD 1020‚JSR�DLY1 1030‚JSR�DLY1 1040‚RTS 1050�* 1060�RDFWD�LDAA�#FWD 1070‚BSR�STORE 1080‚JSR�DLY250 1090‚JSR�DLY250 1100�CLEAR�BSR�STOP�THIS�IS�TO�CLEAR�READ�LOGIC 1110‚LDAA�#FWD 1120‚BRA�STORE 1130�* 1140�* 1150�WRTBLK�LDX�BEGINP 1160‚DEX 1170‚LDAA�#$AA 1180‚BRA�WRITEB 1190�NEXTB�LDAA�0,X 1200�* 1210�WRITEB�LDAB�#$8 1220‚BRA�WB2 1230�WB1�JSR�WAIT28�WAIT�28�MUSEC 1240�WB2�RORA 1250‚PSHA 1260‚BCS�W1 1270‚BSR�WR0 1280‚BRA�WRTBEX 1290�W1�BSR�WR1 1300‚BRA�WRTBEX 1310�WRTBEX�PULA 1320‚DECB 1330‚BNE�WB1 1340‚CPX�ENDPNT 1350‚BEQ�WOUT 1360‚INX 1370‚BRA�NEXTB 1380�WOUT�JSR�WRFWD 1390‚RTS 1400�* 1410�* 1420�WR0�TST�0,X�DELAY�OF�7�MUSEC 1430‚LDAA�#$F5 1440‚BRA�CONT 1450�CONT�STAA�PIAAD 1460‚JSR�WAIT 1470‚EORA�#WDA 1480‚STAA�PIAAD 1490‚RTS 1500�* 1510�WR1�TST�0,X�DELAY�OF�7�MUSEC 1520‚LDAA�#$D5 1530‚BRA�CONT 1540�* 1550�* 1560�WAIT�JSR�WAIT14 1570‚NOP 1580‚NOP 1590‚NOP 1600‚NOP 1610‚JSR�WAIT28 1620�WAIT28�JSR�WAIT14 1630�WAIT14�RTS 1640�* 1650�* 1660�READBL�LDX�BEGINP 1670‚DEX 1680‚LDAA�#1 1690‚STAA�FIRST 1700‚JSR�DLY1 1710‚JSR�CLEAR 1720‚LDAA�PIAAD�CLEAR�INT�FLAG 1730�READ�LDAB�#8 1740�WAI1�LDAA�PIAAD+1 1750‚BPL�WAI1 1760‚LDAA�PIAAD 1770‚RORA 1780‚ROR�BYTE 1790‚DEC�B 1800‚BEQ�STOVF 1810‚BRA�WAI1 1820�* 1830�STOVF�L DAA�BYTE 1840‚TST�FIRST 1850‚BNE�CLF 1860‚INX 1870‚TST�VERF 1880‚BEQ�STO 1890‚CMPA�X 1900‚BNE�ERROR 1910�STO�STAA�X 1920‚CPX�ENDPNT 1930‚BNE�READ 1940‚CLC 1950‚RTS�BYE�BYE 1960�CLF�CLR�FIRST 1970‚BRA�READ 1980�ERROR�SEC 1990‚RTS 2000�* 2010�DLY250�PSHA 2020‚PSHB 2030‚LDAB�#250 2040�NXT�JSR�DLY1 2050‚DECB 2060‚BNE�NXT 2070‚PULB 2080‚PULA 2090‚RTS 2100�* 2110�DLY1�LDAA�#165 2120�NX�DECA 2130‚BNE�NX 2140‚RTS 2150�************************************** 2160‚END ª€`00½0w8½0ƒ½1K½ð�W'�V', 3½1K½0•½1K½1K½1K½1KÎ@ÿ8ÎWÿÿ8½0±½0•½1K½0�|8½1K½0ƒ½1K½0¡Î@ÿ8ÎWÿÿ8½1$ƪ½1K½0�}8'Ó½1K½0ƒ?Î.6ÿãІÿ·ãÐ9†û·ãжãÐ…@&ô†ÿ·ãÐ9†õ·ãн1X½1X9†ý�ì½1K½1K�â†ý àþ8 †ª ¦Æ ½1F6%� �$ 2Z&í¼8' ß½0•9m†õ ·ãн0öˆ ·ãÐ9m†Õ î½1½1½19þ8 †·8½1X¶ãн0«Æ¶ãÑ*û¶ãÐFv8Z' ï¶8}8&}8'¡&§¼8&Ô 98 Í 967Æú½1XZ&ú329†¥J&ý9«€0010‚OPT�LLEN=120 0020�* 0030�************************************ 0040�* 0050�*�THIS�PROGRAM�HAS�3�MODES 0060�*�1)�WRITE�ON�TAPE�AND�VERIFY�AFTER 0070�*�2)�RAED�FROM�TAPE�AND�VERIFY�AFTER 0080�*�3)�VERIFY�FROM�TAPE�ONLY 0090�* 0100�************************************* 0110�* 0120�* 0130�PIAAD�EQU�$E3D0 0140�STP�EQU�$FF 0150�REV�EQU�$FB 0160�FWD�EQU�$FD 0170�FWDWCD�EQU�$F5 0180�* 0190�WDA�EQU�$20 0200�BET�EQU�$40 0210�* 0220�RAMBEG�EQU�$3800 0230�* 0240‚ORG�RAMBEG 0250�* 0260�VERF�RMB�1 0270�BYTE�RMB�1 0280�BEGINP�RMB�2 0290�ENDPNT�RMB�2 0300�FIRST�RMB�1 0310�* 0320‚ORG�$3000 0330�* 0340�MAIN�PSHA�ENTER�WHIT�ACC.�A�AS�MODE 0350‚JSR�INIT 0360‚CLR�VERF 0370‚JSR�REWIND 0380‚JSR�DLY250 0390‚PULA 0400‚JSR�$F015�DELETE�THIS�IN�FINAL�VERSION 0410‚CMPA�#$57 0420‚BEQ�WR 0430‚CMPA�#$56 0440‚BEQ�VF 0450‚BRA�VR 0460�WR�JSR�DLY250 0470‚JSR�WRFWD 0480‚JSR�DLY250 0490‚JSR�DLY250 0500‚JSR�DLY250 0510‚JSR�DLY250 0520‚LDX�#$4000 0530‚STX�BEGINP 0540‚LDX�#$57FF 0550‚STX�ENDPNT 0560‚JSR�WRTBLK 0570‚JSR�WRFWD 0580�*�INSERT�HERE�WRITE�ADDITIONAL�BLOCKS 0590‚JSR�DLY250 0600‚JSR�STOP 0610�VF�INC�VERF 0620‚JSR�DLY250 0630‚JSR�REWIND 0640�VR�JSR�DLY250 0650‚JSR�RDFWD 0660‚LDX�#$4000 0670‚STX�BEGINP 0680‚LDX�#$57FF 0690‚STX�ENDPNT 0700‚JSR�READBL 0710�*�INSERT�HERE�ADDITIONAL�READS 0720‚BCC�YY 0730‚LDAB�#$AA 0740�YY�JSR�DLY250 0750‚JSR�STOP 0760‚TST�VERF 0770‚BEQ�VF 0780‚JSR�DLY250 0790‚JSR�REWIND 0800‚SWI�PUT�RTS�IN�FINAL�VERSION 0810�* 0820�* 0830�INIT�LDX�#$2E36 0840‚STX�PIAAD 0850‚LDAA�#$FF 0860‚STAA�PIAAD 0870‚RTS 0880�* 0890�*�NOW�WE�COME�REALY�TO�THE�POINT 0900�*�SO�WE�TURN�OF�THE�LISTING 0910�* 0920‚OPT�NOL 0930�* 0940�REWIND�LDAA�#REV 0950‚STAA�PIAAD 0960‚LDAA�PIAAD 0970‚BITA�#BET 0980‚BNE�REWIND 0990�STOP�LDAA�#$FF 1000�STORE�STAA�PIAAD 1010‚RTS 1020�* 1030�* 1040�WRFWD�LDAA�#FWDWCD 1050‚STAA�PIAAD 1060‚JSR�DLY1 1070‚JSR�DLY1 1080‚RTS 1090�* 1100�RDFWD�LDAA�#FWD 1110‚BSR�STORE 1120‚JSR�DLY250 1130‚JSR�DLY250 1140�CLEAR�BSR�STOP�THIS�IS�TO�CLEAR�READ�LOGIC 1150‚LDAA�#FWD 1160‚BRA�STORE 1170�* 1180�* 1190�WRTBLK�LDX�BEGINP 1200‚DEX 1210‚LDAA�#$AA 1220‚BRA�WRITEB 1230�NEXTB�LDAA�0,X 1240�* 1250�WRITEB�LDAB�#$8 1260‚BRA�WB2 1270�WB1�JSR�WAIT28�WAIT�28�MUSEC  1280�WB2�RORA 1290‚PSHA 1300‚BCS�W1 1310‚BSR�WR0 1320‚BRA�WRTBEX 1330�W1�BSR�WR1 1340‚BRA�WRTBEX 1350�WRTBEX�PULA 1360‚DECB 1370‚BNE�WB1 1380‚CPX�ENDPNT 1390‚BEQ�WOUT 1400‚INX 1410‚BRA�NEXTB 1420�WOUT�JSR�WRFWD 1430‚RTS 1440�* 1450�* 1460�WR0�TST�0,X�DELAY�OF�7�MUSEC 1470‚LDAA�#$F5 1480‚BRA�CONT 1490�CONT�STAA�PIAAD 1500‚JSR�WAIT 1510‚EORA�#WDA 1520‚STAA�PIAAD 1530‚RTS 1540�* 1550�WR1�TST�0,X�DELAY�OF�7�MUSEC 1560‚LDAA�#$D5 1570‚BRA�CONT 1580�* 1590�* 1600�WAIT�JSR�WAIT14 1610‚NOP 1620‚NOP 1630‚NOP 1640‚NOP 1650‚JSR�WAIT28 1660�WAIT28�JSR�WAIT14 1670�WAIT14�RTS 1680�* 1690�* 1700�READBL�LDX�BEGINP 1710‚DEX 1720‚LDAA�#1 1730‚STAA�FIRST 1740‚JSR�DLY1 1750‚JSR�CLEAR 1760‚LDAA�PIAAD�CLEAR�INT�FLAG 1770�READ�LDAB�#8 1780�WAI1�LDAA�PIAAD+1 1790‚BPL�WAI1 1800‚LDAA�PIAAD 1810‚RORA 1820‚ROR�BYTE 1830‚DEC�B 1840‚BEQ�STOVF 1850‚BRA�WAI1 1860�* 1870�STOVF�LDAA�BYTE 1880‚TST�FIRST 1890‚BNE�CLF 1900‚INX 1910‚TST�VERF 1920‚BEQ�STO 1930‚CMPA�X 1940‚BNE�ERROR 1950�STO�STAA�X 1960‚CPX�ENDPNT 1970‚BNE�READ 1980‚CLC 1990‚RTS�BYE�BYE 2000�CLF�CLR�FIRST 2010‚BRA�READ 2020�ERROR�SEC 2030‚RTS 2040�* 2050‚OPT�L 2060�* 2070�*�A�LITTLE�BIT�LEFT�FOR�THE�PRINTER 2080�*�TO�KEEP�IT�AWAKE 2090�* 2100�DLY250�PSHA 2110‚PSHB 2120‚LDAB�#250 2130�NXT�JSR�DLY1 2140‚DECB 2150‚BNE�NXT 2160‚PULB 2170‚PULA 2180‚RTS 2190�* 2200�DLY1�LDAA�#165 2210�NX�DECA 2220‚BNE�NX 2230‚RTS 2240�************************************** 2250‚END 72 S11B02A07FFF7FFF7FFF7FFF7FFF7FFF7FFF00000000000000000000D0 S11B02B800000000000000000000000000000000388000000000000072 S11B02D00007F507F507F57FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FAF S11B02E8FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F12 S11B0300FF7FFF7FF ³€"0010‚OPT�LLEN=120 0020�* 0030�************************************ 0040�* 0050�*�THIS�PROGRAM�HAS�3�MODES 0060�*�1)�WRITE�ON�TAPE�AND�VERIFY� 0070�*�2)�READ�FROM�TAPE�AND�VERIFY� 0080�*�3)�VERIFY�FROM�TAPE�ONLY 0090�* 0100�************************************* 0110�* 0120�* 0130�PIAAD�EQU�$E3D0 0140�STP�EQU�$FF 0150�REV�EQU�$FB 0160�FWD�EQU�$FD 0170�FWDWCD�EQU�$F5 0180�* 0190�WDA�EQU�$20 0200�BET�EQU�$40 0210�* 0220�RAMBEG�EQU�$E5C2 0230�ERRLOG�EQU�$269C 0240�* 0250‚ORG�RAMBEG 0260�* 0270�VERF�RMB�1 0280�BYTE�RMB�1 0290�BEGINP�RMB�2 0300�ENDPNT�RMB�2 0310�FIRST�RMB�1 0320�CHKS1�RMB�1 0330�CHKS2�RMB�1 0340�CHKSR1�RMB�1 0350�CHKSR2�RMB�1 0360�* 0370‚ORG�$2B00 0380�* 0390�W�JSR�INIT 0400‚BRA�WR 0410�V�JSR�INIT 0420‚BRA�VF 0430�R�JSR�INIT 0440‚BRA�RD 0450�* 0460�WR�JSR�DLY250 0470‚JSR�WRFWD 0480‚JSR�DLY250 0490‚JSR�DLY250 0500‚JSR�DLY250 0510‚JSR�DLY250 0520‚JSR�CHKSUM 0530‚LDX�#$4000 0540‚STX�BEGINP 0550‚LDX�#$57FF 0560‚STX�ENDPNT 0570‚JSR�WRTBLK 0580‚LDX�#$E400 0590‚STX�BEGINP 0600‚LDX�#$E5BF 0610‚STX�ENDPNT 0620‚JSR�WRTBLK 0630‚LDX�#CHKS1 0640‚STX�BEGINP 0650‚LDX�#CHKS2 0660‚STX�ENDPNT 0670‚JSR�WRTBLK 0680�*�INSERT�HERE�WRITE�ADDITIONAL�BLOCKS 0690‚JSR�DLY250 0700‚JSR�STOP 0710�VF1�JSR�DLY250 0720‚JSR�REWIND 0730�VF�INC�VERF 0740�RD�JSR�DLY250 0750‚JSR�RDFWD 0760‚LDX�#$4000 0770‚STX�BEGINP 0780‚LDX�#$57FF 0790‚STX�ENDPNT 0800‚JSR�READBL 0810‚BCS�YY 0820‚LDX�#$E400 0830‚STX�BEGINP 0840‚L DX�#$E5BF 0850‚STX�ENDPNT 0860‚JSR�READBL 0870‚BCS�YY 0880‚TST�VERF 0890‚BNE�ZZ 0900‚LDX�#CHKSR1 0910‚STX�BEGINP 0920‚LDX�#CHKSR2 0930‚STX�ENDPNT 0940‚JSR�READBL 0950‚BCS�YY 0960�ZZ�JSR�DLY250 0970‚JSR�STOP 0980‚TST�VERF 0990‚BEQ�CHECK 1000‚JSR�DLY250 1010‚JSR�REWIND 1020‚RTS 1030�* 1040�YY�JSR�REWIND 1050‚JMP�ERRLOG 1060�* 1070�CHECK�JSR�CHKSUM 1080‚JSR�CMPR 1090‚BRA�VF1 1100�* 1110�INIT�JSR�INIT1 1120‚CLR�VERF 1130‚JSR�REWIND 1140‚JSR�DLY250 1150‚RTS 1160�* 1170�INIT1�LDX�#$2E36 1180‚STX�PIAAD 1190‚LDAA�#$FF 1200‚STAA�PIAAD 1210‚RTS 1220�* 1230�*�NOW�WE�COME�REALY�TO�THE�POINT 1240�*�SO�WE�TURN�OF�THE�LISTING 1250�* 1260‚OPT�NOL 1270�* 1280�REWIND�LDAA�#REV 1290‚STAA�PIAAD 1300‚LDAA�PIAAD 1310‚BITA�#BET 1320‚BNE�REWIND 1330�STOP�LDAA�#$FF 1340�STORE�STAA�PIAAD 1350‚RTS 1360�* 1370�* 1380�WRFWD�LDAA�#FWDWCD 1390‚STAA�PIAAD 1400‚JSR�DLY1 1410‚JSR�DLY1 1420‚RTS 1430�* 1440�RDFWD�LDAA�#FWD 1450‚BSR�STORE 1460‚JSR�DLY250 1470‚JSR�DLY250 1480�CLEAR�BSR�STOP�THIS�IS�TO�CLEAR�READ�LOGIC 1490‚LDAA�#FWD 1500‚BRA�STORE 1510�* 1520�* 1530�WRTBLK�LDX�BEGINP 1540‚DEX 1550‚LDAA�#$AA 1560‚BRA�WRITEB 1570�NEXTB�LDAA�0,X 1580�* 1590�WRITEB�LDAB�#$8 1600‚BRA�WB2 1610�WB1�JSR�WAIT28�WAIT�28�MUSEC 1620�WB2�RORA 1630‚PSHA 1640‚BCS�W1 1650‚BSR�WR0 1660‚BRA�WRTBEX 1670�W1�BSR�WR1 1680‚BRA�WRTBEX 1690�WRTBEX�PULA 1700‚DECB 1710‚BNE�WB1 1720‚CPX�ENDPNT 1730‚BEQ�WOUT 1740‚INX 1750‚BRA�NEXTB 1760�WOUT�JSR�WRFWD 1770‚RTS 1780�* 1790�* 1800�WR0�TST�0,X�DELAY�OF�7�MUSEC 1810‚LDAA�#$F5 1820‚BRA�CONT 1830�CONT�STAA�PIAAD 1840‚JSR�WAIT 1850‚EORA�#WDA 1860‚STAA�PIAAD 1870‚RTS 1880�* 1890�WR1�TST�0,X�DELAY�OF�7�MUSEC 1900‚LDAA�#$D5 1910‚BRA�CONT 1920�* 1930�* 1940�WAIT�JSR�WAIT14 1950‚NOP 1960‚NOP 1970‚NOP 1980‚NOP 1990‚JSR�WAIT28 2000�WAIT28�JSR�WAIT14 2010�WAIT14�RTS 2020�* 2030�* 2040�READBL�LDX�BEGINP 2050‚DEX 2060‚LDAA�#1 2070‚STAA�FIRST 2080‚JSR�DLY1 2090‚JSR�CLEAR 2100‚LDAA�PIAAD�CLEAR�INT�FLAG 2110�READ�LDAB�#8 2120�WAI1�LDAA�PIAAD+1 2130‚BPL�WAI1 2140‚LDAA�PIAAD 2150‚RORA 2160‚ROR�BYTE 2170‚DEC�B 2180‚BEQ�STOVF 2190‚BRA�WAI1 2200�* 2210�STOVF�LDAA�BYTE 2220‚TST�FIRST 2230‚BNE�CLF 2240‚INX 2250‚TST�VERF 2260‚BEQ�STO 2270‚CMPA�X 2280‚BNE�ERROR 2290�STO�STAA�X 2300‚CPX�ENDPNT 2310‚BNE�READ 2320‚CLC 2330‚RTS�BYE�BYE 2340�CLF�CLR�FIRST 2350‚BRA�READ 2360�ERROR�SEC 2370‚RTS 2380�* 2390‚OPT�L 2400�* 2410�*�A�LITTLE�BIT�LEFT�FOR�THE�PRINTER 2420�*�TO�KEEP�IT�AWAKE 2430�* 2440�DLY250�PSHA 2450‚PSHB 2460‚LDAB�#250 2470�NXT�JSR�DLY1 2480‚DECB 2490‚BNE�NXT 2500‚PULB 2510‚PULA 2520‚RTS 2530�* 2540�DLY1�LDAA�#165 2550�NX�DECA 2560‚BNE�NX 2570‚RTS 2580�*********** 2590�* 2600�CHKSUM�LDX�#$4000 2610‚CLRA 2620�NXCHK1�ADDA�0,X 2630‚INX 2640‚CPX�#$5800 2650‚BNE�NXCHK1 2660‚STAA�CHKS1 2670‚LDX�#$E400 2680‚CLRA 2690�NXCHK2�ADDA�0,X 2700‚INX 2710‚CPX�#$E5C0 2720‚BNE�NXCHK2 2730‚STAA�CHKS2 2740‚RTS 2750�* 2760�***** 2770�* 2780�CMPR�LDX�CHKS1 2790‚CPX�CHKSR1 2800‚BNE�ERRCHK 2810‚RTS 2820�ERRCHK�LDX�#$ABCD 2830‚JMP�YY 2840�* 2850�************************************** 2860‚END  ¼€"0010‚OPT�LLEN=120 0020�* 0030�************************************ 0040�* 0050�*�THIS�PROGRAM�HAS�3�MODES 0060�*�1)�WRITE�ON�TAP E�AND�VERIFY� 0070�*�2)�READ�FROM�TAPE�AND�VERIFY� 0080�*�3)�VERIFY�FROM�TAPE�ONLY 0090�* 0100�************************************* 0110�* 0120�* 0130�PIAAD�EQU�$E3D0 0140�STP�EQU�$FF 0150�REV�EQU�$FB 0160�FWD�EQU�$FD 0170�FWDWCD�EQU�$F5 0180�* 0190�WDA�EQU�$20 0200�BET�EQU�$40 0210�* 0220�RAMBEG�EQU�$E5C2 0230�ERRLOG�EQU�$269C 0240�* 0250‚ORG�RAMBEG 0260�* 0270�VERF�RMB�1 0280�BYTE�RMB�1 0290�BEGINP�RMB�2 0300�ENDPNT�RMB�2 0310�FIRST�RMB�1 0320�CHKS1�RMB�1 0330�CHKS2�RMB�1 0340�CHKSR1�RMB�1 0350�CHKSR2�RMB�1 0360�* 0370‚ORG�$2B00 0380�* 0390�W�JSR�INIT 0400‚BRA�WR 0410�V�JSR�INIT 0420‚BRA�VF 0430�R�JSR�INIT 0440‚BRA�RD 0450�* 0460�WR�JSR�DLY250 0470‚JSR�WRFWD 0480‚JSR�DLY250 0490‚JSR�DLY250 0500‚JSR�DLY250 0510‚JSR�DLY250 0520‚JSR�CHKSUM 0530‚LDX�#$4000 0540‚STX�BEGINP 0550‚LDX�#$57FF 0560‚STX�ENDPNT 0570‚JSR�WRTBLK 0580‚LDX�#$E400 0590‚STX�BEGINP 0600‚LDX�#$E5BF 0610‚STX�ENDPNT 0620‚JSR�WRTBLK 0630‚LDX�#CHKS1 0640‚STX�BEGINP 0650‚LDX�#CHKS2 0660‚STX�ENDPNT 0670‚JSR�WRTBLK 0680�*�INSERT�HERE�WRITE�ADDITIONAL�BLOCKS 0690‚JSR�DLY250 0700‚JSR�STOP 0710�VF1�JSR�DLY250 0720‚JSR�REWIND 0730�VF�INC�VERF 0740�RD�JSR�DLY250 0750‚JSR�RDFWD 0760‚LDX�#$4000 0770‚STX�BEGINP 0780‚LDX�#$57FF 0790‚STX�ENDPNT 0800‚JSR�READBL 0810‚BCS�YY 0820‚LDX�#$E400 0830‚STX�BEGINP 0840‚LDX�#$E5BF 0850‚STX�ENDPNT 0860‚JSR�READBL 0870‚BCS�YY 0880‚TST�VERF 0890‚BNE�ZZ 0900‚LDX�#CHKSR1 0910‚STX�BEGINP 0920‚LDX�#CHKSR2 0930‚STX�ENDPNT 0940‚JSR�READBL 0950‚BCS�YY 0960�ZZ�JSR�DLY250 0970‚JSR�STOP 0980‚TST�VERF 0990‚BEQ�CHECK 1000‚JSR�DLY250 1010‚JSR�REWIND 1020‚RTS 1030�* 1040�YY�JSR�REWIND 1050‚JMP�ERRLOG 1060�* 1070�CHECK�JSR�CHKSUM 1080‚JSR�CMPR 1090‚BRA�VF1 1100�* 1110�INIT�JSR�INIT1 1120‚CLR�VERF 1130‚JSR�REWIND 1140‚JSR�DLY250 1150‚RTS 1160�* 1170�INIT1�LDAA�#4 1180‚STAA�PIAAD+1 1190‚LDAA�#$FF 1200‚STAA�PIAAD 1210‚CLR�PIAAD+1 1220‚LDX�#$2E36 1230‚STX�PIAAD 1240‚RTS 1250�* 1260�*�NOW�WE�COME�REALY�TO�THE�POINT 1270�*�SO�WE�TURN�OF�THE�LISTING 1280�* 1290‚OPT�NOL 1300�* 1310�REWIND�LDAA�#REV 1320‚STAA�PIAAD 1330‚LDAA�PIAAD 1340‚BITA�#BET 1350‚BNE�REWIND 1360�STOP�LDAA�#$FF 1370�STORE�STAA�PIAAD 1380‚RTS 1390�* 1400�* 1410�WRFWD�LDAA�#FWDWCD 1420‚STAA�PIAAD 1430‚JSR�DLY1 1440‚JSR�DLY1 1450‚RTS 1460�* 1470�RDFWD�LDAA�#FWD 1480‚BSR�STORE 1490‚JSR�DLY250 1500‚JSR�DLY250 1510�CLEAR�BSR�STOP�THIS�IS�TO�CLEAR�READ�LOGIC 1520‚LDAA�#FWD 1530‚BRA�STORE 1540�* 1550�* 1560�WRTBLK�LDX�BEGINP 1570‚DEX 1580‚LDAA�#$AA 1590‚BRA�WRITEB 1600�NEXTB�LDAA�0,X 1610�* 1620�WRITEB�LDAB�#$8 1630‚BRA�WB2 1640�WB1�JSR�WAIT28�WAIT�28�MUSEC 1650�WB2�RORA 1660‚PSHA 1670‚BCS�W1 1680‚BSR�WR0 1690‚BRA�WRTBEX 1700�W1�BSR�WR1 1710‚BRA�WRTBEX 1720�WRTBEX�PULA 1730‚DECB 1740‚BNE�WB1 1750‚CPX�ENDPNT 1760‚BEQ�WOUT 1770‚INX 1780‚BRA�NEXTB 1790�WOUT�JSR�WRFWD 1800‚RTS 1810�* 1820�* 1830�WR0�TST�0,X�DELAY�OF�7�MUSEC 1840‚LDAA�#$F5 1850‚BRA�CONT 1860�CONT�STAA�PIAAD 1870‚JSR�WAIT 1880‚EORA�#WDA 1890‚STAA�PIAAD 1900‚RTS 1910�* 1920�WR1�TST�0,X�DELAY�OF�7�MUSEC 1930‚LDAA�#$D5 1940‚BRA�CONT 1950�* 1960�* 1970�WAIT�JSR�WAIT14 1980‚NOP 1990‚NOP 2000‚NOP 2010‚NOP 2020‚JSR�WAIT28 2030�WAIT28�JSR�WAIT14 2040�WAIT14�RTS 2050�* 2060�* 2070�READBL�LDX�BEGINP 2080‚DEX 2090‚LDAA�#1 2100‚STAA�FIRST 2110‚JSR�DLY1 2120‚JSR�CLEAR 2130‚LDAA�PIAAD�CLEAR�INT�FLAG 2140�READ�LDAB�#8 2150�WAI1�LDAA�PIAAD+1 2160‚BPL�WAI1 2170‚LDAA�PIAAD 2180‚RORA 2190‚ROR�BYTE 2200 ‚DEC�B 2210‚BEQ�STOVF 2220‚BRA�WAI1 2230�* 2240�STOVF�LDAA�BYTE 2250‚TST�FIRST 2260‚BNE�CLF 2270‚INX 2280‚TST�VERF 2290‚BEQ�STO 2300‚CMPA�X 2310‚BNE�ERROR 2320�STO�STAA�X 2330‚CPX�ENDPNT 2340‚BNE�READ 2350‚CLC 2360‚RTS�BYE�BYE 2370�CLF�CLR�FIRST 2380‚BRA�READ 2390�ERROR�SEC 2400‚RTS 2410�* 2420‚OPT�L 2430�* 2440�*�A�LITTLE�BIT�LEFT�FOR�THE�PRINTER 2450�*�TO�KEEP�IT�AWAKE 2460�* 2470�DLY250�PSHA 2480‚PSHB 2490‚LDAB�#250 2500�NXT�JSR�DLY1 2510‚DECB 2520‚BNE�NXT 2530‚PULB 2540‚PULA 2550‚RTS 2560�* 2570�DLY1�LDAA�#165 2580�NX�DECA 2590‚BNE�NX 2600‚RTS 2610�*********** 2620�* 2630�CHKSUM�LDX�#$4000 2640‚CLRA 2650�NXCHK1�ADDA�0,X 2660‚INX 2670‚CPX�#$5800 2680‚BNE�NXCHK1 2690‚STAA�CHKS1 2700‚LDX�#$E400 2710‚CLRA 2720�NXCHK2�ADDA�0,X 2730‚INX 2740‚CPX�#$E5C0 2750‚BNE�NXCHK2 2760‚STAA�CHKS2 2770‚RTS 2780�* 2790�***** 2800�* 2810�CMPR�LDX�CHKS1 2820‚CPX�CHKSR1 2830‚BNE�ERRCHK 2840‚RTS 2850�ERRCHK�LDX�#$ABCD 2860‚JMP�YY 2870�* 2880�************************************** 2890‚END  Å€ 0010‚OPT�LLEN=120 0020�* 0030�************************************ 0040�* 0050�*�THIS�PROGRAM�HAS�3�MODES 0060�*�1)�WRITE�ON�TAPE�AND�VERIFY� 0070�*�2)�READ�FROM�TAPE�AND�VERIFY� 0080�*�3)�VERIFY�FROM�TAPE�ONLY 0090�* 0100�************************************* 0110�* 0120�* 0130�PIAAD�EQU�$E3D0 0140�STP�EQU�$FF 0150�REV�EQU�$FB 0160�FWD�EQU�$FD 0170�FWDWCD�EQU�$F5 0180�* 0190�WDA�EQU�$20 0200�BET�EQU�$40 0210�* 0220�RAMBEG�EQU�$E5C2 0230�ERRLOG�EQU�$269C 0240�* 0250‚ORG�RAMBEG 0260�* 0270�VERF�RMB�1 0280�BYTE�RMB�1 0290�ENDPNT�RMB�2 0300�FIRST�RMB�1 0310�CHKS1�RMB�1 0320�CHKS2�RMB�1 0330�CHKSR1�RMB�1 0340�CHKSR2�RMB�1 0350�* 0360‚ORG�$2B00 0370�* 0380�W�BSR�INIT 0390‚BRA�WR 0400�V�BSR�INIT 0410‚BRA�VF 0420�R�BSR�INIT 0430‚BRA�RD 0440�* 0450�INIT�LDAA�#$4 0460‚STAA�PIAAD+1 0470‚LDAA�#$FF 0480‚STAA�PIAAD 0490‚CLR�PIAAD+1 0500‚LDX�#$2E06 0510‚STX�PIAAD 0520‚CLR�VERF 0530‚JSR�REWIND 0540‚BSR�DLY250 0550‚RTS 0560�* 0570�DLY1�PSHA 0580‚LDAA�#164 0590�NX�DECA 0600‚BNE�NX 0610‚PULA 0620‚RTS 0630�* 0640�DLY250�PSHB 0650‚LDAB�#250 0660�NXT�BSR�DLY1 0670‚DECB 0680‚BNE�NXT 0690‚PULB 0700‚RTS 0710�* 0720�WR�BSR�DLY250 0730‚JSR�WRFWD 0740‚BSR�DLY250 0750‚BSR�DLY250 0760‚BSR�DLY250 0770‚BSR�DLY250 0780‚JSR�CHKSUM 0790‚LDX�#$57FF 0800‚STX�ENDPNT 0810‚LDX�#$4000 0820‚JSR�WRTBLK 0830‚LDX�#$E5BF 0840‚STX�ENDPNT 0850‚LDX�#$E400 0860‚JSR�WRTBLK 0870‚LDX�#CHKS2 0880‚STX�ENDPNT 0890‚LDX�#CHKS1 0900‚JSR�WRTBLK 0910‚LDX�#$E5BF 0920‚STX�ENDPNT 0930‚LDX�#$E400 0940‚JSR�WRTBLK 0950�*�INSERT�HERE�WRITE�ADDITIONAL�BLOCKS 0960‚BSR�DLY250 0970‚JSR�STOP 0980�VF1�BSR�DLY250 0990‚BSR�REWIND 1000�VF�INC�VERF 1010�RD�BSR�DLY250 1020‚JSR�RDFWD 1030‚LDX�#$57FF 1040‚STX�ENDPNT 1050‚LDX�#$4000 1060‚JSR�READBL 1070‚BCS�YY 1080‚LDX�#$E5BF 1090‚STX�ENDPNT 1100‚LDX�#$E400 1110‚JSR�READBL 1120‚BCS�YY 1130‚TST�VERF 1140‚BNE�ZZ 1150‚LDX�#CHKSR2 1160‚STX�ENDPNT 1170‚LDX�#CHKSR1 1180‚JSR�READBL 1190‚BCS�YY 1200�ZZ�JSR�DLY250 1210‚BSR�STOP 1220‚TST�VERF 1230‚BEQ�CHECK 1240‚JSR�DLY250 1250‚BSR�REWIND 1260‚RTS 1270�* 1280�YY�BSR�REWIND 1290‚JMP�ERRLOG 1300�* 1310�CHECK�BSR�CHKSUM 1320‚BSR�CMPR 1330‚BRA�VF1 1340�* 1350�REWIND�LDAA�#REV 1360‚STAA�PIAAD 1370‚LDAA�PIAAD 1380‚BITA�#BET 1390‚BNE� REWIND 1400�STOP�LDAA�#$FF 1410�STORE�STAA�PIAAD 1420‚RTS 1430�* 1440�* 1450�WRFWD�LDAA�#FWDWCD 1460‚STAA�PIAAD 1470‚JSR�DLY1 1480‚JSR�DLY1 1490‚RTS 1500�* 1510�RDFWD�LDAA�#FWD 1520‚BSR�STORE 1530‚JSR�DLY250 1540‚JSR�DLY250 1550�CLEAR�BSR�STOP�THIS�IS�TO�CLEAR�READ�LOGIC 1560‚LDAA�#FWD 1570‚BRA�STORE 1580�* 1590�* 1600�CHKSUM�LDX�#$4000 1610‚CLRA 1620�NXCHK1�ADDA�0,X 1630‚INX 1640‚CPX�#$5800 1650‚BNE�NXCHK1 1660‚STAA�CHKS1 1670‚LDX�#$E400 1680‚CLRA 1690�NXCHK2�ADDA�0,X 1700‚INX 1710‚CPX�#$E5C0 1720‚BNE�NXCHK2 1730‚STAA�CHKS2 1740‚RTS 1750�* 1760�***** 1770�* 1780�CMPR�LDX�CHKS1 1790‚CPX�CHKSR1 1800‚BNE�ERRCHK 1810‚RTS 1820�ERRCHK�LDX�#$ABCD 1830‚BRA�JMPYY 1840�* 1850�MISSED�LDX�#$EFFE 1860�JMPYY�JMP�YY 1870�* 1880�WRTBLK�DEX 1890‚LDAA�#$AA 1900‚BRA�WRITEB 1910�NEXTB�LDAA�0,X 1920�* 1930�WRITEB�LDAB�#$8 1940‚BRA�WB2 1950�WB1�JSR�WAIT28�WAIT�28�MUSEC 1960�WB2�RORA 1970‚PSHA 1980‚BCS�W1 1990‚BSR�WR0 2000‚BRA�WRTBEX 2010�W1�BSR�WR1 2020‚BRA�WRTBEX 2030�WRTBEX�PULA 2040‚DECB 2050‚BNE�WB1 2060‚CPX�ENDPNT 2070‚BEQ�WOUT 2080‚INX 2090‚BRA�NEXTB 2100�WOUT�JSR�WRFWD 2110‚RTS 2120�* 2130�* 2140�WR0�TST�0,X�DELAY�OF�7�MUSEC 2150‚LDAA�#$F5 2160‚BRA�CONT 2170�CONT�STAA�PIAAD 2180‚JSR�WAIT 2190‚EORA�#WDA 2200‚STAA�PIAAD 2210‚RTS 2220�* 2230�WR1�TST�0,X�DELAY�OF�7�MUSEC 2240‚LDAA�#$D5 2250‚BRA�CONT 2260�* 2270�* 2280�WAIT�JSR�WAIT14 2290‚NOP 2300‚NOP 2310‚NOP 2320‚NOP 2330‚JSR�WAIT28 2340�WAIT28�JSR�WAIT14 2350�WAIT14�RTS 2360�* 2370�* 2380�READBL�DEX 2390‚LDAA�#1 2400‚STAA�FIRST 2410‚JSR�DLY1 2420‚JSR�CLEAR 2430‚LDAA�PIAAD�CLEAR�INT�FLAG 2440�READ�LDAB�#8 2450�WAI1�LDAA�PIAAD+1 2460‚ANDA�#$C0 2470‚BEQ�WAI1 2480‚BMI�READBT 2490‚BRA�MISSED 2500�READBT�LDAA�PIAAD 2510‚RORA 2520‚ROR�BYTE 2530‚DEC�B 2540‚BEQ�STOVF 2550‚BRA�WAI1 2560�* 2570�STOVF�LDAA�BYTE 2580‚TST�FIRST 2590‚BNE�CLF 2600‚INX 2610‚TST�VERF 2620‚BEQ�STO 2630‚CMPA�X 2640‚BNE�ERROR 2650�STO�STAA�X 2660‚CPX�ENDPNT 2670‚BNE�READ 2680‚CLC 2690‚RTS�BYE�BYE 2700�CLF�CLR�FIRST 2710‚BRA�READ 2720�ERROR�SEC 2730‚RTS 2740�* 2750�************************************** 2760‚END �ADD�RESULT�OF�MULTIPLICATION�TO�THE�TABLE�VALUE 2400‚ADCA�2,X 2410‚RTS 2420‚PAGE 2430�TEMPTB�EQU�* 2440�*�THE�TABLE�HAS�THE�FOLLOWING�ENTRIES: 2450�*�1.�TEMPERATURE�IN�DEGREES�CELCIUS 2460�*�2.�BITCOUNT�FOR�THAT�TEMPERATURE 2470�*�3.�INTERPOLATION�FACTOR�΀0010‚OPT�LLEN=120 0020�* 0030�************************************ 0040�* 0050�*�THIS�PROGRAM�HAS�3�MODES 0060�*�1)�WRITE�ON�TAPE�AND�VERIFY� 0070�*�2)�READ�FROM�TAPE�AND�VERIFY� 0080�*�3)�VERIFY�FROM�TAPE�ONLY 0090�* 0100�************************************* 0110�* 0120�* 0130�PIAAD�EQU�$E3D0 0140�STP�EQU�$FF 0150�REV�EQU�$FB 0160�FWD�EQU�$FD 0170�FWDWCD�EQU�$F5 0180�* 0190�WDA�EQU�$20 0200�BET�EQU�$40 0210�* 0220�RAMBEG�EQU�$E5C2 0230�ERRLOG�EQU�$2615 0240�* 0250‚ORG�RAMBEG 0260�* 0270�VERF�RMB�1 0280�BYTE�RMB�1 0290�ENDPNT�RMB�2 0300�FIRST�RMB�1 0310�* 0320�B1�EQU�$4000 0330�E1�EQU�$57FF 0340�B2�EQU�$E400 0350�E2�EQU�$E5BF 0360�CHKS1�EQU�E2+1 0370�CHKS2�EQU�E2+2 0380�* 0390‚ORG�$2B00 0400�* 0410�W�BSR�INIT 0420‚BRA�WR 0430�V�BSR�INIT 0440‚BRA�VF 0450�R�BSR�INIT 0460‚BRA�RD 0470�* 0480�INIT�LDAA�#$4 0490‚STAA�PIAAD+1 0500‚LDAA�#$FF 0510‚STAA�PIAAD 0520‚CLR�PIAAD+1 0530‚LDX�#$2E06  0540‚STX�PIAAD 0550‚CLR�VERF 0560‚JSR�REWIND 0570‚BRA�DLY375 0580�* 0590�DLY1P5�CLRA 0600�NX�DECA 0610‚BNE�NX 0620‚RTS 0630�* 0640�DLY375�CLRB 0650�NXT�BSR�DLY1P5 0660‚DECB 0670‚BNE�NXT 0680‚RTS 0690�* 0700�WR�JSR�WRFWD 0710‚BSR�DLY375 0720‚BSR�DLY375 0730‚BSR�DLY375 0740‚LDX�#E1 0750‚STX�ENDPNT 0760‚LDX�#B1 0770‚JSR�WRTBLK 0780‚LDX�#E2+2 0790‚STX�ENDPNT 0800‚BSR�CHKSUM 0810‚LDX�#B2 0820‚JSR�WRTBLK 0830‚LDX�#B2 0840‚JSR�WRTBLK 0850‚BSR�DLY375 0860�VF1�BSR�REWIND 0870�VF�INC�VERF 0880‚BSR�CHKSUM 0890�RD�BSR�RDFWD 0900‚LDX�#E1 0910‚STX�ENDPNT 0920‚LDX�#B1 0930‚JSR�READBL 0940‚BCS�YY 0950‚LDX�#E2+2 0960‚STX�ENDPNT 0970‚LDX�#B2 0980‚JSR�READBL 0990‚BCS�YY 1000‚TST�VERF 1010‚BNE�REWIND 1020�* 1030�CHECK�LDX�CHKS1 1040‚STX�ENDPNT 1050‚BSR�CHKSUM 1060‚LDX�ENDPNT 1070‚CPX�CHKS1 1080‚BEQ�VF1 1090�ERRCHK�LDX�#$ABCD 1100‚BRA�YY 1110�* 1120�YY�BSR�REWIND 1130‚JMP�ERRLOG 1140‚NOP 1150‚NOP 1160�* 1170�REWIND�LDAA�#REV 1180‚BSR�STORE 1190‚LDAA�PIAAD 1200‚BITA�#BET 1210‚BNE�REWIND 1220�STOP�LDAA�#$FF 1230�STORE�STAA�PIAAD 1240‚RTS 1250�* 1260�* 1270�WRFWD�LDAA�#FWDWCD 1280‚BSR�STORE 1290‚BSR�DLYYY 1300�DLYYY�JMP�DLY1P5ƒBECAUSE�RTS�EXPECTED 1310�* 1320�RDFWD�LDAA�#FWD 1330‚BSR�STORE 1340‚JSR�DLY375 1350�CLEAR�BSR�STOP�THIS�IS�TO�CLEAR�READ�LOGIC 1360‚LDAA�#FWD 1370‚BRA�STORE 1380�* 1390�* 1400�CHKSUM�LDX�#B1 1410‚CLRA 1420�NXCHK1�ADDA�0,X 1430‚INX 1440‚CPX�#E1+1 1450‚BNE�NXCHK1 1460‚STAA�CHKS1 1470‚LDX�#B2 1480‚CLRA 1490�NXCHK2�ADDA�0,X 1500‚INX 1510‚CPX�#E2+1 1520‚BNE�NXCHK2 1530‚STAA�CHKS2 1540‚RTS 1550�* 1560�* 1570�MISSED�LDX�#$EFFE 1580‚BRA�YY 1590�* 1600�WRTBLK�DEX 1610‚LDAA�#$AA 1620‚BRA�WRITEB 1630�NEXTB�LDAA�0,X 1640�* 1650�WRITEB�LDAB�#$8 1660‚BRA�WB2 1670�WB1�BSR�WAIT28�WAIT�28�MUSEC 1680�WB2�RORA 1690‚PSHA 1700‚BCS�W1 1710‚BSR�WR0 1720‚BRA�WRTBEX 1730�W1�BSR�WR1 1740‚BRA�WRTBEX 1750�WRTBEX�PULA 1760‚DECB 1770‚BNE�WB1 1780‚CPX�ENDPNT 1790‚BEQ�WRFWD 1800‚INX 1810‚BRA�NEXTB 1820�* 1830�WR0�TST�0,X�DELAY�OF�7�MUSEC 1840‚LDAA�#$F5 1850‚BRA�CONT 1860�CONT�STAA�PIAAD 1870‚BSR�WAIT76 1880‚EORA�#WDA 1890‚STAA�PIAAD 1900‚RTS 1910�* 1920�WR1�TST�0,X�DELAY�OF�7�MUSEC 1930‚LDAA�#$D5 1940‚BRA�CONT 1950�* 1960�* 1970�WAIT76�BSR�WAIT13 1980‚TST�0,X�DELAY�OF�7�MUSEC 1990‚BSR�WAIT28 2000�WAIT28�BSR�WAIT13 2010‚NOP 2020�WAIT13�RTS 2030�* 2040�* 2050�READBL�BSR�DLYYY 2060‚BSR�CLEAR 2070‚DEX 2080‚LDAA�#1 2090‚STAA�FIRST 2100‚LDAA�PIAAD�CLEAR�INT�FLAG 2110�READ�LDAB�#8 2120�WAI1�LDAA�PIAAD+1 2130‚ANDA�#$C0 2140‚BEQ�WAI1 2150‚BPL�MISSED 2160�READBT�LDAA�PIAAD 2170‚RORA 2180‚ROR�BYTE 2190‚DEC�B 2200‚BNE�WAI1 2210�* 2220�STOVF�LDAA�BYTE 2230‚TST�FIRST 2240‚BNE�CLF 2250‚INX 2260‚TST�VERF 2270‚BEQ�STO 2280‚CMPA�X 2290‚BNE�ERROR 2300�STO�STAA�X 2310�CLF�CLR�FIRST 2320‚CPX�ENDPNT 2330‚BNE�READ 2340�*†CARRY�ALWAYS�RESET�BY�CLR�FIRST 2350‚RTS�BYE�BYE 2360�ERROR�SEC 2370‚RTS 2380�* 2390�************************************** 2400‚END CA�DECREMENT�TENS�DIGIT�AND 3960‚BRA�TENLP�REPEAT�UNTIL�ZERO. 3970�DOHUND�CLC�RES.�CARRY 3980‚LDAA�SAVE1�G.�HUNDREDS�AND�THOUSANDS�DIGIT 3990‚ANDA�#$0F�SAVE�ONLY�HUNDREDS�DIGIT 4000�HUNLP�BEQ�DOTHOU�GO�DO�THOUSANDS�IF�HUNDREDS�IS�ZERO 4010‚ADDB�#100�ADD�100�TO�BINARY�VALUE 4020‚BCC�HUN00 4030‚INC�BINUPR�ADD�256�TO�BIN�UPPER�VALUE 4040�HUN00�DECA�DECREMENT�HUNDREDS�DIGIT�AND 4050‚BR! A�HUNLP�REPEAT�UNTIL�ZERO 4060�DOTHOU�LDAA�SAVE1�GET�THOUSANDS�DIGIT 4070‚LSRA�MOVE�THOUSANDS�BCD�VALUE�TO 4080‚LSRA�LOWER�FOUR�BITS�OF�A. 4090‚LSRA 4100‚LSRA 4110‚STAA�SAVE1�SAVE�THOUSANDS�DIGIT 4120‚BNE�THOU00�BRANCH�IF�THOUSANDS�DIGIT�IS�ZERO 4130‚LDAA�BINUPR�GET�BINARY�UPPER�VALUE 4140‚BRA�XITBIN› 4150�THOU00�LDAA�BINUPR�GET�BINARY�UPPER�VALUE 4160�THOULP�CLC�RESET�CARRY 4170‚ADDB�#232�ADD�232�TO�BINARY�LOWER 4180‚ADCA�#$03�ADD�768�TO�BINARY�UPPER 4190‚DEC�SAVE1�DECREMENT�THOUSANDS�DIGIT 4200‚BNE�THOULP�REPEAT�UNTIL�THOUSANDS�DIGIT�ZERO 4210�XITBIN�RTS�EXIT�SUBROUTINE 4220‚SPC�3 4230�BINBCD�EQU�* 4240�* 4250�*�THIS�SUBROUTINE�WILL�CONVERT�A�16�BIT�NO. 4260�*�IN�REG�A,B�TO�A�5�DIGIT�BCD�CODED�ASCII� 4270�*�NUMBER,�WHOSE�ADDRESS�IS�IN�BUFADD�ON�ENTRY. 4280�*�ENTER�ROUTINE�WITH�MSB�IN�A�REG,�LSB�IN�B�REG. 4290�*�CHANGES�A,B,X,R0,R3 4300�* 4310‚LDX�#K10K 4320�CVDEC1�CLR�R0 4330�CVDEC2�SUBB�1,X�SUB�DECIMAL�CONSTANT 4340‚SBCA�0,X 4350‚BCS�CVDEC5�UPS! 4360‚INC�R0�CHARACTER�BEING�BUILT 4370‚BRA�CVDEC2 4380�CVDEC5�ADDB�1,X�RESTORE 4390‚ADCA�0,X 4400‚PSHB�SAVE�VALUE 4410‚STX�R3�SAVE�CONSTANT�POINTER 4420‚LDAB�R0�CHANGE�DECIMAL�CHARACTER�TO�ASCII 4430‚ADDB�#$30�AND�STORE�IT�IN�DSPBUF 4440‚LDX�BUFADD‘ 4450‚STAB�0,X 4460‚INX 4470‚STX�BUFADD 4480‚PULB�RESTORE�VALUE 4490‚LDX�R3 4500‚INX 4510‚INX 4520‚CPX�#K10K+10� 4530‚BNE�CVDEC1�BRANCH�FOR�COMPUTING�NEXT�NR 4540‚RTS 4550ˆSPC„3 4560�FP10ƒFDB„$01A0,$0 4570�K10KƒFDB„10000,1000,100,10,1 4580ˆPAGE 4590ˆEND 9½1>–�1'�4'�7-�9#�M�k½1>–o'6Þ œp&0zo&3Ö 'æ–�4&]*Ý7 T$×7�*Þ ß�<Þ߆—n3YÞ 9†—oÞ ßp� Þ 9Þ ß ÞÆ€?'ßÞ Ö–ß?.Þ?)ß9–60Æ? 29Æ6? Î!ýƃ Î ëÆ„ Î ÒÆ…?#½0$–#' z('Î Ä?5 ô?]'/l&lÿ1sþ1s¦„� #‹‹0m&jjî§þ1s� Z&Ýþ1s96†dfJ&ù2Ú€0010‚NAM�DISCAN 0020�* 0030‚OPT�REL,LLEN=120 0040�* 0050‚IDNT�SCANNING�OF�DIGITALS�INPUTS 0060�* 0070�*�THIS�PROGRAM�CHEK�THE�DIGITAL�INPUTS 0080�*�AND�TAKE�ACTIONS�INDICATED�BY�THE�WAY�OF�MASKES�IN�STEP 0090�*�ALSO�IT�SET�OR�RESET�DIGITAL�OUTPUT�ACCORDINGLY�TO�THE 0100�*�DIDO�TABLE�WHICH�IS�IN�THE�TUBE�CHARACTERIZATION�MODULE 0110�* 0120‚XREF�TAKDI 0130‚XREF�AXA,ALSEQ,ABSEQ,HLDSEQ,SRTDO,TCHAR,TIME 0140�* 0150‚XDEF�DISCAN 0160�* 0170�*�STORAGE�RESERVATION�IN�BASE 0180‚BSCT 0190�STPPTR�RMB�2�INTERNAL�STEP�POINTER 0200�POSIT�RMB�1�CURRENT�CHECKED�LOCATION 0210�MASK�RMB�1�LOCAL�MASK 0220�OFFSET�RMB�1�MASK�OFFSET 0230�SAVEX‚RMB�2�SAVE�X�HERE 0240�SAVRES�RMB�1�HERE�IS�SAVED�THE�TAKDI�RESULT 0250�* 0260�* 0270‚PSCT 0280�* 0290�DISCAN�STX�SAVEX�SAVE�X�REGISTER 0300‚PSHA 0310‚PSHB�SAVE�ACC'S 0320‚LDAA�#DIMK11�COMPUTE�THE�MASKES�OFFSET 0330‚JSR�AXA 0340‚STX�STPPTR 0350‚CLR�OFFSET�SET�OFFSET�ON�FIRST�MASK�LOCATION 0360‚LDAA�#1 0370‚STAA�MASK�SET�THE�"ARGUMENT"�MASK�FOR�FIRST�INPUT 0380‚STAA�POSIT�SET�THE�FIRST�INPUT�TO�CHECK 0390�DISCN1�LDAB�POSIT 0400‚JSR�TAKDI�TEST�THE�INPUT 0410‚BSR�DISCN4�CHANGE�OCCURS�BRANCH�FOR�PROCESS 0420‚ASL�MASK�SHIFT�THE�MASK�FOR�NEXT�INPUT 0430‚BNE�DISCN2�IF�NO�SKIP�THE�OFFSET�UPDATE 0440‚INC�MASK�SET�MASK�TO�1 0450‚INC�OFFSET�NEXT�OFFSET 0460‚LDX�STPPTR�UPDATE�THE�MASK�POINTER 0470‚INX 0480‚STX�STPPTR 0490�DISCN2�INC�POSIT�UPDATE�POSITION 0500‚LDAA�#49�LAST�INPUT�HA" S�BEEN�PROCESSED 0510‚CMPA�POSIT�LAST�POSITION 0520‚BNE�DISCN1 0530�DISCN3�PULA 0540‚PULB�RESTORE�ACC'S 0550‚LDX�SAVEX 0560‚RTS�EXIT 0570�DISCN4�STAB�SAVRES�SAVE�THE�RESULT�FOR�FUTUR�USE 0580‚BITB�#%10000000�TEST�IF�INPUT�IS�SET 0590‚BEQ�DISCN7�NO,�NO�CHEK�FOR�ALARM,...�ETC.. 0600‚LDAA�MASK�TAKE�THE�LOCAL�MASK 0610‚LDX�STPPTR�TAKE�THE�STEP�POINTER�SETTING�ON�THE�MASK1 0620‚BITA�12,X�TEST�IF�THE�RESET�IS�EXPECTED 0630‚BEQ�DISC40�IF�NO�BIT�IS�SET�NO�ACTION 0640‚LDX�TIME�BIT�IS�SET,�TEST�IF�REMAINING�TIME�MORE�THAN�6 0650‚BNE�RSTI1�YES�RESET�TIME 0660‚LDAB�TIME+2 0670‚CMPB�#6 0680‚BLS�DISC40 0690�RSTI1�CLR�TIME�CLEAR�THE�REMAINING�TIME 0700‚CLR�TIME+1 0710‚LDAB�#6 0720‚STAB�TIME+2�MAKE�6�SECONDS�REMAINS�FOR�THE�SOFT�START�RESPECT 0730�DISC40�LDX�STPPTR 0750‚BITA�X�CHECK�WITH�MASK1 0760‚BEQ�DISCN6�IT'S�ALARM�OR�IGNORE,�BRANCH�! 0770‚BITA�6,X�CHECK�WITH�MASK2 0780‚BEQ�DISCN5�IT'S�HOLD�BRANCH 0790‚LDAB�#%01000000�SET�THE�ABORT�CODE 0800‚ADDB�POSIT 0810‚JSR�ABSEQ�SET�ABORT�VECTOR 0820‚BRA�DISCN7 0830�DISCN5�LDAB�#%01000000�SET�HOLD�CODE 0840‚ADDB�POSIT 0850‚JSR�HLDSEQ�GO�TO�HOLD 0860‚BRA�DISCN7�CONTINUE�FOR�EVENTUAL�SETTING�OF�D.O. 0870�DISCN6�BITA�6,X 0880‚BEQ�DISCN7�NO�MORE�CONTINUE�THE�PROCESS 0890‚LDAB�#%01000000�SET�THE�ALARM�CODE 0900‚ADDB�POSIT 0910‚JSR�ALSEQ�RING�THE�BELL�IT'S�AN�ALARM 0920�DISCN7�LDX�#(TCHAR+DIDOTB)�SET�THE�POINTER�AT�THE�BEGINNING�OF�LINK�TB 0930�DISCN8�LDAA�X�TAKE�THE�FIRST�INPUT 0940‚CMPA�POSIT�SAME�AS�POSITION 0950‚BEQ�DISCN9�YES�SET�OR�RESET�D.O 0960‚INX 0970‚INX 0980‚CPX�#(TCHAR+DIDOTB+16)�END�OF�TABLE 0990‚BNE�DISCN8�NO�LOOP�AGAIN 1000‚BRA�DISCNA 1010�DISCN9�LDAA�1,X�TAKE�THE�OUTPUT�CODE 1020‚ANDA�#%10000000�KEEP�ONLY�THE�FLAG 1030‚EORA�SAVRES 1040‚ANDA�#%10000000�KEEP�ONLY�THE�RESULTING�BIT�(SET�OR�RESET) 1050‚LDAB�1,X�TAKE�THE�OUTPUT�TO�HANDLE 1060‚ANDB�#%01111111�KILL�BIT�7 1070‚ABA 1080‚TAB 1090‚JSR�SRTDO�SET� 1100�DISCNA�RTS 1110‚END �SFTFLG 1360‚BRA�START2�FROM�RESTART�MAKE�DIRECTLY�STEP�0 1370�WAIRUN�LDAB�#KRST+%10000000�SET�THE�RESTART�PERMANENT 1380‚JSR�LIá€0010‚NAM�EXCEPT 0020�* 0030‚IDNT�EXCEPTION�PROCESSING 0040�* 0050‚OPT�REL,LLEN=100 0060�* 0070‚XDEF�ALSEQ,ABSEQ,HLDSEQ,NEWAPR,OLDAPR,NEWHPR,OLDHPR 0080‚XDEF�INITEX,ABMSK1 0090�* 0100�* 0110‚XREF�AXA,LIGHT,HLDFLG,ABVEC,SMTHAL,SMTHAB,SFTFLG,ACTIV,ABCNT,ABSTAT 0120�* 0130�* 0140‚DSCT 0150�* 0160�*�MASKES�RESERVATION 0170�* 0180�*�ALARM�MASKES 0190�* 0200�ALMSK1�RMB�11 0210�ALMSK2�RMB�11 0220�* 0230�*�HOLD�MASKES 0240�* 0250�HLMSK1�RMB�11 0260�HLMSK2�RMB�11 0270�* 0280�*�ABORT�MASK 0290�* 0300�ABMSK1�RMB�11 0310�* 0320�*�ALARM�POINTERS 0330�* 0340�NEWAPR�RMB�2�NEW�ALARM�MASK�POINTER 0350�OLDAPR�RMB�2�OLD�MASK�POINTER 0360�* 0370�*�HOLD�POINTERS 0380�* 0390�NEWHPR�RMB�2�NEW�HOLD�MASK�POINTER 0400�OLDHPR�RMB�2�OLD�MASK�POINTER 0410�* 0420�* 0430�SAVEX�RMB�2 0440�* 0450�NEWPTR�RMB�2�TEMPORARY�NEW�POINTER 0460�* 0470‚PSCT 0480�* 0490�HLDSEQ�PSHA�SAV�ACC�A 0500‚PSHB 0510‚STX�SAVEX 0520‚LDAA�#LFIN 0530‚BITA�PIA1DB�IF�RUN�IS�FINISHED�NO�HOLD 0540‚BNE�COMEX 0550‚LDAA�SFTFLG�IS�A�SOFT�START�RUNNING 0560‚BNE�COMEX�YES,�DON'T�ACCEPT�HOLD 0570‚LDX�NEWHPR�INIT�HOLD�SEQ. 0580‚JSR�COSEQ 0590‚JMP�COMEX 0600�* 0610�ABSEQ�PSHA�SAV�ACC�A 0620‚PSHB 0630‚STX�# SAVEX 0640‚LDAA�#LFIN 0650‚BITA�PIA1DB�IF�RUN�IS�FINISHED�NO�ABORT 0660‚BNE�COMEX 0670‚LDX�#ABMSK1�INIT�ABORT�SEQ. 0680‚JSR�COSEQ 0690‚BRA�COMEX 0700�* 0710�*�ALARM�SETTING 0720�* 0730�ALSEQ�PSHA 0740‚PSHB�SAVE�ACC'S 0750‚LDAA�#$10 0760‚ORAA�ACTIV 0770‚STAA�ACTIV 0780‚STX�SAVEX 0790‚LDX�NEWAPR�INIT�ALARM�SEQ. 0800‚BSR�COSEQ 0810�COMEX�PULB 0820‚PULA 0830‚LDX�SAVEX 0840‚RTS 0850�* 0860�*�SETTING�OF�THE�MASKES�IN�FUNCTION�OF�VECTORS 0870�* 0880�COSEQ�STX�NEWPTR 0890�ALSQ1�CMPB�#%11000000�IS�A�BOAT�ALARM 0900‚BHI�ALSQ2�YES�DON'T�DECREMENT 0910‚DECB�ADJUST�B�FOR�PHYSICAL�POSITION 0920�ALSQ2�TBA 0930‚ANDA�#%11000000�TEST�IF�A.I�ALARM 0940‚BNE�ALSQ4 0950‚CMPB�#$2�IT'S�A�SPARE�T.C'S�INPUTS 0960‚BHI�ALSQ3�NO�CONTINUE 0970‚ADDB�#9�SKIP�NORMAL�T.C'S�INPUTS 0980‚INCB�ADJUST�FOR�LOGICAL�POSITION 0990‚ORAB�#%10000000�SET�THE�T.C�CODE 1000‚BRA�ALSQ1�SET�T.C�SPARE�ALARM 1010�ALSQ3�SUBB�#3�ADJUST�FOR�SKIP�THE�T.C 1020‚LDX�NEWPTR 1030‚JSR�SETMSK�SET�THE�RIGHT�BIT 1040‚CLC 1050‚BRA�ALSQE 1060�ALSQ4�CMPA�#%01000000�IS�DIGITAL�INPUTS�ALARM 1070‚BNE�ALSQ5�NO�NEW�SEEK 1080‚LDX�NEWPTR�TAKE�THE�POINTER 1090‚LDAA�#2 1100‚JSR�AXA�SKIP�THE�A.I�MASKES 1110‚JSR�SETMSK 1120‚CLC 1130‚BRA�ALSQE 1140�ALSQ5�CMPA�#%10000000�IS�T.C�INPUTS�ALARM 1150‚BNE�ALSQ6�WRONG�ALARM 1160‚LDX�NEWPTR 1170‚LDAA�#8�SKIP�A.I�AND�D.I�MASKES 1180‚JSR�AXA 1190‚JSR�SETMSK�SET�THE�MASK 1200‚CLC 1210‚BRA�ALSQE 1220�ALSQ6�SEC 1230�ALSQE�RTS 1240�* 1250�*�SUBROUTINE�FOR�SETTING�A�BIT�IN�A�MASK�POINTED�BY�X 1260�*�THE�NUMBER�OF�THE�BIT�TO�SET�IS�IN�B 1270�SETMSK�PSHA�SAVE�A 1280‚TBA�SAVE�VALUE 1290‚ANDA�#%00111000�KEEP�ONLY�THE�BYTE�POINTER 1300‚LSRA 1310‚LSRA 1320‚LSRA 1330‚JSR�AXA�SET�THE�RIGHT�POSITION 1340‚LDAA�#%10000000�TAKE�THE�MASK�BIT 1350‚ANDB�#%00000111�KEEP�ONLY�THE�BIT�NUMBER 1360‚BEQ�STMK2�FINISHED�EXIT�NOW 1370�STMK1�LSRA�SHIFT�THE�MASK 1380‚DECB 1390‚BNE�STMK1 1400�STMK2�ORAA�X 1410‚STAA�X�NEW�MASK�IS�SET 1420‚PULA 1430‚RTS 1440�* 1450�*�ROUTINE�TO�INIT�THE�ALMASKES 1460�* 1470�INITEX�PSHA�SAVE�ACCA 1480‚PSHB�SAVE�ACCB 1490‚STX�SAVEX�SAVE�X�REG 1500‚LDAB�#10�INIT�ABORT�COUNT 1510‚STAB�ABCNT 1520‚CLR�ABVEC�INIT�ABORT�FLAG 1530‚LDAA�#$FF 1540‚STAA�HLDFLG�INIT�HOLD�FFLAG 1550‚LDX�#ALMSK1 1560‚LDAA�#63 1570�INITLP�CLR�X�CLEAR�ALL�MASK�POSITIONS 1580‚INX 1590‚DECA 1600‚BNE�INITLP 1610‚LDX�#ALMSK1�SET�THE�MASK�IN�PTR. 1620‚STX�NEWAPR 1630‚LDX�#ALMSK2 1640‚STX�OLDAPR 1650‚LDX�#HLMSK1�INIT�HOLD�MASK�PTR'S 1660‚STX�NEWHPR 1670‚LDX�#HLMSK2 1680‚STX�OLDHPR 1690‚LDX�#SMTHAL 1700‚LDAA�#8�RESET�THE�SMOOTHING�MASKES 1710�INIT0�CLR�X 1720‚INX 1730‚DECA 1740‚BNE�INIT0 1750‚LDX�#ABSTAT�RESET�ABORT,ALARM,HOLD�STATUS 1760‚LDAA�#33 1770�INIT1�CLR�X 1780‚INX 1790‚DECA 1800‚BNE�INIT1 1810‚PULB�RESTORE�REG'S 1820‚PULA 1830‚RTS 1840‚END |é) €©0010‚NAM�FPPACK�FLOATING�POINT�PACKAGE 0020‚OPT�REL,LLEN=100 0021�* 0022‚XDEF�FPADD,FPSUB,FPMUL,FPDIV,FLOAT,FIX 0023�* 0024�*�NO�MEMORY�RESERVATION�NEEDED 0026�* 0027‚PSCT 0040�******************************* 0050�* 0060�*�PROGRAM�NAME:�FIX 0070�* 0100�*‚FUNCTION:�TO�CHANGE�A�FLOATING�POINT 0110�*ƒVALUE�TO�INTEGER 0120�* 0150�*‚CALLING�SEQUENCE: 0160�* 0170�*‚JSR�FIX 0180�*‚FDB�ARG$ 1�ADDRESS�OF�ARG1 0190�*‚FDB�ARG2�ADDRESS�OF�ARG2 0200�*‚---�RETURNLOCATION 0210�* 0220�*‚WHERE: 0230�*�ARG1�=�ADDRESS�OF�FLOATING�POINT�VALUE 0240�*�BYTE�0�BIT�7�=�SIGN�OF�FRACTION 0250�*‚BIT�6-0�=�EXPONENT�(2'S�COM.) 0260�*�BYTE�1-3�=�FRACTION 0270�* 0280�*�ARG2�=�ADDRESS�OF�RETURNED�INTEGER�VALUE 0290�*�BYTE�0�=�MSB 0300�*�BYTE�1�=�LSB 0310�*‚IF�FLOATING�POINT�VALUE�GREATER�THAN�3276 0320�*�RESULTS�UNPREDICTABLE. 0330�* 0340�*�STACK�SIZE:�9BYTES 0350�* 0360�*�STACK�DESCRIPTION: 0370�*�BYTE�0�=�MULTIPLER�SIGN�(BIT7) 0380�*�1�=�MULTIPLER�(FLOATING�POINT) 0390�*�2�=�INTEGER�MSB 0400�*�3�=�INTEGER�LSB 0410�*�4�=�* 0420�*�5�=�FRACTION�(FLOATING�POINT) 0430�*�6�=�* 0440�*�7�=�RETURN�LOCATION�MSB 0450�*�8�=�"�"�LSB 0460�* 0470�****** 0480�* 0490�FIX�TSX�GET�LOC�OF�STACK�IN�X 0500‚LDX�0,X�GET�ADDR.�OF�CALLING�SEQ. 0510‚LDX�0,X�GET�ADDR.�OF�ARG1 0520‚LDAA�3,X�GET�LSB�OF�FRACTION 0530‚PSHA 0540‚LDAA�2,X 0550‚PSHA 0560‚LDAA�1,X�GET�MSB�OF�FRACTION 0570‚PSHA 0580‚CLRA�CLEAR�2�BYTE�INTEGER�VALUE 0590‚PSHA 0600‚PSHA 0610‚LDAA�0,X�GET�EXPONENT 0620‚ANDA�#$7F�AND�OUT�EXPONENT�SIGN 0630‚PSHA 0640‚LDAA�0,X�GET�EXPONENT�AGAIN�AND�SAV 0650‚PSHA�FOR�SIGN. 0660‚TSX�GET�NEW�LOC.�OF�STACK 0670�* 0680�FIX1�NOP 0690‚LDAA�1,X�CHECK�IF�MULTIPLER�LD�1 0700‚ANDA�#$40 0710‚BNE�FIX6 0720‚LDAA�1,X�GET�MULTIPLER�AND�CHECK�F0 0730‚BEQ�FIX4�ZERO. 0740‚LDAA�#4�SHIFT�LEFT�4�BITS 0750�FIX2�ASL�6,X�FLOATING�POINT�FRACTION 0760‚ROL�5,X�INTO�INTEGER�VALUE. 0770‚ROL�4,X 0780‚ROL�3,X 0790‚ROL�2,X 0800‚DECA 0810‚BNE�FIX2 0820‚DEC�1,X 0830‚BRA�FIX1 0840�FIX4�NOP 0850‚LDAA�4,X�GET�FRACTION�-�CHECK�IF�GR. 0860‚BPL�FIX5�.5�(ROUND�OFF) 0870‚INC�3,X�GREATER�THAN�.5�-�ADD�ONE 0880‚BNE�FIX5�TO�INTEGER 0890‚INC�2,X 0900�FIX5�NOP 0910‚LDAA�0,X�GET�MULTIPLIER�SIGN 0920‚BPL�FIX6�CHECK�IF�NEG. 0930‚LDAA�3,X�YES�-�COMPLIMENT�INTEGER 0940‚COMA 0950‚LDAB�2,X 0960‚COMB 0970‚STAA�3,X 0980‚STAB�2,X 0990‚INC�3,X 1000‚BNE�FIX6 1010‚INC�2,X 1020�FIX6�NOP 1030‚LDX�7,X�USE�STACK�POINTER�TO�GET�THE 1040‚LDX�2,X�ADDR.�OF�RESULT. 1050‚PULA 1060‚PULA 1070‚PULA 1080‚STAA�0,X�STORE�MS.�BYTE�OF�INTEGER 1090‚PULA 1100‚STAA�1,X 1110‚PULA�CLEAR�STACK 1120‚PULA 1130‚PULA 1140‚TSX�GET�LOC.�OF�STACK�IN�X 1150‚LDX�0,X�GET�RETURN�LOC. 1160‚INS 1170‚INS 1180‚JMP�4,X�RETURN�TO�CALLER. 1190‚SPC�3 1210�**** 1220�* 1230�*‚PROGRAM�NAME:�FLOAT 1240�* 1250�*‚FUNCTION:�TO�CHANGE�A�INTEGER�VALUE�TO 1260�*ƒFLOATING�POINT. 1270�* 1280�*‚CALLING�SEQUENCE: 1290�* 1300�*‚JSR�FLOAT 1310�*‚FDB�ARG1�ADDRESS�OF�ARG1 1320�*‚FDB�ARG2�ADDRESS�OF�ARG2 1330�*‚---�RETURN�LOCATION 1340�* 1350�*‚WHERE: 1360�* 1370�*‚ARG1�=�ADDRESS�OF�INTEGER�VALUE�(16�BIT�2'S�COMP 1380�*�BYTE�0�=�MS�BYTE 1390�*�BYTE�1�=�LS�BYTE 1400�* 1410�*‚ARG2�=�ADDRESS�OF�RETURNED�FLOATING�POINT�NUMBER 1420�*�BYTE�0�BIT�7�=�SIGN�OF�FRACTION 1430�*ƒBIT�6-0�=�EXPONENT�(2'S�COMP) 1440�*�BYTE�1�-�3�=�FRACTION 1450�* 1460�*‚STACK�SIZE:�9�BYTES 1470�* 1480�*‚STACK�DESCRIPTION: 1490�*�BYTE�0�=�INTEGER�SIGN�(BIT�7) 1500�*�1�=�MULTIPLIER�(FLOATING�POINT) 1510�*�2�=�INTEGER�MS�BYTE 1520�*�3�=�INTEGER�LS�BYTE 1530�*�4�=�* 1540�*�5�=�FRACTION�(FLOATING�POINT) 1550�*�6�=�* 1560�*�7�=�RETURN�LOCATION�MS�BYTE 1570�*�8�=�RETURN�LOCATION�LS�BYTE 1580�**** 1590�* 1600�FLOAT�TSX�GET�LOC�OF�STACK�IN�X 1610‚LDX�0,X�GET�ADDR.�OF�CALLING�SEQ. 1620‚LDX�0,X�GET�ADDR.�OF�ARG1 1630‚CLRA 1640‚PSHA�ZERO�3�BYTES�IN�STACK�FOR 1650‚PS% HA�FRACTION 1660‚PSHA 1670‚LDAA�1,X�GET�INTEGER�VALUE 1680‚PSHA�BYTE�1�(LS�BYTE) 1690‚LDAA�0,X�GET�INTEGER�VALUE 1700‚PSHA�BYTE�2�(MS�BYTE) 1710‚CLRB 1720‚PSHB�ZERO�FLOATING�POINT�MULTIP 1730‚PSHA�SAVE�INTEGER�VALUE�SIGN�BIT 1740‚TSX�GET�NEW�LOC.�OF�STACK |ñ€~ALPHA1.RC:1 XÿÿAPdÿÿÿÿÿÿÿÿÿÿÿÿPŠÿÿ Pú ÿÿÿÿÿÿÿÿÿÿÿÿ18/06/8218/06/82 PRERUN 00.01.00 Xb lÈÿÿ@�P2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ƒ 00.01.00 Xb lÈÿÿ@�P2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ƒBAKE 00.02.00 Xb lÈÿÿ@�P2ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ƒ 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿ& ÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@  CODE�=�2 3210‚BRA�FPARG�GO�JOIN�MUTUAL�PROCESSING 3220�********* 3230�*�SUB�ARG1-ARG2=RESULT 3240�********* 3250�SUBGO�LDAB�#3�SET�CODE�=�3 3260�* 3270�*�HERE�TO�GET�ARGS�FROM�USER�CALLING�SEQUENCE 3280�*�AND�TO�RESERVE�SCRATCH�ON�STACK 3290�* 3300�* 3310�FPARG�TSX�GET�LOC�OF�STACK�IN�X 3320‚LDX�0,X�GET�ADDR�OF�CALLING�SEQUENCE 3330‚LDX�0,X�GET�ADDR�OF�ARG1 3340‚CLRA�CLEAR�OVERFLOW�BYTE 3350‚PSHA 3360‚LDAA�3,X�PUSH�ARG1 3370‚PSHA 3380‚LDAA�2,X 3390‚PSHA 3400‚LDAA�1,X 3410‚PSHA 3420‚LDAù€S00500000002F8 S11B0000414C504841312E52433A31202020202020202020202020207F S11B001817707FFF7FFF0CCC07FF033307FF7FFF7FFF7FFF7FFF7FFFB9 S11B00307FFF7FFF7FFF7FFF7FFF7FFF7FFF19647FFF7FFF0FFF0FFFAD S11B004807FF0FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF9C S11B00607FFF7FFF2020202020200B00003C05070FD01023107603FAE0 S11B00787FFF7FFF07FF02E1019901997FFF7FFF7FFF7FFF7FFF7FFF5F S11B00907FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF0000000068 S11B00A800000000000000000000000000000000000000000000388084 S11B00C0008300003C05070FD01023107603FA7FFF7FFF07FF02E101DE S11B00D89901997FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F6E S11B00F0FF7FFF7FFF7FFF7FFF7FFF000000000000000000000000007F S11B0108000000000000000000000000003880008300007805070FD03D S11B01201023107603FA7FFF7FFF07FF02E1019901997FFF7FFF7FFF7A S11B01387FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFC3 S11B01507FFF0000000000000000000000000000000000000000000015 S11B01680000000038800083000000000007F507F507F57FFF7FFF7FD1 S11B0180FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F7B S11B0198FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF000000000000005C S11B01B00000000000000000000000000000000000000038800000007B S11B01C80000000007F507F507F57FFF7FFF7FFF7FFF7FFF7FFF7FFFB5 S11B01E07FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF1B S11B01F87FFF7FFF7FFF7FFF00000000000000000000000000000000F3 S11B02100000000000000000000038800000000000000007F507F5071B S11B0228F57FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FDC S11B0240FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF0039 S11B02580000000000000000000000000000000000000000000000008A S11B02700038800000000000000007F507F507F57FFF7FFF7FFF7FFFCE S11B02887FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF72 S11B02A07FFF7FFF7FFF7FFF7FFF7FFF7FFF00000000000000000000D0 S11B02B800000000000000000000000000000000388000000000000072 S11B02D00007F507F507F57FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FAF S11B02E8FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F12 S11B0300FF7FFF7FFF00000000000000000000000000000000000000E6 S11B03180000000000000038800000000000000007F507F507F57FFF9F S11B03307FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFC9 S11B03487FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF00000000AD S11B036000000000000000000000000000000' 0000000000000003880C9 S11B03780000000000000007F507F507F57FFF7FFF7FFF7FFF7FFF7F80 S11B0390FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F69 S11B03A8FF7FFF7FFF7FFF7FFF7FFF00000000000000000000000000C4 S11B03C00000000000000000000000000038800000000000000007F56D S11B03D807F507F57FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF25 S11B03F07FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF09 S11B04087FFF000000000000000000000000000000000000000000005A S10B0420000000003880000018 S9 B�#$80 4780‚CLR�0,X�CLE�LOCAL�OVF�FLAG 4790‚ASLA�GET�EXPONENT�IN�ITHMETIC�FORM 4800‚ASL�7,X 4810‚ADDA�7,X�ADD�EXPONENTS 4820�FPM45�BVS�FPMOVF�BRANCH�IF�EXPONENT�OVERFLOW 4830‚CLC�FIX�EXPONENT 4840‚RORA 4850�FPM37�ABA�ADD�IN�SIGN 4860‚STAA�2,X 4870‚LDAA�#RESULT�NORMALIZE�ANS. 4880‚BSR�NORMX1 4890‚TST�0,X�LOCAL�OVF�SET? 4900‚BEQ�FPOUT2�NO 4910‚INC�2,X�YES�INCR�OP. 4920�*�PIC�BRANCHS 4930�ADSUB2�BRA�ADDSUB 4940�*�UNDER�OR�OVER�W 4950�FPMOVF�BPL�FPUND�OVER�W? 4960‚PSHA�NO 4970‚LDAA�3,X�GET�ANS 4980‚BITA�#$F0�IS�IT�NORMALIZED? 4990‚PULA 5000‚BNE�FPOVF�S,�NORM.�WONT�HELP�THE�OVF 5010‚CMPA�#$80�WOULD�A�NORMALIZE�HELP? 5020‚BNE�FPOVF�NO 5030‚LDAA�#$3F�SET�EXP.�MAX. 5040‚STAA�0,X�SET�ACAL�OVFL 5050‚BRA�FPM37 5060�NORMX1�BRA�NORMX2�PIC�BRANCH 5070�DVSUB2�BRA�DVSUB3 5080�FPOUT1�BRA�FPOUT2 5090�* 5100�*�HERE�ON�RESULT�OVER�W 5110�* 5120�FPOVF�ANDB�#$80�MASK�OUT�SIGN 5130‚ORAB�#$3F�SET�EXP.�MAX 5140‚LDAA�#$FF 5150‚INC�1,X�SET�OVER�W 5160‚BRA�FPMU10 5170�*�HERE�ON�UNDER�W 5180�FPUND�CLRB 5190‚CLRA�T�EXPONENT�AND�FRACTION�=�0 5200�FPMU10�STAA�3,X�SET�RESULT�FRACTION 5210‚STAA�4,X 5220‚STAA�5,X 5230‚CLR�6,X 5240‚STAB�2,X�SET�RESULT�EN. 5250‚BRA�FPOUT1�HANG�IT�UP 5260�FPM456�BRA�FPM45 5270�* 5280�*---------------------------------- 5290�* 5300�*�ADD�ARG1+ARG2=RESULT 5310�*�SUB�ARG1-ARG2=RESULT 5320�* 5330�*---------------------------------- 5340�ADDSUB�PSHB�PUSH�ADD-SUB�CODE 5350�* 5360�*�NORMALIZE�ARGS 5370‚LDAA�#ARG1 5380‚BSR�NORMX2 5390‚LDAA�#ARG2 5400‚BSR�NORMX2 5410‚LDAA�#8 5420‚STAA�0,X�DONT�SHIFT�TOO�MANY�TIMES 5430‚LDAA�12,X�GET�ARG1�EXP. 5440‚ASLA�LEFT�JUSTIFY�IT 5450‚LDAB�7,X�GET�ARG2�EXP. 5460‚ASLB 5470�FPA05�DEC�0,X�TOO�MANY�SHIFTS 5480‚BLT�FPA25�BRANCH�IF�SO 5490‚CBA�COMPARE�EXP1�TO�EXP2 5500‚BEQ�FPA30�EQUAL,PROCEED�WITH�THE�ADD 5510�*�SHIFT�ARG�WITH�THE�SMALLER�EXP�RIGHT�4�BITS 5520‚BGT�FPA20 5530�*�ARG1�IS�SMALLER 5540‚BSR�FPAS1�SHIFT�ARG1�4�BITS 5550‚BSR�FPAS1 5560‚BSR�FPAS1 5570‚BSR�FPAS1 5580‚ADDA�#2�BUMP�EXP1 5590‚BRA�FPA05�TRY�AGAIN 5600�*�ARG2�IS�SMALLER 5610�FPA20�BSR�FPAS2�SHIFT�ARG2�4�BITS 5620‚BSR�FPAS2 5630‚BSR�FPAS2 5640‚BSR�FPAS2 5650‚ADDB�#2�BUMP�EXP�AND�TRY�AGAIN 5660‚BRA�FPA05 5670�*HERE�TO�SHIFT�ARG1�1�BIT�RIGHT 5680�FPAS1�CLC�SHIFT�IN�0�SINCE�ITS�POS 5690‚ROR�13,X 5700‚ROR�14,X 5710‚ROR�15,X 5720‚ROR�16,X 5730‚RTS 5740�*�HERE�TO�SHIFT�ARG2�1�BIT�RIGHT 5750�FPAS2�CLC�SHIFT�IN�0�SINCE�ITS�POS 5760‚ROR�8,X 5770‚ROR�9,X 5780‚ROR�10,X 5790‚ROR�11,X 5800‚RTS 5810�FPA25�CBA�NMEN�DIFF�IS�LARGE 5820‚BGT�FPA30�PICK�UP�THE�BIG�EXPOTNME 5830‚TBA 5840‚BRA�FPA30� 5850�*�PICC�BRANCHES 5860�FPOUT3�BRA�FPOUT1�BRANCH�FOR�PIC 5870�DVSUB3�BRA�DVSUB4 5880�NORMX2�BRA�NORMX3 5890�FPUND5�BRA�FPUND 5900�FPM455�BRA�FPM456 5910�FPOVF3�BRA�FPOVF 5920�* 5930�*�HERE�ON�EQUAL�EXPONENTS 5940�* 5950�FPA30�STAA�2,X�SAVE�NEW�EXPON.�IN�RESULT 5960‚BSR�FPAS1�MAKE�ROOM�FOR�SIGNS�IN�FRACT( IONS 5970‚BSR�FPAS2 5980‚LDAA�12,X�IS�ARG1�NEG? 5990‚BPL�FPA40�NO 6000‚LDAA�#ARG1�S,�GO�COMFEMENT 6010‚BSR�COMX1 6020�FPA40�LDAA�7,X�IS�ARG2�NEG? 6030‚BPL�FPA50�NO 6040‚LDAA�#ARG2�YES�GO�COMPLEMENT 6050‚BSR�COMX1 6060�FPA50�PULA�GET�ADD-SUB�CODE 6070‚CMPA�#2�WHICH�ONE 6080‚BNE�FPS10�SUB 6090�*�HERE�TO�ADD�TWO�QUADRUPLE�ARGS 6100‚LDAA�16,X�ARS+ 6110‚ADDA�11,X�ARG2= 6120‚STAA�6,X�RESULT 6130�* 6140‚LDAA�15,X�LSB 6150‚ADCA�10,X 6160‚STAA�5,X 6170�* 6180‚LDAA�14,X�MIDDLE 6190‚ADCA�9,X 6200‚STAA�4,X 6210�* 6220‚LDAA�13,X�MSB 6230‚ADCA�8,X 6240�*�DID�ANSWER�OVER�W? 6250�FPA55�BVC�FPA60�NO 6260‚STAA�3,X�SAVE�MSB 6270‚LDAA�#4�CTR 6280‚ROR�3,X�BRING�IN�LOST�BIT�1ST�TIME 6290‚BRA�FPA58 6300�FPA57�ASR�3,X�SIGN�EXTENDED 6310�FPA58�ROR�4,X 6320‚ROR�5,X 6330‚ROR�6,X 6340‚DECA�DONE�4�BITS 6350‚BNE�FPA57�NO 6360‚INC�2,X�INCR.�EXPONENT 6370‚INC�2,X 6380‚BVC�FPA61�BRANCH�ON�NO�RFLOW 6390‚ROL�3,X�SET�OVERFLOW�AND�EXIT 6400�FPA59�RORB 6410�FPOVF2�BRA�FPOVF3�OVERFLOW 6420�*�PIC�BRAOES 6430�FPA80�BRA�FPOUT3 6440�NORMX3�BRA�NORMX4 6450�DVSUB4�BRA�DVSUB5 6460�FPUND4�BRA�FPUND5 6470�FPM454�BRA�FPM455 6480�* 6490�FPA60�STAA�3,X�SAVE�MSB 6500�FPA61�TST�3,X�IS�RESULT�NEGATIVE? 6510‚CLC�CLEAR�C 6520‚BPL�FPA70�POSITIVE�RESULT 6530‚LDAA�#RESULT 6540‚BSR�COMX1�NEGATIVE,�COMPLEMENT�IT 6550‚SEC�SET�TO�SHIFT�IN�MINUS 6560‚BVS�FPA59�TOO�BIG�TO�COMPL. 6570�FPA70�ROR�2,X�SHIFT�IN�SIGN 6580‚ROL�6,X�MOVE�SIGN�BACK�INTO�EXP 6590‚ROL�5,X 6600‚ROL�4,X 6610‚ROL�3,X 6620‚LDAA�3,X�IS�RESULT�NORMALIZED? 6630‚BITA�#$F0 6640‚BNE�FPA80�YES 6650‚LDAA�#RESULT�NO,�GO�NORMALIZE 6660‚BSR�NORMX 6670‚BRA�FPA80�DONE,�EXIT 6680�* 6690�NORMX4�BRA�NORMX 6700�DVSUB5�BRA�DVSUB6 6710�FPUND3�BRA�FPUND4 6720�FPM453�BRA�FPM454 6730�COMX1�BRA�COMX 6740�* 6750�*�HERE�TO�SUBTRACT�TWO�QUADRUPLE�ARGS 6760�* 6770�FPS10�LDAA�16,X�ARS- 6780‚SUBA�11,X�ARG2= 6790‚STAA�6,X�RESULT 6800�* 6810‚LDAA�15,X�LSB 6820‚SBCA�10,X 6830‚STAA�5,X 6840�* 6850‚LDAA�14,X�MIDDLE 6860‚SBCA�9,X 6870‚STAA�4,X 6880�* 6890‚LDAA�13,X 6900‚SBCA�8,X�MSB 6910‚BCS�FPS20�COMPLEMENT�THE�CARRY�BIT 6920‚SEC 6930‚BRA�FPA55 6940�FPS20�CLC 6950‚BRA�FPA55�GO�CHECK�OVERFLOW�AND�NORMALIZE 6960�FPOVF4�BRA�FPOVF2 6970�* 6980�*-------------------- 6990�* 7000�*�GENERALIZED�NORMALIZE�ROUTINE�CALL 7010�*�JSR�NORMX 7020�*�WHEU�A�CONTAINS�OFFSET�TO�ARG�FROM�NORMAL�X�(0-64) 7030�*�ALL�REGS�EXCEPT�X�ARE�DESTROYED 7040�*�V�IS�SET�IF�UNDERFLOW�WOULD�OCCUR�IF�NBR 7050�*‚WERE�NORMALIZED 7060�*�Z�IS�SET�IF�ARG�=�0 7070�* 7080�*-------------------- 7090�* 7100�NORMX�PSHA�PUSH�X�OFFSET 7110‚CLRB�CLEAR�Z,V�WORD 7120�NL1�INX�BUMP�X�BY�ONE 7130‚DECA�DONE�N�TIMES 7140‚BNE�NL1�BRAO�IF�NOT 7150�*�DO�NORMALIZE 7160‚LDAA�1,X�CHECK�FOR�ZERO�FRACTION 7170‚ORAA�2,X 7180‚ORAA�3,X 7190‚ORAA�4,X 7200‚BEQ�NRMZRO�DONT�TRY�TO�NORM�ZERO 7210‚ASL�0,X�SAVE�SIGN�IN�B�WITH�SFSET 7220‚ROLB�ALSO�DBL�EXP 7230�NRM01�LDAA�1,X 7240‚BITA�#$F0�NORMALIZED�YET? 7250‚BNE�NRMOUT�YES 7260‚DEC�0,X 7270‚BVS�NRMOVF�STOP�IF�NEXT�SHIFT�CAUSE�UNDERF 7280‚DEC�0,X 7290‚BSR�NRMSH4�SHIFT�FRACT�4�BITS 7300‚BRA�NRM01�TRY�AGAIN 7310�NRMOVF�INC�0,X�RESTORE�EXP 7320‚ORAB�#4�OVF�BIT�AFTER�SHIFT 7330�NRMOUT�RORB 7340‚ROR�0,X�PUT�SIGN�BACK�ON 7350�NRMXIT�PULA�GET�X�OFFSET 7360�NRMLP�DEX 7370‚DECA 7380‚BNE�NRMLP 7390‚TPA�GET�CURRENT�STATUS 7400‚ANDA�#$10�S�INTERRUPT�ST� 7410‚ABA�ADD�B�TO�STATUS 7420‚TAP 7430‚RTS�RETURN 7440�*�SUB�TO�SHIFT�TRIPLE�BYT) E�LEFT�4�BITS 7450�NRMSH4�LDAA�#4 7460�NSHLOP�ASL�4,X 7470‚ROL�3,X 7480‚ROL�2,X 7490‚ROL�1,X 7500‚DECA 7510‚BNE�NSHLOP 7520‚RTS 7530�NRMZRO�LDAB�#4�SET�Z�BIT 7540‚CLR�0,X�CLEAR�EXPONENT 7550‚BRA�NRMXIT�EXIT 7560�*�PIC�BRANCHES 7570�DVSUB6�BRA�DIVSUB 7580�FPUND2�BRA�FPUND3 7590�FPM452�BRA�FPM453 7600�FPOVF5�BRA�FPOVF4 7610�* 7620�*------------------------ 7630�* 7640�*�GENERALIZED�TWOS�COMPLEMENT�ROUTINE�CALL: 7650�*�JSR�COMX 7660�*�WHERE�A�CONTAINS�OFFSET�TO�ARG�FROM�PRESENT�X�(0-64) 7670�*�REGISTERS�ARE�LOST 7680�* 7690�*------------------------ 7700�* 7710�COMX�TAB�SAVE�OFFSET�IN�B�TOO 7720�COM10�INX 7730‚DECA�REPOSITION�X�TO�ARG 7740‚BNE�COM10 7750‚TPA�SAVE�CALLERS�CC�-V=0 7760‚COM�1,X�DO�1'S�COMPLEMENT 7770‚COM�2,X 7780‚COM�3,X 7790‚COM�4,X 7800‚INC�4,X�MAKE�2'S�COMPLEMENT 7810‚BNE�COMOUT�GENERATE�CARRIES�AS�LONG�AS�NEEDE 7820‚INC�3,X 7830‚BNE�COMOUT 7840‚INC�2,X 7850‚BNE�COMOUT 7860‚INC�1,X 7870‚BVS�COMXX�CANT�COMP�80�00�00�00 7880�COMYY�TPA�SAVE�CONDITION�CODE 7890�COMOUT�DEX�FIX�X 7900‚DECB 7910‚BNE�COMOUT 7920‚TAP�PUT�CONDITIONS�IN 7930‚RTS�EXIT,�RETURN 7940�*�PIC�BRANCHES 7950�DIVSTP�BRA�FPOVF4 7960�NORMX5�BRA�NORMX 7970�FPOVF6�BRA�FPOVF5 7980�FPM451�BRA�FPM452 7990�FPUND1�BRA�FPUND2 8000�* 8010�* 8020�*�HERE�TO�SEE�IF�WE�CAN�SHIFT�THIS�SO�WE 8030�*�CAN�COMPLEMENT�IT 8040�COMXX�LDAA�#4�SHIFT�4�BITS�RIGHT 8050�COM22�CLC 8060‚ROR�1,X 8070‚ROR�2,X 8080‚ROR�3,X 8090‚ROR�4,X 8100‚DECA�DONE�? 8110‚BNE�COM22 8120‚INC�0,X�INCREMENT�EXPONENT 8130‚INC�0,X 8140‚BRA�COMYY�JOIN�ABOVE 8150�* 8160�*---------------------------------------------------- 8170�* 8180�*�DIVIDE�ARG2/ARG1�=�RESULT 8190�* 8200�*---------------------------------------------------- 8210�* 8220�* 8230�DIVSUB�LDAA�#ARG2�NMALIZE�DIVIDEND 8240‚BSR�NORMX5 8250‚LDAA�#ARG1�NORMALIZE�DIVISOR 8260‚BSR�NORMX5 8270‚BVS�DIVSTP�DIVISOR�TOO�SMALL 8280‚BEQ�DIVSTP�DIV�BY�ZERO�IS�A�NONO 8290�*�FORCE�ARG2�LT�ARG1�SO�ALGORITHM�CAN�WORK 8300�*�MAKE�DIVIDEND�(ARG2)�SMALLER�IN�FRACTION 8310�*�AND�LARGER�IN�EXP 8320�FDP15�LDAA�#5�DO�5�SHIFTS�ON�ARG2 8330�FPD20�LSR�8,X 8340‚ROR�9,X 8350‚ROR�10,X 8360‚ROR�11,X 8370‚DECA 8380‚BNE�FPD20 8390�*�DIVIDE�DIVISOR�FRACTION�BY�2�TO 8400�*�FACILLITATE�THE�ALGORITHM 8410‚LSR�13,X 8420‚ROR�14,X 8430‚ROR�15,X 8440‚ROR�16,X 8450�* 8460�*�HERE�TO�ITUALLY�DIVIDE�THE�FRACTIONS 8470�* 8480‚LDAB�11,X�GET�OVF�BYTE�OF�DIVIDEND 8490‚LDAA�#29�29�BITS�TO�DO�WITH�OB 8500�FPD40�PSHA�SAVE�CTR 8510‚ASLB�SHIFT�DIVIDEND�LEFT�ONE�BIT 8520‚ROL�10,X 8530‚ROL�9,X 8540‚ROL�8,X 8550‚ASL�6,X�SHIFT�RESULT�LEFT�ONE�BIT 8560‚ROL�5,X 8570‚ROL�4,X 8580‚ROL�3,X 8590�*�DO�A�DBL�SUBTRACT�IF�THE�RESULT�IS�POS�SET 8600�*�BIT�IN�RLULT.�IF�NEG�ADD�DIVISOR�BACK 8610�*�AND�SET�RESULT�BIT�=�0 8620‚SUBB�16,X�DIVIDEND-DIVISOR 8630�* 8640‚LDAA�10,X�LSB 8650‚SBCA�15,X 8660‚STAA�10,X 8670�* 8680‚LDAA�9,X�MIDDLE 8690‚SBCA�14,X 8700‚STAA�9,X 8710�* 8720‚LDAA�8,X�MSB 8730‚SBCA�13,X 8740‚STAA�8,X 8750�*�IF�CARRY�O�SET�SET�QUOTIENT�BIT 8760�*�AND�CONTINUE 8770‚BCC�FPD55 8780‚BRA�FPD50 8790�*�PIC�BRANCHES 8800�FPUND0�BRA�FPUND1 8810�FPM450�BRA�FPM451 8820�FPOVF7�BRA�FPOVF6 8830�*�IF�CARRY�IS�SET�ADD�DIVISOR�BACK 8840�*�AND�CONTINUE 8850�FPD50�ADDB�16,X�DO�DBL�ADD 8860�* 8870‚LDAA�10,X�LSB 8880‚ADCA�15,X 8890‚STAA�10,X 8900�* 8910‚LDAA�9,X�MIDDLE 8920‚ADCA�14,X 8930‚STAA�9,X 8940�* 8950‚LDAA�8,X�MSB 8960‚ADCA�13,X 8970‚STAA�8,X 8980‚BRA�F* PD60�GO�TO�CONTINUE 8990�* 9000�*�HERE�TO�SET�BIT�IN�QEIENT 9010�* 9020�FPD55�INC�6,X�SET�IT 9030�* 9040�FPD60�PULA�PULL�LOOP�CTR 9050‚DECA�GONE�28�TIMES? 9060‚BNE�FPD40�NO 9070�*�LEFT�JUSTIFY�RESULT 9080�*�SINCE�WE�ONLY�DIVIDED�28�TIMES�WE�NEED�TO�SHIFT 9090�*�UP�4�BITS�BUT�SINCE�WE�RIGHT�SHIFTED�THE�DIVISOR 9100�*�3�IS�THE�MAGIC�NUMBER 9110‚LDAA�#3�SHIFT�RESULT�UP�3�BITS 9120�FPD62�ASL�6,X 9130‚ROL�5,X 9140‚ROL�4,X 9150‚ROL�3,X 9160‚DECA 9170‚BNE�FPD62 9180�* 9190�*�HERE�TO�SUB�EXPONENTS�(EXP2-EXP1) 9200�*�ALSO�CALCULATE�SIGN�AND�ADJUST�EXP 9210�*�TO�REFLECT�ORIGINAL�SHIFT�OF�THE 9220�*�DIVIDEND 9230�* 9240‚LDAA�7,X�EXP2 9250‚TAB�SAVE�IN�B�FOR�SIGN�CALC 9260‚EORB�12,X�EXCLUSIVE�OR�WITH�ARG1 9270‚ANDB�#$80�EXTRACT�SIGN 9280‚CLR�0,X�CLEAR�LOCAL�OVERFLOW 9290‚ASLA�DBL�EXP2 9300‚ASL�12,X�DBL�EXP1 9310‚SUBA�12,X�EXP2-EXP1 9320‚BVC�FPD70�BRANCH�ON�NO�OVERFLOW 9330‚BPL�FPD80�UNDERFLOW 9340‚BRA�FPOVF7�DEFINITE�OVERFLOW 9350�*�MAKE�UP�FOR�ORIGINAL�SHIFT�OF�ARG2�BY�ADDING�TO 9360�*�THE�EXPONENT 9370�FPD70�ADDA�#2 9380�FPD75�BRA�FPM450�GO�CHECK�FOR�OVFL'S�ETC 9390�*�HERE�ON�POTENTIAL�UNDERFLOW 9400�*�SEE�IF�THE�ADJUST�WOULD�HELP�ANY 9410�FPD80�ADDA�#2�AN�OVFL�NOW�MEANS�YES 9420‚BVS�FPD85 9430‚BRA�FPUND0�DEFINE�UNDERFLOW 9440�FPD85�CLV�RESET�OVERFLOW 9450‚BRA�FPD75�GO�EXIT 9460‚END å€0010‚PAGE 0020‚NAM�INIT 0030‚TTL‚HARDWARE�INIT.�FOR�TUBE�CONTROLLER 0040�* 0050‚OPT�REL,LLEN=120 0060�* 0070�*�STARTING�OF�INITIALISATION 0080�* 0090�* 0100‚PSCT 0110�* 0120‚XDEF�GINIT,PIRQ 0130�* 0140‚XREF�INIDIO,INITEX,BOTSTS,INITDA,INITAC,INITTA,ACIRQ,RECON 0150‚XREF�BOTIRQ,ACI2RQ 0160�* 0170�*INIT�THE�STACK�AND�MASK�IRQ 0180�* 0190�GINIT�NOP�LDS�#STACK�STARTING�POINT�OF�THE�TUBE�CONTROLLER�PROGRAM 0200‚SEI‚SET�INTERRUPT 0210�* 0220�*�SETTING�THE�PIA�READY�TO�RUN 0230�* 0240�SETPIA�LDX�#PIA1DA�POINT�ON�THE�PIA 0250‚CLR�0,X�MAKE�SURE�IT7S�READY�TO�INIT 0260‚CLR�1,X 0270‚CLR�2,X 0280‚CLR�3,X 0290�* 0300�*�SET�DIRECTION�REGISTERS 0310�* 0320‚LDAA�#%01110000�SET�THE�A�SIDE�PA0-PA3�AND�PA7�INPUTS,�OTHERS�OUTPUTS 0330‚STAA�X 0340‚LDAA�#%01111111�B�SIDE�ALL�LINES�ARE�OUTPUTS�LIGHTS�EXCEPT�B7�POWER�FAIL 0350‚STAA�2,X 0360‚LDAA�#$36�INIT�THE�PIA1CA�FOR�SETTING�DATA�REGISTER�A 0370‚STAA�1,X 0380‚LDAA�#$36�INIT�PIA1CB�FOR�SETTING�DRB�AND�CB2�OUT�AND�FOLLOW�MODE 0390‚STAA�3,X�CB2�IS�PUTTING�LOW�(ALARM�LIGHT) 0400�* 0410‚PAGE 0420�* 0430�*�INIT�THE�PTM�FOR�ACIA�BAUD�RATE�GENERATION 0440�*�COUNTERS�1�AND�2�WILL�BE�USED�FOR�THE�BOAT�PULLER 0450�* 0460�*�ACIA�BAUD�RATE�IS�PROVIDED�BY�COUNTER�3�OF�PTM 0470�* 0480�* 0490�* 0500�TINIT�LDX�#TMCR13�MAKE�BE�SURE�TIMER�IS�READY�TO�INIT 0510‚LDAA�#7 0520�TINT1�CLR�0,X 0530‚INX 0540‚DECA 0550‚BNE�TINT1 0560�* 0570�*�BAUD�RATE�GENERATOR�INIT 0580�* 0590�BAUD€GAINAS.RC:1 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ+ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ09/06/8209/06/82  € GAAS.RC:1 X`Êÿÿ`ÊÿP^ÿÿÿÿÿÿÿÿÿÿÿÿPú°ÿAPAPPÂÿÿÿÿÿÿÿÿÿÿÿÿ09/06/8209/06/82PREDEP 15.00.00  �²€¨ÈLÿ`ÊÿAPP–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!@ 15.00.00  �²€¨ÈLÿ`ÊÿAPP–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!@ 15.00.00  �²€¨ÈLÿ`ÊÿAPP–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!@E 15.00.00  �²€¨ÈLÿ`ÊÿAPP–ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!@ 8FA072 S10500C0000A30 S9 0010‚NAM�MOVIO 0020�* 0030‚OPT�REL,LLEN=100 0040�* 0050‚TTL�INPUT�AND�OUTPUT�SUBROUTINES�USED�BY�THE�TUBE�CONTROLLER 0060�* 0070�*�CROSS�REFERENCES 0080�* 0090‚XREF�TBAX,TXBA,SHRX,SHLX,ABAX,SXBA,CPBAX,XBAX,AXBA,AXA,AXB,BACKUP 0100‚XREF�AIMIR 0110�* 0120‚XDEF�TAKAI,SETAO,SRTDO,TAKDI 0130‚XDEF�INIDIO,UPDIMR,UPAIMR 0140‚XREF�DOMIR,DIMIR 0150�* 0160‚BSCT 0170�* 0180�*�RESERVE�SOME�WORK€Y.RC:1 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ09/06/8209/06/82 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@  0007D S11B0108000000000000000000000000003880000400D2F00408168EAD S11B012012CB127403FA21767FFF7FFF04CC066604CC7FFF7FFF7FFF4A S11B01387FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFC3 S11B01507FFFE001000000002100000000000000000000000000000,  € IN.RC:1 È ÿAPAPPúÿÿÿÿÿÿÿÿÿÿÿÿPú „ÿÿPúÿÿÿÿÿÿÿÿÿÿÿÿ09/06/8209/06/82RUN1 10.00.00  �²€¨ÈPRÿPúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!@Š 10.00.00  �²€¨ÈPRÿPúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!@Š 10.00.00  �²€¨ÈPRÿPúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!@Š 10.00.00  �²€¨ÈPRÿPúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!@Š 10.00.00  �²€¨ÈPRÿPúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ!@Š AVE�ACCB 1330‚DECB 1340‚STX�TEMP1�SAVE�INDEX 1350‚LDX�#DOMDL1�TAKE�THE�ADDRESS�OF�THE�MODULE�1 1360‚TBA�SAVE�B�IN�A 1370‚ANDA�#%}"€~GA.RC:1 ÿÿÿÿA @PÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿAP@pÿÿÿÿÿÿÿÿÿÿÿÿÿ10/06/8210/06/82PRERHEATUP 00.01.00  �²€¨ÿ „ÿÿAP@Pÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@  FFF7FFF7FFF2A S11B01387FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFC3 S11B01507FFFA000000000002100000000000000000000000000000054 S11B0168000000003880008A008CA00408168E12CB127403FA184B7F1B S11B0180FF00000CCC000007FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F95 S11B0198FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFA00000000000219B S11B01B0000000000000000000000000000000000000003880008A00F1 S11B01C88CA00408- 168E12CB127403FA184B7FFF00000CCC000007FF20 S11B01E07FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF1B S11B01F87FFF7FFF7FFF7FFFA000000000002100000000000000000032 S1110210000000000000000000003880008A9A S9 940‚STX�TEMP1�SAVE�INDEX 1950‚LDX�#DIMDL1�TAKE�THE�ADDRESS�OF�THE�MODULE�1 1960‚TBA�SAVE�B�IN�A 1970‚ANDA�#%01111000�OBTAINS�THE�GROUP�IN�A 1980‚ANDB�#%00000111�OBTAINS�THE�LOCATION�IN�THE�GROUP�IN�B 1990‚PSHA�SAVE�ACCA�FOR�LATER�USE 2000‚LDAA�#%00000001�LOAD�THE�IMAGE 2010�TAKDI1�TSTB 2020‚BEQ�TAKDI2�B�IS�0,�MASK�BIT�IS�SET 2030‚DECB 2040‚ASLA�SHIFT�THE�MASK 2050‚BRA�TAKDI1 2060�TAKDI2�TAB 2070‚PULA�TAKE�THE�OFFSET�TO�BE�ADDED�ON�X 2080‚LSRA 2090‚LSRA 2100‚LSRA 2110‚JSR�AXA�COMPUT�THE�RIGHT�POSITION 2120‚PSHB�SAVE�THE�MASK 2130‚ANDB�X�TEST�IF�THE�BIT�IS�SET�ON�THE�BOARD 2140‚LDX�#DIMIR�TAKE�THE�D.I�MIRROR�ADDRESS 2150‚CMPA�#2 2160‚BLS�TAKD20 2170‚DECA 2180�TAKD20�JSR�AXA�ADD�THE�OFFSET 2190‚PULA 2200‚PSHA�TAKE�AGAIN�MASK�BIT 2210‚ANDA�X�TAKE�ONLY�THE�WANTED�BIT 2220‚TBA�PUT�THE�RESULT�IN�ACCA 2230‚TSTB 2240‚BNE�TAKDI3�BIT�IS�SET�ON�INPUT�RESET�MIRROR�BIT 2250‚PULA�RESTORE�MASK�BIT 2260‚PSHA 2270‚ORAA�X�SET�THE�BIT�IN�THE�MIRROR 2280‚STAA�X 2290‚PULB 2300‚PULB 2310‚ORAB�#%10000000�BIT�7�FOLLOWS�THE�INVERT�OF�INPUT�STATE 2320‚PSHB 2330‚PSHB 2340‚BRA�TAKDI5�NOW�EXIT 2350�TAKDI3�PULB 2360‚COMA�COMPLEMENT�THE�MASK 2370‚ANDA�X�RESET�THE�BIT�IN�MIRROR 2380‚STAA�X 2390�TAKDI4�PULB 2400‚ANDB�#%01111111�MAKE�SURE�BIT�7�IS�WELL�RESETED 2410‚PSHB 2420‚PSHB 2430�TAKDI5�LDX�TEMP1�RESTORE�X�REGISTER 2440‚PULB‚ADJUST�THE�STACK 2450‚PULB 2460‚PULA 2470‚CLC�MAKE�NO�ERROR 2480‚RTS 2490�TAKDIE�SEC�INDICATE�CHANNEL�ERROR 2500‚RTS 2510�* 2520�*�ROUTINE�TO�INIT�DIGITALS�I/O'S 2530�* 2540�INIDIO�PSHA�SAVE�ACC'S 2550‚PSHB 2560‚TST�BACKUP�IS�A�POWER�BACKUP�RESTART 2570‚BNE�INIBAC�YES,�MAKE�A�BACKUP�INIT 2580‚LDX�#DOMDL1�POINT�ON�THE�DIGITAL�OUT'S�BOARD 2590‚LDAA�#8 2600�INLP2�CLR�X�RESET�ALL�OUTPUTS 2610‚INX 2620‚DECA 2630‚BNE�INLP2 2640‚LDX�#DOMIR 2650‚LDAA�#6 2660�INLP3�CLR�X 2670‚INX 2680‚DECA 2690‚BNE�INLP3 2700�UPDI�LDAA�#48 2710‚STX�TEMP2 2720�INLP4�TAB 2730‚JSR�TAKDI 2740‚DECA 2750‚BNE�INLP4 2760‚PULB�RESTORE�REG'S 2770‚PULA 2780‚LDX�TEMP2 2790‚RTS 2800�* 2810�INIBAC�LDX�DOMIR 2820‚STX�DOMDL1 2830‚LDX�DOMIR+2 2840‚STX�DOMDL1+2 2850‚LDX�DOMIR+4 2860‚STX�DOMDL1+4 2870‚BRA�UPDI 2880�* 2890�UPDIMR�PSHA 2900‚PSHB 2910‚JMP�UPDI 2920�* 2930�UPAIMR�STX�TEMP2 2940‚LDX�#AIMIR+36‚UPDATE�A.I.�MIRROR�FOR�ALL�16�CHANNELS 2950‚PSHA 2960‚PSHB 2970‚LDAB�#16 2980�CONT�STX�TEMP1 2990‚PSHB 3000‚JSR�TAKAI 3010‚JSR�TXBA 3020‚LDX�TEMP1 3030‚STAB�X 3040‚STAA�1,X 3050‚PULB 3060‚DEX 3070‚DEX 3080‚DECB 3090‚BNE�CONT 3100‚LDX�TEMP2 3110‚PULB 3120‚PULA 3130‚RTS 3140�* 3150‚END *€0010‚NAM�PANEL 0020�* 0030‚OPT�REL,LLEN=120 0040�* 0050‚IDNT�PANEL�OPERATION 0060�* 0070‚XREF�CMDI,REMOTE,KEYBRD 0080‚XDEF�PANEL,LIGHT,SAVKEY 0090�* 0100�*�THIS�ROUTINE�CHECKS�THE�OPERATOR�PANEL 0110�*�IF�ANY�KEY�IS�DEPRESSED�IT�GIVES�THE�FUNCTION 0120�*�IT�TAKES�THE�FUNCTION�ONLY�ON�POSITIVE�TRANSITION 0130�*�TO�THE�CALLER�PROGRAM 0140�*�IT�SETS�LAMPS�ON�THE�OPERATOR�PANEL�ACCORDI. NGLY 0141�*�IT�UPDATES�THE�DISPLAY�OF�THE�STATUS�(TUBE�LEVEL�ACCESS) 0150�* 0160‚BSCT 0170�* 0180�OLDKEY�RMB�1 0190�SAVKEY�RMB�1�SAVE�KEY�IN�THIS�BYTE�FOR�LATER�PROCESSING 0200�* 0210�* 0220‚PSCT 0230�* 0240�PANEL�PSHA 0245‚JSR�KEYBRD�UPDATE�DISPLAY 0250‚JSR�CMDI�GOTO�THE�COMMAND�INTERPRETER 0260‚LDAB�REMOTE�IS�A�REMOTE�INPUT 0270‚BEQ�NEWP0�YES,PROCESS�IT 0280‚PULA 0290‚BRA�NEWP 0300�NEWP0�LDAB�PIA1DA�TAKE�THE�CONTENTS�OF�PIA�SIDE�A 0310‚LDAA�PIA1DA 0320‚CBA�CHECK�FOR�BAD�SWITCHING 0330‚PULA 0340‚BNE�PANEX 0350‚COMB�PUT�IN�RIGHT�SENS 0360‚ANDB�#KBDATA�KEEP�ONLY�DATA�BIT 0370‚BEQ�NPANEL�NO�INPUT�SEC 0380�NEWP�CMPB�#7�CHECK�IF�INVALID�CODE 0390‚BEQ�PANEX 0400‚CMPB�#9 0410‚BHI�PANEX 0420‚CMPB�OLDKEY�CHECK�IF�THE�SAME�KEY 0430‚BEQ�NPANEL�YES�DOES�NO�ACT�THIS�KEY 0440‚STAB�OLDKEY 0450�NEWP1�CMPB�#KALARM�IF�ALARM�KEY�KILL�THE�BUZZER 0460‚BNE�NPAN0 0470‚PSHB 0480‚LDAB�#$F�KILL�THE�BUZZER 0490‚JSR�LIGHT 0500‚PULB 0510�NPAN0�CLR�REMOTE 0520‚STAB�SAVKEY�SAVE�KEY�FOR�POSSIBLE�LATER�PROCESSING 0531�NPAN1�SEC 0540‚RTS 0550�NPANEL�STAB�OLDKEY�STORE�THE�LAST�KEY 0560�PANEX�LDAB�SAVKEY 0570‚BNE�NPAN1 0580‚LDAB�OLDKEY 0590‚CLC 0600‚RTS 0610�* 0620�*�THIS�ROUTINE�LIGHT�THE�OPERATOR�PANEL�ACCORDINGLY�WITH 0630�*�CODE�FOUND�IN�ACCB 0640�*�IF�THE�BIT�7�OF�ACCB�IT�LIGHT�THE�CORRESPONDING�LAMP 0650�* 0660�LIGHT�PSHA 0670‚PSHB�SAVE�REGISTERS 0680‚TBA 0690‚ANDA�#%01111111�CUT�THE�FUNCTION�BIT�FOR�COMPARISON 0700‚CMPA�#KABORT 0710‚BNE�L1 0720‚LDAA�#LABORT 0730‚BRA�LIGHTO�GO�TO�EXECUTE�THE�FUNCTION�ON�THIS�LIGHT 0740�L1�CMPA�#KRST 0750‚BNE�L2 0760‚LDAA�#LRST 0770‚BRA�LIGHTO 0780�L2�CMPA�#KRECP1 0790‚BNE�L3 0800‚LDAA�#LRECP1 0810‚BRA�LIGHTO 0820�L3�CMPA�#KRECP2 0830‚BNE�L4 0840‚LDAA�#LRECP2 0850‚BRA�LIGHTO 0860�L4�CMPA�#KRECP3 0870‚BNE�L5 0880‚BRA�LIGHT3 0890�L5�CMPA�#KRUN 0900‚BNE�L6 0910‚LDAA�#LRUN 0920‚BRA�LIGHTO 0930�L6�CMPA�#KHOLD 0940‚BNE�L7 0950‚LDAA�#LHOLD 0960‚BRA�LIGHTO 0970�L7�CMPA�#KALARM 0980‚BNE�L8 0990‚BRA�LIGHT6 1000�L8�CMPA�#7�IS�THE�FINISHED�CODE 1010‚BNE�L9�NO�THIS�CODE�IS�INVALID 1020‚LDAA�#LFIN 1030‚BRA�LIGHTO 1040�L9�CMPA�#$F�IS�THE�BUZZER 1050‚BEQ�LIGHTA�NO�INVALID�CODE 1060‚SEC 1070‚PULB 1080‚PULA�RESTORE�REGISTERS 1090‚RTS 1100�LIGHTO�PULB 1110‚PSHB�RESTORE�THE�COMMAND�CODE 1120‚TSTB 1130‚BMI�LIGHT2�IF�SETTING,�GO�TO�SET�LIGHT 1140‚COMA�SET�THE�MASK�FOR�SWITCH�OFF�THE�LIGHT 1150‚ANDA�PIA1DB�CUT�THE�LIGHT 1160�LIGHT1�STAA�PIA1DB 1170‚PULB 1180‚PULA�RESTORE�REGISTERS 1190‚CLC 1200‚RTS�EXIT�WITH�NO�ERROR 1210�LIGHT2�ORAA�PIA1DB�UPDATE�THE�LIGHT 1220‚BRA�LIGHT1�EXIT�AND�SET 1230�LIGHT3�PULB 1240‚PSHB�RESTORE�ACCB�WITH�COMMAND 1250‚TSTB 1260‚BMI�LIGHT5�SET�THE�ALARM�LIGHT 1270‚LDAA�#%11110111�RESET�THE�LIGHT�ON�CB2 1280‚ANDA�PIA1CB 1290�LIGHT4�STAA�PIA1CB 1300�LIGH41�PULB 1310‚PULA 1320‚CLC 1330‚RTS 1340�LIGHT5�LDAA�#%00001000�SET�CB2�ON 1350‚ORAA�PIA1CB 1360‚BRA�LIGHT4 1370�LIGHT6�PULB 1380‚PSHB�RESTORE�ACCB�WITH�COMMAND 1390‚TSTB 1400‚BMI�LIGHT7�SET�THE�ALARM�LIGHT 1410‚LDAA�#%11110111�RESET�THE�LIGHT�ON�CA2 1420‚ANDA�PIA1CA 1430‚STAA�PIA1CA 1440‚BRA�LIGH41 1450�LIGHT7�LDAA�#%00001000�SET�CA2�ON 1460‚ORAA�PIA1CA 1470‚STAA�PIA1CA 1480‚BRA�LIGH41 1490�* 1500�LIGHTA�PULB 1510‚PSHB�RESTORE�THE�COMMAND�CODE 1520‚LDAA�#%01000000�SET�THE�BUZZER�BIT 1530‚TSTB 1540‚BMI�LIGHTC�IF�SETTING,�GO�TO�SET�LIGHT 1550‚COMA�SET�THE�MASK�FOR�SWITCH�OFF�THE�LIGHT 1560‚ANDA�PIA1DA�CUT�THE�LIGHT 1/ 570�LIGHTB�STAA�PIA1DA 1580‚PULB 1590‚PULA�RESTORE�REGISTERS 1600‚CLC 1610‚RTS�EXIT�WITH�NO�ERROR 1620�LIGHTC�ORAA�PIA1DA�UPDATE�THE�LIGHT 1630‚BRA�LIGHTB�EXIT�AND�SET 1640�* 1650‚END  2€0010‚NAM�POWFL 0020�* 0030�*�POWER�FAIL�ROUTINE�FOR�BATERY�BACKUP�OPTION 0040‚OPT�REL,LLEN=120 0050�* 0060�*�IN�CASE�OF�POWER�FAIL�(�BIT�7�OF�PIA1DB=1)�THE�PROGRAMM�LOOPS 0070�*�HERE�UNTIL�POWER�IS�RESTORED.THEN�IT�MAKES�A�BACKUP�RESTART�WITH 0080�*�SOFT�START. 0090�* 0100‚XDEF�POWFL 0110‚XREF�BACKST,BACKUP,ACTIV,POFL,POFSTP,POFCNT,CURSTP 0120�* 0130�* 0140�POWFL�TST�PIA1DB 0150‚BMI�POWFL1�TEST�IF�POWER�IS�OFF 0160‚RTS 0170�POWFL1�LDX�#0 0180‚STX�DOMDL1�CLEAR�ALL�DIG�OUTPUTS 0190‚STX�DOMDL1+2 0200‚STX�DOMDL1+4 0210‚STX�DAMDL1�ALL�TEMPERATURE�OUTPUTS�ZERO 0220‚STX�DAMDL1+2 0230‚STX�DAMDL1+4 0240‚INC�POFL�NUMBER�OF�POWER�FAILS�IN�RUN 0250‚CLR�POFCNT‚POWER�DOWN�TIME�RESET�AT�0 0260‚LDAB�CURSTP 0270‚STAB�POFSTP�SAVE�STEP�IN�WHICH�POWER�FAILED 0280�POWFLW�TST�ASMTIM 0290‚BMI�SKIP�INCREMENT�COUNTER�EACH�HALF!!!�SECOND 0300‚INC�POFCNT+1 0310‚BNE�SKIP 0320‚INC�POFCNT 0330�SKIP�TST�PIA1DB 0340‚BMI�POWFLW 0400‚JMP�BACKST�MAKE�BACKUP�RESTART 0410‚END 10‚PAGE 0420�* 0430�*�INIT�THE�PTM�FOR�ACIA�BAUD�RATE�GENERATION 0440�*�COUNTERS�1�AND�2�WILL�BE�USED�FOR�THE�BOAT�PULLER 0450�* 0460�*�ACIA�BAUD�RATE�IS�PROVIDED�BY�COUNTER�3�OF�PTM 0470�* 0480�* 0490�* 0500�TINIT�LDX�#TMCR13�MAKE�BE�SURE�TIMER�IS�READY�TO�INIT 0510‚LDAA�#7 0520�TINT1�CLR�0,X 0530‚INX 0540‚DECA 0550‚BNE�TINT1 0560�* 0570�*�BAUD�RATE�GENERATOR�INIT 0580�* 0590�BAUD5€ 0300Þþÿ)ÑÎ,{ÿ)ÓÎ)Ñ?'Å&~!#Æ Å&~'Æþ,|ŒDK&~'ÿ,yú,X÷,XÎ, ÿ)ÓÎ)Ñ?'Å& Æ Å'ÌÆþ,¡ŒDK'Ïÿ,žú,X÷,Xþ)Ñ_¦� 'W�;' ó¦ÿ)Ñ� 'G� 'òÎ,`¡&3êþ)Ñ�D&â†=¡&*Î,»ÿ)ÓÎ)Ñ7?'Å'o~'3� '�,& þ)Ñ ¸m&Ã~' ÷,[Å'Å`'$Å@'Å &ÎUDÅ€'ö,XÅ'¼,|''Å'¼,¡'~'Å&ùö,XÅ'¼,|'í Å'¼,¡'âÄ Á &~&ù…'… &Æ ñ, &ñ,©'銷,X„�'~$Æ ñ, &¶,{·, ñ,©&þ,„ÿ,©ñ,¡&Î,|ÿ)ÑÎ,¡ÿ)ÓÎ)ÑÆ?ÆtSõ,['~'ö,[ÄPÁP'ôÆ ú,r÷,rÆ ú,—÷,—½)i$~'/ö,[Å 'Î,žÿ)ÑÎ)½ÿ)ÓÆ Î)Ñ?Î,q?'~&ð?&ùö,[Å@'~"Ýö,ˆÄ÷,­ö,‰÷,®þ,Šÿ,¯þ,„ÿ,³½'¨Æú,—÷,—Î,–?&Á?'},³&},´'³Á&¯,³,´ æ½'3Î,q?&~"ÊÁ &–ö,ˆÄÁ&WÎÿÿÿ,‚ÿ,§þ,�Æ?'ÿ,’Î,q?'~"ÚÎ)Öÿ,µÎ*Uÿ,·ÿ,¹Î,–?&oþ,�Æu?'ÿ)ÑÎ*Kÿ)ÓÎ)ÑÆ ?Îÿÿÿ,§Î,–?&Kö,[Å '"½'CÎ,q?'~&ðÎ)½ÿ)ÑÎ,žÿ)ÓÎ)ÑÆ ? %½'=})Ê'ÆBð)ʽ(*?þ,”ÿ,¹Î,–?&~"~&ðþ*Vÿ,µ ÿ,’ÿ,”þ*Xÿ,·Î,–½'‡þ,·ÿ)Íÿ)Ͻ'3Î,qæ#¦$þ)Í?/%~#¤Î,qæ¦ ÷)Í·)Î?'Á '~&ðÎ,–æ#¦$þ)Ï?/$Î,–?&~$Á &áö,ˆÄÁ'~"¸Îÿÿÿ,‚ÿ,§ÿ)Ëþ,�Æ?'ÿ,’Î)Öÿ,µÎ*Uÿ,·Î,q?&¬Î,–?&¥þ,�Æu?'ÿ)ÑÎ*Kÿ)ÓÆ Î)Ñ?'´½(g&ô ­Î,–æ#¦$þ)Ï?/$Î,–æ¦ ÷)Ï·)Ð?'Á ':~&ðþ)Íÿ)Ñþ)Ïÿ)ÓÆ€Î)Ñ? $~"¸?'½(g&íþ)Ñÿ)Íþ)Óÿ)Ïþ)Ëÿ)Ë~#þ)Ëÿ)ÑÎ-!ÿ)ÓÎ)ÑÆ½-âÎ-½(4~"¸ö,[Å '~'Å€'Sþÿ,^þÿÆÎ,»?þ,^ÿ$Á&~&ýÁ&~'$Á&~'~'ö,[Å'¶,]6¶,\644446ÎÿÿúþnÆ ñ, &Æ0÷, ½)i$~'/ö,XÅ&~&:Î,|ÿ)ÑÎ,¡ÿ)ÓÎ)ÑÆ ?Î,q?'~&ð?&ùö,ˆÄÁ'Á'~'¶,[…'~'…'Á&õÆ Á'ƶ,ˆ„x·,­¶,[…'Á&׆º,—·,— |)Õ¶,[…@&KÆú,—÷,—Î,–½)4'?'~&ð?&ù½'3Î,q?'Á &ë~"¸})Õ& þ,u¼,s'â|)Õþ,sÿ,œÎ,–?&Ë ÐÎCN¼,ž&~'Î+Yÿ,šÎ,Wÿ,œö,[Å&|)Õ½'0 ‡½'3†½)'Î,q?'4Á &’†½)'Î,–?' Á &~"¸~&ðþ)Ëÿ)ÑÎ-ÿ)ÓÎ)ÑÆ½-?Î- ~$})Õ&î¼,s'±†½)'Î,–?'Á 'Ê~%&})Õ& î¼,˜'á|)Õþ,uö,s¶,t?.L·)¶þ,šö,˜¶,™?.L±)¶$·)¶þ,uÿ)Ñþ,šÿ)Óö)¶Î)Ñ? $~"¸?'½(©&í~%�ÎCN¼,y&~'~'ö,[Å'¶,X…',r·,r†·,ˆ |)Õ,|ö,XÅ' Æ ñ,©&ÎSAÿ,©Î,¡ÿ)ÑÎ,|ÿ)ÓÎ)ÑÆ ?Î,q½)4'?'~&ð?&ùö,ˆÄÁ' Á'Á'~'ƶ,ˆ„x·,­ö,XÅ&Î,|ÿ)ÑÎ,¡ÿ)ÓÎ)ÑÆ ?ö,[Å@'~%]½'¨Æ~%Æ? ½'=?Æ õÆÎ,» îÆ êÆ æÆ âÆ ÞÆ ÚÆ ÖÆ ÒÆ ÎÆ ×Î, Æ ÃÆ6 ¿? $½'=?9Î,q½'hö,—ÄÁ&Æõ,—&Îÿÿ¼,¡'ú,—÷,—Î,–½'h9ÿ'…?'Á'_? þ'…?'Á'_? 9Î,–æÄüÊç½)4'?& ?&Î,Ô? 9~&ðÎ, Æ?'9ö,­Å€'~'(Ķ,ˆ„' �'~' Á&ùö,XÄÁ& ö,­Ä¶,ˆ„&ãö,[Å'9Î,¡ÿ)ÑÎ,çÿ)ÓÎ)ÑÆ?þ,©ÿ,ðö, ÷,óÎ,ç? Î)ÖÆ? ö)ÖÁY'ÍÆ€?#½'=?Î(3?5Z&ø9Æ�?#ö,[Å&? 9})Ê&ÿ(eÆ÷)ʽ(*þ(e?5|)Êö)ÊÁB-)Ê97þ)˼)·'ÿ)·ÿ)¹Î-!ÿ)»Î)¹Æ½-âÎ-½(437†€·)º)¹Î--ÿ)»Î)¹Æ½-â½(ì3Z97þ)˼)·'ÿ)·ÿ)¹Î-ÿ)»Î)¹Æ½-?Î- ½(437¶)¶·)º)¹Î-.ÿ)»Î)¹Æ½-?½(ì3Z9þ)Ñ æ÷)º)¹Î-5ÿ)»Î)¹Æ½-âþ)Óæÿ)Ó÷)ºÎ-=ÿ)»Î)¹Æ½-âÎ-#½(49µ,X'þ)Ëÿ)Ë9¦�H&¦ �R&¶,Y§¶,Z§ ¦ Š@§ o9¦�U&ù¦ �D&ó¶,ʧ¶,Ë ßþÿ,�ÿ,µÆ??$„€HYIM&Á" 9DV„DVF÷)´·)µ»,‘ù,�÷*V·*W»)µù)´?% ÿ,’ÿ,·ÿ*X 9ÿþ.˜$€NCWB LV@D€M*Z+XDK0  SA*Z+XDK 0 LO)Ö*UVERIFY IN PROGRESSXXXXXXXX.XX:X EXISTS. OVERWRITE? RECORD XXXXXSECTOR XXXX OFFSET XX SRC-XX DST-XX]&~-Ël&l÷-Þÿ-àÎ-Ìÿ-Û†·-ßþ-à¦æÎ-Öoîà¢%Î-Öl ñë©Î-Ö67¦‹0æ 'Z&ü§32Î-Öl&ll&lj ,Ãïî¦Î-Öî m&jjî§Î-Öl&lj&Þþ-àO9'èd ]'/l&lÿ.þ.¦„� #‹‹0m&jjî§þ.� Z&Ýþ.96†dfJ&ù29  ½.G ½.Y$ 0îîî† §0î11nÿ. þ.œoo†<§þ. 9ÿ. þ.œ¦†4§†<§.¢.£¦+ z.£&÷z.¢&ò ¦%0îîîæÄÁ&„ þ. 9.#ä°„1570‚STAA�1,X 1580‚LDX�SAVEX1 1590‚JSR�SETAO�SET�THE�VALUE�ON�OUTPUT�DIRECTLY 1600�RSTRP3�PULB 1610‚PULA�SAVE�REGISTERS 1620‚LDX�SAVEX1 1630‚RTS�NOW�EXIT 1640ˆPAGE 1650�UPRAMP�EQU„*„ROUTINE�WICH�RAMPS�ALL�OUTPUTS�WITH�RAMP�FLAG�SET 1660�* 1670‚PSHA 1680‚PSHB 1690‚STX�SAVEX1 1700ˆCLRB 1710�UPR1ƒINCB 1720ˆCMPBƒ#17 1730ˆBNE„UPR2…BRANCH�IF�NOT�DONE 1740ˆJMP„UPR6…EXIT 1750�UPR2ƒJSR„AOPTRSƒCOMPUTE�POINTERS�IN�AO-MIRROR,�AO�INCREMENT 1790ˆLDAAƒ0,X†TEST�IF�RAMP 1800ˆANDAƒ#$FE 1810ˆCMPAƒ#$FE 1820ˆBEQ„UPR4A„BRANCH�IF�NO�RAMP 1830�*�PUT�A.O.�VALUE,�A.O.�INCREMENT�IN�WORKSPACE�TO�COMPUTE�NEW�VALUE 1831ˆPSHBŒKEEP�A.O.�NR 1840ˆSTX„SOURCEƒX�POINTS�TO�AOINCR 1850ˆLDX„#AOWORK 1860ˆSTX„DESTIN 1880ˆLDX„#4 1890ˆSTX„LENGTH 1900ˆJSR„BUFBUFƒMOVE�INCREMENT 1910ˆLDX„TEMP3„POINTER�TO1 �AOINCR 1920ˆLDX„4,X†GET�A.O.�REMAINING 1930ˆSTX„AOWORK+6 1940ˆLDX„TEMP2„AOMIR�POINTER 1950ˆLDX„0,X†GET�A.O.�VALUE 1960ˆSTX„AOWORK+4� 1961�*�COMPUTE�NEW�OUTPUT�VALUE 1962ˆCLR„UPDOWNƒINDICATES�ADD�OPERATION 1970ˆLDX„#AOWORK 1980ˆTST„0,X†CHECK�SIGN 1990ˆBMI„UPR3…IS�A�RAMP�DOWN 2010ˆJSR„ADSUB4ƒRAMP�UP 2020ˆBRA„UPR4 2030�UPR3ƒASL„0,X†KILL�SIGN 2040ˆLSR„0,X 2050ˆINC„UPDOWNƒSET�SUBTRACT�OPERATION 2060ˆJSR„ADSUB4ƒRAMP�DOWN 2070ˆASL„0,X†RESTORE�SIGN 2080ˆSEC 2090ˆROR„0,X 2100�*�MOVE�RESULT�BACK;�AO�VALUE�IN�AOMIRROR,�AO�REMAINING�IN�AO�INCREMENT 2110�UPR4ƒLDAAƒ6,X†AO�REMAINING 2120ˆLDABƒ7,X 2130ˆLDX„TEMP3„AOINCR�POINTER 2140ˆSTAAƒ4,X 2150ˆSTABƒ5,X 2160ˆLDX„TEMP2„AOMIR�POINTER 2170ˆLDAAƒAOWORK+4 2180ˆSTAAƒ0,X 2190ˆLDAAƒAOWORK+5 2200ˆSTAAƒ1,X 2205ˆPULBŒA.O.�NR 2210�UP@€0010ˆNAM„SCREEN 0020ˆOPT„LLEN=120,REL 0030ˆSPC„3 0040ˆXDEFƒPDATA,PDATA1,OUTCH,PCRLF,PCRLF3,SPACE,SCROLL,CLRDSP,LEFT 0041ˆXDEFƒBLINK,CURSOR,TOSCR,BOSCR,NOBLNK 0050ˆSPC„1 0060ˆXREFƒAXA,CPBAX,BUFBUF,SOURCE,DESTIN,LENGTH 0070ˆSPC„3 0080ˆBSCT 0090ˆSPC„1 0100�CURSOR�RMB„2ˆCURSOR�ADDRESS 0110�TOSCR‚RMB„2ˆTOP�OF�SCREEN�POINTER 0120�BOSCR‚RMB„2ˆBOTTOM�OF�SCREEN�POINTER 0133�SAVEX‚RMB„2ˆSTORAGE�OF�X�REG. 0140ˆSPC„3 0141ˆDSCT 0142�SAVE2‚RMB„2ˆTEMP.�STORAGE�OF�X�REG 0143ˆSPC„3 0150ˆPSCT 0160ˆSPC„1 0170�PDATA‚EQU„*ˆPRINTS�CR,LF,DATASTRING 0180ˆJSR„PCRLF 0190�* 0200�PDATA1�EQU„*ˆPRINTS�DATASTRING 0210ˆPSHA 0220�PDATA2�LDAAƒ0,X 0230ˆCMPAƒ#4‡EOF 0240ˆBEQ„PDATA3ƒBRANCH�IF�DONE 0250ˆBSR„OUTCH„DISPLAY�CHAR. 0260ˆINX 0270ˆBRA„PDATA2 0280�PDATA3�PULA 0290ˆRTS 0300ˆPAGE 0310�OUTCH‚EQU„*ˆWRITES�CHARACTER�IN�ACC�A�AT�CURSOR�POSITION 0320�*�IN�MEMORY;�MOVES�CURSOR�PROMPT�ONE�POSITION 0330ˆPSHA 0340ˆPSHB 0350 B€ABC1.RC:1 ÿÿÿÿAPÿAPÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ17/06/8217/06/82START 00.01.00èLXXXÿÿÿÿÿA`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@START1 00.01.00èLXXXÿÿÿÿÿA`ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@  0920�PCRLF3�EQU„*ˆSENDS�3�CR'S�AND�LF'S 0930ˆBSR„PCRLF 0940ˆBSR„PCRLF 0950ˆBSR„PCRLF 0960ˆRTS 0970ˆSPC„3 0980�SPACE‚EQU„*ˆDISPLAYS�THE�NUMBER�OF�SPACES�GIVEN�BY�ACC�B 0990ˆPSHA 1000ˆLDAAƒ#$20 1010�SPACE1�JSR„OUTCH„ 1020ˆDECB 1030ˆBNE„SPACE1 1040ˆPULA 1050ˆRTS 1060ˆSPC„3 1070�CLRDSP�EQU„*ˆCLEARS�DISPLAY�FROM�THE�CURSOR�POSITION�ONWARD 1080ˆPSHA 1090ˆLDX„CURSOR 1100ˆSTX„SAVE2 1110ˆLDAAƒ#$20…SPACE 1120�CLR1ƒSTAAƒ0,X 1130ˆINX 1140ˆCPX„BOSCR 1150ˆBNE„CLR1…CLEAR�ALL�ME2 }E€~ALPHA.RC:1 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ17/06/8217/06/82GO 00.00.30 ¼¼¼ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@  LENGTH 1390ˆLDX„TOSCR 1400�SCROL1�STX„DESTIN 1410ˆLDAAƒ#$80 1420ˆJSR„AXA 1430ˆSTX„SOURCE 1440ˆCPX„BOSCR 1450ˆBEQ„SCROL2ƒBRANCH�IF�DONE 1460ˆLDABƒ#80 1470ˆSTABƒLENGTH+1 1480ˆJSR„BUFBUFƒMOVE�A�LINE�UPWARDS 1490ˆLDX„DESTIN 1500ˆLDAAƒ#$30 1510ˆJSR„AXA†POINT�TO�BEGINNING�NEXT�LINE 1520ˆBRA„SCROL1ƒ 1530�SCROL2�LDX„DESTIN 1540ˆSTX„CURSORƒSET�CURSOR�TO�BOTTOM�OF�SCREEN 1550ˆJSR„CLRDSPƒCLEAR�THE�BOTTOM�LINE 1560ˆRTS 1570ˆPAGE 1580ˆEND }Hh€”0010ˆNAM„SETPNT� 0020ˆOPT„LLEN=120,REL 0030ˆSPC„2 0040ˆXDEFƒSPFLAG,SPSTAT,SPRECP,FNDAO 0050ˆSPC„1 0060ˆXREFƒPDATA,PDATA1,OUTCH,PCRLF,PCRLF3,SPACE,SCROLL,CLRDSP,LEFT 0070ˆXREFƒNOBLNK,BLINK,CURSOR,TOSCR,BOSCR 0080ˆXREFƒCVTSP,CVTNUM,BCDBIN 0090ˆXREFƒBINBCD,NUMBER,FACTOR,SECOND,BUFADD,DSPBUF,BUFFER 0100ˆXREFƒDIV4,DIVID,DIVISR,SYSTAB 0110ˆXREFƒFPDIV,FPMUL,FIX,HSMUL,MUL1,MUL2,R3,R4 0120ˆXREFƒAXA,CPBAX,BUFBUF,SOURCE,DESTIN,LENGTH 0130ˆXREFƒCURSTP,AIMIR,AOMI1,DIMIR,DOMIR 0140ˆXREFƒRFLAG,STEPPT,COUNT,COUNT1,TEMPX,VALVE,POINTR,DOBYTE,TEMP1 0150ˆXREFƒSAVEX,BLOOP,R0,R1,R2,R5,R6,R7,DVECTR,EDVECT,OFFSET,OUTPUT 0160ˆXREFƒSAVE1,BUFPTR,INCVAL,EXIT,RCEDIT,EDIT02,AOVAL,ADDRPT 0170ˆXREFƒNAMDSP,NAMAO,DSPAI,DSPAO,TSTBIT,SETBIT,LOCK,CONLCK 0180ˆXREFƒM31,M24,M23,M25,M7,INIT1,INIT2 0181ˆXREFƒAICHKF 0190ˆSPC„3 0200ˆDSCT 0210�SPFLAG�RMB„1ˆFLAG�SET�IF�SETPOINT�CHANGE�IN�STATUS 0211�AOOFF‚RMB„1ˆOFFSET�IN�SYSTAB+12 0220ˆSPC„3 0230�*******�MACRO�DEFINITIONS�******* 0240�* 0250�*�MACRO�WHICH�SETS�INTITIAL�PARAMETERS�FOR�NAME�DISPLAY; 0260�*�ARGUMENTS�ARE�THE�SYSFILE�POINTER�AND�THE�OFFSET�IN�AN�ENTRY� 0270�INITƒMACR 0280ˆLDX„\0 0340ˆLDAAƒ#\1 0341ˆJSR„INIT1 0360ˆENDM 0370ˆSPC„3 0380�*�THIS�MACRO�SENDS�CURSOR�INSTRUCTIONS�TO�THE�CRT 0390�*�THE�SPECIFIED�ARGUMENT�IS�THE�LINE�NUMBER 0400�*�OF�THE�INSTRUCTION,�FOLLOWED�BY�THE�POSITION�ON�THE�LINE 0410�*�IT�CALLS�BLINK�TO�PUT�CURSOR�ON�SCREEN 0420�CURPOS�MACR 0430ˆJSR„NOBLNK 0440ˆLDX„#\0 0450ˆLDAAƒ#\1 0460ˆJSR„AXA 0470ˆJSR„BLINK 0480ˆENDM 0490ˆPAGEƒ 0500�*�MACRO�MOVE�SETS�THE�PARAMETERS�FOR�BUFBUF�AND�CALLS�BUFBUF 0510�*�THE�ARGUMENTS�ARE�SOURCE�POINTER,�DESTINATION,�LENGTH�OF�DATASTRING 0520�MOVEƒMACR 0530ˆLDX„\0 0540ˆSTX„3 SOURCE 0550ˆLDX„#\1 0560ˆSTX„DESTIN 0570ˆLDX„#\2� 0580ˆSTX„LENGTH 0590ˆJSR„BUFBUF 0600ˆENDM 0610ˆSPC„2 0620�*�MACRO�TO�PUT�VALUES�IN�A,�B�AND�X�REGISTER 0630�PARAM‚MACR 0640ˆLDAAƒ\0 0650ˆLDABƒ\1 0660ˆLDX„\2 0670ˆENDM 0680ˆSPC„2 0690�*�MACRO�WHICH�ADDS�OFFSET�TO�POINTER;�RESULT�IN�POINTER�AND�X 0700�ADDA2X�MACR 0710ˆLDAAƒ\0 0720ˆLDX„\1 0730ˆJSR„AXA 0740ˆSTX„\1 0750ˆENDM 0760ˆSPC„3 0770�*�MACRO�WHICH�PUTS�RETURN�ADDRESS�FOR�KEYBOARD�ENTRY�IN�DVECTR 0780�*�THEN�IT�RETURNS�TO�STEPSCAN�(EXIT);ARGUMENT�IS�RETURN�ADDRESS 0790�RETURN�MACR 0800ˆLDX„#\0 0810ˆSTX„DVECTR 0820ˆJMP„EXIT 0830ˆENDM 0840ˆPAGE 0850ˆPSCT 0851ˆSPC„1 0852�SPRECP�EQU„*ˆMOVE�RECIPE�DATA�TO�CHANGE�BUFFER�AND�BACK 0853�*–WHEN�CHANGES�ARE�MADE 0854ˆMOVEƒOUTPUT,BUFFER,46 0855ˆJMP„CHSP 0856�*�RETURN�HER�AFTER�SETPOINTS�ARE�CHANGED 0860�SPRCP1�LDX„#BUFFER‚NEW�VALUES�IN�THE�OUTPUTFIELD 0861ˆSTX„SOURCE 0862ˆLDX„OUTPUT 0863ˆSTX„DESTIN 0864ˆLDX„#46†LENGTH�OF�DATA�RECORD 0865ˆSTX„LENGTH 0866ˆJSR„BUFBUFƒMOVE�DATA�TO�CORRECT�MEMORY 0867ˆJMP„RCEDITƒBACK�TO�RECIPE�EDITOR 0868ˆSPC„3 0870�SPSTAT�EQU„*ˆMOVES�THE�WITH�A.I.'S�CORRESPONDING�A.O.�DATA�TO 0875�*�A�CHANGE�BUFFER,�FOLLOWED�BY�THE�UNLINKED�A.O.'S�AND�DIGITAL�OUTPUTS 0876ˆLDX„SYSTAB+4 0880ˆJSR„INIT2ƒSET�INITIAL�PARAMETERS 0885ˆBEQ„SPST04ƒBRANCH�IF�NO�ENTRIES�IN�A.I.�TABLE 0890�SPST01�LDAAƒ0,X†GET�A.I.NR 0895ˆSTAAƒBLOOP 0900ˆLDABƒ14,X…GET�LINKED�A.O.�NR 0905ˆBEQ„SPST02ƒBRANCH�IF�NOT�LINKED 0910�*�FIND�CORRESPONDING�A.O.�VALUE 0915ˆJSR„AOVAL 0926ˆJSR„DCARE1ƒTEST�FOR�DON'T�CARE;�CHANGE�TO�STANDARD 0930ˆLDX„#BUFFER‚DON'T�CARE�FORMAT�(7FFF)�AND�STORE�DATA�IN�TEMP1 0935ˆLDAAƒ#2 0940ˆLDABƒBLOOP„A.O.�NR 0945ˆJSR„ADDRPT 0950ˆLDAAƒTEMP1 0955ˆSTAAƒ0,X 0960ˆLDAAƒTEMP1+1 0965ˆSTAAƒ1,X 0970�SPST02�DEC„COUNT 0975ˆBEQ„SPST04ƒBRANCH�IF�DONE�WITH�A.I.'S 0980ˆADDA2X�#CNST15,POINTR 0985ˆBRA„SPST01ƒNEXT�A.I. 0990�*�MOVE�THE�UNLINKED�A.O.'S 0991�SPST04�LDX„#BUFFER+32 0992ˆSTX„TEMPX 0995ˆLDX„SYSTAB+12 1000�SPST05�STX„POINTR 1005ˆLDABƒ0,X 1006ˆBEQ„SPST06ƒBRANCH�IF�DONE 1010ˆJSR„AOVAL 1021ˆJSR„DCARE1ƒTEST�FOR�DON'T�CARE;�CHANGE�TO�STANDARD 1023ˆLDX„TEMPX„DON'T�CARE�FORMAT�(7FFF)�AND�STORE�DATA�IN�TEMP1 1025ˆLDAAƒTEMP1 1030ˆSTAAƒ0,X 1035ˆLDAAƒTEMP1+1 1040ˆSTAAƒ1,X 1041ˆINX 1045ˆINX 1060ˆSTX„TEMPX 1065ˆLDX„POINTR 1070ˆINX 1075ˆBRA„SPST05 1080�*�GET�D.I.�VALUES 1085�SPST06�LDX„DOMIR 1090ˆSTX„BUFFER+40 1095ˆLDX„DOMIR+2 1100ˆSTX„BUFFER+42 1105ˆLDX„DOMIR+4 1110ˆSTX„BUFFER+44 1115�*�CHANGE�THE�SETPOINTS 1120ˆJMP„CHSP 1125�*�RETURN�HERE�AFTER�CHANGES�ARE�MADE 1126�SPST10�LDX„SYSTAB+4 1130ˆJSR„INIT2ƒSET�INITIAL�PARAMETERS 1131ˆBEQ„SPST15ƒBRANCH�IF�NO�A.I.'S 1140�SPST11�LDABƒ0,X†GET�A.I.NR 1150ˆLDAAƒ14,X…GET�LINKED�A.O.�NR 1155ˆBEQ„SPST12ƒBRANCH�IF�NOT�LINKED 1156ˆSTAAƒBLOOP 1160�*�FIND�CORRESPONDING�A.O.�VALUE 1180ˆLDX„#BUFFER 1185ˆLDAAƒ#2 1195ˆJSR„ADDRPT 1201ˆJSR„DCARE2ƒCHANGES�DON'T�CARE�FORMAT�TO�STATUS�DON'T�CARE 1202ˆLDABƒBLOOP„FORMAT�(0800)�AND�STORES�DATA�IN�TEMP1 1203ˆJSR„AOVAL 1204ˆLDAAƒTEMP1 1205ˆSTAAƒ0,X 1210ˆLDAAƒTEMP1+1 1215ˆSTAAƒ1,X 1220�SPST12�DEC„COUNT 1225ˆBEQ„SPST15ƒBRANCH�IF�DONE�WITH�A.I.'S 1230ˆADDA2X�#CNST15,POINTR 1235ˆBRA„SPST11ƒNEXT�A.I. 1240�*�MOVE�THE�UNLINKED�A.O.'S 1245�SPST15�CLRA 1250�SPST16�STAAƒAOOFF„OFFSET�IN�SYSTAB+12 1252ˆLDX„SYSTAB+12 1254ˆJSR„AXA 1256ˆLDABƒ0,X 1258ˆBEQ„SPST20ƒBRANCH�IF�NO�MORE�A.O.'S 1259ˆSTABƒBLOOP 1260ˆLDX„#BUFFER+32 1261ˆASLAŒMULTIPLY�OFFSET�B4 Y�2�FOR�DATA 1262ˆJSR„AXA 1265ˆJSR„DCARE2ƒCHANGES�DON'T�CARE�FORMAT�TO�STATUS�DON'T�CARE 1270ˆLDABƒBLOOP„FORMAT�(0800)�AND�STORES�DATA�IN�TEMP1 1295ˆJSR„AOVAL„FIND�CORRECT�PLACE�OF�A.O.�IN�STATUS 1300ˆLDAAƒTEMP1 1305ˆSTAAƒ0,X…MOVE�DATA�TO�STATUS 1310ˆLDAAƒTEMP1+1 1315ˆSTAAƒ1,X 1320ˆLDAAƒAOOFF„NEXT�A.O. 1325ˆINCA 1335ˆBRA„SPST16ƒBRANCH�IF�NOT�DONE 1340�*�MOVE�DIGITAL�OUTPUT�VALUES 1345�SPST20�LDX„BUFFER+40 1350ˆSTX„DOMIR 1355ˆLDX„BUFFER+42 1360ˆSTX„DOMIR+2 1365ˆLDX„BUFFER+44 1370ˆSTX„DOMIR+4 1375ˆJMP„EDIT02ƒBACK�TO�STATUS�EDITOR 1380ˆSPC„3 1493�DCARE1�EQU„*ˆCHANGES�FORMAT�OF�STATUS�DON'T�CARE�(0800) 1494�*�TO�DON'T�CARE�FORMAT�FOR�A�RECIPE�(7FFF);B-REG�HAS�A.O.�NR 1495ˆLDX„0,X 1496ˆSTX„TEMP1„KEEP�DATA 1498ˆJSR„INCVALƒTEST�FOR�DON'T�CARE 1499ˆLDAAƒ0,X 1500ˆANDAƒ#$01 1501ˆBNE„DCARE3ƒBRANCH�IF�NOT�DON'T�CARE 1502ˆLDX„#$7FFF 1503ˆSTX„TEMP1„CHANGE�THE�DON'T�CARE�FORMAT 1504�DCARE3�RTS 1506ˆSPC„3 1508�DCARE2�EQU„*ˆCHANGES�FORMAT�OF�RECIPE�DON'T�CARE�(7FFF)�TO 1509�*�DON'T�CARE�FORMAT�OF�THE�STATUS�(0800);�STORES�DATA�IN�TEMP1 1510�*�SETS�INCREMENT�IN�A.O.�RAMP�INFO�TABLE 1511�*�ENTERED�WITH�A.O.�NR�IN�BLOOP 1513ˆLDX„0,X†DATA 1514ˆSTX„TEMP1 1521ˆLDABƒBLOOP 1525ˆJSR„INCVALƒFIND�STATUS�BIT�IN�A.O.�RAMP�INFO�TABLE 1535ˆLDABƒ#$FF 1540ˆLDAAƒTEMP1„GET�NEW�DATA 1545ˆCMPAƒ#$7F 1565ˆBNE„DCARE4ƒBRANCH�IF�NOT�DON'T�CARE 1573ˆLDAAƒ#$08…CHANGE�DON'T�CARE�FORMAT 1575ˆSTAAƒTEMP1 1576ˆCLR„TEMP1+1 1579ˆLDABƒ#$FE…MODIFY�FLAG�FOR�DON'T�CARE 1581�DCARE4�STABƒ0,X†'CLEAR'�RAMPING�FLAG 1582ˆRTS 1583ˆPAGE 1700�CHSPƒEQU„*ˆCHANGES�THE�SETPOINTS™ 1705�*�ENTERED�WITH�ADDRESS�OF�OUTPUT�DATA�IN�OUTPUT 1710ˆINITƒSYSTAB+4,CNST15 1715ˆJSR„NAMDSPƒDISPLAY�A.I.'S 1720ˆJSR„PCRLF3 1725ˆINITƒSYSTAB+6,CNST18 1730ˆJSR„NAMAO„DISPLAY�A.O.'S 1735ˆCURPOS�LINE3,0 1740ˆJSR„DSPAI„DISPLAY�THE�VALUES 1745ˆJSR„PCRLF3 1750ˆLDX„#BUFFER+30�POINTS�TO�LAST�A.I.�ENTRY 1755ˆSTX„TEMPX 1760ˆJSR„DSPAO 1765ˆCURPOS�LINE15,0 1770ˆLDAAƒ#-1 1775ˆSTAAƒDOBYTEƒCOUNTER 1780�SP10ƒINITƒSYSTAB+4,CNST15 1785ˆLDABƒDOBYTE 1790ˆBLT„SP20…BRANCH�IF�FIRST�8�A.I.'S 1795ˆADDA2X�#CST120,POINTR�POINT�X�TO�CORRECT�ENTRY 1800ˆLDAAƒCOUNT 1805ˆSUBAƒ#8 1810ˆSTAAƒCOUNT 1815ˆBGT„SP20…BRANCH�IF�A.I.'S�LEFT 1820ˆJMP„SP180„EXIT 1825�SP20ƒLDAAƒCOUNT 1830ˆCMPAƒ#8 1835ˆBLT„SP30…NR�OF�A.I.'S�TO�BE�DISPLAYED�YET 1840ˆLDAAƒ#8 1845�SP30ƒSTAAƒR6‡USED�AS�COUNTER 1850ˆSTAAƒCOUNT„MAXIMUM�IS�8 1855ˆSTX„TEMPX 1860ˆJSR„NAMDSP 1865ˆJSR„PCRLF 1870ˆLDX„TEMPX 1872ˆDEX 1874�SP40ƒSTX„POINTRƒPOINT�TO�SETPOINT�NR 1876ˆTST„SPFLAG 1878ˆBEQ„SP45…BRANCH�IF�RECIPE�CHANGE 1880ˆLDABƒ14,X…LINKED�A.O.�NR 1882ˆBNE„SP45…BRANCH�IF�LINKED 1884ˆJMP„SP160„NEXT�A.I. 1885�SP45ƒLDX„#SP60‚ 1890ˆSTX„EDVECTƒRETURN�ADDRESS 1895�SP50ƒJMP„GETSP 1900�SP60ƒCMPAƒ#$D 1905ˆBNE„SP70‚ 1910ˆJMP„SP170„NEXT�8�SETPOINTS�OR�EXIT 1915�SP70ƒLDABƒ#9 1920ˆCMPAƒ#$20…SPACE 1925ˆBEQ„SP150„BRANCH�FOR�NEXT�SETPOINT 1930ˆCMPAƒ#'D 1935ˆBNE„SP80…BRANCH�IF�NOT�DON'T�CARE 1940ˆCLR„VALVEƒCLOSE�THE�ASSOCIATED�VALVE�IF�ANY 1945ˆLDAAƒ#$7F 1950ˆSTAAƒFACTOR 1955ˆLDAAƒ#$FF 1960ˆSTAAƒFACTOR+1�PUT�DON'T�CARE�VALUE�IN�FACTOR 1965ˆLDABƒ#3 1970ˆJSR„SPACE 1975ˆBRA„SP100� 1980�SP80ƒLDAAƒ#1 1985�SP90ƒSTAAƒVALVE 1990ˆJSR„CVTSP„CONVERT�ENTRY;�RESULT�IS�IN�FACTOR 1995ˆBCC„SP100� 2000ˆJMP„SP330„VALUE�EXCEEDS�FULL�SCALE�RANGE 2005�SP100‚TST„DOBYTE 2010ˆBLE„SP110„BRANCH�IF�A.I. 2015ˆJMP„SP240„UNLINKED�A.O. 2020�SP110‚JSR„AIAO…FIND�ASSOCIATED�A.O. 2025ˆTSTB 205 30ˆBEQ„SP140„BRANCH�IF�NO�A.O. 2035ˆJSR„RATIO1ƒCHECK�RATIO�OF�CHANGED�A.I. 2040�SP120‚BCC„SP130� 2045ˆJMP„SP320„RATIO�ERROR 2050�SP130‚JSR„AIAO 2055ˆJSR„RATIO2ƒCHECK�ALL�OTHER�RATIO'S 2060ˆBCS„SP120„BRANCH�IF�ERROR 2065ˆJSR„AIAO…FIND�ASSOCIATED�A.O. 2070ˆJSR„SETVLVƒCHECKS�THE�INTERLOCKS�AND�OPENS/CLOSES�THE 2075ˆBCC„SP140„ASSOCIATED�D.O. 2080ˆJMP„SP340„INTERLOCK�ERROR 2105�*�PUT�RESULT�IN�THE�CORRECT�POSITION 2110�SP140‚LDX„POINTR 2115ˆLDAAƒ0,X†GET�A.I.�NR 2120ˆJSR„SETSP 2125�*�NEXT�SETPOINT 2130ˆLDABƒ#5 2135�SP150‚JSR„SPACE 2140ˆTST„DOBYTE 2145ˆBLE„SP160„BRANCH�IF�A.I. 2150ˆJMP„SP280� 2155�SP160‚ADDA2X�#CNST15,POINTR� 2160ˆDEC„R6‚ 2165ˆBEQ„SP170„NEXT�LINE 2170ˆJMP„SP40…NEXT�OUTPUT 2175�*�DISPLAY�NEXT�LINE 2180�SP170‚JSR„PCRLF 2185ˆINC„DOBYTE 2190ˆBGT„SP180� 2195ˆJMP„SP10…DISPLAY�NEXT�LINE 2200�SP180‚LDABƒDOBYTE 2205ˆCMPBƒ#2 2210ˆBNE„SP200� 2215ˆJMP„SP220� 2220�* 2225�*�DISPLAY�UNLINKED�A.O.'S 2230�* 2235�SP200‚INITƒSYSTAB+6,CNST18�EDIT�THE�UNLINKED�A.O.'S 2240ˆJSR„NAMAO 2245ˆJSR„PCRLF 2250ˆCLRA 2255�SP210‚LDX„SYSTAB+12�UNLINKED�A.O.�NUMBERS 2260ˆSTAAƒAOOFF„OFFSET�IN�SYSTAB+12 2265ˆJSR„AXA 2270ˆLDAAƒ0,X†A.O.�NR�IN�A 2275ˆBNE„SP230„BRANCH�IF�THERE�IS�AN�ENTRY 2280�SP220‚JMP„SP290� 2285�SP230‚STAAƒR2‡A.O.�NR 2290ˆJSR„UNAO…FINDS�ENTRY�IN�SYSTAB,�OFFSET�IN�DATA�BUFFER 2292ˆSTX„POINTR 2295ˆJMP„SP45‚ 2300�*�CONTINUE�WITH�UNLINKED�A.O.�CHANGE 2305�SP240‚LDX„POINTR 2310ˆLDAAƒR2 2315ˆSTAAƒR3‡A.O.�NR 2320ˆJSR„RATIO1ƒCHECK�RATIO�OF�CHANGED�A.O. 2325ˆBCC„SP260� 2330�SP250‚JMP„SP320„ERROR 2335�SP260‚LDAAƒR3‡A.O.�NR 2340ˆSTAAƒR2 2345ˆJSR„RATIO2ƒCHECK�ALL�OTHER�RATIO'S 2350ˆBCS„SP250„BRANCH�IF�ERROR 2355ˆLDX„POINTR 2360ˆJSR„SETVLV 2365ˆBCC„SP270„BRANCH�IF�OK 2370ˆJMP„SP340„INTERLOCK�ERROR 2395�*�PUT�RESULT�IN�CORRECT�POSITION 2400�SP270‚LDAAƒAOOFF„OFFSET�INUNLINKED�A.O.�TABLE 2405ˆADDAƒ#17†SKIP�A.I.�ENTRIES�+1 2410ˆJSR„SETSP„CHANGE�SETPOINT�IN�BUFFER 2415�*�NEXT�SETPOINT 2420ˆLDABƒ#5 2425ˆJSR„SPACE 2430�SP280‚LDAAƒAOOFF„OFFSET�IN�SYSTAB+12 2435ˆINCA 2440ˆCMPAƒ#4‡DONE? 2445ˆBEQ„SP290„BRANCH�IF�ALL�A.O.'S�DONE 2450ˆJMP„SP210„NEXT�SETPOINT�CHANGE 2455�* 2460�SP290‚LDX„#M25…/ALL�CHANGES�OK?/ 2465ˆJSR„PDATA 2470ˆRETURN�SP300� 2475�* 2480�*�ENTER�HERE�AFTER�KEY�ENTRY 2485�* 2490�SP300‚CMPAƒ#'Y 2495ˆBEQ„SP310„BRANCH�IF�OK 2500ˆCURPOS�LINE1,0 2505ˆJSR„CLRDSP 2510ˆJSR„PCRLF 2511ˆTST„SPFLAG 2512ˆBNE„SP305„BRANCH�IF�STATUS�CHANGE 2513ˆJMP„SPRECPƒTRY�AGAIN�RECIPE�CHANGE 2525�SP305‚JMP„SPSTATƒIDEM�STATUS�CHANGE 2526�* 2527�SP310‚TST„SPFLAG 2528ˆBNE„SP315„BRANCH�IF�STATUS�CHANGE 2530ˆJMP„SPRCP1ƒSET�NEW�CHANGES�IN�STEP�RECORD 2531�SP315‚LDAAƒ#24 2532ˆSTAAƒAICHKFƒDELAY�A.I.�CHECK�23�SECONDS 2535ˆJMP„SPST10ƒSET�NEW�CHANGES�IN�STATUS 2540�*�ERRORS 2545�SP320‚LDX„#M31…/RATIO�ERROR/ 2550ˆBRA„SP350� 2555�SP330‚LDX„#M23…/NUMBER�TOO�LARGE/ 2560ˆBRA„SP350� 2565�SP340‚LDX„#M24…/INTERLOCK�ERROR/ 2570�SP350‚JSR„PDATA 2575ˆDEC„DOBYTEƒRESET�TO�THIS�LINE 2580ˆJMP„SP170� 2585ˆPAGE 2590�GETSP‚EQU„*ˆGETS�AN�ENTRY�FOR�SETPOINT�CHANGES�AND�STORES�IT 2591ˆLDX„#0 2592ˆSTX„NUMBER 2593ˆSTX„NUMBER+2 2595ˆLDX„#NUMBER‚IN�NUMBER 2600ˆSTX„TEMP1ƒ 2605ˆCLR„R4‡POSITION�OF�DEC.�POINT 2610ˆLDABƒ#3 2620ˆSTABƒBLOOP 2621ˆCLR„R3‡CHARACTER�COUNTER 2625�GETSP1�RETURN�GETSP2 2630�* 2635�*�ENTER�HERE�AFTER�KEY�ENTRY 2640�* 2641�GETSP2�TST„R3 2642ˆBNE„GETSP4ƒBRANCH�IF�NOT�FIRST�CHARACTER 2645ˆCMPAƒ#$D 2650ˆBEQ„GETSP8ƒEXIT 2655ˆCMPAƒ#$20…SP6 ACE 2660ˆBEQ„GETSP8ƒEXIT 2670ˆCMPAƒ#'D†DON'T�CARE 2671ˆBNE„GETSP4ƒBRANCH�IF�NOT�DON'T�CARE 2672ˆJSR„OUTCH 2675ˆBRA„GETSP8ƒEXIT 2676�GETSP4�CMPAƒ#$20…SPACE 2677ˆBEQ„GETS1„BRANCH�IF�ENTRY�FINISHED 2678ˆCMPAƒ#$D 2679ˆBEQ„GETS1„BRANCH�IF�FINISHED 2680ˆJSR„OUTCH 2681ˆCMPAƒ#'. 2685ˆBNE„GETSP5„BRANCH�IF�NOT�DECIMAL�POINT 2690ˆLDABƒBLOOP 2695ˆSTABƒR4‡STORE�ITS�POSITION 2700ˆBRA„GETSP1 2705�GETSP5�SUBAƒ#$30 2710ˆBLT„GETSP9ƒBRANCH�IF�ERROR 2715ˆCMPAƒ#9 2720ˆBGT„GETSP9ƒERROR 2725�GETSP7�LDX„TEMP1 2730ˆSTAAƒ0,X†KEEP�CHARACTER 2735ˆINX 2740ˆSTX„TEMP1 2741ˆINC„R3 2745ˆDEC„BLOOP 2755ˆBNE„GETSP1 2760ˆTST„R4 2765ˆBNE„GETSP8 2770ˆLDABƒ#1 2771ˆBRA„GETS2 2772�GETS1‚LDABƒBLOOP 2773ˆTST„R4 2774ˆBNE„GETS2„BRANCH�IF�DECIMAL�POINT�SET 2775ˆSTABƒR4‡SET�DECIMAL 2776ˆINCBŒBLOOP+1�SPACES 2777�GETS2‚JSR„SPACE 2780ˆCLRA 2785�GETSP8�LDX„EDVECTƒRETURN�ADDRESS 2790ˆJMP„X 2795�*ERROR 2800�GETSP9�LDABƒ#1 2805ˆJSR„LEFT…CURSOR�ONE�POSITION�LEFT 2810ˆLDAAƒ#'? 2815ˆJSR„OUTCH 2820ˆLDABƒ#1 2825ˆJSR„LEFT 2830ˆBRA„GETSP1 2835ˆSPCƒ3 2840�SETSP‚EQU„*†PUTS�THE�SETPOINT�CHANGE�IN�BUFFER 2845ˆLDX„#BUFFER‚ 2850ˆDECAŒA�=�A.I.�NR�OR�A.O.�POSITION�NR 2855ˆJSR„AXA†COMPUTE�THE�OFFSET 2860ˆJSR„AXA 2865ˆLDAAƒ0,X†GET�OLD�ENTRY 2870ˆANDAƒ#$80…KEEP�RAMPING�INFO 2875ˆORAAƒFACTORƒNEW�VALUE�IN�FACTOR 2880ˆSTAAƒ0,X 2885ˆLDAAƒFACTOR+1 2890ˆSTAAƒ1,X 2895ˆRTS 2900ˆSPC„3 2905�SETVLV�EQU„* 2910�*�OPENS�OR�CLOSES�WITH�MFC�ASSOCIATED�VALVES;�SAVE1�HAS�OPEN/CLOSED�INFO 2915ˆLDABƒ14,X…GET�D.O.�NR 2920ˆBEQ„SETV6„BRANCH�IF�NO�D.O.�ASSOCIATED 2925ˆSTABƒR2 2930ˆLDX„SYSTAB+10�DO�POINTR 2935ˆINX 2940ˆLDAAƒ#CNST10 2945�SETV1‚LDABƒ0,X†GET�DO�NR 2950ˆSTX„SAVEX„KEEP�POINTER 2955ˆCMPBƒR2 2960ˆBEQ„SETV2„BRANCH�IF�A�MATCH 2965ˆJSR„AXA 2970ˆBRA„SETV1„TRY�AGAIN 2975�SETV2‚LDX„#BUFFER+40 2980ˆSTX„BUFPTRƒDATA�ADDRESS 2985ˆLDX„SAVEX 2990ˆLDAAƒVALVEƒOPEN/CLOSED 2995ˆLDABƒ7,X†N.C.�=0/N.O.�=1 3000ˆBEQ„SETV3„BRANCH�IF�N.C. 3005ˆCOMA 3010ˆANDAƒ#$01…COMPLEMENT�BIT�0 3015�SETV3‚STAAƒR0 3020ˆBEQ„SETV4„BRANCH�IF�1�TO�0�TRANSITION 3025ˆJSR„LOCK…CHECK�THE�INTERLOCKS 3030ˆBRA„SETV5 3035�SETV4‚LDABƒR2 3040ˆSTABƒSAVE1 3045ˆJSR„CONLCKƒCHECK�THE�CONDITIONAL�INTERLOCKS 3050�SETV5‚BCS„SETV7„BRANCH�IF�ERROR 3055ˆLDABƒR2‡GET�D.O.�NR 3060ˆLDX„#BUFFER+40 3065ˆJSR„TSTBITƒGET�D.O.�BIT�IN�CARRY 3070ˆJSR„SETBITƒSET�IT 3075�SETV6‚CLC 3080�SETV7‚RTS 3085ˆPAGE 3090�AIAOƒEQU„*ˆFINDS�THE�ASSOCIATED�A.O.�ENTRY;�B=0�IF�NOT�FOUND, 3095�*�OTHERWISE�IT�CONTAINS�THE�NUMBER;�X,�TEMPX�CONTAINS�THE�POINTR�IN 3100�*�SYSTAB�TO�THIS�A.O. 3105ˆLDX„POINTRƒFIND�ASSOCIATED�A.O.�IN�SYSTAB-ENTRY 3110ˆLDAAƒ14,X…OUTPUT�NR 3115ˆBEQ„AIAO1„NO�OUTPUT�OR�VALVE�ASSOCIATED 3120ˆSTAAƒR2 3125ˆJSR„FNDAO 3130�AIAO1‚RTS 3135ˆSPC„3 3140�UNAOƒEQU„*ˆFINDS�CORRESPONDING�A.O.�IN�UNLINKED�A.O.'S 3145�*�B�=0�IF�NOT�FOUND,�OR�CONTAINS�THE�A.O.�NR;�R5�HAS�OFFSET�IN�DATA 3150�*�BUFFER;�X�POINTS�TO�ENTRY�IN�SYSTAB 3155ˆLDX„SYSTAB+12 3160ˆCLRA 3165�UNAO1‚LDABƒ0,X†UNLINKED�A.O.�NR 3170ˆBEQ„UNAO3„BRANCH�IF�DONE�WITH�UNLINKED�A.O.'S 3175ˆCMPBƒR2‡WANTED�A.O.�NR 3180ˆBEQ„UNAO2„A.O.�NR�FOUND 3185ˆINX 3190ˆINCA 3195ˆBRA„UNAO1„CHECK�NEXT�ENTRY 3200�UNAO2‚STAAƒR5‡OFFSET�IN�DATA�BUFFER 320 e€HYX.RC:1 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ7 ÿÿ!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ17/06/8217/06/82 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@ 00.00.00.sÁ^.sÁ^.sÁ^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ@  R�DON'T�CARE 3425ˆBNE„RAT17„BRANCH�TORCHECK�OTHER�VALUE�FOR�DON'T�CARE 3430ˆANDAƒ#$F 3435ˆSTAAƒDIVISR+2�STORE�VALUE�IN�DIVISOR�TO�COMPUTE�THE�RATIO 3440ˆLDAAƒ1,X 3445ˆSTAAƒDIVISR+3 3450ˆLDX„#0 3455ˆSTX„DIVISR 3460ˆSTX„DIVID+2 3465ˆLDAAƒFACTOR 3470ˆBITAƒ#$70 3475ˆBNE„RAT16„NO�NEED�TO�CHECK�THE�RATIO 3480ˆANDAƒ#$F 3485ˆSTAAƒDIVID„STORE�NEW�VALUE�IN�DIVIDEND 3490ˆLDAAƒFACTOR+1 3495ˆST h€S00500000001F9 S11B0000474141532E52433A31202020202020202020202020202020BA S11B001807D07FFF7FFF7FFF0CCC0CCC0B327FFF7FFF7FFF7FFF7FFF18 S11B00307FFF7FFF7FFF7FFF7FFF7FFF7FFF09C42EE07FFF06660E650A S11B00480FFF0E657FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF2F S11B00607FFF7FFF2020202020200400D2F00408168E12CB127403FAF2 S11B007821767FFF7FFF04CC066604CC7FFF7FFF7FFF7FFF7FFF7FFFD9 S11B00907FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFE001000087 S11B00A800002100000000000000000000000000000000000000388063 S11B00C0000400D2F00408168E12CB127403FA21767FFF7FFF04CC06E5 S11B00D86604CC7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F6B S11B00F0FF7FFF7FFF7FFF7FFF7FFFE00100000000210000000000007D S11B0108000000000000000000000000003880000400D2F00408168EAD S11B012012CB127403FA21767FFF7FFF04CC066604CC7FFF7FFF7FFF4A S11B01387FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFC3 S11B01507FFFE001000000002100000000000000000000000000000013 S11B0168000000003880000400D2F00408168E12CB127403FA21767FD7 S11B0180FF7FFF04CC066604CC7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FE9 S11B0198FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFFE00100000000215A S11A01B0000000000000000000000000000000000000003880000478 S9 D 3740ˆDEC„R7 3745ˆBEQ„RAT26„CHECK�THE�UNLINKED�A.O.'S 3750ˆLDAAƒ#CNST15 3755ˆJSR„AXA 3760ˆBRA„RAT25„NEXT�ENTRY 3765�RAT26‚JSR„UNAO…FIND�A.O.�OFFSET�IN�DATA�BUFFER 3770ˆLDAAƒR5 3775ˆSTX„TEMPX„KEEP�POINTR 3780ˆADDAƒ#17„SKIP�A.I.'S+1 3785�RAT28‚DECA‚ 3786ˆASLAŒMULTIPLY�BY�2 3790ˆLDX„#BUFFER 3800ˆJSR„AXA‚ 3805ˆLDAAƒ0,X†DATA 3810ˆBITAƒ#$70…CHECK�FOR�DON'T�CARE 3815ˆBNE„RAT29„NO�NEED�FOR�THIS�RATIO�CHECK 3820ˆANDAƒ#$0F 3825ˆSTAAƒDIVID 3830ˆLDAAƒ1,X 3835ˆSTAAƒDIVID+1� 3840�*�STORE�NEW�VALUE�IN�DIVISOR�AND�COMPUTE�THE�RATIO 3845ˆLDX„#0 3850ˆSTX„DIVID+2 3855ˆSTX„DIVISR 3860ˆLDAAƒFACTOR 3865ˆBITAƒ#$70 3870ˆBNE„RAT30„BRANCH�IF�RATIO�ERROR 3875ˆANDAƒ#$0F 3880ˆSTAAƒDIVISR+2 3885ˆLDABƒFACTOR+1 3890ˆSTABƒDIVISR+3 3895ˆJSR„DIV4…COMPUTE�RATIO�(XX.XX) 3900ˆLDAAƒDIVID+2‚L.S.�8 BYTE 3905ˆLDABƒDIVID+1‚MS.�BYTE 3910ˆTST„DIVID+3‚ROUND�OFF�NEEDED? 3915ˆBPL„RAT27„NO�ROUND�OFF 3920ˆCLRB 3925ˆINCA 3930ˆADCBƒDIVID+1 3935ˆBCS„RAT30„BRANCH�IF�ERROR 3940�RAT27‚TST„DIVID‚ 3945ˆBNE„RAT30„RATIO�ERROR 3950ˆLDX„TEMPX„POINTS�TO�A.O.�ENTRY 3955ˆLDX„16,X…RATIO�VALUE�(X.X) 3960ˆJSR„CPBAX„COMPARE�B,A�WITH�X�VALUE 3965ˆBHI„RAT30„BRANCH�IF�RATIO�ERROR 3970�RAT29‚LDX„TEMPX„POINTER�TO�LAST�A.O.�WHICH�WAS�CHECKED� 3975ˆLDABƒR3‡RATIO�LINK�NR.�TO�BE�FOUND 3980ˆSTABƒR2 3981�RAT32‚DEC„COUNT1 3982ˆBEQ„RAT31„BRANCH�IF�ALL�A.O.'S�CHECKED;�NO�ERROR�FOUND 3985ˆLDAAƒ#CNST18 3990ˆJSR„AXA 3995ˆJMP„RAT21„CHECK�THE�OTHER�A.O.'S 4000�RAT30‚SEC�SET�THE�CARRY�IF�A�RATIO�ERROR�OCCURRED 4005ˆRTS 4010�RAT31‚CLC�NO�RATIO�ERROR 4015ˆRTS 4020ˆPAGEƒ 4025ˆEND 020ˆPAGEƒ 4025ˆEND Å&ùö,XÅ'¼,|'í Å'¼,¡'âÄ Á &~&ù…'… &Æ ñ, &ñ,©'銷,X„�'~$Æ ñ, &¶,{·, ñ,©&þ,„ÿ,©ñ,¡&Î,|ÿ)ÑÎ,¡ÿ)ÓÎ)ÑÆ?ÆtSõ,['9n€70010‚NAM�SLOPE 0020�* 0030‚OPT�REL,LLEN=120 0040�* 0050‚XDEF�RSTRMP,SETRMP,UPRAMP 0060‚XDEF�INITDA,AOVAL,INCVAL,ADDRPT,AOINCR 0070�*� 0080‚XREF�SSXBA,AXA,SETAO,AOMI16,AOMI1,IDTEMP,TIME,STPPTR 0090‚XREF�BUFBUF,DIV4,DIVID,DIVISR,SOURCE,DESTIN,LENGTH 0100�* 0110‚DSCT 0120�* 0130�UPDOWN�RMB�1�FLAG�FOR�ADD�OR�SUBTRACT�INCREMENT 0140�SAVEX�RMB�2�SAVE�AREA�FOR�X 0150�SAVEX1�RMB�2�SECOND�LEVEL�SAFE�AREA�FOR�X 0170�TEMP2�RMB�2ŒPOINTER�IN�AOMIR 0180�TEMP3�RMB�2ŒPOINTER�IN�AOINCR 0190�AOWORK�RMB�8�WORKING�AREA�FOR�COMPUTING�NEW�A.O.�SETPOINT�IN�RAMP 0200�* 0210�AOINCR�RMB�96�INCREMENTS�FOR�A.O.�RAMPING,�AS�FOLLOWS: 0220�*�4�BYTES�INCREMENT 0230�*�2�BYTES�REMAINING�FOR�A.O. 0231ˆSPC„1 0240‚PSCT 0250ˆSPC„1 0260�INITDA�EQU„*ˆROUTINE�TO�INIT�D.A�CONVERTERS 0280‚PSHA 0290‚PSHB 0300‚STX�SAVEX1 0360‚LDX�#$800 0370‚LDAB�#1 0380�INDA2�JSR�SETAO�PUT�ALL�OUT'S�HALF�SCALE 0390‚INCB 0400‚CMPB�#17�ALL�HALF�SCALE 0410‚BNE�INDA2 0420‚LDX�#AOMI1�SET�ALL�OUTPUTS�HALF�SCALE 0440�INDA3‚LDABƒ#8‡ 0450ˆSTABƒ0,X 0451ˆINX 0452ˆCLR„0,X† 0454ˆINX 0470‚CPX�#AOMI16+2�LAST�MIRROR�DONE 0480‚BNE�INDA3 0490‚LDX�#AOINCR 0500‚LDAA�#6 0510�INDA5�LDAB�#$FE�SET�NO�RAMPING 0520‚STAB�X 0530‚JSR�AXA 0540‚CPX�#AOINCR+96 0550‚BNE�INDA5 0560‚CLR�STPPTR 0570‚CLR�STPPTR+1�RESET�THE�STEP�POINTER 0580‚LDX�IDTEMP�SET�THE�IDLE�TEMPERATURE 0590‚STX�AOMI1 0600‚STX�AOMI1+2 0610‚STX�AOMI1+4�SET�THE�THREE�FIRST�MIRROR�TO�IDLE�TEMP 0620�INDA4�PULB 0630‚PULA 0640‚LDX�SAVEX1�RESTORE�REGISTERS 0650‚RTS 0750ˆSPC„3 0770�SETRMP�EQU„*ˆROUTINE�TO�COMPUTE�AND�SET�A�RAMP�INCREMENT 0790�*�INPUT�PARAMETERS�:�A�:�INPUT�NUMBER 0800�*”B�:�OUTPUT�NUMBER 0810�*”X�:�SETPOINT 0812�* 0813�*�THE�2�BYTES�OF�THE�TOTAL�STEP�TIME�MUST�BE�PUT�IN� 0814�*�THE�DIVISOR�(RIGHTMOST�BYTES) 0815�* 0816�*�THE�2�BYTES�OF�THE�TOTAL�VOLTAGE�TO�RAMP 0817�*�MUST�BE�PUT�IN�THE�DIVIDEND�(LEFTMOST�BYTES) 0818�*�THE�INCREMENT�IS�GIVEN�IN�THE�4�BYTES�OF�DIVIDEND 0830‚PSHA�SAVE�REGISTERS 0840‚PSHB 0850‚STX�SAVEX1 0860ˆJSR„AOPTRSƒCOMPUTE�POINTERS�IN�AOMIR�AND�AOINCR 0870‚LDAA�0,X�TEST�RAMP�FLAG;�X�POINTS�TO�AOINCR�TABLE�ENTRY 0880‚CMPA�#$FE�IF�NO�DEFAULT�START�RAMPING�FROM�ACTUAL�SETPOINT 0890‚BNE�SETRP2ŒBRANCH�IF�NOT�DEFAULT 0900ˆCLRA 0910ˆSTAAƒ0,X†9 CLEAR�RAMP�FLAG 0920ˆSTAAƒ4,X†CLEAR�DECIMAL�PART�OF�SETPOINT 0930ˆSTAAƒ5,X 0940ˆLDX„TEMP2„POINT�TO�AOMIR 0950ˆSTAAƒ0,X 0960ˆLDAAƒ#40 0970ˆSTAAƒ1,X†START�RAMPING�FROM�40 0980�SETRP2�LDX„TEMP2„POINT�TO�AOMIR 0990ˆLDX�0,X�TAKE�THE�CURRENT�SETPOINT 1000‚LDAB�SAVEX1 1010‚ANDB�#%01111111�KILL�THE�FLAG 1020‚LDAA�SAVEX1+1�TAKE�THE�LSB�OF�SETPOINT 1030‚JSR�SSXBA�SUBSTRACT�WITH�SETPOINT 1040‚PSHB�SAVE�THE�SIGN 1050‚ANDB�#%01111111�KILL�THE�SIGN 1060‚STAB�DIVID�STORE�RESULT�IN�DIVIDENDE 1070‚STAA�DIVID+1 1080‚CLR�DIVID+2�CLR�THE�END�OF�DIVIDENDE 1090‚CLR�DIVID+3 1100‚LDX�TIME+1�TAKE�THE�TIME 1110‚STX�DIVISR+2�STORE�IT�IN�DIVISOR 1120‚CLR�DIVISR 1130‚CLR�DIVISR+1 1140‚JSR�DIV4�COMPUTE�THE�INCREMENT;�RESULT�IN�DIVID 1150�*�MOVE�INCREMENT�TO�AO-INCREMENT�TABLE 1160‚LDX�TEMP3�POINT�TO�THE�ADDRESS�IN�A.O�INCREMENT 1170ˆPULBƒGET�SIGN 1180‚ANDB�#%10000000�KEEP�ONLY�THE�SIGN�FROM�SETPOINT-THEORIC 1190‚ORAB�DIVID�SET�THE�SIGN�IN�INCREMENT 1200‚STAB�0,X 1210ˆLDAAƒDIVID+1 1220ˆSTAAƒ1,X 1230ˆLDAAƒDIVID+2 1240ˆSTAAƒ2,X 1250ˆLDAAƒDIVID+3 1260ˆSTAAƒ3,X 1270‚CLR�4,X 1280‚CLR�5,X�CLEAR�REMAINIING�OF�A.O. 1290‚PULB�RESTORE�REGISTERS 1300‚PULA 1310‚LDX�SAVEX1 1320‚RTS� 1321ˆSPC„3 1340�RSTRMP�EQU„*ˆROUTINE�TO�RESET�(CLEAR)�A�RAMP�INCREMENT 1350�* 1360�*‚INPUT�PARAMETERS�:A�:�INPUT�NUMBER 1370�*”B�:�OUTPUT�NUMBER 1380�*”X�:�SETPOINT 1390�* 1400‚PSHA�SAVE�REGISTERS 1410‚PSHB 1420‚STX�SAVEX1 1430ˆJSR„AOPTRSƒCOMPUTE�POINTERS�IN�AOMIR�AND�AOVAL 1440‚LDAA�#$FF�SET�NO�RAMPING;X�POINTS�TO�AOINCR 1450‚STAA�0,X 1460‚LDAA�SAVEX1 1470‚CMPA�#$7F�SKIP�SETTING�A.O�IF�SETPOINT�IS�DUMMY 1480‚BNE�RSTRP2 1490‚LDAA�#$FE�SET�DEFAULT�FLAG 1500‚STAA�0,X 1510‚CLR�SAVEX1+1�SET�TO�DEFAULT 1520‚LDAA�#$8 1530‚STAA�SAVEX1 1540�RSTRP2�LDX„TEMP2„POINT�TO�AO-MIRROR 1550‚STAA�0,X�SAVE�THE�THEORIC�SETPOINT 1560‚LDAA�SAVEX1+1 1570‚STAA�1,X 1580‚LDX�SAVEX1 1590‚JSR�SETAO�SET�THE�VALUE�ON�OUTPUT�DIRECTLY 1600�RSTRP3�PULB 1610‚PULA�SAVE�REGISTERS 1620‚LDX�SAVEX1 1630‚RTS�NOW�EXIT 1640ˆPAGE 1650�UPRAMP�EQU„*„ROUTINE�WICH�RAMPS�ALL�OUTPUTS�WITH�RAMP�FLAG�SET 1660�* 1670‚PSHA 1680‚PSHB 1690‚STX�SAVEX1 1700ˆCLRB 1710�UPR1ƒINCB 1720ˆCMPBƒ#17 1730ˆBNE„UPR2…BRANCH�IF�NOT�DONE 1740ˆJMP„UPR6…EXIT 1750�UPR2ƒJSR„AOPTRSƒCOMPUTE�POINTERS�IN�AO-MIRROR,�AO�INCREMENT 1790ˆLDAAƒ0,X†TEST�IF�RAMP 1800ˆANDAƒ#$FE 1810ˆCMPAƒ#$FE 1820ˆBNE„UPR2A„BRANCH�IF�RAMP 1821ˆLDX„TEMP2„A.O.�MIRROR�POINTER 1822ˆBRA„UPR4A„SET�VALUE 1830�*�PUT�A.O.�VALUE,�A.O.�INCREMENT�IN�WORKSPACE�TO�COMPUTE�NEW�VALUE 1831�UPR2A‚PSHBŒKEEP�A.O.�NR 1840ˆSTX„SOURCEƒX�POINTS�TO�AOINCR 1850ˆLDX„#AOWORK 1860ˆSTX„DESTIN 1880ˆLDX„#4 1890ˆSTX„LENGTH 1900ˆJSR„BUFBUFƒMOVE�INCREMENT 1910ˆLDX„TEMP3„POINTER�TO�AOINCR 1920ˆLDX„4,X†GET�A.O.�REMAINING 1930ˆSTX„AOWORK+6 1940ˆLDX„TEMP2„AOMIR�POINTER 1950ˆLDX„0,X†GET�A.O.�VALUE 1960ˆSTX„AOWORK+4� 1961�*�COMPUTE�NEW�OUTPUT�VALUE 1962ˆCLR„UPDOWNƒINDICATES�ADD�OPERATION 1970ˆLDX„#AOWORK 1980ˆTST„0,X†CHECK�SIGN 1990ˆBMI„UPR3…IS�A�RAMP�DOWN 2010ˆJSR„ADSUB4ƒRAMP�UP 2020ˆBRA„UPR4 2030�UPR3ƒASL„0,X†KILL�SIGN 2040ˆLSR„0,X 2050ˆINC„UPDOWNƒSET�SUBTRACT�OPERATION 2060ˆJSR„ADSUB4ƒRAMP�DOWN 2070ˆASL„0,X†RESTORE�SIGN 2080ˆSEC 2090ˆROR„0,X 2100�*�MOVE�RESULT�BACK;�AO�VALUE�IN�AOMIRROR,�AO�REMAINING�IN�AO�INCREMENT 2110�UPR4ƒLDAAƒ6,X†AO�REMAINING 2120ˆLDABƒ7,X 2130ˆLDX„TEMP3„AOINCR�POINTER 2140ˆSTAAƒ4,X 2150ˆSTABƒ5,X 2160ˆLDX„TEMP2„AOMIR�POINTER 2170ˆLDAAƒAOWORK+4 2180ˆSTAA: ƒ0,X 2190ˆLDAAƒAOWORK+5 2200ˆSTAAƒ1,X 2205ˆPULBŒA.O.�NR 2210�UPR4A‚LDX„0,X†A.O.�VALUE 2240ˆCMPBƒ#3‡IS�THERMOCOUPLE�OUTPUT 2250ˆBLS„UPR5…YES,�SKIP�SETTING 2260ˆJSR„SETAO„SET�THE�OUTPUT 2270�UPR5ƒJMP„UPR1…CONTINUE�THE�JOB 2280�UPR6ƒPULB 2290ˆPULA 2300ˆLDX„SAVEX1 2310ˆCLC 2320ˆRTS 2330ˆSPC„3 2340�AOPTRS�EQU„*ˆCOMPUTE�THE�POINTERS�FOR�AN�AO�NR 2350�*�IN�AO-�MIRROR�AND�AO�INCREMENT�TABLES 2380�*–B�HAS�A.O.�NR 2390�* 2410ˆJSR„AOVAL„COMPUTE�POINTER�IN�AO�MIRROR 2450ˆSTX„TEMP2 2460ˆJSR„INCVAL 2470ˆSTX„TEMP3„AO�INCREMENT�POINTER 2490ˆRTS 2500ˆSPC„3 2510�AOVAL‚EQU„*ˆCOMPUTES�POINTER�IN�STATUS;�B�HAS�A.O.�NR 2520ˆLDX„#AOMI1ƒOFFSET�=�AOMIR�+(AO-1)*2 2530ˆLDAAƒ#2 2540ˆJSR„ADDRPTƒADD�A�B�TIMES-1�TO�X 2550ˆRTS 2560ˆSPC„3 2570�INCVAL�EQU„*ˆCOMPUTES�POINTER�IN�AOINCR;�B�HAS�A.O.�NR 2580ˆLDX„#AOINCR‚OFFSET�=�AOINCR�+(AO-1)*6 2590ˆLDAAƒ#6 2600ˆJSR„ADDRPTƒADD�A�B�TIMES-1�TO�X 2610ˆRTS 2620ˆSPCƒ3 2630�ADDRPT�EQU„*ˆADD�(B-1)�TIMES�A�TO�X;�RESULT�IN�X,�CHANGES�B 2640ˆPSHBŒKEEP�ORIGINAL�VALUE 2650�ADD1ƒDECB 2660ˆBEQ„ADD2…BRANCH�IF�DONE 2670ˆJSR„AXA 2680ˆBRA„ADD1…AGAIN 2690�ADD2ƒPULB 2700ˆRTS 2701ˆPAGE 2720�ADSUB4�EQU„* 2721�* 2730�*�ROUTINE�TO�ADD�OR�SUBTRACT�4�BYTES�TO�THE�FOLLOWING�4�BYTES 2740�*�INPUT�PARAMETERS�:�X�POINTS�TO�THE�FIRST�BYTE�TO�BE�ADDED 2750�*�UPDOWN=0�:ADD„UPDOWN<>0�:SUBTRACT 2751�* 2790‚STX�SAVEX 2800‚LDAB�#4„ADD�4�BYTES 2810‚CLC 2820�ADSUBC�LDAA�7,X 2821ˆPSHB 2830‚LDAB�UPDOWN�TEST�IF�ADD�OR�SUBTRACT 2831ˆPULBƒCOUNTER 2840‚BNE�SUB4 2850‚ADCA�3,X 2860‚BRA�CONT 2870�SUB4�SBCA�3,X 2880�CONT�STAA�7,X�NEW�VALUE�OF�A.O. 2890‚DEX 2900‚DECB 2910‚BNE�ADSUBC 2920‚LDX�SAVEX 2950‚RTS 2960ˆSPC„3 2970ˆEND A 2950‚RTS 2960ˆSPC„3 2970ˆEND ,�SKIP�SETTING 3110‚JSR�SETAO�SET�THE�OUTPUT 3120�UPR41�LDX�TEMP1�RESTORE�THE�POINTER 3130‚BRA�UPR10�CONTINUE�THE�JOB 3140�* 3150�*�ROUTINE�TO�INIT�D.A�CONVERTERS 3160�* 3170�INITDA�PSHA 3180‚PSHB 3190‚STX�SAVEX1 3200‚TST�BACKUP�IS�A�BACKUP�RESTART 3210‚BN}€0010‚NAM�STATUS 0020‚TTL�RAM�RESERVATION�FOR�STATUS�IMAGE 0040‚OPT�REL,LLEN=100 0050�* 0060�*�THIS�FILE�SHOWS�THE�RAM�RESERVATION�FOR�THE�TUBECONTROLLER�STATUS 0070�*�IT�IS�SEND�TO�THE�SUPERVISOR�UPON�REQUESTƒ 0080�* 0090‚XDEF�AOMI1,AOMI16,DIMIR,DOMIR,AIMIR,BOTSTS,IMTC1,IMTC12,CH15,CH0 0100‚XDEF�TCSTAT,TIME,CURSTP,IMTC10,ABSTAT,ALSTAT,HLSTAT 0110‚XDEF�RCPTR1,RCPTR2,RCPTR3,ACTIV,SAVPIA,TCERR,SAVAB,POFL 0120‚XDEF�POFCNT,POFSTP,TEMPAO 0130�* 0140‚DSCT 0150�* 0210�SPARE1�RMB�18�SPARES�FOR�FUTURE�USE,�PUT�AT�THIS�PLACE�TO�GET 0220�*�THE�RIGHT�OFFSET�FOR�IMTC1�! 0240�TEMPAO�RMB�6�TEMPERATURE�SETPOINTS�(COPY�OF�AOMIR1,2,3) 0250�* 0255�*�MEMORY�RESERVATION�CORRESPONDING�TO�EACH�THERMOCOUPLE�INPUT 0260�CH15�RMB�2 0270�IMTC1�RMB�2 0280�CH0�EQU�IMTC1 0290�IMTC2�RMB�2 0300�IMTC3�RMB�2 0310�IMTC4�RMB�2 0320�IMTC5�RMB�2 0330�IMTC6�RMB�2 0340�IMTC7�RMB�2 0350�IMTC8�RMB�2 0360�IMTC9�RMB�2 0370�IMTC10�RMB�2 0380�IMTC11�RMB�2 0390�IMTC12�RMB�2 0400�* 0410�TCSTAT�RMB�4‹FURNACE�TC�STATUS 0420�* 0450�TIME�RMB�3�REMAINING�TIME�IN�THE�STEP;ONLY�LAST�2�BYTES�USED 0460�* 0490�CURSTP�RMB�1‹CURRENT�STEP 0500�* 0530�BOTSTS�RMB�1‹BOAT�PULLER�STATUS�BYTE 0540�* 05; 50�RCPTR1�RMB�3‹FIRST�BYTE�IS�THE�LOADING�FLAG 0560�RCPTR2�RMB�3ŠBYTE�2,3�CONTAIN�THE�START�ADDRESS�OF�THE�RECIPE 0570�RCPTR3�RMB�3 0580�* 0600�* 0610�ACTIV�RMB�1ŒTUBE�CONTROLLER�ACTIVITY�STATUS�WORD 0611�*–BIT�0,1�=�RECIPE�SELECTED�(1,2�OR�3) 0613�*–BIT�2�=�HOLD 0614�*–BIT�3�=�ABORT 0615�*–BIT�4�=�ALARM 0616�*–BIT�5�=�FINISHED 0617�*–BIT�6�=�RUN 0618�*–BIT�7�=�IDLE 0640�* 0650�SAVPIA�RMB�4‹SAVE�PIA 0680�* 0690�AIMIR�RMB�38‹ANALOG�INPUT�MIRROR 0701�* 0710�*–ANALOG�OUTPUT�MIRROR 0711�* 0780�AOMI1�RMB�2ŒTEMPERATURE�SETPOINT�ZONE�1 0790�AOMI2�RMB�2ŒTEMPERATURE�SETPOINT�ZONE�2 0800�AOMI3�RMB�2ŒTEMPERATURE�SETPOINT�ZONE�3 0810�AOMI4�RMB�2 0820�AOMI5�RMB�2 0830�AOMI6�RMB�2 0840�AOMI7�RMB�2 0850�AOMI8�RMB�2 0860�AOMI9�RMB�2 0870�AOMI10�RMB�2 0880�AOMI11�RMB�2 0890�AOMI12�RMB�2 0900�AOMI13�RMB�2 0910�AOMI14�RMB�2 0920�AOMI15�RMB�2 0930�AOMI16�RMB�2 0940�* 0970�DIMIR�RMB�6ŒDIGITAL�INPUT�MIRROR 0980�* 1010�DOMIR�RMB�6ŒDIGITAL�OUTPUT�MIRROR 1030�* 1031�* 1060�ABSTAT�RMB�11‚BYTE�0,1�-�ANALOG�INPUTS�(ALARM,�ABORT) 1070�*ŽBYTE�2-7�:�DIGITAL�INPUTS�(ALARM,ABORT,HOLD) 1080�ALSTAT�RMB�11‚BYTE�8‚:�CONTROL�THERMOCOUPLES�(ALARM,ABORT) 1090�*ŽBYTE�9ƒ:�AUXILIARY�THERMOCOUPLES�(ALARM,�ABORT) 1100�HLSTAT�RMB�11‚BYTE�10‚:�BOAT�(ALARM�ONLY) 1110�*ŽINPUT�NR'S�ARE�COUNTED�FROM�LEFT�TO�RIGHT�IN�THE�BYTES 1111�* 1120�TCERR�RMB�1ŒHARDWARE�ERRORS�ON�TC�MUX�BOARD 1130�* 1140�POFL�RMB�1�NUMBER�OF�POWER�FAILS�IN�A�RUN 1150�POFSTP�RMB�1�LAST�STEP�NUMBER�INEWHICH�THE�POWER�WAS�OFF 1160�POFCNT�RMB�2�TOTAL�POWER�OFF�TIME�IN�A�RUN 1170�* 1180�SPARE2�RMB�16�SPARES�FOR�FUTURE�USE 1190�* 1200�SAVAB�RMB�85‹ABORT�STATUS�RAM�RESERVATION 1210�* 1220‚END GHT 3350�INDA3�LDAB�#$FE�INDICATE‚DON'T�CARE�VALUE 3360‚STAB�X 3370‚LDAB�#8 3380‚STAB�5,X 3390‚JSR�AXA�NEXT�MIRROR 3400‚CPX�#AOMaƒ€`0010‚NAM�STEPSC 0020‚IDNT�SCANNING�OF�A�RECIPE�(�STEP�ONLY�) 0030�* 0040‚OPT�REL,LLEN=100 0050�* 0060‚XREF�AXA,SCANAI,DISCAN,UPDAL,OPSCAN,BOAT,GINIT,UPDO,UPAO 0070‚XREF�UPRAMP,LIGHT,PANEL,ABVEC,SETEMP,INITEX,TIME,CURSTP 0080‚XREF�SFTRST,SFTSET,AOMI1,IDTEMP,RCPTR1,RCPTR2,RCPTR3,ACTIV,DOMIR 0090‚XREF�SAVPIA,SAVAB,ALSTAT,HLDFLG,POFCNT,IMTC1,POFL,UPDIMR,UPAIMR 0100‚XREF�PIDSEL,INITPI,TCCHK,SAVKEY,PIRQ,TEMPAO 0110�* 0120�* 0130‚XDEF�RECPTR,STPPTR,START2,PRECNT,AICHKF,RUNFLG,MAIN,SFTFLG,ICCGO,COMFLG 0140‚XDEF�BACKUP,XXX,III,DISPTM 0150�* 0160‚BSCT 0170�* 0180�RECPTR�RMB�2�RECIPE�POINTER 0190�STPPTR�RMB�2�STEP�POINTER 0200�PRECNT�RMB�1�SECONDS�INDICATOR 0210�AICHKF�RMB�1�A.I�FLAG�TEST 0220�BLKFLG�RMB�1�BLINK�FLAG 0230�READY�RMB�1�ALL�IS�OK�FLAG 0240�DEAD�RMB�1�ABORT�STEP�FLAG 0250�RUNFLG�RMB�1�OK�TO�RUN 0260�SFTFLG�RMB�1�SOFT�START�FLAG 0270�COMFLG�RMB�1�COMMUNICATION�FLAG 0280�BACKUP�RMB�1�BACKUP�FLAG 0290�SAVEX�RMB�2 0300�SAVEX1�RMB�2 0310�DISPTM�RMB�1‚TIMER�FOR�DISPLAY�REFRESH 0320�* 0330�*�SEQUENCE�OF�SCANNING�MUST�BE�ABSOLUTELY�OBSERVED 0340�* 0350‚PSCT 0360�* 0370�XXX�JMP�ICCGO 0380�III�JMP�PIRQ 0390�MAIN�LDS�#STACK 0400‚JSR�GINIT 0410‚TST�BACKUP 0420‚BNE�MAIN1 0430�RTEST0�CLR�BACKUP 0440‚JMP�TEST0 0450�MAIN1�LDX�SAVPIA 0460‚STX�PIA1DA 0470‚LDX�SAVPIA+2 0480‚STX�PIA1DB 0490‚LDAA�ACTIV 0500‚BMI�RTEST0 0510‚LDAA�CURSTP 0520‚BEQ�IDLP1 0530‚PSHA 0540‚DEC�CURSTP�COMPUTE�THE�SOFT�START�STEP 0< 550‚JSR�CALSTP 0560‚LDX�STPPTR 0570‚JSR�SFTSET�SOFTSTART 0580‚PULA 0590‚STAA�CURSTP 0600�IDLP1�JSR�CALSTP 0610‚LDX�#10�5�SECONDS�WAIT�FOR�SOFT�START 0620�IDLP�JSR�WAITFL 0630‚DEX 0640‚BNE�IDLP 0650‚JMP�BACKST 0660�ICCGO�LDS�#STACK�INIT�STACK�FOR�TEST 0670‚LDX�#$800 0680‚STX�IDTEMP 0690‚CLR�BACKUP 0700‚JSR�GINIT 0710‚JSR�INITPI 0720‚CLR�SAVKEY�OPERATOR�PANEL�INPUT�BUFFER 0730‚CLR�CURSTP 0740‚CLR�RCPTR1 0750‚CLR�RCPTR2 0760‚CLR�RCPTR3�FROM�POWER�RESTART�NO�RECIPE�ARE�LOADED 0770‚LDAA�#$FF 0780‚STAA�COMFLG�ASSUME�COMMUNICATIONS�ARE�THERE 0790�TEST0�LDAB�#KRECP1+$80 0800‚JSR�LIGHT 0810‚LDAB�#KRECP2+$80 0820‚JSR�LIGHT 0830‚LDAB�#KRECP3+$80 0840‚JSR�LIGHT 0850‚LDAB�#KABORT 0860‚JSR�LIGHT�MAKE�SURE�ALL�LIGHT�ARE�OFF 0870‚LDAB�#KALARM 0880‚JSR�LIGHT 0890‚LDAB�#KHOLD 0900‚JSR�LIGHT 0910‚LDAB�#KRST�MAKE�SURE�RESTART�LIGHT�IS�OFF 0920‚JSR�LIGHT 0930‚LDAA�#$80�SET�IDLE�STATE�IN�ACTIVITY�STATUS 0940‚STAA�ACTIV 0950‚CLR�CURSTP 0960‚CLR�TIME 0970‚CLR�DISPTM�CLEAR�TIMER�FOR�STATUS�DISPLAY 0980‚CLR�POFL�START�WITH�0�POWER�FAILS 0990‚JSR�SAVP 1000�BEGIN�JSR�SELREC�SELECT�THE�RECIPE 1010‚BCS�START 1020‚CLR�SAVKEY 1030‚TST�ASMTIM 1040‚BMI�BEGIN 1042ˆJSR„UPDOTC 1044ˆJSR„UPRAMP 1050‚JSR�TCCHK 1060‚JSR�UPAIMR�UPDATE�A.I.�MIRRORN�FOR�ALL�16�CHANNELS 1070‚TST�DISPTM 1080‚BEQ�NODECR 1090‚DEC�DISPTM 1100�NODECR�JSR�UPDIMR�UPDATE�DIGITAL�INPUT�MIROR 1110‚JSR�UPDAL‚UPDATE�TEMP.�ALARMS 1120‚TST�ALSTAT+8�TEST�IF�ANY�TC�DRIFT�ALARM�IS�THERE 1130‚BNE�BEGIN 1140‚LDAA�#$EF�RESET�ALARM�STATUS�AND�LAMP 1150‚JSR�ANDACT 1170‚LDAB�#KALARM 1180‚JSR�LIGHT 1190‚BRA�BEGIN 1200�* 1210�*�NORMAL�START�OF�RECIPE 1220�* 1230�START�CLR�CURSTP�SET�STEP�0 1231ˆLDX„#0 1232ˆSTX„POFL…CLEAR�POFL�THROUGH�POFCNT+1 1233ˆSTX„POFCNT 1250‚CLR�DEAD�CLEAR�THE�ABORT�FLAG 1260‚CLR�SAVKEY 1270‚LDAA�ACTIV 1280‚ANDA�#$3 1290‚ORAA�#$40 1300‚STAA�ACTIV 1310‚LDAB�#KFIN�MAKE�SURE�FINISH�LIGHT�OFF 1320‚JSR�LIGHT 1330‚JSR�INITEX�MAKE�SURE�ABORT�IS�CLEAR 1340‚CLR�READY�ASSUME�THE�SYSTEM�IS�READY 1350‚LDAB�#KABORT 1360‚JSR�LIGHT 1390‚CLR�BLKFLG 1400‚CLR�RUNFLG�CLEAR�THE�RUN�FLAG 1410‚CLR�SFTFLG 1420‚BRA�START2�FROM�RESTART�MAKE�DIRECTLY�STEP�0 1430�WAIRUN�LDAB�#KRST+%10000000�SET�THE�RESTART�PERMANENT 1440‚JSR�LIGHT 1450‚LDAB�#KFIN�MAKE�SURE�FINISHED�LAMP�IS�OFF 1460‚JSR�LIGHT 1470�WAIR1�TST�RUNFLG�IS�THE�RUN�FLAG�SET�BY�KEYBOARD 1480‚BEQ�SCAN1�NO,�CONTINUE�TO�WAIT 1490‚LDAA�#LHOLD 1500‚BITA�PIA1DB 1510‚BNE�CLRRFL 1520‚TST�AICHKF�IS�15�SECONDS�ELAPSED 1530‚BEQ�WAIR2�YES�YOU�CAN�START 1540�CLRRFL�CLR�RUNFLG 1550‚BRA�SCAN1�NO,�YOU�HAVE�TO�WAIT 1560�WAIR2�LDAA�#$FF 1570‚STAA�SFTFLG 1580‚LDX�STPPTR 1590‚JSR�SFTSET�SOFT�START 1600‚LDX�#5 1610‚STX�TIME+1 1620‚LDAB�#KRUN+%10000000�RUN�NOW 1630‚JSR�LIGHT 1680‚LDAB�#KRST�RESET�RESTART�LIGHT 1690‚JSR�LIGHT 1700‚BRA�SCAN1 1710�* 1720�*�STEP�PROCESS�STARTING�POINT 1730�* 1740�START2�JSR�CALSTP�COMPUTE�THE�STEP 1750‚LDX�STPTIM+1,X�TAKE�THE�LAST�TWO�DIGITS 1760‚STX�TIME+1�PUT�THE�LAST�TWO�DIGITS 1770‚LDX�STPPTR 1780‚JSR�UPDO�SET�DIGITALS�OUTPUTS 1781�BACKST�LDX„STPPTR 1800‚JSR�UPAO�UPDATE�ANALOG�OUT'S�AND�COMPUTE�RAMPING 1820‚JSR�SETEMP 1830‚LDAA�#1 1840‚STAA�PRECNT 1850‚JSR�PIDSEL 1860‚LDAA�#24�SET�SKIP�AI�TIME�TO�23�SECONDS 1870‚STAA�AICHKF 1880‚LDX�STPPTR 1890‚LDAB�#$FF�MAKE�SURE�BOAT�PROPERLY�INIT. 1900‚JSR�BOAT 1910‚JSR�SFTRST�RESET�SOFT�START 1920‚CLR�SFTFLG 1930�* 1940�*�HERE�BEGIN�THE�CYCLIC�PROCESS=  1950�* 1960�SCAN1�CLR�SAVKEY�CLEAR�PANEL�INPUT 1970‚LDAA�#LHOLD 1980‚BITA�PIA1DB 1990‚BEQ�SC11�NO�HOLD,�DON'T�UPDAT�ACTIV 2000‚LDAA�#$4 2010‚JSR�ORACT 2030�SC11�TST�ABVEC 2040‚BEQ�SC13 2050‚LDAA�#$8 2060‚JSR�ORACT 2080�SC13�JSR�WAITFL�WAIT�THE�TIME 2081ˆJSR„UPDOTC 2090‚TST�PRECNT�IS�A�ROUND�SECONDE 2100‚BNE�SCAN2�NO�SKIP�ANALOG�INPUT�SCAN 2110‚CLR�BLKFLG�RESET�THE�BLINK�FLAG 2120‚LDX�#RECPTR 2130‚JSR�SCANAI�ANALOG�INPUTS�SCANING 2140�SCAN10�LDAA�#LHOLD 2150‚BITA�PIA1DB�IS�HOLD�FLAG 2160‚BNE�SCANS�SKIP�THE�TIME�UPDATE�JOB 2170‚LDAA�#$FB 2180‚JSR�ANDACT�RESET�HOLD�FLAG 2200‚LDAA�#LFIN�IS�THE�LAST�STEP�FINISHED 2210‚BITA�PIA1DB 2220‚BNE�SCANS 2240‚LDX�TIME+1�DECREMENT�THE�TIME 2250‚BEQ�JSCAN3 2260‚DEX 2270‚STX�TIME+1�SAVE�IT 2275‚JSR�UPRAMP�UPDATE�THE�RAMPING�IF�NO�HOLD 2280‚CPX�#5�IS�THE�LAST�5�SECONDS 2290‚BNE�SCANS 2300‚TST�CURSTP�IF�STEP�0�NO�SOFT�START 2310‚BEQ�SCANS 2320‚LDX�STPPTR�POINT�ON�THE�STEP 2330‚JSR�SFTSET�START�THE�SOFT�START 2340‚LDAA�#$FF�SET�SOFT�FLAG 2350‚STAA�SFTFLG 2360�SCANS�TST�AICHKF�IS�CHECK�FLAG�ZERO 2370‚BEQ�SCANS0 2380‚DEC�AICHKF 2390�SCANS0�TST�COMFLG�IS�COMMUNICATION�FLAG�0 2400‚BEQ�SCANS1 2410‚DEC�COMFLG 2420�SCANS1�TST�CURSTP�IS�STEP�0 2430‚BNE�SCAN11 2440‚LDAA�#%00001000�IS�THE�ALARM�ON 2450‚BITA�PIA1CA 2460‚BNE�SCAN1A�SOMETHING�IS�WRONG�LOOP�IN�THE�STEP�0 2470‚CLR�READY�OK�TO�RUN�NOW 2480‚BRA�SCAN11 2490�JSCAN3�JMP�SCAN3 2500�SCAN1A�LDAA�#$FF 2510‚STAA�READY�BAD�WAIT�AGAIN 2520�SCAN11�NOP�IS�FOR�TEST 2530‚LDAA�#2 2540‚STAA�PRECNT�RELOAD�SECOND�INDICATOR 2550�SCAN2�LDAA�BLKFLG�TEST�IF�HALF�SECOND 2560‚EORA�#$80 2570‚STAA�BLKFLG 2580�SCAN20�LDX�STPPTR 2590‚JSR�DISCAN�DIGITAL�INPUTS�SCANNING 2600‚LDAA�#2 2610‚CMPA�PRECNT 2620‚BNE�SCAN2B 2630‚JSR�UPDAL�UPDATE�ALARME�WICH�MAY�OCCURS 2640‚LDAA�#%00001000�IS�THE�ALARM�ON 2650‚BITA�PIA1CA 2660‚BNE�SCAN2B 2670‚LDAA�#$EF�RESET�ALARM�LIGHT 2680‚JSR�ANDACT 2700�SCAN2B�LDAA�#LFIN�IS�IN�THE�FINISHED�MODE 2710‚BITA�PIA1DB 2720‚BNE�SCAN2C�IF�FINISHED�SKIP�OPSCAN�AND�ABORT�PROCESS 2730‚JSR�OPSCAN�SCAN�OPERATOR�PANEL 2740‚CLR�SAVKEY 2750‚TST�ABVEC�IS�AN�ABORT�ENCOUNTERED 2760‚BNE�SCANAB�YES�PROCESS�IT 2770�SCAN2C�DEC�PRECNT�DECREMENT�SECOND�COUNT�DOWN 2780‚LDAA�#LFIN�TEST�IF�END�OF�PROCESS 2790‚BITA�PIA1DB 2800‚BNE�SCAN22�IS�FINISHD 2810‚TST�CURSTP�IS�STEP�ZERO�? 2820‚BNE�SCAN23�NO�DON'T�MOVE�RESET�LIGHT 2830‚TST�SFTFLG 2840‚BNE�SCAN23 2850‚TST�ABVEC 2860‚BNE�SCAN23 2870‚TST�READY�ALL�IS�READY�? 2880‚BEQ�SCAN21�YES�DON'T�BLINK 2890‚LDAB�#KRST�BLINK�RESET�LIGHT 2900‚ORAB�BLKFLG 2910‚JSR�LIGHT 2920‚CLR�RUNFLG�NO�RUN�IF�ANY�ALARM�PRESENT 2930�SCAN23�JMP�SCAN1�CONTINUE�TO�RUN 2940�SCAN21�JMP�WAIRUN 2950�SCAN22�JSR�SELREC�SELECT�THE�RECIPE 2960‚BCC�SCAN23�NOTHING,�CONTINUE�TO�LOOP 2970‚JMP�START�YES,�INIT�A�NEW�CYCLE 2980�SCANAB�TST�DEAD�IS�THE�STEP�DEAD 2990‚BNE�SCAN2C 3000‚LDX�#IMTC1 3010‚STX�SAVEX 3020‚LDX�#SAVAB 3030‚STX�SAVEX1 3040�NEXT�LDX�SAVEX 3050‚LDAB�X 3060‚INX 3070‚STX�SAVEX 3080‚LDX�SAVEX1 3090‚STAB�X 3100‚INX 3110‚STX�SAVEX1 3120‚CPX�#SAVAB+85 3130‚BNE�NEXT 3140‚LDX�STPPTR�TAKE�THE�POINTER 3150‚LDAB�NEWSTP,X�TAKE�THE�ABORT�STEP 3160‚ANDB�#%01111111�KILL�TERMINATOR�FLAG 3170‚STAB�CURSTP�INIT�THE�NEW�STEP 3180‚CLR�TMCR2 3190‚LDAB�#$FF 3200‚STAB�DEAD�RECIPE�IS�NOW�DEAD 3210‚STAB�HLDFLG�INIT�AGAIN�THIS�FLAG 3220‚LDAB�#KHOLD�RESET�HOLD�IF�IN�HOLD 3230‚JSR�LIGHT 3240‚LDAB�#KRST�CLEAR�RESET�LAMP 3250‚> JSR�LIGHT 3260‚JMP�START2�START�THE�NEW�STEP 3270�SCAN3�LDX�STPPTR�CHECK�IF�LAST�STEP 3280‚LDAB�NEWSTP,X�TAKE�THE�NEXT�STEP 3290‚BMI�SCAN4 3300‚TST�CURSTP�IS�STEP�ZERO�? 3310‚BNE�SCAN30�NO�CONTINUE�THE�RUN 3320‚TST�ABVEC 3330‚BNE�SCAN4 3340‚LDX�TIME+1 3350‚DEX 3360‚STX�TIME+1 3370‚TST�RUNFLG 3380‚BEQ�SCAN31�IF�NO�RUN�FLAG,�WAIT�THE�COMMAND 3390‚TST�SFTFLG 3400‚BNE�SCAN30�IF�SOFT�START�FLAG�OK�TO�RUN 3410‚JMP�SCAN1 3420�SCAN31�JMP�WAIRUN�WAIT�FOR�OPERATOR 3430�SCAN30�INC�CURSTP 3440‚CLR�TMCR2 3450‚JMP�START2�DO�THE�NEXT�STEP 3460�SCAN4�CLR�TMCR2�KILL�THE�TIMER 3470‚LDAB�#KFIN+%10000000�SET�FINISHED�LIGHT 3480‚JSR�LIGHT 3490‚LDAA�#$3F�MAKE�SUR�IDLE�STATE�AND�RUN�ARE�RESET 3500‚ANDA�ACTIV 3510‚ORAA�#$20 3520‚STAA�ACTIV�SET�END�OF�JOB 3530‚LDAB�#KRECP1+$80 3540‚JSR�LIGHT 3550‚LDAB�#KRECP2+$80 3560‚JSR�LIGHT 3570‚LDAB�#KRECP3+$80 3580‚JSR�LIGHT 3590‚LDAB�#$F+$80�START�THE�BUZZER 3600‚JSR�LIGHT 3610‚LDAB�#KRUN�SWITCH�OFF�RUN�LIGHT 3620‚JSR�LIGHT 3630‚JMP�SCAN1�LOOP�IN�THE�LAST�STEP 3640�* 3650�*�ROUTINE�FOR�WAITING�THE�REAL�TIME 3660�* 3661�WAITFL�STX„SAVEX 3670�WAITF1�JSR�PANEL�CHECK�FOR�REMOTE�COMMAND 3680‚TST�ASMTIM�IS�THE�FLAG�ON 3690‚BMI�WAITF1�NO�WAIT� 3700‚TST�ASMTIM�MAKE�SURE�IT'S�RESET 3710‚LDAA�#$10 3720‚ORAA�PIA1DA�START�THE�WATCH�DOG 3730‚STAA�PIA1DA 3740‚LDAA�#$EF 3750‚ANDA�PIA1DA 3760‚STAA�PIA1DA 3780‚JSR�TCCHK 3790‚TST�DISPTM 3800‚BEQ�NODEC 3811‚DEC�DISPTM 3820�NODEC�LDX�SAVEX 3830�SAVP‚STX�SAVEX 3840‚LDX�PIA1DA 3850‚STX�SAVPIA 3860‚LDX�PIA1DB 3870‚STX�SAVPIA+2 3880‚LDX�SAVEX 3890‚RTS�EXIT 3900�* 3910�*�ROUTINE�FOR�CALCULATE�THE�STEP�ADDRESS 3920�* 3930�CALSTP�PSHA 3940‚PSHB�SAVE�REGISTERS 3950‚LDX�RECPTR�TAKE�THE�RECIPE�ADDRESS 3960‚LDAA�#107�SKIP�THE�HEADER 3970‚JSR�AXA 3980‚LDAB�CURSTP�TAKE�THE�STEP�TO�CALCULATE 3990‚BEQ�CALS2�IF�0�ADDRESS�IS�OK 4000�CALS1�LDAA�#NEWSTP+1�TAKE�THE�STEP�LENGHT 4010‚JSR�AXA 4020‚DECB 4030‚BNE�CALS1 4040�CALS2�STX�STPPTR�STORE�THE�RIGHT�ADDRESS 4050‚PULB 4060‚PULA 4070‚RTS 4080�* 4090�* 4100�*�ROUTINE�FOR�RECIPE�SELECTION 4110�* 4120�SELREC�TST�COMFLG 4130‚BRA�SELRC1‚SELEC�MANUALLY 4140‚TST�RCPTR1 4150‚BEQ�SELRX3�RECIPE�1�IS�NOT�LOADED 4160‚LDAB�#KRECP1+$80 4170‚JSR�SETREC�SET�RECIPE�ONE�SELECTED 4180‚JSR�PANEL 4190‚CMPB�#KRST 4200‚BEQ�SELRX2�IF�RESET�EXIT�WITH�CARRY 4210‚LDAB�#1 4220‚JSR�SETACT�SET�REC1�IN�ACTIV 4230‚LDX�RCPTR1+1 4240�SELREX�STX�RECPTR 4250�SELREL�JMP�SELRX1�EXIT�WITH�NO�CARRY 4260�SELRX2�SEC�RECIPE�READY�TO�RUN 4270‚RTS 4280�SELRX3�JSR�PANEL 4290‚CLC 4300‚RTS 4310�SELRC1�JSR�PANEL�WAIT�FOR�THE�KEY 4320‚BCS�SELRC2 4330‚RTS 4340�SELRC2�CMPB�#KRECP1�IS�RECIPE�1 4350‚BNE�SELRC3 4360‚TST�RCPTR1�IS�THE�RECIPE�LOADED�? 4370‚BEQ�SELREL 4380‚LDAB�#KRECP1+$80 4390‚JSR�SETREC 4400‚LDAB�#1 4410‚JSR�SETACT�SET�REC�1�IN�ACTIV 4420‚LDX�RCPTR1+1 4430‚BRA�SELREX 4440�SELRC3�CMPB�#KRECP2�IS�RECIPE�2 4450‚BNE�SELRC4 4460‚TST�RCPTR2�IS�THE�RECIPE�2�LOADED�? 4470‚BEQ�SELREL 4480‚LDAB�#KRECP2+$80 4490‚JSR�SETREC 4500‚LDX�RCPTR2+1 4510‚LDAB�#2 4520‚JSR�SETACT 4530‚BRA�SELREX 4540�SELRC4�CMPB�#KRECP3 4550‚BNE�SELRC5 4560‚TST�RCPTR3�IS�THE�RECIPE�3�LOADED�? 4570‚BEQ�SELRX1 4580‚LDAB�#KRECP3+$80 4590‚JSR�SETREC 4600‚LDX�RCPTR3+1 4610‚LDAB�#3 4620‚JSR�SETACT 4630‚JMP�SELREX 4640�SELRC5�CMPB�#KRST 4650‚BNE�SELRX1 4660‚LDX�RECPTR 4670‚CPX�RCPTR1+1 4680‚BNE�SELR1 4690‚LDAB�#KRECP1+$80 4700‚JSR�SETREC 4710‚LDAB�#1 4720‚JSR�SETACT 4730‚JMP? �SELRX2 4740�SELR1�CPX�RCPTR2+1 4750‚BNE�SELR2 4760‚LDAB�#KRECP2+$80 4770‚JSR�SETREC 4780‚LDAB�#2 4790‚JSR�SETACT 4800‚JMP�SELRX2 4810�SELR2�CPX�RCPTR3+1 4820‚BNE�SELRX1 4830‚LDAB�#KRECP3+$80 4840‚JSR�SETREC 4850‚LDAB�#3 4860‚JSR�SETACT 4870‚JMP�SELRX2 4880�SELRX1�CLC�NONE�IS�SELECTED 4890‚RTS 4900�* 4910�SETREC�PSHB�SET�ONE�RECIPE�ILLUMINATED,�CLEAR�OTHER�LAMPS 4920‚LDAB�#KRECP1 4930‚JSR�LIGHT 4940‚LDAB�#KRECP2 4950‚JSR�LIGHT 4960‚LDAB�#KRECP3 4970‚JSR�LIGHT 4980‚PULB 4990‚JSR�LIGHT 5000‚RTS 5010�* 5020�SETACT�LDAA�#$FC 5030‚JSR�ANDACT 5050‚TBA 5060‚JSR�ORACT 5070‚RTS 5080�* 5081�ANDACT�ANDA�ACTIV 5082‚BRA�STACT 5083�ORACT�ORAA�ACTIV 5084�STACT�STAA�ACTIV 5085‚RTS 5100ˆSPC„3 5110�UPDOTC�EQU„*ˆUPDATE�THE�DIGITAL�OUTPUTS�WITH�DO�MIRROR 5111�*�AND�COPY�THE�AUX.�TC�DATA�IN�TEMPAO 5120ˆLDX„DOMIR 5130ˆSTX„DOMDL1 5140ˆLDX„DOMIR+2 5150ˆSTX„DOMDL1+2 5160ˆLDX„DOMIR+4 5170ˆSTX„DOMDL1+4 5171�* 5180ˆLDX„AOMI1 5190ˆSTX„TEMPAO 5200ˆLDX„AOMI1+2 5210ˆSTX„TEMPAO+2 5220ˆLDX„AOMI1+4 5230ˆSTX„TEMPAO+4 5231ˆRTS 6000�* 6010‚END C 5050‚ANDA�ACTIV 5060‚STAA�ACTIV 5070‚ORAB�ACTIV 5080‚STAB�ACTIV 5090‚RTS 5100�* 5110�DOSTAT�LDX�DOMIR�UPDATE�DIGITAL�OUTPUT�VALUES�FROM�STATUS 5120‚STX�DOMDL1 5130‚LDX�DOMIR+2 5140‚STX�DOMDL1+2 5150‚LDX�DOMIR+4 5160‚STX�DOMDL1+4 5170‚RTS 5500�* 5510‚END }œ)¼€§0010‚NAM�TCSCAN 0015‚OPT�REL,LLEN=120 0020�* 0025�* 0030�*�MAIN�SCAN�PROGRAM 0035�* 0040�* 0045‚XREF�CH0,CH15,AXA,CPBAX,SSXBA,AXB,TCSTAT,IMTC1,RSTRMP,SETRMP 0050‚XREF�ALSEQ,ABSEQ,ABAX,SETAO,AOMI1,STPPTR,AXBA,CURSTP,TCERR,POWFL 0055‚XREF�FPADD,FPSUB,FPMUL,FPDIV,FLOAT,FIX,PIDTAB 0056‚XREF�SOURCE,DESTIN,LENGTH,BUFBUF 0060‚XDEF�TCSCAN,TCSEL,SETEMP,TCCHK,INITPI 0065‚XDEF�PIDSEL 0070�* 0075‚BSCT 0080�* 0085�VAL1�RMB�2 0090�VAL2�RMB�2 0095�VAL3�RMB�2 0100�VAL4�RMB�2 0105�VAL5�RMB�2 0110�VAL6�RMB�2 0115�* 0120�COUNT�RMB�1 0125�MUL1�RMB�2 0130�MUL2�RMB�2 0135�* 0140�TEMPX�RMB�2 0145�STATPT�RMB�2�STATUS�POINTER�FOR�TC 0150�POINTR�RMB�2 0155�SAVEX�RMB�2 0160�LIMITS�RMB�4 0165�DIFF�RMB�2 0170�AOPTR�RMB�2 0175�READV�RMB�2� 0180�ZONENR�RMB�1�1,2�OR�3�DEPENDING�TO�THE�ZONE�SELECTED 0185�R0�RMB�1 0190�R1�RMB�1 0195�R8�RMB�2 0200�R9�RMB�2 0205�INPUT�RMB�2 0210�OUTPUT�RMB�2 0215�MSBMEM�RMB�2 0220�FPMEM�RMB�4 0225�MEMO�RMB�4 0230�BAND�RMB�4 0235�SHIFT�RMB�4 0240�* 0245‚DSCT 0250�* 0255�SETP0�RMB�4 0260�SETP1�RMB�4 0265�FPINP0�RMB�4�THESE�LOCATIONS�ARE�USED�IN�FORM;�THEY�ARE 0270�FPINP1�RMB�4�FILLED�WITH�THE�DATA�FROM�EACH�ZONE,�BEFORE 0275�FPINP2�RMB�4�FORM�IS�EXECUTED 0280�FPINP3�RMB�4 0285�FPOUT�RMB�4 0290�KPROP�RMB�4 0295�KINT�RMB�4 0300�KDIF�RMB�4 0305�UBAND�RMB�4 0310�LBAND�RMB�4 0315‚SPC�2 0320�SETP10�RMB�4 0325�SETP11�RMB�4 0330�FPIN10�RMB�4�MEMORY�LOCATIONS�FOR�ZONE�1 0335�FPIN11�RMB�4 0340�FPIN12�RMB�4 0345�FPIN13�RMB�4 0350�FPOUT1�RMB�4 0355�KPROP1�RMB�4 0360�KINT1�RMB�4 0365�KDIF1�RMB�4 0370�UBAND1�RMB�4 0375�LBAND1�RMB�4 0380‚SPC�1 0385�SETP20�RMB�4 0390�SETP21�RMB�4 0395�FPIN20�RMB�4�MEMORY�LOCATIONS�FOR�ZONE�2 0400�FPIN21�RMB�4 0405�FPIN22�RMB�4 0410�FPIN23�RMB�4 0415�FPOUT2�RMB�4 0420�KPROP2�RMB�4 0425�KINT2�RMB�4 0430�KDIF2�RMB�4 0435�UBAND2�RMB�4 0440�LBAND2�RMB�4 0445‚SPC�1 0450�SETP30�RMB�4 0455�SETP31�RMB�4 0460�FPIN30�RMB�4�MEMORY�LOCATIONS�FOR�ZONE�3 0465�FPIN31�RMB�4 0470�FPIN32�RMB�@ 4 0475�FPIN33�RMB�4 0480�FPOUT3‚RMB�4 0485�KPROP3�RMB�4 0490�KINT3�RMB�4 0495�KDIF3�RMB�4 0500�UBAND3�RMB�4 0505�LBAND3�RMB�4 0510‚SPC�1 0515‚PAGE 0520�*�MACRO�MOVE�SETS�THE�PARAMETERS�FOR�BUFBUF�AND�CALLS�BUFBUF 0525�*�THE�ARGUMENTS�ARE�SOURCE,�DESTINATION,�LENGTH�OF�DATASTRING 0530�MOVE�MACR 0535‚LDX�#\0 0540‚STX�SOURCE 0545‚LDX�#\1 0550‚STX�DESTIN 0555‚LDX�#\2� 0560‚STX�LENGTH 0565‚JSR�BUFBUF 0570‚ENDM 0580‚PAGE 0585‚PSCT 0590�* 0595�TCSCAN�PSHA 0600‚PSHB 0605‚CLRA� 0610‚STAA�TCERR 0615‚STAA�COUNT 0620‚LDX�#CH15 0625‚STX�TEMPX 0630‚LDAA�#30 0635‚STAA�TCPIA 0640�TCNEXT�LDAB�#100 0645�TCWAIT�LDAA�TCPIA 0650‚BPL�TCWEXT 0655‚DECB 0660‚BNE�TCWAIT 0665‚LDAA�TCERR 0670‚ORAA�#1 0675‚STAA�TCERR 0680‚LDAA�#$3F 0685‚LDAB�#$FF 0690‚INC�TCPIA 0695‚INC�COUNT 0700‚BRA�TCWOUT 0705�TCWEXT�JSR�TAKE6 0710‚INC�TCPIA 0715‚INC�COUNT 0720‚JSR�MINMAX 0725�TCWOUT�LDX�TEMPX 0730‚PSHA 0735‚LDAA�COUNT 0740‚BITA�#1 0745‚PULA 0750‚BNE�TCSTF 0755‚ADDB�MUL2+1 0760‚ADCA�MUL2 0765‚ASRA 0770‚RORB 0775‚CPX�#CH15 0780‚BEQ�NOCORR 0785‚JSR�TCCORR 0790‚LDX�TEMPX 0795‚ADDB�1,X 0800‚ADCA�X 0805‚ADDB�#1 0810‚ADCA�#0 0812‚ASRA 0813‚RORB 0815‚STAA�X 0820‚STAB�1,X 0825‚LDAA�COUNT 0830‚CMPA�#26 0835‚BEQ�TCOUT 0840�NXT�INX 0845‚INX 0850‚STX�TEMPX 0855�TCREV�BRA�TCNEXT 0860�TCSTF�STAA�MUL2 0865‚STAB�MUL2+1 0870‚BRA�TCREV 0875�NOCORR�STAA�X 0880‚STAB�1,X 0885‚JSR�DIFFER 0890‚BRA�NXT 0895�TCOUT�LDAA�#28 0900‚STAA�TCPIA 0901‚MOVE�CH0,IMTC1,24…DUPLICATE�THE�VALUES;�USED�WITH�OLD�STATUS 0905‚TST�TCERR 0910‚BEQ�TCOK 0915‚SEC 0920‚BRA�TCEXIT 0925�TCOK�CLC 0930�TCEXIT�PULB 0935‚PULA 0940‚RTS�*�EXIT�HERE 0945�* 0950�TAKE6�EQU�* 0955�*ƒTAKE6�READS�6�VALUES�FROM�THE�ADC�AND�STORES 0960�*ƒTHESE�IN�VAL1�THROUGH�VAL6 0965�* 0970‚LDX�#VAL1 0975�TAK6NX�LDAB�#$34 0980‚STAB�TCPIA+1 0985‚STAB�TCPIA+3 0990‚LDAB�#$3C 0995‚LDAA�TCPIA+2 1000‚ANDA�#$F 1005‚STAA�X 1010‚STAB�TCPIA+3 1015‚LDAA�TCPIA+2 1020‚STAB�TCPIA+1 1025‚STAA�1,X 1030‚CPX�#VAL6 1035‚BEQ�OUT6 1040‚INX 1045‚INX 1050‚BRA�TAK6NX 1055�OUT6�RTS 1060�* 1075�* 1080�MINMAX�LDX�#VAL1 1085‚LDAA�X 1090‚LDAB�1,X 1095�MINCON�STX�SAVEX 1100�MINC�CPX�#VAL6 1105‚BEQ�MIXT 1110‚CMPA�2,X 1115‚BLT�NXTMI3 1120‚BNE�NEWMI2 1125‚CMPB�3,X 1130‚BLS�NXTMI3 1135�NEWMI2�LDAA�2,X 1140‚LDAB�3,X 1145‚INX 1150‚INX 1155‚BRA�MINCON 1160�NXTMI3�INX 1165‚INX 1170‚BRA�MINC 1175�MIXT�LDX�SAVEX 1180‚CLR�0,X 1185‚CLR�1,X 1190‚LDX�#VAL1 1195‚LDAA�X 1200‚LDAB�1,X 1205�MAXCON�STX�SAVEX 1210�MAXC�CPX�#VAL6 1215‚BEQ�MAXT 1220‚CMPA�2,X 1225‚BGT�NXTMA3 1230‚BNE�NEWMA2 1235‚CMPB�3,X 1240‚BCC�NXTMA3 1245�NEWMA2�LDAA�2,X 1250‚LDAB�3,X 1255‚INX 1260‚INX 1265‚BRA�MAXCON 1270�NXTMA3�INX 1275‚INX 1280‚BRA�MAXC 1285�MAXT�LDX�SAVEX 1290‚CLR�0,X 1295‚CLR�1,X 1300�* 1305�*ƒADD�VAL1�.....VAL6 1310�* 1315‚LDX�#VAL6 1320‚LDAA�X 1325‚LDAB�1,X 1330�ADDCON�DEX 1335‚DEX 1340‚ADDB�1,X 1345‚ADCA�X 1350‚CPX�#VAL1 1355‚BNE�ADDCON 1360‚RTS 1365�* 1370�* 1375�DIFFER�LDX�#CH15 1380‚LDAA�#$40 1385‚CLRB 1390‚SUBB�1,X 1395‚SBCA�X 1400‚ASLB 1405‚ROLA 1410‚STAA�MUL1 1415‚STAB�MUL1+1 1420‚CMPA�#$42 1425‚BGE�ERPLS 1430‚CMPA�#$3E 1435‚BLT�ERMIN 1440‚RTS 1445�ERPLS�LDAA�#$42 1450‚CLRB 1455�ERCONT�STAA�MUL1 1460‚STAB�MUL1+1 1465‚LDAA�TCERR 1470‚ORAA�#$80 1475‚STAA�TCERR 1480‚RTS 1485�ERMIN�LDAA�#$3E 1490‚CLRB 1495‚BRA�ERCONT 1500�* 1505�* 1510�TCCORR�STAA�MUL2 1515‚STAB�MUL2+1 1520‚JSR�HSMUL 1525‚LDX�TEMPX 1530‚STAA�X 1535‚STAB�1,X 1540‚RTS 1545�* 1550A �* 1555�HSMUL�LDX�#14 1560‚CLRA 1565‚CLRB 1570‚ROR�MUL2 1575‚ROR�MUL2+1 1580�HSNXT�BCC�HSROT 1585‚ADDB�MUL1+1 1590‚ADCA�MUL1 1595�HSROT�RORA 1600‚RORB 1605‚ROR�MUL2 1610‚ROR�MUL2+1 1615‚DEX 1620‚BNE�HSNXT 1625‚CMPA�#$40 1630‚BLT�HSOUT 1635‚LDAA�#$3F 1640‚LDAB�#$FF 1645�HSOUT�RTS 1650�* 1655�* 1660�* 1665�*�ROUTINE�FOR�ZONENRING�THE�RIGHT�TC 1670�*�INPUT�PARAMETERS�:�ACCB�THE�TEMP�CHANNEL�(1-3) 1675�*�OUTPUT�PARAMETERS�:�ACCB�THE�CHANNEL 1680�*“:�X�THE�RIGHT�TC�OR�IN�CASE�OF�FAILURE�THE�MAIN 1685�* 1690�TCSEL�PSHB 1695‚DECB�ADJUST�THE�ADDRESS�ZONENR 1700‚LDX�#TCSTAT�SET�THE�STATPT 1705‚JSR�AXB 1710‚STX�STATPT�SAV�THE�STATUS�PTR 1715‚CLR�X�RESET�THE�TCSTAT�BYTE 1720‚ASLB 1725‚ASLB 1730‚LDX�#IMTC1�TAKE�THE�FIRST�TC�IMAGE�ADDRESS 1735‚JSR�AXB�ADJUST�THE�POINTER 1740‚STX�POINTR�SAVE�IT 1745‚LDAB�X�TAKE�THE�FIRST�TEMP.�BYTE 1750‚LDAA�1,X 1755‚LDX�#$2B00�CHECK�IF�HIGHER�THAN�1350�DEG. 1760‚JSR�CPBAX 1765‚BLS�SEL1�NO�DON'T�SET�THE�BIT 1770‚LDAA�#%00100000�SET�MAIN�TC.�MORE�THAN�1350 1775‚LDX�STATPT�TAKE�THE�STATUS�POINTER 1780‚ORAA�X�SET�STATUS 1785‚STAA�X 1790�SEL1�LDX�POINTR�TAKE�THE�VALUE�POINTER 1795‚LDAB�2,X 1800‚LDAA�3,X�TAKE�THE�BACKUP�TC�VALUE 1805‚LDX�#$2B00�CHECK�FOR�HIGHER�TEMP. 1810‚JSR�CPBAX 1815‚BLS�SEL2�TEMP�IS�LOW�SKIP�BIT�SETTING 1820‚LDAA�#%00010000�SET�BACKUP�TC.�MORE�THAN�1350 1825‚LDX�STATPT 1830‚ORAA�X 1835‚STAA�X 1840‚CMPA�#%00110000�BOTH�ARE�SET 1845‚BEQ�SELEX�YES�EXIT�NOW 1850�SEL2�LDX�POINTR�CHECK�NOW�FOR�THE�DIFFERENCE�>50�DEG. 1855‚LDAB�X 1860‚LDAA�1,X 1865‚LDX�2,X�TAKE�THE�BACKUP�VALUE 1870‚JSR�SSXBA�MAKE�THE�DIFF. 1875‚PSHB�SAVE�ACCB 1880‚TSTB 1885‚BPL�SEL3�IF�POSITIVE�MAIN�IS�GREATHEST 1890‚LDAB�#%00001000�SET�MAIN�IS�LOWEST 1895‚FCB�$8C�SKIP�2�BYTES 1900�SEL3�LDAB�#%00000100�SET�BACKUP�IS�LOWEST 1905‚LDX�STATPT�TAKE�THE�POINTER�AND�SET�STATUS 1910‚ORAB�X 1915‚STAB�X 1920‚PULB�RESTORE�ACCB 1925‚ANDB�#$7F�KILL�THE�SIGN 1930‚LDX�#$A0�VALUE�IS�MORE�THAN�15�DEG. 1935‚JSR�CPBAX 1940‚BHI�SEL4 1945‚LDX�STATPT�SET�MAIN�TC�TAKEN 1950‚LDAA�#%00000010 1955‚ORAA�X 1960‚STAA�X 1965‚LDAB�ZONENR�RESET�DRIFT�FLAG 1970‚DECB 1975‚ASLB 1980‚BNE�DRST1 1985‚LDAB�#1 1990�DRST1�COMB 1995‚ANDB�TCSTAT+3 2000‚STAB�TCSTAT+3 2005�SELEX�LDX�POINTR�TAKE�THE�RIGHT�TC 2010‚PSHA�SAVE�THE�TC�ERROR�CODE 2015‚ASLA�ADJUST�OFFSTE 2020‚ANDA�#%00000011�KEEP�ONLY�ZONENR 2025‚JSR�AXA 2030‚PULA 2035‚LDX�X 2040‚PULB�RESTORE�REGISTER 2045‚RTS 2050�SEL4�LDAB�ZONENR�SET�THE�DRIFT�FLAG 2055‚DECB 2060‚ASLB 2065‚BNE�DSET1 2070‚LDAB�#1 2075�DSET1�ORAB�TCSTAT+3 2080‚STAB�TCSTAT+3 2085‚LDAB�#%10000000�SET�THE�ALARM�CODE�(�DRIFT�) 2090‚ADDB�ZONENR 2095‚JSR�ALSEQ�SEND�ALARM 2100‚LDX�POINTR�CHECK�IF�LESS�THAN�350 2105‚LDAB�X�TAKE�THE�MAIN�VALUE 2110‚LDAA�1,X 2115‚LDX�#$680�LESS�THEN�300�DEG. 2120‚JSR�CPBAX 2125‚BHI�SEL5�MORE�TAHN�300�DEG. 2130‚LDAA�#%10000000�SET�MAIN�LESS�THAN�350 2135‚LDX�STATPT 2140‚ORAA�X�UPDATE�THE�WORD 2145‚STAA�X 2150�SEL5�LDX�POINTR�CHECK�BACKUP�TC 2155‚LDAB�2,X 2160‚LDAA�3,X 2165‚LDX�#$680 2170‚JSR�CPBAX 2175‚BHI�SEL6 2180‚LDAA�#%01000000�SET�BACKUP�LESS�THAN�300 2185‚LDX�STATPT 2190‚ORAA�X�UPDATE�WORD 2195‚STAA�X 2200�SEL6�LDX�STATPT�RESTORE�THE�STATUS�POINTER 2205‚LDAA�X 2210‚BITA�#%11110000�TC.S�ALL�IN�RANGE 2215‚BNE�SEL7�NO�CHECK 2220‚STAA�X 2225‚ANDA�#%00001100�KEEP�LOWEST�BITS 2230‚LSRA 2235‚LSRA�SET�THE�TC�TO�TAKE 2240‚ORAA�X 2245‚STAA�X 2250‚BRA�SELEX�EXIT�NOW 2255�SB EL7�TAB 2260‚ANDB�#%11000000 2265‚CMPB�#%11000000�BOTH�ARE�LOWER�THAN�3350 2270‚BEQ�SELEX�YES�EXIT 2275‚LSRB 2280‚LSRB�CHECK�ONE�>�1350�AND�OTHER�<�350 2285‚ORAB�X 2290‚ANDB�#%00110000�KEEP�ONLY�THE�RESULT 2295‚CMPB�#%00110000 2300‚BEQ�SELEX�EXIT�WITH�NO�RESULT 2305‚TAB�CHECK�FOR�TC�IN�RANGE 2310‚ANDB�#%10100000�IS�MAIN�TC 2315‚BNE�SEL8�NO�CHECK�BACKUP 2320‚LDAA�#%00000010�SET�MAIN�IS�OK 2325‚ORAA�X 2330‚STAA�X 2335‚BRA�SELEXR 2340�SEL8�TAB�CHECK�FOR�BACKUP�GOOD 2345‚ANDB�#%01010000 2350‚BNE�SELEXR�IS�BAD�NO�ZONENRION 2355‚LDAA�#%00000001 2360‚ORAA�X 2365‚STAA�X 2370�SELEXR�JMP�SELEX 2375�* 2380�*�ROUTINE�FOR�SETTING�THE�TEMPERATURE 2385�* 2390�*�INPUT�PARAMETER�:�X�STEP�ADDRESS 2395�* 2400�SETEMP�PSHA 2405‚PSHB 2410‚STX�SAVEX�SAVE�REGISTERS 2415‚LDAA�TMPST1,X�TAKE�THE�FIRST�SETPOINT 2420‚CMPA�#$7F�IS�DUMMY 2425‚BEQ�SET1 2430‚LDAB�#1�SET�THE�FIRST�ZONE 2435‚LDX�TMPST1,X 2440‚TSTA 2445‚BMI�SET0�TEMPERATURE�IS�RAMPED 2450‚JSR�RSTRMP�SET�FIXED 2455‚BRA�SET1 2460�SET0�JSR�SETRMP�SET�RAMPING�VALUE 2465�SET1�LDX�SAVEX 2470‚LDAA�TMPST2,X 2475‚CMPA�#$7F 2480‚BEQ�SET3�IS�DUMMY 2485‚INCB 2490‚LDX�TMPST2,X�TAKE�THE�SECOND�SETPOINT 2495‚TSTA 2500‚BMI�SET2�RAMPING 2505‚JSR�RSTRMP 2510‚BRA�SET3 2515�SET2�JSR�SETRMP 2520�SET3�LDX�SAVEX 2525‚INCB 2530‚LDAA�TMPST3,X�TAKE�THE�LAST�ZONE 2535‚CMPA�#$7F�IS�DUMMY�SETPOINT 2540‚BEQ�SET5�YES�NOTHING 2545‚LDX�TMPST3,X 2550‚TSTA 2555‚BMI�SET4 2560‚JSR�RSTRMP 2565‚BRA�SET5 2570�SET4�JSR�SETRMP 2575�SET5�LDX�SAVEX 2580‚PULA 2585‚PULB 2590‚RTS 2595�* 2600�*�ROUTINE�FOR�MAINTAIN�THE�TEMPERATURE 2605�* 2610�TCCHK�PSHA 2615‚PSHB 2620‚JSR�POWFL 2625‚LDX�#AOMI1�INIT�THE�POINTER 2640‚STX�AOPTR 2645‚LDX�STPPTR 2650‚LDX�TMPALL,X�TAKE�THE�LIMITS�AND�SAVE�IT 2655‚STX�LIMITS 2660‚LDAA�LIMITS+1 2665‚STAA�LIMITS+3�SET�THE�RIGHT�LIMITS 2670‚CLR�LIMITS+2�SET�THE�ABORT�LIMIT�AFTER�MULTIPLY�BY�EIGHT 2675‚ASL�LIMITS+3 2680‚ROL�LIMITS+2 2685‚ASL�LIMITS+3 2690‚ROL�LIMITS+2 2695‚ASL�LIMITS+3 2700‚ROL�LIMITS+2 2705‚LDAA�LIMITS�SET�THE�ALARM�LIMIT�AFTER�SAME�MULTIPLICATION 2710‚STAA�LIMITS+1 2715‚CLR�LIMITS 2720‚ASL�LIMITS+1 2725‚ROL�LIMITS 2730‚ASL�LIMITS+1 2735‚ROL�LIMITS 2740‚ASL�LIMITS+1�ALARM�LIMITS�IS�NOW�IN�LIMITS�AND�LIMITS+1 2745‚ROL�LIMITS�ABORT�LIMITS�IS�NOW�IN�LIMITS+2�AND�LIMITS+3 2750‚LDAA�LIMITS+3 2755‚ADDA�LIMITS+1�ABORT�LIMIT�IS�GIVEN�BY�ADDITION�WITH�ALARM 2760‚STAA�LIMITS+3 2765‚LDAA�LIMITS+2 2770‚ADCA�LIMITS 2775‚STAA�LIMITS+2 2780‚JSR�TCSCAN�UPDATE�VALUE 2785‚CLR�TCSTAT+3�RESET�THE�DRIFT�BITS 2790‚LDAB�#1�CHECK�THE�FIRST�ZONE 2795�TCCK1�STAB�ZONENR 2800‚JSR�TCSEL�ZONENR�THE�TC 2805‚STX�READV�SAVE�THE�READING�VALUE 2810‚JMP�TCCKX 2815�TCCK10�LDX�AOPTR 2820‚LDAB�X 2825‚LDAA�1,X�TAKE�THE�ACTUAL�SETPOINT 2830‚LDX�READV�TAKE�VALUE 2835‚JSR�SSXBA�SUBSTRACT�THE�VALUE 2840‚STAB�DIFF 2845‚STAA�DIFF+1�SAVE�THE�DIFFERENCE 2850‚LDX�STPPTR�TEST�IF�ALARM�LIMIT�IS�0 2855‚ANDB�#$7F�KILL�THE�SIGN 2860‚TST�TMPALL,X 2865‚BEQ�TCCK2 2870‚LDX�LIMITS�TAKE�THE�ALARM�LIMITS 2875‚LDAA�DIFF+1 2880‚JSR�CPBAX�COMPAR�THE�LIMITS 2885‚BLS�TCCK2 2890‚TST�STPPTR�IS�NOT�ARUN 2895‚BEQ�TCCK2 2900‚PSHB 2905‚LDAB�#%10000000�PUT�THE�TC�ALARM�CODE 2910‚ADDB�ZONENR 2915‚JSR�ALSEQ�SEND�AN�ALARM 2920‚PULB 2925�TCCK2�LDX�STPPTR�TEST�IF�ABORT�LIMIT�IS�0 2930‚TST�TMPALL+1,X 2935‚BEQ�TCCK3 2940‚LDX�LIMITS+2 2945‚LDAA�DIFF+1�RESTORE�LS�VALUE 2950‚JSR�CPBAX 2955‚BLS�TCCK3 2960‚TST�STPPTR 2965‚BEQ�C TCCK3 2970‚TST�CURSTP 2975‚BEQ�TCCK3 2980‚PSHB 2985‚LDAB�#%10000000�SET�THE�TC�ABORT�CODE 2990‚ADDB�ZONENR 2995‚JSR�ABSEQ�PUT�AN�ABORT 3000‚PULB 3005�TCCK3�JSR�PID�COMPUTE�CONTROLLER�OUTPUT�FOR�THIS�ZONE 3010�TCCKW�LDAB�ZONENR 3015‚CMPB�#3�IS�THE�LAST 3020‚BEQ�TCCKEX�YES�EXIT 3025‚INCB 3030‚LDX�AOPTR 3031ˆINX�UPDATE�AO�POINTER 3032ˆINX 3045‚STX�AOPTR 3050‚JMP�TCCK1 3055�TCCKX�BITA�#%00000011�CHECK�IF�WRONG 3060‚BNE�TCCKY�NO�CONTINUE 3065‚PSHB�SAVE�ZONE�NUMBER 3070‚LDAB�#%10000000 3075‚ADDB�ZONENR 3080‚JSR�ABSEQ�GOTO�ABORT 3085‚LDAB�#3 3090�TCCKZ�LDX�#0 3095‚JSR�OUT0�SETS�THE�CONTROLLER�OUTPUT�FOR�ALL�ZONES�TO�0 3100‚PULB 3105‚CMPB�#3 3110‚BEQ�TCCKEX�EXIT�ONLY�IF�ZONE�3�IS�CHECKED 3115‚INCB�NEXT�ZONE 3120‚JMP�TCCK1 3125�TCCKEX�PULA 3130‚PULB 3135‚RTS 3140�TCCKY�JMP�TCCK10 3150‚PAGE 3155�PID�EQU�* 3160�*�CHANGES�THE�(THERMOCOUPLE)�INPUT�AND�THE�ACTUAL�SETPOINT�TO 3165�*�FLOATING�POINT�AND�CALCULATES�THE�NEW�CONTROLLER�OUTPUT�VALUE. 3170�*�THE�EXECUTED�FORMULA�IS�10-41�FROM�DIGITALE�REGEL- 3175�*�SYSTEMEN�DEEL�4�(IR.�H.B.�VERBRUGGEN�) 3180�* 3185�PID1�LDAA�ZONENR 3190‚CMPA�#1 3195‚BNE�PID2�BRANCH�IF�NOT�THIS�ZONE 3200‚LDX�AOPTR�POINTER�TO�SETPOINT 3205‚LDX�0,X�GET�SETPOINT 3210‚STX�MSBMEM 3215‚JSR�FLOAT 3220‚FDB�MSBMEM 3225‚FDB�SETP10�FLOATING�POINT�SETPOINT 3230‚JSR�FLOAT 3235‚FDB�READV�INPUT�FROM�THERMOCOUPLE 3240‚FDB�FPIN10�FLOATING�POINT�INPUT 3245‚MOVE�SETP10,SETP0,48�MOVE�DATA�ZONE�1 3250‚JSR�FORM�CALCULATE�OUTPUT�IN�FP 3255‚MOVE�SETP0,SETP11,24�MOVE�DATA�ZONE�BACK,�ONE�POSITION�SHIFTED 3260�*�IN�THE�TIME 3265‚JSR�CALOUT�CALCULATE�OUTPUT�VALUE 3270‚MOVE�FPOUT,FPOUT1,4�KEEP�OUTPUT�VALUE�FOR�NEXT�CALCULATION�OF�FORM 3275‚LDX�OUTPUT 3280‚STX�ZONE1 3285‚RTS 3290�* 3295�PID2�CMPA�#2 3300‚BNE�PID3�BRANCH�IF�NOT�THIS�ZONE 3305‚LDX�AOPTR�POINTER�TO�SETPOINT 3310‚LDX�0,X�GET�SETPOINT 3315‚STX�MSBMEM 3320‚JSR�FLOAT 3325‚FDB�MSBMEM 3330‚FDB�SETP20�FLOATING�POINT�SETPOINT 3335‚JSR�FLOAT 3340‚FDB�READV�INPUT�FROM�THERMOCOUPLE 3345‚FDB�FPIN20�FLOATING�POINT�INPUT 3350‚MOVE�SETP20,SETP0,48�MOVE�DATA�ZONE�2 3355‚JSR�FORM�CALCULATE�OUTPUT�IN�FP 3360‚MOVE�SETP0,SETP21,24�MOVE�DATA�ZONE�2�BACK,�ONE�POSITION�SHIFTED 3365�*�IN�THE�TIME 3370‚JSR�CALOUT�CALCULATE�OUTPUT�VALUE 3375‚MOVE�FPOUT,FPOUT2,4�KEEP�OUTPUT�VALUE�FOR�NEXT�CALCULATION�OF�FORM 3380‚LDX�OUTPUT 3385‚STX�ZONE2�SET�CONTROLLER�OUTPUT�FOR�THIS�ZONE 3390‚RTS 3395�* 3400�PID3�LDX�AOPTR�POINTER�TO�SETPOINT 3405‚LDX�0,X�GET�SETPOINT 3410‚STX�MSBMEM 3415‚JSR�FLOAT 3420‚FDB�MSBMEM 3425‚FDB�SETP30�FLOATING�POINT�SETPOINT 3430‚JSR�FLOAT 3435‚FDB�READV�INPUT�FROM�THERMOCOUPLE 3440‚FDB�FPIN30�FLOATING�POINT�INPUT 3445‚MOVE�SETP30,SETP0,48�MOVE�DATA�ZONE�3 3450‚JSR�FORM�CALCULATE�OUTPUT�IN�FP 3455‚MOVE�SETP0,SETP31,24�MOVE�DATA�ZONE�3�BACK,�ONE�POSITION�SHIFTED 3460�*�IN�THE�TIME 3465‚JSR�CALOUT�CALCULATE�OUTPUT�VALUE 3470‚MOVE�FPOUT,FPOUT3,4�KEEP�OUTPUT�VALUE�FOR�NEXT�CALCULATION�OF�FORM 3475‚LDX�OUTPUT 3480‚STX�ZONE3�SET�CONTROLLER�OUTPUT�FOR�THIS�ZONE 3485‚RTS 3490‚PAGE 3495�FORM�EQU�* 3500�* 3505�*�CALCULATES�ACCORDING�TO�FORMULA�10-41�FOR�THE�PID�CONTROLLER�THE 3510�*�CONTROLLER�OUTPUT�VALUE�(POSITION�ALGORITHM) 3515�*�THE�FLOATING�POINT�OUTPUT�VALUE�IS�IN�FPOUTŽ 3520�* 3525�*�OUTPUT�=�FPOUT 3530�*Š+�KPROP�*�(SETP0�-�FPINP0�-�SETP1�+�FPINP1) 3535�*Š+�KINT�*�(SETP0�-�FPINP0) 3540�*Š+�KDIF/6�*�(-�FPINP0�-�3*FPINP1�+�3*FPINP2�+�FPIND P3) 3545�* 3550�FORM01�JSR�FPSUB 3555‚FDB�SETP0 3560‚FDB�FPINP0 3565‚FDB�FPMEM�SETP0�-�FPINP0 3570�*�TEST�TO�SEE�IF�TEMP.�IS�WITHIN�THE�PROP.�BAND.�IF�NOT�FORM�IS 3575�*�NOT�EXECUTED�AND�OUTPUT�SET�TO�0�OR�FFFF�DEPENDING�ON�THE�TEMP. 3580‚MOVE�FPMEM,MEMO,4 3585‚TST�MEMO 3590‚BPL�FORM04�BRANCH�IF�TEMP�IS�BELOW�SETPOINT 3595‚ASL�MEMO 3600‚LSR�MEMO�REMOVE�SIGN 3605‚JSR�FPSUB 3610‚FDB�UBAND 3615‚FDB�MEMO 3620‚FDB�MEMO�UPPER�BAND�LIMIT�-�ABS{SETP0�-�FPINP0} 3625‚BRA�FORM05 3630�FORM04�JSR�FPSUB 3635‚FDB�LBAND 3640‚FDB�MEMO 3645‚FDB�MEMO�LOWER�BAND�LIMIT�-�ABS{SETP0�-�FPINP0} 3650�FORM05�TST�MEMO 3655‚BPL�FORM2�BRANCH�IF�WITHIN�THE�PROPORTIONAL�BAND 3660‚CLRA 3665‚TST�FPMEM 3670‚BMI�FORM1�BRANCH�IF�OUTPUT�SHOULD�BE�0 3675‚LDAA�#5�PUT�A�NR�>�FFFF�IN�THE�OUTPUT�OF�FORM 3680�FORM1�STAA�FPOUT 3685‚STAA�FPOUT+1 3690�FORM11�RTS 3695‚SPC�1 3700�FORM2�JSR�FPSUB 3705‚FDB�FPINP1 3710‚FDB�SETP1 3715‚FDB�MEMO�FPINP1�-�SETP1 3720‚JSR�FPADD 3725‚FDB�FPMEM 3730‚FDB�MEMO 3735‚FDB�MEMO�FPINP1�-�SETP1�+�SETP0�-�FPINP0 3740‚JSR�FPMUL 3745‚FDB�KPROP 3750‚FDB�MEMO 3755‚FDB�MEMO�(SETP0-FPINP0+FPINP1-SETP1)*(KPROP) 3760‚SPC�1 3765�FORM21�JSR�FPMUL 3770‚FDB�KINT 3775‚FDB�FPMEM 3780‚FDB�FPMEM�KINT*(SETP1-FPINP0) 3785‚SPC�1 3790�FORM3�JSR�FPADD 3795‚FDB�MEMO 3800‚FDB�FPMEM 3805‚FDB�FPMEM�(KINT+KPROP)*(SETP0-FPINP0)+KPROP*(FPINP1-SETP1) 3810‚SPC�1 3815‚JSR�FPSUB 3820‚FDB�FPINP2 3825‚FDB�FPINP1 3830‚FDB�MEMO�FPINP2�-�FPINP1 3835‚JSR�FPMUL 3840‚FDB�MEMO 3845‚FDB�CONST3 3850‚FDB�MEMO�3*(FPINP2-FPINP1) 3855‚JSR�FPSUB 3860‚FDB�MEMO 3865‚FDB�FPINP0 3870‚FDB�MEMO�-FPINP0�+�3*(FPINP2�-�FPINP1) 3875‚JSR�FPADD 3880‚FDB�MEMO 3885‚FDB�FPINP3� 3890‚FDB�MEMO�-�FPINP0�+�3*(FPINP2�-�FPINP1)�+�FPINP3 3895‚JSR�FPMUL 3900‚FDB�KDIF 3905‚FDB�MEMO 3910‚FDB�MEMO�KDIF*{-�FPINP0�+�3*(FPINP2�-�FPINP1)�+�FPINP3} 3915‚SPC�1 3920�FORM4�JSR�FPADD 3925‚FDB�MEMO 3930‚FDB�FPMEM 3935‚FDB�FPMEM�ADD�LINE�4�TO�LINE�2�AND�LINE�3 3940‚SPC�1 3945‚JSR�FPADD 3950‚FDB�FPMEM 3955‚FDB�FPOUT 3960‚FDB�FPOUT�RESULT�OF�FORMULA 3965‚RTS 3970‚PAGE 3975�CALOUT�EQU�* 3980�*�CALCULATES�THE�OUTPUT�FOR�THE�ZONES 3985‚LDAA�FPOUT� 3990‚BPL�CAL1�BRANCH�IF�RESULT�IS�POSITIVE 3995‚LDX�#0�SET�RESULT�OF�FORMULA�TO�0,�SINCE�NEGATIVE�OUTPUT�IS�NOT 4000‚STX�FPOUT�POSSIBLE 4005‚STX�FPOUT+2 4010‚STX�OUTPUT 4015‚BRA�CAL3 4020�CAL1�CMPA�#4�CHECK�EXPONENT 4025‚BLE�CAL2�BRANCH�IF�RESULT�IS�