.title KRTSHO The SHOW command .ident "V03.62" ; /62/ 27-Jul-93 Billy Youdelman ; ; added SHO BAUD, DTR, DUPLEX, END_OF_LINE, FLOW_CONTROL, HOME, LD:, ; LOCAL_ECHO, LOGFILE, LONG_PACKETS, RANDOM, RECEIVE, SEED, SEND, SPEED ; cleanup, condense logging (debug) modes display ; display current_block_number and size_of logfile in SHO DEBUG ; move SETTLE_TIME to SHO DIAL ; conform to major sinit stuff update in KRTINI.MAC ; include last number dialed in SH PHONE ; add SHOW CL, EOF ; /BBS/ 1-Dec-91 Billy Youdelman V03.61 ; ; SHOW command with no args displays assigns ala RT-11 ; sho$all - shortened up ; added sho$attributes ; added sho$devices - displays the bbs access permission list only ; added sho$submounts, using TSX emts ; added sho$vl - displays status of vlswch under TSX+ ; add DEC_Multinational type to sho$file ; moved release notes to the help text file ; sho$packet - display "^A" notation in addition to octal numbers ; also lists long_packets max length, set length, rec'd length ; add xtime for spiffier transfer time display, other small fixes ; sho$file - indicate if file name conversion disabled, lower case on ; added home directory to sho$default ; fixed display formatting for sho$phone_numbers ; sho$params indicates if SET LONG OFF or SET NOLONG ; added MILNET to SHO CONSOLE ; added c$print ; moved sho$line to krtcm1 ; added SHO TERMINAL ; added SHO RETRY, TIME_OUT, made PACKET do parameters, not stats ; add SHOW INCOMPLETE_FILE_DISPOSITION ; add SHO MEMORY, display remaining handler free space under RT-11 ; add SHO SL, SHO UPDATE, added LOCAL_ECHO, BREAK to SHO CONSOLE ; add SHO REPEAT_CHAR, SERVER ; pass file date/time/prot to COPY output file ; use DEC method of version numbering for SHO VERSION ; 31-Jan-84 08:28:16 Brian Nelson ; ; Remove SHOW code from KRTCMD.MAC for placement into an overlay. .include "IN:KRTMAC.MAC" .iif ndf KRTINC .error <; .include for IN:KRTMAC.MAC failed> .include "IN:KRTCDF.MAC" .iif ndf KRTCDF .error <; .include for IN:KRTCDF.MAC failed> .mcall .PURGE ; /62/ .psect $code .sbttl SHOW command processor .enabl lsb c$show::tstb @argbuf ; /BBS/ any arg there? beq 103$ ; /BBS/ no, do devs ala RT-11 upcase argbuf ; /BBS/ upper case the args calls getcm0 , ; look for a valid command tst r0 ; find one? bmi 110$ ; no tst wasnul ; /BBS/ were commands listed via "?" bne 199$ ; /BBS/ ya jsr pc ,@r1 ; dispatch the command 199$: clr r0 ; /62/ return 103$: call sho$df ; /BBS/ display default disk ala RT-11 br 199$ ; /62/ 110$: cmp r0 ,#cmd$un ; /BBS/ ambiguous? bne 189$ ; /BBS/ no mov #er$tam ,r0 ; /62/ ya, make it ambiguous topic br 190$ ; /62/ 189$: mov #er$tun ,r0 ; /62/ unrecognizable topic 190$: direrr r0 ; /62/ return .dsabl lsb $CMGLOB = 1 ; globalize these commands command sholst ,ALL ,2 ,sho$al command sholst ,ASSIGNS ,2 ,sho$df command sholst ,ATTRIBUTES ,2 ,sho$at ; /BBS/ wuz missing.. command sholst ,BAUD ,2 ,sho$li ; /62/ command sholst ,BINARY_TYPE ,2 ,sho$bt command sholst ,BLOCK_CHECK_TYPE,2 ,sho$bl command sholst ,CL: ,2 ,sho$cl ; /62/ command sholst ,CONSOLE ,2 ,sho$co command sholst ,DATE ,2 ,sho$da command sholst ,DEBUG ,3 ,sho$de command sholst ,DEFAULT ,3 ,sho$df command sholst ,DELAY ,3 ,sho$dl ;comman sholst ,DEVICES ,3 ,sho$dv ; /BBS/ devlst only!! command sholst ,DIAL ,2 ,sho$dp command sholst ,DTR ,2 ,sho$li ; /62/ command sholst ,DUPLEX ,2 ,sho$co ; /62/ command sholst ,END_OF_LINE ,2 ,sho$pa ; /62/ command sholst ,EOF ,2 ,sho$eo ; /62/ command sholst ,ESCAPE ,2 ,sho$es command sholst ,FILE_TYPE ,2 ,sho$fi command sholst ,FLOW_CONTROL ,2 ,sho$li ; /62/ command sholst ,HANDSHAKE ,2 ,sho$ha command sholst ,HOME ,2 ,sho$df ; /62/ command sholst ,INCOMPLETE_FILE_DISPOSITION ,1 ,sho$in command sholst ,LD: ,2 ,sho$su ; /62/ command sholst ,LINE ,2 ,sho$li command sholst ,LOCAL_ECHO ,3 ,sho$co ; /62/ command sholst ,LOGFILE ,3 ,sho$de ; /62/ command sholst ,LONG_PACKETS ,3 ,sho$pk ; /62/ command sholst ,MEMORY ,2 ,sho$me command sholst ,MODEM_TYPE ,2 ,sho$dp command sholst ,PACKETS ,3 ,sho$pk command sholst ,PARAMETERS ,3 ,sho$pa command sholst ,PARITY ,3 ,sho$pr command sholst ,PAUSE ,3 ,sho$ps command sholst ,PHONE ,2 ,sho$ph command sholst ,RANDOM ,2 ,sho$de ; /62/ command sholst ,RECEIVE ,3 ,sho$pa ; /62/ command sholst ,REPEAT_QUOTING ,3 ,sho$rp command sholst ,RETRY ,3 ,sho$rt command sholst ,SEED ,3 ,sho$de ; /62/ command sholst ,SEND ,3 ,sho$pa ; /62/ command sholst ,SERVER ,3 ,sho$sv command sholst ,SL ,2 ,sho$sl command sholst ,SPEED ,2 ,sho$li ; /62/ command sholst ,START_OF_PACKET,2 ,sho$so command sholst ,SUBMOUNTS ,2 ,sho$su command sholst ,TERMINAL ,1 ,sho$tt command sholst ,TIME ,2 ,sho$ti command sholst ,TIME_OUTS ,5 ,sho$to command sholst ,TT: ,2 ,sho$tt command sholst ,UPDATE ,1 ,sho$up command sholst ,VERSION ,2 ,sho$ve command sholst ,VLSWCH ,2 ,sho$vl command sholst .sbttl SHOW ALL ; /BBS/ rearranged.. sho$al: call sho$ve ; version call sho$li ; line call sho$tt ; terminal tst tsxsav ; running under TSX? beq 1$ ; skip sho$vl if not TSX call sho$vl ; vlswch 1$: call sho$es ; escape call sho$at ; attributes call sho$bt ; binary_types call sho$de ; debugging call sho$fi ; file call sho$in ; incomplete_file_disposition call sho$bl ; block_check_type call sho$pa ; parameters jmp sho$yy ; /62/ default disk .sbttl SHOW DIAL sho$dp: tst (sp)+ ; dump the return address then call jmp xxsdia ; this to load an adjacent overlay.. .sbttl SHOW DEBUG ; /62/ major revision .enabl lsb sho$de: clr r0 ; index := 0 20$: tst 200$(r0) ; end of the list yet? beq 70$ ; yes, go check file name wrtall 205$(r0) ; print the header bit 200$(r0),trace ; see if a bit is turned on beq 30$ ; no wrtall #300$ ; "ENABLED" ya, say so then br 40$ ; next please 30$: wrtall #310$ ; "disabled" it's off 40$: .newline tst (r0)+ ; bump to next entry please br 20$ ; go do it 70$: wrtall #260$ ; "RANDOM error insertion is:" tst ranerr ; doing random errors? bne 71$ ; ya wrtall #310$ ; no "disabled" br 72$ 71$: wrtall #300$ ; ya "ENABLED" 72$: wrtall #270$ ; " SEED = " mov seed ,r0 ; get a copy of the seed call L10266 ; display it wrtall #280$ ; "." bit #log$op ,trace ; is a file open? beq 73$ ; no wrtall #320$ ; "Logfile is " wrtall #logfil ; include file name wrtall #330$ ; ", cur/max blk: " mov #lun.lo ,r1 ; logfile lun asl r1 ; word indexing mov blknum(r1),r0 ; recover current block number call L10266 ; dump it to TT wrtall #340$ ; "/" mov sizof(r1),r0 ; recover file size call L10266 ; dump that to TT too br 79$ ; 73$: wrtall #350$ ; "No LOGFILE is open" 79$: .newline 100$: return .save .psect $pdata 200$: .word log$co ,log$pa ,log$io ,log$rp ,log$de ,0 205$: .word 210$ ,220$ ,230$ ,240$ ,250$ 210$: .asciz "CONNECT session logging:" 220$: .asciz "PACKET exchange logging:" 230$: .asciz "RAW binary I/O logging:" 240$: .asciz "RPACK rec packets to TT:" 250$: .asciz "TERMINAL debug display:" 260$: .asciz "RANDOM error generation:" 270$: .asciz " SEED = " 280$: .asciz "." 300$: .asciz " ENABLED" 310$: .asciz " disabled" 320$: .asciz "Logfile is " 330$: .asciz ", cur/max blk: " 340$: .asciz "/" 350$: .asciz "No LOGFILE is open" .even .restore .dsabl lsb .sbttl SHOW TIME, SHOW DATE, SHOW DEFAULT, SHOW HOME .enabl lsb ; /62/ sho$ti::calls asctim ,<#errtxt,#0> ; get time of day into a buffer wrtall #errtxt ; display it wrtall #raslug ; /62/ " (" mov clkflg ,r0 ; /62/ pass line time clock rate call L10266 ; /62/ dump it to terminal wrtall #ratag ; /62/ "Hz)" br 1$ ; /62/ sho$da::calls ascdat ,<#errtxt,#-1> ; /62/ get date into a buffer wrtall #errtxt ; display it .newline br 1$ ; /62/ c$pwd:: call sho$df ; /62/ display default disk tst tsxsav ; /62/ running under TSX? beq 1$ ; /62/ no, can't do this under RT-11 call sho$su ; /62/ show submounts 1$: clr r0 ; /62/ return sho$df::call sho$xx ; /BBS/ allow separate access br sho$yy ; /62/ to each function alone sho$xx: wrtall #hoslug ; /BBS/ print prefix wrtall #dkname ; then show HOME dir .newline br 1$ ; /62/ c$home::strcpy #defdir ,#dkname ; /62/ write home device into default sho$yy::wrtall #dkslug ; /BBS/ print prefix wrtall #defdir ; then show DK .newline br 1$ ; /62/ .save .psect $pdata raslug: .asciz " (" ; /62/ ratag: .asciz "Hz)" ; /62/ hoslug: .asciz "HOME--> " ; /BBS/ dkslug: .asciz "DK --> " ; /BBS/ .even .restore .dsabl lsb ; /62/ .sbttl SHOW SUBMOUNTS ; /BBS/ all new routine.. .enabl lsb F.NAM1 = 2 ; offset to first word of file name F.NAM2 = 4 ; second word of file name F.TYPE = 6 ; file type F.FLAG = 10 ; file flags NOTHERE = 2 ; not there bit READONLY= 1 ; read only bit sho$su::tst tsxsav ; running under TSX? bne 1$ ; ya mov #er$tsx ,r0 ; no, can't do this br 9$ 1$: cmp tsxver ,#620. ; does the right emt exist here? bhis 3$ ; ya mov #er$v62 ,r0 ; no 9$: direrr r0 ; say why it can't happen.. return 3$: clr r4 ; init # of units counter clr r5 ; init anything there counter 10$: movb r4 ,ld$num ; load unit # into stats emt mov #ld$stat,r0 ; load emt arg pointer emt 375 ; get status of this LD unit tst ld$buf ; anybody home?? beq 70$ ; next mov r4 ,r0 ; save copy add #'0 ,r0 ; convert to ascii character movb r0 , ; stick into display buffer ; input: r2 = buffer for the result ; r3 = current directory entry pointer mov #ld$name,r2 ; pointer to output buffer mov #ld$buf ,r3 ; point to .rad50 LD file name calls rdtoa , ; convert the device name please add #3 ,r2 ; skip past it movb #': ,(r2)+ ; and insert a colon calls rdtoa , ; convert first 3 file name to ascii add #3 ,r2 ; and skip over those three characters calls rdtoa , ; now get the rest of the file name add #3 ,r2 ; point to place a dot into the name movb #'. ,(r2)+ ; a dot calls rdtoa , ; get the file type at last add #7 ,r2 ; bump to the "O" or "W" byte bit #readonly,f.flag(r3) ; read only? bne 30$ ; ya.. movb #'W ,(r2)+ ; no, say it's "R/W" br 40$ 30$: movb #'O ,(r2)+ ; say it's "R/O" 40$: bit #nothere,f.flag(r3) ; able to locate file? bne 50$ ; nope.. clrb (r2) ; ya, so off not avail message br 60$ 50$: movb #space ,(r2) ; put space where null wuz.. 60$: wrtall #ld$data ; display entry for this LD unit .newline inc r5 ; flag some LD unit was found 70$: inc r4 ; bump LD unit number cmp r4 ,#7 ; done all 8. yet? ble 10$ ; no tst r5 ; ya, was anything found? bne 80$ ; ya message ,cr 80$: return .save .psect $rwdata ,rw,d,lcl,rel,con ld$stat:.byte 4 ,135 ; get status of ld$num: .byte 0 ,0 ; this LD unit .word ld$buf ; and put it here ld$buf: .word 0 ,0 ,0 ,0 ,0 ; ld$num emt writes data here ld$data:.ascii "LD0 --> " ld$name:.asciz "DU5:JAYSEN.DSK R/O [not available]" .even .restore .dsabl lsb .sbttl SHOW VERSION .enabl lsb ; /BBS/ slightly enhanced.. sho$ve::wrtall #100$ ; /62/ display name and if for EIS tst imgtyp ; /62/ virtual overlay image running? beq 27$ ; no wrtall #110$ ; /62/ ya, say so br 29$ 27$: wrtall #120$ ; /62/ it's the low memory image 29$: wrtall #130$ ; /62/ tag with "/TSX-Plus " wrtall #sho.ve ; /62/ release, ver, last edit date .newline return .save .psect $pdata 100$: .ascii "Kermit-11 (" ; /62/ .if df NONEIS ; /62/ include which .ascii "non" ; /62/ instruction set .endc ; /62/ Kermit contains .asciz "EIS) for RT-11" ; /62/ 110$: .asciz "XB,XM,ZB,ZM" ; /62-3/ 120$: .asciz "FB,SB,SJ" ; /62-3/ 130$: .asciz "/TSX-Plus " ; /62-3/ .even .restore .dsabl lsb .sbttl SHOW FILE_TYPE .enabl lsb ; /62/ cleaned up sho$fi: wrtall #210$ ; "FILE_TYPE set to" tst doauto ; is auto mode enabled? beq 1$ ; no mov #220$ ,r0 ; ya, "Auto ASCII/Binary" br 20$ ; go display it 1$: mov $image ,r0 ; recover current file_type asl r0 ; word indexing mov 200$(r0),r0 ; where it is in data below.. 20$: wrtall r0 ; dump file_type to TT .newline wrtall #260$ ; "Existing file protection: " tst filprot ; is it on? beq 26$ ; no mov #270$ ,r0 ; "ENABLED" br 27$ 26$: mov #300$ ,r0 ; "disabled" 27$: wrtall r0 ; say which .newline wrtall #310$ ; "File naming conversion: " tst rawfil ; is it on? beq 28$ ; no mov #320$ ,r0 ; "DISABLED" br 29$ 28$: mov #330$ ,r0 ; "enabled" 29$: wrtall r0 ; say which .newline wrtall #340$ ; "Lower case file naming: " tst locase ; is it on? beq 30$ ; no mov #270$ ,r0 ; "ENABLED" br 99$ 30$: mov #300$ ,r0 ; "disabled" 99$: wrtall r0 ; say which .newline wrtall #350$ ; "Volume verification is: " tst rtvol ; is it on? beq 130$ ; no mov #330$ ,r0 ; "enabled" br 139$ 130$: mov #320$ ,r0 ; "DISABLED" 139$: wrtall r0 ; say which .newline wrtall #360$ ; /62/ "Local CSI comma parsing: " tst csi.fake ; /62/ which is it? beq 140$ ; /62/ mov #400$ ,r0 ; /62/ "EMULATED" br 199$ ; /62/ 140$: mov #370$ ,r0 ; /62/ "real" 199$: wrtall r0 ; /62/ say which .newline wrtall #410$ ; "File create_size blocks: " mov en$siz ,r0 ; copy of size call L10266 ; write integer as ascii on terminal .newline wrtall #420$ ; /62/ "Init file: " wrtall #ininam ; /62/ and its name .newline ; /62/ return .save .psect $pdata 200$: .word 230$ ,240$ ,250$ 210$: .asciz "FILE_TYPE set to " 220$: .asciz "Auto ASCII/Binary" 230$: .asciz "ASCII" 240$: .asciz "BINARY (fixed 512, no carriage control)" 250$: .asciz "DEC_Multinational (8-bit text)" 260$: .asciz "Existing file protection: " 270$: .asciz "ENABLED" 300$: .asciz "disabled" 310$: .asciz "File naming conversion: " 320$: .asciz "DISABLED" 330$: .asciz "enabled" 340$: .asciz "Lower case file naming: " 350$: .asciz "Volume verification is: " 360$: .asciz "Local comma CSI_Parsing: " ; /62/ 370$: .asciz "real" ; /62/ 400$: .asciz "EMULATED" ; /62/ 410$: .asciz "File create_size blocks: " 420$: .asciz "Init file: " ; /62/ .even .restore .dsabl lsb .sbttl SHOW BLOCK_CHECK_TYPE .enabl lsb sho$bl: wrtall #105$ ; /62/ "Block_check_type: " movb setchkt ,r0 ; /62/ get the checksum type please sub #'1 ,r0 ; convert to an index for printing asl r0 ; word indexing wrtall 100$(r0) ; display it .newline return .save .psect $pdata 100$: .word 110$ ,120$ ,130$ 105$: .asciz "Block_check_type: " 110$: .asciz "1_Byte_Checksum" 120$: .asciz "2_Byte_Checksum" 130$: .asciz "3_Byte_CRC_CCITT" .even .restore .dsabl lsb .sbttl SHOW END_OF_FILE ; /62/ all new.. .enabl lsb sho$eof:message tst exieof ; is it on? bne 1$ ; ya message 1$: message ,cr return .dsabl lsb .sbttl SHOW INCOMPLETE_FILE_DISPOSITION ; /BBS/ all new.. .enabl lsb sho$in: message tst incfile ; is it on? bne 1$ ; no message ; ya br 3$ 1$: message 3$: .newline return .dsabl lsb .sbttl SHOW ESCAPE ; /BBS/ modified.. .enabl lsb sho$es::message mov conesc ,-(sp) ; copy escape char to a tiny buffer mov sp ,r0 ; point to the tiny buffer call unfmts ; convert to "\000" notation first wrtall r0 ; display that call tag.it ; then do the "^\" notation tst (sp)+ ; pop the tiny buffer return .sbttl SHOW PARAMETERS sho$pa: call sho$pk ; packets call sho$dl ; delay call sho$ps ; pause call sho$to ; time_out jmp sho$rt ; /62/ retries .sbttl SHOW PACKET ; /BBS/ extensively modified sho$pk: call sho$so ; show SOH first message clr -(sp) ; a one word buffer bisb conpar+p.eol,@sp ; copy receive EOL char mov sp ,r0 ; point to buffer call unfmts ; convert to "\000" notation wrtall r0 ; display that call tag.it ; then tag with "^M" notation clr (sp) ; init the tiny buffer again bisb senpar+p.eol,@sp ; /62/ copy send EOL char message ; /62/ mov sp ,r0 ; point to buffer call unfmts ; convert to "\000" notation wrtall r0 ; display it call tag.it ; then tag with "^M" notation tst (sp)+ ; pop tiny buffer message movb conpar+p.spsiz,r0 ; /62/ recover packet length decout r0 ; display it .newline message movb senpar+p.spsiz,r0 ; /62/ recover packet length decout r0 ; display it .newline message ;/62/ decout senlen ; /62/ display SET SEND PACKET length .newline message tst dolong ; are long_packets enabled? bne 1$ ; ya message < OFF> ; nope.. br 2$ 1$: decout reclng ; display locally set long_packet len 2$: .newline message decout senlng ; received (from other Kermit) length .newline message decout #maxlng ; the maximum possible packet length .newline return .sbttl SHOW TIME_OUT ; /62/ enhanced.. sho$to: message decout rectim ; SET value .newline message decout sentim ; SET value .newline message movb conpar+p.time,r0 ; RECEIVED (from other Kermit) decout r0 ; value .newline return .sbttl SHOW RETRY sho$rt: message decout initry .newline message decout maxtry .newline return .dsabl lsb .sbttl Display a control char in "^n" notation tag.it: message < ^> ; /BBS/ added.. mov 2(sp) ,r0 movb lis.ct(r0),r0 call writ1char .newline return .save .psect $pdata lis.ct: .ascii "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]~?" .even .restore .sbttl STATUS .enabl lsb c$stat::sub #120 ,sp ; /43/ allocate a buffer please wrtall #300$ ; /43/ a header clr r3 ; /43/ current item to Dump mov #27. ,r4 ; /43/ number items to dump mov sp ,r5 ; /BBS/ init buffer pointer br 15$ ; /BBS/ do totals, even zeros.. 10$: mov sp ,r5 ; /43/ restore buffer pointer tst pcnt.r+2(r3) ; /43/ anything there to dump? bne 15$ ; /43/ yes tst pcnt.s+2(r3) ; /43/ no, what about sent packets? bne 15$ ; /BBS/ ya mov totp.s ,r1 ; /BBS/ check "prev" totals too add r3 ,r1 ; point to this type's sent total tst 2(r1) ; anything in low word? bne 15$ ; ya, there's something to do mov totp.r ,r1 ; top of the received data table add r3 ,r1 ; point to this type's rec'd total tst 2(r1) ; anything in low word? beq 90$ ; no, skip the empty individual types 15$: mov r5 ,r1 ; /43/ fill the buffer with spaces mov #110 ,r2 ; /43/ count for the fill 20$: movb #space ,(r1)+ ; /43/ stuff a space sob r2 ,20$ ; /43/ and go back for more mov r3 ,r1 ; /43/ current type beq 30$ ; /43/ so skip type field (it's empty) asr r1 ; /43/ divide by two asr r1 ; /43/ again add #100 ,r1 ; /43/ get the letter type now movb r1 ,(r5)+ ; /43/ insert into the buffer br 40$ ; /43/ insert data now 30$: movb #'A&137 ,(r5)+ ; /62/ the word "ALL" for totals movb #'L&137 ,(r5) movb #'L&137 ,1(r5) 40$: add #5 ,r5 ; /43/ skip over a couple spaces mov #pcnt.s ,r1 ; /43/ sent packet count call 200$ ; /43/ convert double quantity mov #pcnt.r ,r1 ; /43/ received packet count call 200$ ; /43/ convert double quantity mov totp.s ,r1 ; /43/ total sent packet count call 200$ ; /43/ convert double quantity mov totp.r ,r1 ; /43/ total received packet count call 200$ ; /43/ convert double quantity movb #cr ,(r0)+ ; /43/ insert carriage control movb #lf ,(r0)+ ; /43/ clrb @r0 ; /43/ all done, .asciz mov sp ,r0 ; /43/ now dump it wrtall r0 ; /43/ simple 90$: add #4 ,r3 ; /43/ move up to next entry dec r4 ; /BBS/ wuz sob r4 ,10$ (too big now) beq 99$ jmp 10$ 99$: clr txflag ; /62/ init transfer direction flag wrtall #310$ ; /43/ a header, dump character counts mov sp ,r4 ; /43/ buffer address message ; /BBS/ prefix tst charout ; /BBS/ anything sent? bne 70$ ; /BBS/ ya tst charout+2 ; /BBS/ check low word beq 77$ ; /BBS/ nope.. 70$: message ; /BBS/ ya.. mov #charout,r1 ; /43/ data characters in mov sp ,txflag ; /BBS/ flag for "Chars per read: " br 79$ ; /BBS/ print it 77$: message ; /BBS/ format display.. mov #charin ,r1 ; /43/ point to it 79$: call 190$ ; /43/ and dump message ; /BBS/ display this one too.. tst txflag ; sending this time? bne 83$ mov #filein ,r1 ; no, use in char count br 85$ 83$: mov #fileout,r1 ; ya, use out char count 85$: call 190$ ; display whichever.. message