diff CoCoOS9/level2v3/CMDS/binex.asm @ 31:bd2b07db8917 cocoos9lv2v3

CoCoOS9 version
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 14 Jul 2018 15:16:13 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CoCoOS9/level2v3/CMDS/binex.asm	Sat Jul 14 15:16:13 2018 +0900
@@ -0,0 +1,245 @@
+********************************************************************
+* Binex - Motorola S-Record utility
+*
+* $Id: binex.asm,v 1.1.1.1 2001/02/21 23:30:54 boisy Exp $
+*
+* Ed.    Comments                                       Who YY/MM/DD
+* ------------------------------------------------------------------
+* 67     Original Tandy distribution version
+
+         nam   Binex
+         ttl   Motorola S-Record utility
+
+* Disassembled 98/09/15 00:08:52 by Disasm v1.6 (C) 1988 by RML
+
+         ifp1
+         use   defsfile
+         endc
+
+tylg     set   Prgrm+Objct   
+atrv     set   ReEnt+rev
+rev      set   $01
+edition  set   67
+
+         mod   eom,name,tylg,atrv,start,size
+
+u0000    rmb   1
+u0001    rmb   1
+u0002    rmb   2
+u0004    rmb   1
+u0005    rmb   1
+u0006    rmb   1
+u0007    rmb   2
+u0009    rmb   1
+u000A    rmb   2
+u000C    rmb   1
+u000D    rmb   31
+u002C    rmb   1
+u002D    rmb   1
+u002E    rmb   1
+u002F    rmb   2
+u0031    rmb   2
+u0033    rmb   2
+u0035    rmb   656
+size     equ   .
+
+name     fcs   /Binex/
+         fcc   "Copyright 1982 Motorola, Inc."
+         fcb   $01 
+
+start    stx   <u0002
+         lda   #$01
+         os9   I$Open   
+         bcc   L003C
+L0039    os9   F$Exit   
+L003C    sta   <u0000
+         stx   <u0002
+         lda   #$02
+         ldb   #$7F
+         os9   I$Create 
+         bcs   L0039
+         sta   <u0001
+         stx   <u0002
+         ldd   #$0000
+         sta   <u0006
+         std   <u000A
+         std   <u002F
+         ldx   #$5330
+         stx   <u002D
+         ldx   #$3030
+         stx   <u0031
+         stx   <u0033
+L0062    leax  >L0217,pcr
+         lda   #$01
+         ldy   #$0022
+         os9   I$Write  
+         leax  <u0031,u
+         lda   #$00
+         ldy   #$0005
+         os9   I$ReadLn 
+         leay  -$01,y
+         cmpy  #$0000
+         beq   L0062
+         cmpy  #$0004
+         bhi   L0062
+         beq   L00A7
+         tfr   y,d
+         pshs  b
+         decb  
+         leax  <u0031,u
+         leay  $04,x
+L0095    lda   b,x
+         sta   ,-y
+         decb  
+         bpl   L0095
+         ldb   #$04
+         subb  ,s+
+         lda   #$30
+L00A2    sta   ,-y
+         decb  
+         bgt   L00A2
+L00A7    lbsr  L0178
+         leax  >L01F9,pcr
+         lda   #$01
+         ldy   #$001E
+         os9   I$Write  
+         leax  u000C,u
+         lda   #$00
+         ldy   #$0015
+         os9   I$ReadLn 
+         leay  -$01,y
+         cmpy  #$0000
+         bne   L0120
+L00CA    lda   <u0000
+         leax  u000C,u
+         ldy   #$0020
+         os9   I$Read   
+         lbcs  L0160
+         cmpy  #$0000
+         lbeq  L0160
+         lda   <u0006
+         bne   L0120
+         inc   <u0006
+         lda   #$31
+         sta   <u002E
+         ldx   <u0004
+         stx   <u000A
+         ldx   u000C,u
+         cmpx  #$87CD
+         beq   L0120
+         leax  >L0239,pcr
+         pshs  y
+         ldy   #$003C
+         lda   #$01
+         os9   I$Write  
+         leax  <u0035,u
+         ldy   #$0002
+         lda   #$00
+         os9   I$ReadLn 
+         puls  y
+         lda   <u0035,u
+         anda  #$DF
+         cmpa  #$59
+         beq   L0120
+L011C    clrb  
+         os9   F$Exit   
+L0120    sty   <u0007
+         tfr   y,d
+         addb  #$03
+         stb   <u0009
+         leax  u0009,u
+         clra  
+         ldb   ,x
+L012E    adda  ,x+
+         decb  
+         bne   L012E
+         coma  
+         sta   ,x
+         leax  u0009,u
+         leay  <u002F,u
+         ldb   ,x
+         incb  
+L013E    bsr   L01B6
+         decb  
+         bne   L013E
+         ldb   #$0D
+         stb   ,y
+         leax  <u002D,u
+         ldy   #$0073
+         lda   <u0001
+         os9   I$WritLn 
+         lbcs  L0039
+         ldd   <u000A
+         addd  <u0007
+         std   <u000A
+         lbra  L00CA
+L0160    cmpb  #$D3
+         lbne  L0039
+         lda   #$39
+         cmpa  <u002E
+         beq   L011C
+         sta   <u002E
+         ldx   <u0004
+         stx   <u000A
+         ldy   #$0000
+         bra   L0120
+L0178    bsr   L017C
+         sta   <u0004
+L017C    lda   ,x+
+         bsr   L0197
+         lsla  
+         lsla  
+         lsla  
+         lsla  
+         anda  #$F0
+         pshs  a
+         lda   ,x+
+         bsr   L0197
+         adda  ,s+
+         sta   <u0005
+         adda  <u002C
+         sta   <u002C
+         lda   <u0005
+         rts   
+L0197    suba  #$30
+         bmi   L01A6
+         cmpa  #$09
+         ble   L01A5
+         suba  #$07
+         cmpa  #$0F
+         bhi   L01A6
+L01A5    rts   
+L01A6    leax  >L01D7,pcr
+         lda   #$02
+         ldy   #$00FF
+         os9   I$WritLn 
+         lbra  L011C
+L01B6    pshs  b,a
+         lda   ,x+
+         tfr   a,b
+         lsra  
+         lsra  
+         lsra  
+         lsra  
+         bsr   L01CC
+         sta   ,y+
+         tfr   b,a
+         bsr   L01CC
+         sta   ,y+
+         puls  pc,b,a
+L01CC    anda  #$0F
+         adda  #$30
+         cmpa  #$39
+         bls   L01D6
+         adda  #$07
+L01D6    rts   
+L01D7    fcc   "** NON-HEX CHARACTER ENCOUNTERED"
+         fcb   $07,C$CR
+L01F9    fcc   "Enter name for header record: "
+L0217    fcc   "Enter starting address for file: $"
+L0239    fcb   $07,C$CR,C$LF
+         fcc   "** Not a binary load module file.  Proceed anyway (Y/N)? "
+
+         emod
+eom      equ   *
+         end