?login_element?

Subversion Repositories NedoOS

Rev

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

  1.  
  2.         MODULE TIME
  3.         PUBLIC time
  4.         #include "sysdefs.asm"
  5.         RSEG CODE
  6. time:
  7.         push ix
  8.         push iy
  9.     ld c,CMD_GETTIMER ;out: hlde=timer
  10.         call BDOS
  11.         ld b,h
  12.         ld c,l
  13.         ex de,hl
  14.         pop iy
  15.         pop ix
  16.         ret ;return bchl
  17.         ENDMOD
  18.  
  19.         MODULE ERRNOMOD
  20.         PUBLIC errno
  21.         RSEG    NO_INIT
  22. errno:
  23.         defs 1
  24.         ENDMOD
  25.        
  26.         MODULE MYGETCHAR
  27.         PUBLIC getchar
  28.         EXTERN _low_level_get
  29.         RSEG CODE
  30. getchar:
  31.         call _low_level_get
  32.         or a
  33.         jr z,getchar
  34.         ld l,a
  35.         ld h,0
  36.         ret    
  37.         ENDMOD
  38.        
  39.         MODULE OS_RESERV_1
  40.         PUBLIC os_reserv_1
  41.         #include "sysdefs.asm"
  42.         RSEG CODE
  43. os_reserv_1:
  44.         push bc
  45.         push ix
  46.         push iy
  47.     ld c,CMD_RESERV_1
  48.         call BDOS
  49.         pop iy
  50.         pop ix
  51.         pop bc
  52.         ret    
  53.         ENDMOD
  54.        
  55.         MODULE SCRREDRAW
  56.         PUBLIC scrredraw
  57.         RSEG CODE
  58. scrredraw:
  59.         xor a
  60.         ret    
  61.         ENDMOD
  62.  
  63.         MODULE OSLOWGET
  64.         PUBLIC bdosgetkey
  65.         EXTERN scrredraw,exit,YIELD
  66.         #include "sysdefs.asm"
  67.         RSEG CODE
  68. bdosgetkey:
  69.         push de
  70.         push bc
  71.         push ix
  72.         push iy
  73.         ld c,CMD_YIELD
  74.         call BDOS
  75.         rst 0x08
  76.         cp key_esc
  77.         jp z,exit
  78.         cp key_redraw
  79.         call z,scrredraw
  80.         ld l,a
  81.         ld h,0
  82.         pop iy
  83.         pop ix
  84.         pop bc
  85.         pop de
  86.         ret
  87.         ENDMOD
  88.    
  89.         MODULE conv1251to866
  90.         PUBLIC conv1251to866, t1251to866
  91.         RSEG CODE
  92. conv1251to866:  ;DE-string
  93.         push de
  94. ploop:
  95.         ld a,(de)
  96.         or a
  97.         jr z,pexit
  98.         cp 128
  99.         jr c,asci
  100.         add a,low(t1251to866-128)
  101.         ld l,a
  102.         ld a,0
  103.         adc a,high(t1251to866-128)
  104.         ld h,a
  105.         ld a,(hl)
  106.         ld (de),a
  107. asci:
  108.         inc de
  109.         jr ploop
  110. pexit:
  111.         pop de
  112.         ret
  113.         RSEG    CONST
  114. t1251to866:
  115.         DEFB 0x3F, 0x3F, 0x27, 0x3F, 0x22, 0x3A, 0xC5, 0xD8, 0x3F, 0x25, 0x3F, 0x3C, 0x3F, 0x3F, 0x3F, 0x3F
  116.         DEFB 0x30, 0x3F, 0x27, 0x27, 0x22, 0x22, 0x07, 0x2D, 0x2D, 0x54, 0x3F, 0x3E, 0x3F, 0x3F, 0x3F, 0x3F
  117.         DEFB 0xFF, 0xF6, 0xF7, 0x3F, 0xFD, 0x3F, 0xB3, 0x15, 0xF0, 0x63, 0xF2, 0x3C, 0xBF, 0x2D, 0x52, 0xF4
  118.         DEFB 0xF8, 0x2B, 0x3F, 0x3F, 0x3F, 0xE7, 0x14, 0xFA, 0xF1, 0xFC, 0xF3, 0x3E, 0x3F, 0x3F, 0x3F, 0xF5
  119.         DEFB 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F
  120.         DEFB 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F
  121.         DEFB 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF
  122.         DEFB 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF
  123.         ENDMOD
  124.        
  125.         MODULE YIELD
  126.         PUBLIC YIELD
  127.         #include "sysdefs.asm"
  128.         RSEG CODE
  129. YIELD:
  130.         push bc
  131.         push de
  132.         push ix
  133.         push iy
  134.         ld c,CMD_YIELD
  135.         call BDOS
  136.         pop iy
  137.         pop ix
  138.         pop de
  139.         pop bc
  140.         ret
  141.         ENDMOD
  142.        
  143.         MODULE SETMUSIC
  144.         PUBLIC OS_SETMUSIC
  145.         #include "sysdefs.asm"
  146.         RSEG CODE
  147. OS_SETMUSIC:    ;DE - proc_ptr, A - ?
  148.         ld h,d
  149.         ld l,e
  150.         ld a,c
  151.     ex af,af'
  152.         push ix
  153.         push iy
  154.         ld c,CMD_SETMUSIC       ;hl=muzaddr (0x4000..0x7fff), a=muzpg
  155.         call BDOS
  156.         pop iy
  157.         pop ix
  158.         ret
  159.         ENDMOD
  160.        
  161.         MODULE OSGETCONFIG
  162.         PUBLIC OS_GETCONFIG
  163.         #include "sysdefs.asm"
  164.         RSEG CODE
  165. OS_GETCONFIG:
  166.    push bc
  167.         ld c,CMD_GETCONFIG
  168.         push de
  169.         push ix
  170.         push iy
  171.         call BDOS
  172.         pop iy
  173.         pop ix
  174.         pop de
  175.    pop bc
  176.         ret
  177.         ENDMOD
  178.  
  179.         MODULE GETMAINPAGES
  180.         PUBLIC OS_GETMAINPAGES,OS_GETAPPMAINPAGES
  181.    EXTERN errno
  182.         #include "sysdefs.asm"
  183.         RSEG CODE
  184. OS_GETAPPMAINPAGES:
  185.    ld c,CMD_GETAPPMAINPAGES
  186.    jr l1
  187. OS_GETMAINPAGES:
  188.         ld c,CMD_GETMAINPAGES
  189. l1
  190.         push de
  191.         push ix
  192.         push iy
  193.          call BDOS
  194.         ld b,d ;out: d,e,h,l=pages in 0000,4000,8000,c000, c=flags, a=error
  195.         ld c,e
  196.         pop iy
  197.         pop ix
  198.         pop de
  199.    LD (errno), a
  200.         ret
  201.         ENDMOD
  202.  
  203.  
  204.         MODULE SETPG32KHIGH
  205.         PUBLIC SETPG32KHIGH
  206.         #include "sysdefs.asm"
  207.         RSEG CODE
  208. SETPG32KHIGH:
  209.         push bc
  210.         push ix
  211.         push iy
  212.         ld a,e
  213.         rst 0x28
  214.         pop iy
  215.         pop ix
  216.         pop bc
  217.         ret
  218.         ENDMOD
  219.        
  220.         MODULE MAIN_ARGS
  221.         PUBLIC main_args
  222.         RSEG CODE
  223. main_args
  224.         ld hl,args
  225.         ld de,0x0080
  226. get_cmd_args_l2
  227.         ld (hl),e
  228.         inc hl
  229.         ld (hl),d
  230.         inc hl
  231.         dec de
  232. get_cmd_args_l
  233.         inc de
  234.         ld a,(de)
  235.         or a
  236.         jr z,get_cmd_args_end
  237.         cp ' '
  238.         jr nz,get_cmd_args_l
  239.         xor a
  240.         ld (de),a
  241. skipspaces
  242.         inc de
  243.         ld a,(de)
  244.         or a
  245.         jr z,get_cmd_args_end
  246.         cp ' '
  247.         jr nz,get_cmd_args_l2
  248.         jr skipspaces
  249. get_cmd_args_end:
  250.         ld bc,args
  251.         sbc hl,bc
  252.         ex de,hl
  253.         srl e
  254.         ret
  255.         RSEG    NO_INIT
  256. args:
  257.         defs 32
  258.         ENDMOD
  259.  
  260.  
  261.         MODULE OSDROPAPP
  262.         PUBLIC OS_DROPAPP
  263.         #include "sysdefs.asm"
  264.         RSEG CODE
  265. OS_DROPAPP:     ;e=id ; hl=result
  266.         ld c,CMD_DROPAPP
  267.         push ix
  268.         push iy
  269.         call BDOS
  270.         pop iy
  271.         pop ix
  272.         ret
  273.         ENDMOD
  274.  
  275.  
  276.  
  277.  
  278.         MODULE OSGETPAGEOWNER   ;e=page ;out: e=owner id (0=free, 0xff=system)
  279.         PUBLIC OS_GETPAGEOWNER
  280.         #include "sysdefs.asm"
  281.         RSEG CODE
  282. OS_GETPAGEOWNER:
  283.    push bc
  284.         ld c,CMD_GETPAGEOWNER
  285.         push de
  286.         push ix
  287.         push iy
  288.         call BDOS
  289.         LD a, e
  290.         pop iy
  291.         pop ix
  292.         pop de
  293.    pop bc
  294.         ret
  295.         ENDMOD
  296.  
  297.  
  298.  
  299.  
  300.        
  301.         MODULE  my_im2
  302.         PUBLIC  my_im2_init
  303.         RSEG    INTJP
  304.         DEFS 3
  305.         RSEG    INTTABLE
  306.         DEFS 257
  307.         RSEG    CODE
  308. my_im2_init
  309.         di
  310.         ld a,0xc3
  311.         ld (SFB(INTJP)),a
  312.         ld (SFB(INTJP)+1),de
  313.         ld a,HIGH(SFB(INTTABLE))
  314.         ld i,a
  315.         inc a
  316.         ld hl,SFB(INTTABLE)-1
  317. tloop
  318.         inc hl
  319.         ld (hl),HIGH(SFB(INTJP))
  320.         cp h
  321.         jr nz,tloop
  322.         im 2
  323.         ret
  324.         ENDMOD
  325.  
  326.  
  327.  
  328.  
  329. ;Kulich Area
  330.         MODULE OS_READSECTORS   ;de= pointer to diskOp structure
  331.         PUBLIC OS_READSECTORS
  332.         #include "sysdefs.asm"
  333.         RSEG CODE
  334. OS_READSECTORS:
  335.         push bc
  336.         push de
  337.         push ix
  338.         push iy
  339.  
  340.         ex de,hl
  341.         ld b,(hl)       ;drive
  342.         inc l
  343.         ld e,(hl)       ;buffer L
  344.         inc l
  345.         ld d,(hl)       ;buffer H
  346.         inc l
  347.         push de
  348.         ld e,(hl)       ;sector L
  349.         inc l
  350.         ld d,(hl)       ;sector H
  351.         inc l
  352.         ld  a,(hl)      ;sector X
  353.         ld  ixl,a
  354.         inc l
  355.         ld  a,(hl)      ;sector I
  356.         ld  ixh,a
  357.         inc l
  358.         ld  a,(hl)      ;count
  359.         pop hl
  360.         ex de,hl
  361.  
  362. ;       push hl
  363.         ld c,CMD_READSECTORS
  364.         ex af,af' ;'
  365.     call BDOS ;c=CMD
  366.  
  367. ;       pop hl
  368.         pop iy
  369.         pop ix
  370.         pop de
  371.         pop bc
  372.         ret             ;BCHL
  373.         ENDMOD 
  374.        
  375.         MODULE OS_WRITESECTORS  ;de= pointer to diskOp structure
  376.         PUBLIC OS_WRITESECTORS
  377.         #include "sysdefs.asm"
  378.         RSEG CODE
  379. OS_WRITESECTORS:
  380.         push bc
  381.         push de
  382.         push ix
  383.         push iy
  384.  
  385.         ex de,hl
  386.         ld b,(hl)       ;drive
  387.         inc l
  388.         ld e,(hl)       ;buffer L
  389.         inc l
  390.         ld d,(hl)       ;buffer H
  391.         inc l
  392.         push de
  393.         ld e,(hl)       ;sector L
  394.         inc l
  395.         ld d,(hl)       ;sector H
  396.         inc l
  397.         ld  a,(hl)      ;sector X
  398.         ld  ixl,a
  399.         inc l
  400.         ld  a,(hl)      ;sector I
  401.         ld  ixh,a
  402.         inc l
  403.         ld  a,(hl)      ;count
  404.         pop hl
  405.         ex de,hl
  406.  
  407. ;       push hl
  408.         ld c,CMD_WRITESECTORS
  409.         ex af,af' ;'
  410.     call BDOS ;c=CMD
  411.  
  412. ;       pop hl
  413.         pop iy
  414.         pop ix
  415.         pop de
  416.         pop bc
  417.         ret             ;BCHL  
  418. ;End of Kulich area
  419.         END
  420.