Subversion Repositories NedoOS

Rev

Rev 68 | Rev 344 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1.         DEVICE ZXSPECTRUM128
  2.         include "../_sdk/sys_h.asm"
  3.  
  4. ;text=#4000
  5. COLOR=7
  6.        
  7.         org PROGSTART
  8. cmd_begin
  9.         ld sp,#4000 ;эх фюыцхэ юяєёърЄ№ё  эшцх #3b00! шэрўх тючьюцэр яюЁўр OS
  10.         ld e,6 ;textmode
  11.         OS_SETGFX
  12.  
  13.         ;YIELD ;ўЄюс√ cmd ьюу фюфхырЄ№ ётюш фхыр эр ¤ъЁрэх
  14.        
  15.         ld e,COLOR
  16.         OS_CLS
  17.  
  18.         ld hl,COMMANDLINE ;command line
  19.         call skipword
  20.         call skipspaces
  21.         ld a,(hl)
  22.         or a
  23.         jr z,noautoload
  24. ;command line = "texted <file to load>"
  25.         ld (texted_filenameaddr),hl
  26.         ex de,hl ;de=drive/path/file
  27.         OS_OPENHANDLE
  28. ;b=new file handle
  29.  
  30.         ld hl,0
  31.         ld de,0
  32. nvview_load0
  33.         push bc
  34.         push de
  35.         push hl
  36.         call reservepage
  37.         pop hl
  38.         pop de
  39.         pop bc
  40.         ret nz ;no memory
  41.         ;ld a,#c000/256
  42.         ;call cmd_loadpage
  43.  
  44.         push bc
  45.        
  46.         push de
  47.         push hl
  48.         ld de,0xc000
  49.         ld hl,0x4000
  50. ;B = file handle, DE = Buffer address, HL = Number of bytes to read
  51.         OS_READHANDLE
  52. ;HL = Number of bytes actually read, A=error
  53.         ld b,h
  54.         ld c,l
  55.         ld hl,0x4000
  56.         or a
  57.         sbc hl,bc ;NZ = bytes to read != bytes actually read
  58.         pop hl
  59.         pop de
  60.  
  61.         push af ;NZ = bytes to read != bytes actually read
  62.         ex de,hl
  63.         add hl,bc
  64.         ex de,hl
  65.         jr nc,$+3
  66.         inc hl
  67.         pop af ;NZ = bytes to read != bytes actually read
  68.  
  69.         pop bc
  70.  
  71.         ;or a
  72.         jr z,nvview_load0
  73. ;hlde=true file size (for TRDOSFS)
  74.         ld (fcb+FCB_FSIZE),de
  75.         ld (fcb+FCB_FSIZE+2),hl
  76.        
  77.         OS_CLOSEHANDLE
  78.        
  79.         ;ld hl,text
  80.         ;call prtext
  81. noautoload
  82.  
  83.         call textview
  84.         jp 0
  85.  
  86. prtext
  87. ;out: hl=after terminator
  88. prtext0
  89.         ld a,(hl)
  90.         inc hl
  91.         or a
  92.         ret z
  93.         push hl
  94.         PRCHAR
  95.         pop hl
  96.         jp prtext0
  97.        
  98.        
  99. skipword
  100. ;hl=string
  101. ;out: hl=terminator/space addr
  102. getword0
  103.         ld a,(hl)
  104.         or a
  105.         ret z
  106.         cp ' '
  107.         ret z
  108.         inc hl
  109.         jr getword0
  110.  
  111. skipspaces
  112. ;hl=string
  113. ;out: hl=after last space
  114.         ld a,(hl)
  115.         cp ' '
  116.         ret nz
  117.         inc hl
  118.         jr skipspaces
  119.  
  120. nv_setxy
  121. ;de=yx (kept)
  122. ;keeps hl
  123.         push de
  124.         push hl
  125.         push ix
  126.         OS_SETXY
  127.         pop ix
  128.         pop hl
  129.         pop de
  130.         ret
  131.        
  132. minhl_bc_tobc
  133.         or a
  134.         sbc hl,bc
  135.         add hl,bc
  136.         ret nc ;bc<=hl
  137.         ld b,h
  138.         ld c,l
  139.         ret
  140.  
  141.         include "../_sdk/prdword.asm"
  142.         include "textview.asm"
  143.         include "text_mem.asm"
  144.  
  145. oldtimer
  146.         dw 0
  147.        
  148. fcb
  149.         ds FCB_sz
  150. fcb_filename=fcb+FCB_FNAME        ;яю єьюыўрэш■ Єрь фышэр 0
  151.        
  152. cmd_end
  153.  
  154.         display "Size ",/d,cmd_end-cmd_begin," bytes"
  155.  
  156.         savebin "texted.com",cmd_begin,cmd_end-cmd_begin
  157.        
  158.         ;LABELSLIST "../us/user.l"
  159.